<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>libnoise: Documentation</title> <link rel='stylesheet' type='text/css' href='doxygen.css'> <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'> </head> <body> <table class='layout'> <tr> <td class='sidebar' rowspan='2'> <p> Navigation menu </p> <ul class='toc'> <li> <a href='http://libnoise.sourceforge.net/index.html'>Main</a> </li> <li> <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a> </li> <li> <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a> </li> <li> <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a> </li> <li> <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a> </li> <li> <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a> <ul class='toc'> <li> <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a> </li> <li> <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a> </li> <li> <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a> </li> </ul> </li> <li> <strong>Docs</strong> </li> <li> <a href='tutorials/index.html'>Tutorials</a> <ul class='toc'> <li> <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a> </li> <li> <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a> </li> <li> <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a> </li> <li> <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a> </li> <li> <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a> </li> <li> <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a> </li> <li> <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a> </li> <li> <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a> </li> </ul> </li> <li> <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a> </li> <li> <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a> </li> </ul> </td> <td class='header'> <p> <img src='libnoise.png' alt='libnoise logo'> </p> <p> A portable, open-source, coherent noise-generating library for C++ </p> <hr> </td> </tr> <tr> <td class='content'> <!-- start rich gooey content --> <!-- Generated by Doxygen 1.3.9.1 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div> <h1>noise::model::Line Class Reference<br> <small> [<a class="el" href="group__models.html">Models</a>]</small> </h1><code>#include <<a class="el" href="line_8h-source.html">line.h</a>></code> <p> <a href="classnoise_1_1model_1_1Line-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2> Model that defines the displacement of a line segment. <p> This model returns an output value from a noise module given the one-dimensional coordinate of an input value located on a line segment, which can be used as displacements.<p> This class is useful for creating:<ul> <li>roads and rivers</li><li>disaffected college students</li></ul> <p> To generate an output value, pass an input value between 0.0 and 1.0 to the <a class="el" href="classnoise_1_1model_1_1Line.html#a4">GetValue()</a> method. 0.0 represents the start position of the line segment and 1.0 represents the end position of the line segment. <p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::model::Line::Line"></a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a0">Line</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a1">Line</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a2">GetAttenuate</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a flag indicating whether the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached by the input value. <a href="#a2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a3">GetModule</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the noise module that is used to generate the output values. <a href="#a3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a4">GetValue</a> (double p) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the output value from the noise module given the one-dimensional coordinate of the specified input value located on the line segment. <a href="#a4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a5">SetAttenuate</a> (bool att)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets a flag indicating that the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached. <a href="#a5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a6">SetEndPoint</a> (double x, double y, double z)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the end of the line segment to choose values along. <a href="#a6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the noise module that is used to generate the output values. <a href="#a7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a8">SetStartPoint</a> (double x, double y, double z)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the start of the line segment to choose values along. <a href="#a8"></a><br></td></tr> </table> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="a1" doxytag="noise::model::Line::Line"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">Line::Line </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td> <td class="mdname1" valign="top" nowrap> <em>module</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Constructor. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values. </td></tr> </table> </dl> </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="a2" doxytag="noise::model::Line::GetAttenuate"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">bool noise::model::Line::GetAttenuate </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns a flag indicating whether the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached by the input value. <p> <dl compact><dt><b>Returns:</b></dt><dd><ul> <li><em>true</em> if the value is to be attenuated</li><li><em>false</em> if not. </li></ul> </dd></dl> </td> </tr> </table> <a class="anchor" name="a3" doxytag="noise::model::Line::GetModule"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a>& noise::model::Line::GetModule </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the noise module that is used to generate the output values. <p> <dl compact><dt><b>Returns:</b></dt><dd>A reference to the noise module.</dd></dl> <dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. </dd></dl> </td> </tr> </table> <a class="anchor" name="a4" doxytag="noise::model::Line::GetValue"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">double Line::GetValue </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname1" valign="top" nowrap> <em>p</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const</td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the output value from the noise module given the one-dimensional coordinate of the specified input value located on the line segment. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The distance along the line segment (ranges from 0.0 to 1.0)</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The output value from the noise module.</dd></dl> <dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. <p> The start and end points of the line segment were specified.</dd></dl> The output value is generated by the noise module passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. This value may be attenuated (moved toward 0.0) as <em>p</em> approaches either end of the line segment; this is the default behavior.<p> If the value is not to be attenuated, <em>p</em> can safely range outside the 0.0 to 1.0 range; the output value will be extrapolated along the line that this segment is part of. </td> </tr> </table> <a class="anchor" name="a5" doxytag="noise::model::Line::SetAttenuate"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void noise::model::Line::SetAttenuate </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">bool </td> <td class="mdname1" valign="top" nowrap> <em>att</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Sets a flag indicating that the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>att</em> </td><td>A flag that specifies whether the output value is to be attenuated. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="a6" doxytag="noise::model::Line::SetEndPoint"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void noise::model::Line::SetEndPoint </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname" nowrap> <em>x</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>double </td> <td class="mdname" nowrap> <em>y</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>double </td> <td class="mdname" nowrap> <em>z</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the end of the line segment to choose values along. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>x coordinate of the end position. </td></tr> <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>y coordinate of the end position. </td></tr> <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>z coordinate of the end position. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="a7" doxytag="noise::model::Line::SetModule"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void noise::model::Line::SetModule </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td> <td class="mdname1" valign="top" nowrap> <em>module</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Sets the noise module that is used to generate the output values. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values.</td></tr> </table> </dl> This noise module must exist for the lifetime of this object, until you pass a new noise module to this method. </td> </tr> </table> <a class="anchor" name="a8" doxytag="noise::model::Line::SetStartPoint"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void noise::model::Line::SetStartPoint </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname" nowrap> <em>x</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>double </td> <td class="mdname" nowrap> <em>y</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>double </td> <td class="mdname" nowrap> <em>z</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the start of the line segment to choose values along. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>x coordinate of the start position. </td></tr> <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>y coordinate of the start position. </td></tr> <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>z coordinate of the start position. </td></tr> </table> </dl> </td> </tr> </table> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="line_8h-source.html">line.h</a><li>line.cpp</ul> <!-- end rich gooey content --> </td> </tr> <tr> <td class='footer' colspan='2'> <p> © 2003-2005 Jason Bevins </p> <p> <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a> <br> The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1 </p> </td> </tr> </table> </body> </html>