Noise-1.0.0: libnoise/noise/doc/html/group__libnoise.html
<!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>