<!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>libnoise</h1> <p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Modules</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__models.html">Models</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__modules.html">Noise Modules</a></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1Exception.html">noise::Exception</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract base class for libnoise exceptions. <a href="classnoise_1_1Exception.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Invalid parameter exception. <a href="classnoise_1_1ExceptionInvalidParam.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">No module exception. <a href="classnoise_1_1ExceptionNoModule.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionOutOfMemory.html">noise::ExceptionOutOfMemory</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Out of memory exception. <a href="classnoise_1_1ExceptionOutOfMemory.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionUnknown.html">noise::ExceptionUnknown</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unknown exception. <a href="classnoise_1_1ExceptionUnknown.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structnoise_1_1module_1_1ControlPoint.html">noise::module::ControlPoint</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This structure defines a control point. <a href="structnoise_1_1module_1_1ControlPoint.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="libnoise::uint"></a> typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga0">noise::uint</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unsigned integer type. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1" doxytag="libnoise::uint32"></a> typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga1">noise::uint32</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">32-bit unsigned integer type. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="libnoise::uint16"></a> typedef unsigned short </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga2">noise::uint16</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">16-bit unsigned integer type. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="libnoise::uint8"></a> typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga3">noise::uint8</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">8-bit unsigned integer type. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga4" doxytag="libnoise::int32"></a> typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga4">noise::int32</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">32-bit signed integer type. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="libnoise::int16"></a> typedef short </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga5">noise::int16</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">16-bit signed integer type. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="libnoise::int8"></a> typedef char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga6">noise::int8</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">8-bit signed integer type. <br></td></tr> <tr><td colspan="2"><br><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> { <a class="el" href="group__libnoise.html#gga26a12">noise::QUALITY_FAST</a> = 0, <a class="el" href="group__libnoise.html#gga26a13">noise::QUALITY_STD</a> = 1, <a class="el" href="group__libnoise.html#gga26a14">noise::QUALITY_BEST</a> = 2 }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Enumerates the noise quality. <a href="#ga26">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga12">noise::CubicInterp</a> (double n0, double n1, double n2, double n3, double a)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Performs cubic interpolation between two values bound between two other values. <a href="#ga12"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga13">noise::LinearInterp</a> (double n0, double n1, double a)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Performs linear interpolation between two values. <a href="#ga13"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga14">noise::SCurve3</a> (double a)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Maps a value onto a cubic S-curve. <a href="#ga14"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga15">noise::SCurve5</a> (double a)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Maps a value onto a quintic S-curve. <a href="#ga15"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga16">noise::LatLonToXYZ</a> (double lat, double lon, double &x, double &y, double &z)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Converts latitude/longitude coordinates on a unit sphere into 3D Cartesian coordinates. <a href="#ga16"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga17">noise::GetMax</a> (const T &a, const T &b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the maximum of two values. <a href="#ga17"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga18">noise::GetMin</a> (const T &a, const T &b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the minimum of two values. <a href="#ga18"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga19">noise::SwapValues</a> (T &a, T &b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Swaps two values. <a href="#ga19"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga20">noise::GradientCoherentNoise3D</a> (double x, double y, double z, int seed=0, <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> noiseQuality=QUALITY_STD)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a gradient-coherent-noise value from the coordinates of a three-dimensional input value. <a href="#ga20"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga21">noise::GradientNoise3D</a> (double fx, double fy, double fz, int ix, int iy, int iz, int seed=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a gradient-noise value from the coordinates of a three-dimensional input value and the integer coordinates of a nearby three-dimensional value. <a href="#ga21"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga22">noise::IntValueNoise3D</a> (int x, int y, int z, int seed=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an integer-noise value from the coordinates of a three-dimensional input value. <a href="#ga22"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga23">noise::MakeInt32Range</a> (double n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Modifies a floating-point value so that it can be stored in a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> variable. <a href="#ga23"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga24">noise::ValueCoherentNoise3D</a> (double x, double y, double z, int seed=0, <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> noiseQuality=QUALITY_STD)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a value-coherent-noise value from the coordinates of a three-dimensional input value. <a href="#ga24"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga25">noise::ValueNoise3D</a> (int x, int y, int z, int seed=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a value-noise value from the coordinates of a three-dimensional input value. <a href="#ga25"></a><br></td></tr> <tr><td colspan="2"><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="libnoise::PI"></a> const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga7">noise::PI</a> = 3.1415926535897932385</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Pi. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8" doxytag="libnoise::SQRT_2"></a> const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga8">noise::SQRT_2</a> = 1.4142135623730950488</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Square root of 2. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="libnoise::SQRT_3"></a> const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga9">noise::SQRT_3</a> = 1.7320508075688772935</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Square root of 3. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="libnoise::DEG_TO_RAD"></a> const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga10">noise::DEG_TO_RAD</a> = <a class="el" href="group__libnoise.html#ga7">PI</a> / 180.0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Converts an angle from degrees to radians. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="libnoise::RAD_TO_DEG"></a> const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga11">noise::RAD_TO_DEG</a> = 1.0 / <a class="el" href="group__libnoise.html#ga10">DEG_TO_RAD</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Converts an angle from radians to degrees. <br></td></tr> </table> <hr><h2>Enumeration Type Documentation</h2> <a class="anchor" name="ga26" doxytag="noise::NoiseQuality"></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">enum <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Enumerates the noise quality. <p> <dl compact><dt><b>Enumeration values: </b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" name="gga26a12" doxytag="QUALITY_FAST"></a>QUALITY_FAST</em> </td><td> Generates coherent noise quickly. <p> When a coherent-noise function with this quality setting is used to generate a bump-map image, there are noticeable "creasing" artifacts in the resulting image. This is because the derivative of that function is discontinuous at integer boundaries. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gga26a13" doxytag="QUALITY_STD"></a>QUALITY_STD</em> </td><td> Generates standard-quality coherent noise. <p> When a coherent-noise function with this quality setting is used to generate a bump-map image, there are some minor "creasing" artifacts in the resulting image. This is because the second derivative of that function is discontinuous at integer boundaries. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gga26a14" doxytag="QUALITY_BEST"></a>QUALITY_BEST</em> </td><td> Generates the best-quality coherent noise. <p> When a coherent-noise function with this quality setting is used to generate a bump-map image, there are no "creasing" artifacts in the resulting image. This is because the first and second derivatives of that function are continuous at integer boundaries. </td></tr> </table> </dl> </td> </tr> </table> <hr><h2>Function Documentation</h2> <a class="anchor" name="ga12" doxytag="noise::CubicInterp"></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 CubicInterp </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname" nowrap> <em>n0</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>n1</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>n2</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>n3</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>a</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> Performs cubic interpolation between two values bound between two other 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>n0</em> </td><td>The value before the first value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>n1</em> </td><td>The first value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>n2</em> </td><td>The second value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>n3</em> </td><td>The value after the second value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>The alpha value.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The interpolated value.</dd></dl> The alpha value should range from 0.0 to 1.0. If the alpha value is 0.0, this function returns <em>n1</em>. If the alpha value is 1.0, this function returns <em>n2</em>. </td> </tr> </table> <a class="anchor" name="ga17" doxytag="noise::GetMax"></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" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">T GetMax </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const T & </td> <td class="mdname" nowrap> <em>a</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>const T & </td> <td class="mdname" nowrap> <em>b</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the maximum of two 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>a</em> </td><td>The first value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>The second value.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The maximum of the two values. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga18" doxytag="noise::GetMin"></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" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">T GetMin </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const T & </td> <td class="mdname" nowrap> <em>a</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>const T & </td> <td class="mdname" nowrap> <em>b</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the minimum of two 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>a</em> </td><td>The first value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>The second value.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The minimum of the two values. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga20" doxytag="noise::GradientCoherentNoise3D"></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 noise::GradientCoherentNoise3D </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" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>seed</em> = <code>0</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> </td> <td class="mdname" nowrap> <em>noiseQuality</em> = <code>QUALITY_STD</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Generates a gradient-coherent-noise value from the coordinates of a three-dimensional input value. <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>The <em>x</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The random number seed. </td></tr> <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em> </td><td>The quality of the coherent-noise.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The generated gradient-coherent-noise value.</dd></dl> The return value ranges from -1.0 to +1.0.<p> For an explanation of the difference between <em>gradient</em> noise and <em>value</em> noise, see the comments for the <a class="el" href="group__libnoise.html#ga21">GradientNoise3D()</a> function. </td> </tr> </table> <a class="anchor" name="ga21" doxytag="noise::GradientNoise3D"></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 noise::GradientNoise3D </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname" nowrap> <em>fx</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>fy</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>fz</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>ix</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>iy</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>iz</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Generates a gradient-noise value from the coordinates of a three-dimensional input value and the integer coordinates of a nearby three-dimensional value. <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>fx</em> </td><td>The floating-point <em>x</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>fy</em> </td><td>The floating-point <em>y</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>fz</em> </td><td>The floating-point <em>z</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>ix</em> </td><td>The integer <em>x</em> coordinate of a nearby value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>iy</em> </td><td>The integer <em>y</em> coordinate of a nearby value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>iz</em> </td><td>The integer <em>z</em> coordinate of a nearby value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The random number seed.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The generated gradient-noise value.</dd></dl> <dl compact><dt><b>Precondition:</b></dt><dd>The difference between <em>fx</em> and <em>ix</em> must be less than or equal to one.<p> The difference between <em>fy</em> and <em>iy</em> must be less than or equal to one.<p> The difference between <em>fz</em> and <em>iz</em> must be less than or equal to one.</dd></dl> A <em>gradient</em>-noise function generates better-quality noise than a <em>value</em>-noise function. Most noise modules use gradient noise for this reason, although it takes much longer to calculate.<p> The return value ranges from -1.0 to +1.0.<p> This function generates a gradient-noise value by performing the following steps:<ul> <li>It first calculates a random normalized vector based on the nearby integer value passed to this function.</li><li>It then calculates a new value by adding this vector to the nearby integer value passed to this function.</li><li>It then calculates the dot product of the above-generated value and the floating-point input value passed to this function.</li></ul> <p> A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it. </td> </tr> </table> <a class="anchor" name="ga22" doxytag="noise::IntValueNoise3D"></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">int noise::IntValueNoise3D </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">int </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>int </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>int </td> <td class="mdname" nowrap> <em>z</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Generates an integer-noise value from the coordinates of a three-dimensional input value. <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>The integer <em>x</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The integer <em>y</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The integer <em>z</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>A random number seed.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The generated integer-noise value.</dd></dl> The return value ranges from 0 to 2147483647.<p> A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it. </td> </tr> </table> <a class="anchor" name="ga16" doxytag="noise::LatLonToXYZ"></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::LatLonToXYZ </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname" nowrap> <em>lat</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>lon</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>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"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Converts latitude/longitude coordinates on a unit sphere into 3D Cartesian coordinates. <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>lat</em> </td><td>The latitude, in degrees. </td></tr> <tr><td valign="top"></td><td valign="top"><em>lon</em> </td><td>The longitude, in degrees. </td></tr> <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>On exit, this parameter contains the <em>x</em> coordinate. </td></tr> <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>On exit, this parameter contains the <em>y</em> coordinate. </td></tr> <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>On exit, this parameter contains the <em>z</em> coordinate.</td></tr> </table> </dl> <dl compact><dt><b>Precondition:</b></dt><dd>lat must range from <b>-90</b> to <b>+90</b>. <p> lon must range from <b>-180</b> to <b>+180</b>. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga13" doxytag="noise::LinearInterp"></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 LinearInterp </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname" nowrap> <em>n0</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>n1</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>a</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> Performs linear interpolation between two 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>n0</em> </td><td>The first value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>n1</em> </td><td>The second value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>The alpha value.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The interpolated value.</dd></dl> The alpha value should range from 0.0 to 1.0. If the alpha value is 0.0, this function returns <em>n0</em>. If the alpha value is 1.0, this function returns <em>n1</em>. </td> </tr> </table> <a class="anchor" name="ga23" doxytag="noise::MakeInt32Range"></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 MakeInt32Range </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname1" valign="top" nowrap> <em>n</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> Modifies a floating-point value so that it can be stored in a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> variable. <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>n</em> </td><td>A floating-point number.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The modified floating-point number.</dd></dl> This function does not modify <em>n</em>.<p> In libnoise, the noise-generating algorithms are all integer-based; they use variables of type <a class="el" href="group__libnoise.html#ga4">noise::int32</a>. Before calling a noise function, pass the <em>x</em>, <em>y</em>, and <em>z</em> coordinates to this function to ensure that these coordinates can be cast to a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> value.<p> Although you could do a straight cast from double to <a class="el" href="group__libnoise.html#ga4">noise::int32</a>, the resulting value may differ between platforms. By using this function, you ensure that the resulting value is identical between platforms. </td> </tr> </table> <a class="anchor" name="ga14" doxytag="noise::SCurve3"></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 SCurve3 </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname1" valign="top" nowrap> <em>a</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> Maps a value onto a cubic S-curve. <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>a</em> </td><td>The value to map onto a cubic S-curve.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The mapped value.</dd></dl> <em>a</em> should range from 0.0 to 1.0.<p> The derivitive of a cubic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0 </td> </tr> </table> <a class="anchor" name="ga15" doxytag="noise::SCurve5"></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 SCurve5 </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">double </td> <td class="mdname1" valign="top" nowrap> <em>a</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> Maps a value onto a quintic S-curve. <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>a</em> </td><td>The value to map onto a quintic S-curve.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The mapped value.</dd></dl> <em>a</em> should range from 0.0 to 1.0.<p> The first derivitive of a quintic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0<p> The second derivitive of a quintic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0 </td> </tr> </table> <a class="anchor" name="ga19" doxytag="noise::SwapValues"></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" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">void SwapValues </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">T & </td> <td class="mdname" nowrap> <em>a</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>T & </td> <td class="mdname" nowrap> <em>b</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Swaps two 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>a</em> </td><td>A variable containing the first value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>A variable containing the second value.</td></tr> </table> </dl> <dl compact><dt><b>Postcondition:</b></dt><dd>The values within the the two variables are swapped. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga24" doxytag="noise::ValueCoherentNoise3D"></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 noise::ValueCoherentNoise3D </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" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>seed</em> = <code>0</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> </td> <td class="mdname" nowrap> <em>noiseQuality</em> = <code>QUALITY_STD</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Generates a value-coherent-noise value from the coordinates of a three-dimensional input value. <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>The <em>x</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The random number seed. </td></tr> <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em> </td><td>The quality of the coherent-noise.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The generated value-coherent-noise value.</dd></dl> The return value ranges from -1.0 to +1.0.<p> For an explanation of the difference between <em>gradient</em> noise and <em>value</em> noise, see the comments for the <a class="el" href="group__libnoise.html#ga21">GradientNoise3D()</a> function. </td> </tr> </table> <a class="anchor" name="ga25" doxytag="noise::ValueNoise3D"></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 noise::ValueNoise3D </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">int </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>int </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>int </td> <td class="mdname" nowrap> <em>z</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Generates a value-noise value from the coordinates of a three-dimensional input value. <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>The <em>x</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value. </td></tr> <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>A random number seed.</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The generated value-noise value.</dd></dl> The return value ranges from -1.0 to +1.0.<p> A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it. </td> </tr> </table> <!-- 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>