Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 8ae69226b18a75c9c1458e97746c673c > files > 44

libnoise-doc-1.0.0-5.fc14.i686.rpm

<!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&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
<h1>noise::module::Cache Class Reference<br>
<small>
[<a class="el" href="group__miscmodules.html">Miscellaneous Modules</a>]</small>
</h1><code>#include &lt;<a class="el" href="cache_8h-source.html">cache.h</a>&gt;</code>
<p>
<p>Inheritance diagram for noise::module::Cache:
<p><center><img src="classnoise_1_1module_1_1Cache.png" usemap="#noise::module::Cache_map" border="0" alt=""></center>
<map name="noise::module::Cache_map">
<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">
</map>
<a href="classnoise_1_1module_1_1Cache-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Noise module that caches the last output value generated by a source module. 
<p>
If an application passes an input value to the <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue()</a> method that differs from the previously passed-in input value, this noise module instructs the source module to calculate the output value. This value, as well as the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value, are stored (cached) in this noise module.<p>
If the application passes an input value to the <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue()</a> method that is equal to the previously passed-in input value, this noise module returns the cached output value without having the source module recalculate the output value.<p>
If an application passes a new source module to the <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule()</a> method, the cache is invalidated.<p>
Caching a noise module is useful if it is used as a source module for multiple noise modules. If a source module is not cached, the source module will redundantly calculate the same output value once for each noise module in which it is included.<p>
This noise module requires one source module. 
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Cache::Cache"></a>
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#a0">Cache</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#a1">GetSourceModuleCount</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of source modules required by this noise module.  <a href="#a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates an output value given the coordinates of the specified input value.  <a href="#a2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule</a> (int index, const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &amp;sourceModule)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Connects a source module to this noise module.  <a href="#a3"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Cache::m_cachedValue"></a>
double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p0">m_cachedValue</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The cached output value at the cached input value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Cache::m_isCached"></a>
double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p1">m_isCached</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines if a cached output value is stored in this noise module. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Cache::m_xCache"></a>
double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p2">m_xCache</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><em>x</em> coordinate of the cached input value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::Cache::m_yCache"></a>
double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p3">m_yCache</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><em>y</em> coordinate of the cached input value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p4" doxytag="noise::module::Cache::m_zCache"></a>
double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p4">m_zCache</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><em>z</em> coordinate of the cached input value. <br></td></tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a1" doxytag="noise::module::Cache::GetSourceModuleCount"></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">virtual int noise::module::Cache::GetSourceModuleCount           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the number of source modules required by this noise module. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>

<p>
Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a2" doxytag="noise::module::Cache::GetValue"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double Cache::GetValue           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</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&nbsp;</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&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const<code> [virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates an output value given the coordinates of the specified 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>&nbsp;</td><td>The <em>x</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>The <em>y</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>The <em>z</em> coordinate of the input value.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>
<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule()</a> method.</dd></dl>
Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>
To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Cache.html#a1">GetSourceModuleCount()</a> method. 
<p>
Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a3" doxytag="noise::module::Cache::SetSourceModule"></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">virtual void noise::module::Cache::SetSourceModule           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>sourceModule</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline, virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Connects a source module to this noise module. 
<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>index</em>&nbsp;</td><td>An index value to assign to this source module. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sourceModule</em>&nbsp;</td><td>The source module to attach.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Precondition:</b></dt><dd>The index value ranges from 0 to one less than the number of source modules required by this noise module.</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em>&nbsp;</td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>
  </table>
</dl>
A noise module mathematically combines the output values from the source modules to generate the value returned by <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue()</a>.<p>
The index value to assign a source module is a unique identifier for that source module. If an index value has already been assigned to a source module, this noise module replaces the old source module with the new source module.<p>
Before an application can call the <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue()</a> method, it must first connect all required source modules. To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Cache.html#a1">GetSourceModuleCount()</a> method.<p>
This source module must exist throughout the lifetime of this noise module unless another source module replaces that source module.<p>
A noise module does not modify a source module; it only modifies its output values. 
<p>
Reimplemented from <a class="el" href="classnoise_1_1module_1_1Module.html#a5">noise::module::Module</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="cache_8h-source.html">cache.h</a><li>cache.cpp</ul>
<!-- end rich gooey content -->

    </td>
   </tr>
   <tr>
    <td class='footer' colspan='2'>
     <p>
      &copy; 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>