diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a03249.html | 1781 |
1 files changed, 1781 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03249.html b/docs/doxygen/nel/a03249.html new file mode 100644 index 00000000..32951614 --- /dev/null +++ b/docs/doxygen/nel/a03249.html @@ -0,0 +1,1781 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>NeL: NL3D::CPSUtil struct Reference</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.3.6 --> +<div class="qindex"> <form class="search" action="search.php" method="get"> +<a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NL3D::CPSUtil Struct Reference</h1><code>#include <<a class="el" href="a06286.html">ps_util.h</a>></code> +<p> +<hr><a name="_details"></a><h2>Detailed Description</h2> +This struct contains utility functions used by the particle system. <dl compact><dt><b>Author:</b></dt><dd>Nicolas Vizerie <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a06286.html#l00057">57</a> of file <a class="el" href="a06286.html">ps_util.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile0">addRadiusToAABBox</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &box, float radius)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">enlarge a bounding box by the specified radius <a href="#NL3D_1_1CPSUtile0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile1">buildPerlinNoise</a> (<a class="el" href="a03128.html">NLMISC::CVector</a> &pos, <a class="el" href="a04558.html#a15">uint</a> nbOctaves)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile2">buildSchmidtBasis</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &<a class="el" href="a04223.html#a576">v</a>, <a class="el" href="a02851.html">NLMISC::CMatrix</a> &dest)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile3">display3DQuad</a> (<a class="el" href="a02434.html">NL3D::IDriver</a> &driver, const <a class="el" href="a03128.html">NLMISC::CVector</a> &c1, const <a class="el" href="a03128.html">NLMISC::CVector</a> &c2,const <a class="el" href="a03128.html">NLMISC::CVector</a> &c3, const <a class="el" href="a03128.html">NLMISC::CVector</a> &c4, <a class="el" href="a03337.html">NLMISC::CRGBA</a> color=<a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">display a 3d quad in wireline, by using the 4 gicen corners <a href="#NL3D_1_1CPSUtile3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile4">displayArrow</a> (<a class="el" href="a02434.html">NL3D::IDriver</a> *driver, const <a class="el" href="a03128.html">NLMISC::CVector</a> &start, const <a class="el" href="a03128.html">NLMISC::CVector</a> &<a class="el" href="a04223.html#a576">v</a>, float <a class="el" href="a04223.html#a587">size</a>, <a class="el" href="a03337.html">NLMISC::CRGBA</a> col1, <a class="el" href="a03337.html">NLMISC::CRGBA</a> col2)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile5">displayBasis</a> (<a class="el" href="a02434.html">NL3D::IDriver</a> *driver, const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &modelMat, const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &m, float <a class="el" href="a04223.html#a587">size</a>, <a class="el" href="a02541.html">CFontGenerator</a> &fg, <a class="el" href="a02542.html">CFontManager</a> &fm)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">display a basis using the given matrix. The model matrix must be restored after this call <a href="#NL3D_1_1CPSUtile5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile6">displayBBox</a> (<a class="el" href="a02434.html">NL3D::IDriver</a> *driver, const <a class="el" href="a02156.html">NLMISC::CAABBox</a> &box, <a class="el" href="a03337.html">NLMISC::CRGBA</a> col=<a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">this draw a bounding box <a href="#NL3D_1_1CPSUtile6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile7">displayCylinder</a> (<a class="el" href="a02434.html">NL3D::IDriver</a> &driver, const <a class="el" href="a03128.html">NLMISC::CVector</a> &center, const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &mat, const <a class="el" href="a03128.html">NLMISC::CVector</a> &dim, <a class="el" href="a04558.html#a15">uint</a> nbSubdiv=32, <a class="el" href="a03337.html">NLMISC::CRGBA</a> color=<a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile8">displayDisc</a> (<a class="el" href="a02434.html">NL3D::IDriver</a> &driver, float radius, const <a class="el" href="a03128.html">NLMISC::CVector</a> &center, const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &mat, <a class="el" href="a04558.html#a15">uint</a> nbSubdiv=32, <a class="el" href="a03337.html">NLMISC::CRGBA</a> color=<a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile9">displaySphere</a> (<a class="el" href="a02434.html">NL3D::IDriver</a> &driver, float radius, const <a class="el" href="a03128.html">NLMISC::CVector</a> &center, <a class="el" href="a04558.html#a15">uint</a> nbSubdiv=4, <a class="el" href="a03337.html">NLMISC::CRGBA</a> color=<a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">draw a sphere <a href="#NL3D_1_1CPSUtile9"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile10">getCos</a> (<a class="el" href="a04558.html#a10">sint32</a> angle)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile11">getSin</a> (<a class="el" href="a04558.html#a10">sint32</a> angle)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile12">initFastCosNSinTable</a> (void)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile13">initPerlinNoiseTable</a> (void)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile14">print</a> (<a class="el" href="a02434.html">NL3D::IDriver</a> *driver, const std::string &text, <a class="el" href="a02541.html">CFontGenerator</a> &fg, <a class="el" href="a02542.html">CFontManager</a> &fm, const <a class="el" href="a03128.html">NLMISC::CVector</a> &pos, float <a class="el" href="a04223.html#a587">size</a>, <a class="el" href="a03337.html">NLMISC::CRGBA</a> col=<a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">display a string at the given world position. The The model matrix must be restored after this call <a href="#NL3D_1_1CPSUtile14"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtile15">registerSerialParticleSystem</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">register the classes of the system mus be called when serializing <a href="#NL3D_1_1CPSUtile15"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Static Private Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilh0">getInterpolatedNoise</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &pos)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a572">x</a>, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a573">y</a>, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a574">z</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilh2">registerAttribs</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilh3">registerEmitters</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilh4">registerForces</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilh5">registerParticles</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilh6">registerZones</a> ()</td></tr> + +<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilv0">_CosTable</a> [256]</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilv1">_CosTableInitialized</a> = false</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilv2">_PerlinNoiseTab</a> [1024]</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilv3">_PerlinNoiseTableInitialized</a> = false</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03249.html#NL3D_1_1CPSUtilv4">_SinTable</a> [256]</td></tr> + +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CPSUtile0" doxytag="NL3D::CPSUtil::addRadiusToAABBox" ></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 NL3D::CPSUtil::addRadiusToAABBox </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02156.html">NLMISC::CAABBox</a> & </td> + <td class="mdname" nowrap> <em>box</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>radius</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +enlarge a bounding box by the specified radius +<p> + +<p> +Definition at line <a class="el" href="a06286.html#l00179">179</a> of file <a class="el" href="a06286.html">ps_util.h</a>. +<p> +References <a class="el" href="a05385.html#l00091">NLMISC::CAABBox::getHalfSize()</a>, and <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>. +<p> +<div class="fragment"><pre>00180 { +00181 box.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">setHalfSize</a>(box.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_1">getHalfSize</a>() + <a class="code" href="a03128.html">NLMISC::CVector</a>(radius, radius, radius) ); +00182 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile1" doxytag="NL3D::CPSUtil::buildPerlinNoise" ></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"> float NL3D::CPSUtil::buildPerlinNoise </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>pos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>nbOctaves</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +compute a perlin noise value, that will range from [0 to 1] The first octave has the unit size <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03249.html#NL3D_1_1CPSUtile13">initPerlinNoiseTable()</a></dd></dl> + +<p> +Definition at line <a class="el" href="a06286.html#l00238">238</a> of file <a class="el" href="a06286.html">ps_util.h</a>. +<p> +References <a class="el" href="a06285.html#l00060">_PerlinNoiseTableInitialized</a>, <a class="el" href="a06286.html#l00192">getInterpolatedNoise()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00239 { +00240 <a class="code" href="a04199.html#a6">nlassert</a>(_PerlinNoiseTableInitialized); +00241 +00242 <span class="keywordtype">float</span> result = 0; +00243 <span class="keywordtype">float</span> fact = .5f; +00244 <span class="keywordtype">float</span> scale = 1.f; +00245 +00246 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k = 0; k < numOctaves; k++) +00247 { +00248 result += fact * <a class="code" href="a03249.html#NL3D_1_1CPSUtilh0">getInterpolatedNoise</a>(scale * pos); +00249 fact *= .5f; +00250 scale *= 1.2537f; +00251 } +00252 <span class="keywordflow">return</span> result; +00253 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile2" doxytag="NL3D::CPSUtil::buildSchmidtBasis" ></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 NL3D::CPSUtil::buildSchmidtBasis </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>v</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname" nowrap> <em>dest</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +build a basis from a vector using Schmidt orthogonalization method <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>v</em> </td><td>K axis in the resulting basis </td></tr> + <tr><td valign=top><em>dest</em> </td><td>The matrix containing the result. Only the rotation part is modified</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a06285.html#l00257">257</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a06682.html#l00119">NLMISC::CVector::normalize()</a>, and <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00169">displayArrow()</a>. +<p> +<div class="fragment"><pre>00258 { +00259 <span class="keyword">const</span> <span class="keywordtype">float</span> epsilon = 10E-4f; +00260 +00261 +00262 CVector k = k_; +00263 k.normalize(); +00264 CVector i; +00265 <span class="keywordflow">if</span> ((1.0f - fabsf(k * CVector::I)) > epsilon) +00266 { +00267 i = k ^ CVector::I; +00268 } +00269 <span class="keywordflow">else</span> +00270 <span class="keywordflow">if</span> ((1.0f - fabs(k * CVector::J)) > epsilon) +00271 { +00272 i = k ^ CVector::J; +00273 } +00274 <span class="keywordflow">else</span> +00275 { +00276 i = k ^ CVector::K; +00277 } +00278 +00279 i = i - (k * i) * k; +00280 i.normalize(); +00281 result.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a>(i, k ^ i, k, <span class="keyword">true</span>); +00282 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile3" doxytag="NL3D::CPSUtil::display3DQuad" ></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 NL3D::CPSUtil::display3DQuad </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">NL3D::IDriver</a> & </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>c1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>c2</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>c3</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>c4</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> </td> + <td class="mdname" nowrap> <em>color</em> = <a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +display a 3d quad in wireline, by using the 4 gicen corners +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00383">383</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +<div class="fragment"><pre>00385 { +00386 CDRU::drawLine(c1, c2, color, driver); +00387 CDRU::drawLine(c2, c3, color, driver); +00388 CDRU::drawLine(c3, c4, color, driver); +00389 CDRU::drawLine(c4, c1, color, driver); +00390 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile4" doxytag="NL3D::CPSUtil::displayArrow" ></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 NL3D::CPSUtil::displayArrow </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">NL3D::IDriver</a> * </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>start</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>v</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>size</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> </td> + <td class="mdname" nowrap> <em>col1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> </td> + <td class="mdname" nowrap> <em>col2</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +display an arrow (the same that is used with displayBasis) The user must setup the model matrix himself <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>driver</em> </td><td>the driver used for rendering </td></tr> + <tr><td valign=top><em>start</em> </td><td>start point of the arrow </td></tr> + <tr><td valign=top><em>v</em> </td><td>direction of the arrow </td></tr> + <tr><td valign=top><em>size</em> </td><td>size of the arrow (will be drawn as size * v) </td></tr> + <tr><td valign=top><em>col1</em> </td><td>color of the arrow start </td></tr> + <tr><td valign=top><em>col2</em> </td><td>color of the arrow end</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a06285.html#l00169">169</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a02434.html#NL3D_1_1IDrivera2">NL3D::IDriver::activeVertexBuffer()</a>, <a class="el" href="a06285.html#l00257">buildSchmidtBasis()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera56">NL3D::IDriver::renderTriangles()</a>, <a class="el" href="a05641.html#l00064">NL3D::CMaterial::setBlend()</a>, <a class="el" href="a05641.html#l00091">NL3D::CMaterial::setBlendFunc()</a>, <a class="el" href="a05641.html#l00118">NL3D::CMaterial::setColor()</a>, <a class="el" href="a05641.html#l00071">NL3D::CMaterial::setDoubleSided()</a>, <a class="el" href="a05641.html#l00127">NL3D::CMaterial::setLighting()</a>, <a class="el" href="a06710.html#l00409">NL3D::CVertexBuffer::setNumVertices()</a>, <a class="el" href="a06711.html#l00524">NL3D::CVertexBuffer::setVertexCoord()</a>, <a class="el" href="a06710.html#l00169">NL3D::CVertexBuffer::setVertexFormat()</a>, <a class="el" href="a05641.html#l00105">NL3D::CMaterial::setZWrite()</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l00237">v</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00212">displayBasis()</a>. +<p> +<div class="fragment"><pre>00170 { +00171 +00172 <span class="keyword">const</span> <span class="keywordtype">float</span> coneSize = <a class="code" href="a04223.html#a587">size</a> * 0.1f; +00173 +00174 <a class="code" href="a04558.html#a11">uint32</a> vTab[] = { 1, 2, 4, +00175 4, 2, 3, +00176 1, 2, 0, +00177 2, 3, 0, +00178 3, 4, 0, +00179 4, 1, 0 }; +00180 +00181 CVector end = start + <a class="code" href="a04223.html#a587">size</a> * <a class="code" href="a04223.html#a576">v</a>; +00182 CDRU::drawLine(start, end, col1, *driver); +00183 CMatrix m; +00184 <a class="code" href="a03249.html#NL3D_1_1CPSUtile2">buildSchmidtBasis</a>(v, m); +00185 +00186 CVertexBuffer vb; +00187 vb.setVertexFormat(CVertexBuffer::PositionFlag); +00188 vb.setNumVertices(5); +00189 +00190 +00191 +00192 vb.setVertexCoord(0, end + m * CVector(0, 0, 3.0f * coneSize) ); +00193 vb.setVertexCoord(1, end + m * CVector(-coneSize, -coneSize, 0) ); +00194 vb.setVertexCoord(2, end + m * CVector(coneSize, -coneSize, 0) ); +00195 vb.setVertexCoord(3, end + m * CVector(coneSize, coneSize, 0) ); +00196 vb.setVertexCoord(4, end + m * CVector(-coneSize, coneSize, 0) ); +00197 +00198 CMaterial material; +00199 +00200 material.setColor(col2); +00201 material.setLighting(<span class="keyword">false</span>); +00202 material.setBlendFunc(CMaterial::one, CMaterial::one); +00203 material.setZWrite(<span class="keyword">false</span>); +00204 material.setBlend(<span class="keyword">true</span>); +00205 material.setDoubleSided(<span class="keyword">true</span>); +00206 +00207 driver-><a class="code" href="a02434.html#NL3D_1_1IDrivera2">activeVertexBuffer</a>(vb, 0, 5); +00208 driver-><a class="code" href="a02434.html#NL3D_1_1IDrivera56">renderTriangles</a>(material, vTab, 6); +00209 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile5" doxytag="NL3D::CPSUtil::displayBasis" ></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 NL3D::CPSUtil::displayBasis </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">NL3D::IDriver</a> * </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname" nowrap> <em>modelMat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname" nowrap> <em>m</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>size</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02541.html">CFontGenerator</a> & </td> + <td class="mdname" nowrap> <em>fg</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02542.html">CFontManager</a> & </td> + <td class="mdname" nowrap> <em>fm</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +display a basis using the given matrix. The model matrix must be restored after this call +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00212">212</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a06285.html#l00169">displayArrow()</a>, <a class="el" href="a05972.html#l00419">NLMISC::CMatrix::getI()</a>, <a class="el" href="a05972.html#l00427">NLMISC::CMatrix::getJ()</a>, <a class="el" href="a05972.html#l00435">NLMISC::CMatrix::getK()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera68">NL3D::IDriver::setupModelMatrix()</a>, and <a class="el" href="a05646.html#l00645">size</a>. +<p> +<div class="fragment"><pre>00213 { +00214 CMaterial material; +00215 +00216 driver-><a class="code" href="a02434.html#NL3D_1_1IDrivera68">setupModelMatrix</a>(modelMat); +00217 +00218 +00219 +00220 <a class="code" href="a03249.html#NL3D_1_1CPSUtile4">displayArrow</a>(driver, m.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>(), m.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>(), <a class="code" href="a04223.html#a587">size</a>, <a class="code" href="a03337.html">CRGBA</a>(127, 127, 127), CRGBA(0, 0, 80)); +00221 <a class="code" href="a03249.html#NL3D_1_1CPSUtile4">displayArrow</a>(driver, m.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>(), m.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>(), <a class="code" href="a04223.html#a587">size</a>, CRGBA(127, 127, 127), CRGBA(0, 0, 80)); +00222 <a class="code" href="a03249.html#NL3D_1_1CPSUtile4">displayArrow</a>(driver, m.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>(), m.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_4">getK</a>(), <a class="code" href="a04223.html#a587">size</a>, CRGBA(127, 127, 127), CRGBA(200, 0, 80)); +00223 +00224 +00225 <span class="comment">// draw the letters</span> +00226 +00227 CPSUtil::print(driver, std::string(<span class="stringliteral">"x"</span>), fg, fm, modelMat * m * CVector(1.4f * size, 0, 0), 15.0f * size); +00228 CPSUtil::print(driver, std::string(<span class="stringliteral">"y"</span>), fg, fm, modelMat * m * CVector(0, 1.4f * size, 0), 15.0f * size); +00229 CPSUtil::print(driver, std::string(<span class="stringliteral">"z"</span>), fg, fm, modelMat * m * CVector(0, 0, 1.4f * size), 15.0f * size); +00230 +00231 }; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile6" doxytag="NL3D::CPSUtil::displayBBox" ></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 NL3D::CPSUtil::displayBBox </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">NL3D::IDriver</a> * </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02156.html">NLMISC::CAABBox</a> & </td> + <td class="mdname" nowrap> <em>box</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> </td> + <td class="mdname" nowrap> <em>col</em> = <a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +this draw a bounding box +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00118">118</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a02434.html#NL3D_1_1IDrivera2">NL3D::IDriver::activeVertexBuffer()</a>, <a class="el" href="a06197.html#l00080">NL3D::CPrimitiveBlock::addLine()</a>, <a class="el" href="a05385.html#l00087">NLMISC::CAABBox::getMax()</a>, <a class="el" href="a05385.html#l00086">NLMISC::CAABBox::getMin()</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera51">NL3D::IDriver::render()</a>, <a class="el" href="a06197.html#l00056">NL3D::CPrimitiveBlock::reserveLine()</a>, <a class="el" href="a05641.html#l00064">NL3D::CMaterial::setBlend()</a>, <a class="el" href="a05641.html#l00091">NL3D::CMaterial::setBlendFunc()</a>, <a class="el" href="a05641.html#l00118">NL3D::CMaterial::setColor()</a>, <a class="el" href="a05641.html#l00127">NL3D::CMaterial::setLighting()</a>, <a class="el" href="a06710.html#l00409">NL3D::CVertexBuffer::setNumVertices()</a>, <a class="el" href="a06711.html#l00524">NL3D::CVertexBuffer::setVertexCoord()</a>, <a class="el" href="a06710.html#l00169">NL3D::CVertexBuffer::setVertexFormat()</a>, <a class="el" href="a05641.html#l00105">NL3D::CMaterial::setZWrite()</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +<div class="fragment"><pre>00119 { +00120 CVector max = box.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_3">getMax</a>() +00121 ,<a class="code" href="a04061.html#a0">min</a> = box.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_5">getMin</a>(); +00122 CVertexBuffer vb; +00123 vb.setVertexFormat(CVertexBuffer::PositionFlag); +00124 vb.setNumVertices(8); +00125 +00126 vb.setVertexCoord(0, min); +00127 vb.setVertexCoord(1, CVector(max.x, <a class="code" href="a04061.html#a0">min</a>.y, <a class="code" href="a04061.html#a0">min</a>.z)); +00128 vb.setVertexCoord(2, CVector(<a class="code" href="a04061.html#a0">min</a>.x, max.y, <a class="code" href="a04061.html#a0">min</a>.z)); +00129 vb.setVertexCoord(3, CVector(max.x, max.y, <a class="code" href="a04061.html#a0">min</a>.z)); +00130 vb.setVertexCoord(4, CVector(<a class="code" href="a04061.html#a0">min</a>.x, <a class="code" href="a04061.html#a0">min</a>.y, max.z)); +00131 vb.setVertexCoord(5, CVector(max.x, <a class="code" href="a04061.html#a0">min</a>.y, max.z)); +00132 vb.setVertexCoord(6, CVector(<a class="code" href="a04061.html#a0">min</a>.x, max.y, max.z)); +00133 vb.setVertexCoord(7, max); +00134 +00135 +00136 CMaterial material; +00137 +00138 material.setColor(col); +00139 material.setLighting(<span class="keyword">false</span>); +00140 material.setBlendFunc(CMaterial::one, CMaterial::one); +00141 material.setZWrite(<span class="keyword">false</span>); +00142 material.setBlend(<span class="keyword">true</span>); +00143 +00144 +00145 +00146 CPrimitiveBlock pb; +00147 pb.reserveLine(12); +00148 pb.addLine(0, 1); +00149 pb.addLine(1, 5); +00150 pb.addLine(5, 4); +00151 pb.addLine(4, 0); +00152 pb.addLine(0, 2); +00153 pb.addLine(1, 3); +00154 pb.addLine(4, 6); +00155 pb.addLine(5, 7); +00156 pb.addLine(6, 7); +00157 pb.addLine(7, 3); +00158 pb.addLine(3, 2); +00159 pb.addLine(2, 6); +00160 +00161 +00162 +00163 driver-><a class="code" href="a02434.html#NL3D_1_1IDrivera2">activeVertexBuffer</a>(vb); +00164 driver-><a class="code" href="a02434.html#NL3D_1_1IDrivera51">render</a>(pb, material); +00165 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile7" doxytag="NL3D::CPSUtil::displayCylinder" ></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 NL3D::CPSUtil::displayCylinder </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">NL3D::IDriver</a> & </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>center</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname" nowrap> <em>mat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>dim</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>nbSubdiv</em> = 32, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> </td> + <td class="mdname" nowrap> <em>color</em> = <a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +draw a cylinder (not filled) <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>dim</em> </td><td>dimension of the cylinder along each axis, packed in a vector</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a06285.html#l00351">351</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a05972.html#l00419">NLMISC::CMatrix::getI()</a>, <a class="el" href="a05972.html#l00427">NLMISC::CMatrix::getJ()</a>, <a class="el" href="a05972.html#l00435">NLMISC::CMatrix::getK()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +<div class="fragment"><pre>00352 { +00353 <span class="comment">// not optimized, but for edition only</span> +00354 <span class="keywordtype">float</span> thetaDelta = (<span class="keywordtype">float</span>) NLMISC::Pi * 2.f / nbSubdiv; +00355 <span class="keywordtype">float</span> theta = 0.f; +00356 <span class="keyword">const</span> CVector &I = mat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>(); +00357 <span class="keyword">const</span> CVector &J = mat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>(); +00358 <span class="keyword">const</span> CVector &K = mat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_4">getK</a>(); +00359 +00360 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k = 0; k < nbSubdiv; ++k) +00361 { +00362 +00363 CDRU::drawLine(center + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> * K + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * cosf(theta) * I + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> * sinf(theta) * J +00364 , center + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> * K + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * cosf(theta + thetaDelta) * I + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> * sinf(theta + thetaDelta) * J +00365 , color, driver); +00366 +00367 CDRU::drawLine(center - dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> * K + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * cosf(theta) * I + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> * sinf(theta) * J +00368 , center - dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> * K + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * cosf(theta + thetaDelta) * I + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> * sinf(theta + thetaDelta) * J +00369 , color, driver); +00370 +00371 CDRU::drawLine(center + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> * K + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * cosf(theta) * I + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> * sinf(theta) * J +00372 , center - dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> * K + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * cosf(theta) * I + dim.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> * sinf(theta) * J +00373 , color, driver); +00374 +00375 +00376 +00377 +00378 theta += thetaDelta; +00379 } +00380 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile8" doxytag="NL3D::CPSUtil::displayDisc" ></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 NL3D::CPSUtil::displayDisc </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">NL3D::IDriver</a> & </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>radius</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>center</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname" nowrap> <em>mat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>nbSubdiv</em> = 32, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> </td> + <td class="mdname" nowrap> <em>color</em> = <a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +draw a disc (not filled) <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>mat</em> </td><td>: a matrix, whose K vector is normal to the plane containing the disc</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a06285.html#l00332">332</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a05972.html#l00419">NLMISC::CMatrix::getI()</a>, <a class="el" href="a05972.html#l00427">NLMISC::CMatrix::getJ()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00333 { +00334 <span class="comment">// not optimized, but for edition only</span> +00335 <span class="keywordtype">float</span> thetaDelta = (<span class="keywordtype">float</span>) NLMISC::Pi * 2.f / nbSubdiv; +00336 <span class="keywordtype">float</span> theta = 0.f; +00337 <span class="keyword">const</span> CVector &I = mat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>(); +00338 <span class="keyword">const</span> CVector &J = mat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>(); +00339 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k = 0; k < nbSubdiv; ++k) +00340 { +00341 +00342 CDRU::drawLine(center + radius * ((<span class="keywordtype">float</span>) cos(theta) * I + (<span class="keywordtype">float</span>) sin(theta) * J) +00343 , center + radius * ((<span class="keywordtype">float</span>) cos(theta + thetaDelta) * I + (<span class="keywordtype">float</span>) sin(theta + thetaDelta) * J) +00344 , color, driver); +00345 theta += thetaDelta; +00346 } +00347 +00348 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile9" doxytag="NL3D::CPSUtil::displaySphere" ></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 NL3D::CPSUtil::displaySphere </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">NL3D::IDriver</a> & </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>radius</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>center</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>nbSubdiv</em> = 4, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> </td> + <td class="mdname" nowrap> <em>color</em> = <a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +draw a sphere +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00286">286</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a06682.html#l00119">NLMISC::CVector::normalize()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05646.html#l00236">x</a>, and <a class="el" href="a05646.html#l00236">y</a>. +<p> +<div class="fragment"><pre>00287 { +00288 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a572">x</a>, <a class="code" href="a04223.html#a573">y</a>, k; +00289 CVector p, p1, p2; +00290 +00291 <span class="keyword">static</span> <span class="keyword">const</span> CVector lK[] = { CVector::I, -CVector::I +00292 ,CVector::J, -CVector::J +00293 ,CVector::K, -CVector::K }; +00294 +00295 <span class="comment">/* static const CVector lI = { CVector::J, -CVector::J</span> +00296 <span class="comment"> ,CVector::K, -CVector::K</span> +00297 <span class="comment"> ,CVector::I, -CVector::I };*/</span> +00298 +00299 +00300 +00301 <span class="keywordflow">for</span> (k = 0; k < 6; ++k) +00302 { +00303 <span class="keyword">const</span> CVector &I = lK[(k + 2) % 6]; +00304 <span class="keyword">const</span> CVector &K = lK[k]; +00305 <span class="keyword">const</span> CVector J = K ^ I; +00306 +00307 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a572">x</a> = 0; <a class="code" href="a04223.html#a572">x</a> < nbSubdiv; ++<a class="code" href="a04223.html#a572">x</a>) +00308 { +00309 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a573">y</a> = 0; <a class="code" href="a04223.html#a573">y</a> < nbSubdiv; ++<a class="code" href="a04223.html#a573">y</a>) +00310 { +00311 p = ((2.f * <a class="code" href="a04223.html#a572">x</a> / float(nbSubdiv) ) - 1.f) * I + ((2.f * <a class="code" href="a04223.html#a573">y</a> / float(nbSubdiv) ) - 1.f) * J + K; +00312 p1 = p + 2.f / float(nbSubdiv) * I; +00313 p2 = p + 2.f / float(nbSubdiv) * J; +00314 +00315 p.normalize(); +00316 p1.normalize(); +00317 p2.normalize(); +00318 +00319 p = center + radius * p; +00320 p1 = center + radius * p1; +00321 p2 = center + radius * p2; +00322 +00323 CDRU::drawLine(p, p1, color, driver); +00324 CDRU::drawLine(p, p2, color, driver); +00325 } +00326 } +00327 } +00328 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile10" doxytag="NL3D::CPSUtil::getCos" ></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"> float NL3D::CPSUtil::getCos </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>angle</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get a cosine from the fast cosine table (which must be have initialised with initFastCosNSinTable). 256 <=> 2 Pi +<p> +Definition at line <a class="el" href="a06286.html#l00122">122</a> of file <a class="el" href="a06286.html">ps_util.h</a>. +<p> +References <a class="el" href="a06285.html#l00063">_CosTable</a>, <a class="el" href="a06285.html#l00059">_CosTableInitialized</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00099">sint32</a>. +<p> +<div class="fragment"><pre>00123 { +00124 <a class="code" href="a04199.html#a6">nlassert</a>(_CosTableInitialized == <span class="keyword">true</span>); +00125 <span class="keywordflow">return</span> <a class="code" href="a03249.html#NL3D_1_1CPSUtilv0">_CosTable</a>[angle & 0xff]; +00126 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilh0" doxytag="NL3D::CPSUtil::getInterpolatedNoise" ></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"> float NL3D::CPSUtil::getInterpolatedNoise </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>pos</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, static, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06286.html#l00192">192</a> of file <a class="el" href="a06286.html">ps_util.h</a>. +<p> +References <a class="el" href="a06286.html#l00186">getPerlinNoise()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a05646.html#l00236">x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, <a class="el" href="a05646.html#l00236">y</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>, and <a class="el" href="a05646.html#l00236">z</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00238">buildPerlinNoise()</a>. +<p> +<div class="fragment"><pre>00193 { +00194 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a572">x</a> = (<a class="code" href="a04558.html#a15">uint</a>) pos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> +00195 , <a class="code" href="a04223.html#a573">y</a> = (<a class="code" href="a04558.html#a15">uint</a>) pos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> +00196 , <a class="code" href="a04223.html#a574">z</a> = (<a class="code" href="a04558.html#a15">uint</a>) pos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>; +00197 +00198 <span class="comment">// we want to avoid costly ctor call there...</span> +00199 <span class="keywordtype">float</span> fx = pos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> - <a class="code" href="a04223.html#a572">x</a> +00200 , fy = pos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> - <a class="code" href="a04223.html#a573">y</a> +00201 , fz = pos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> - <a class="code" href="a04223.html#a574">z</a>; +00202 +00203 <span class="comment">// we use the following topology to get the value :</span> +00204 <span class="comment">//</span> +00205 <span class="comment">//</span> +00206 <span class="comment">// z</span> +00207 <span class="comment">// | 7-----6</span> +00208 <span class="comment">// / /</span> +00209 <span class="comment">// 4-----5 |</span> +00210 <span class="comment">// | | |</span> +00211 <span class="comment">// | 3 | |2</span> +00212 <span class="comment">// | | /</span> +00213 <span class="comment">// 0_____1/__x</span> +00214 +00215 +00216 <span class="keyword">const</span> <span class="keywordtype">float</span> v0 = <a class="code" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a>(x, <a class="code" href="a04223.html#a573">y</a>, <a class="code" href="a04223.html#a574">z</a>) +00217 ,v1 = <a class="code" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a>(x + 1, <a class="code" href="a04223.html#a573">y</a>, <a class="code" href="a04223.html#a574">z</a>) +00218 ,v2 = <a class="code" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a>(x + 1, <a class="code" href="a04223.html#a573">y</a> + 1, <a class="code" href="a04223.html#a574">z</a>) +00219 ,v3 = <a class="code" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a>(x, <a class="code" href="a04223.html#a573">y</a> + 1, <a class="code" href="a04223.html#a574">z</a>) +00220 ,v4 = <a class="code" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a>(x, <a class="code" href="a04223.html#a573">y</a>, <a class="code" href="a04223.html#a574">z</a> + 1) +00221 ,v5 = <a class="code" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a>(x + 1, <a class="code" href="a04223.html#a573">y</a>, <a class="code" href="a04223.html#a574">z</a> + 1) +00222 ,v6 = <a class="code" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a>(x + 1, <a class="code" href="a04223.html#a573">y</a> + 1, <a class="code" href="a04223.html#a574">z</a> + 1) +00223 ,v7 = <a class="code" href="a03249.html#NL3D_1_1CPSUtilh1">getPerlinNoise</a>(x, <a class="code" href="a04223.html#a573">y</a> + 1, <a class="code" href="a04223.html#a574">z</a> + 1); +00224 +00225 +00226 <span class="keyword">const</span> <span class="keywordtype">float</span> h1 = fx * v1 + (1.f - fx) * v0 +00227 ,h2 = fx * v3 + (1.f - fx) * v2 +00228 ,h3 = fx * v5 + (1.f - fx) * v4 +00229 ,h4 = fx * v7 + (1.f - fx )* v6; +00230 +00231 <span class="keyword">const</span> <span class="keywordtype">float</span> c1 = fy * h2 + (1.f - fy) * h1 +00232 ,c2 = fy * h4 + (1.f - fy) * h3; +00233 +00234 <span class="keywordflow">return</span> fz * c2 + (1.f - fz) * c1; +00235 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilh1" doxytag="NL3D::CPSUtil::getPerlinNoise" ></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"> float NL3D::CPSUtil::getPerlinNoise </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>x</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>y</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>z</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, static, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06286.html#l00186">186</a> of file <a class="el" href="a06286.html">ps_util.h</a>. +<p> +References <a class="el" href="a06285.html#l00065">_PerlinNoiseTab</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05646.html#l00236">x</a>, <a class="el" href="a05646.html#l00236">y</a>, and <a class="el" href="a05646.html#l00236">z</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00192">getInterpolatedNoise()</a>. +<p> +<div class="fragment"><pre>00187 { +00188 <span class="keywordflow">return</span> <a class="code" href="a03249.html#NL3D_1_1CPSUtilv2">_PerlinNoiseTab</a>[(<a class="code" href="a04223.html#a572">x</a> ^ <a class="code" href="a04223.html#a573">y</a> ^ <a class="code" href="a04223.html#a574">z</a>) & 1023]; +00189 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile11" doxytag="NL3D::CPSUtil::getSin" ></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"> float NL3D::CPSUtil::getSin </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>angle</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get a cosine from the fast cosine table (which must be have initialised with initFastCosNSinTable). 256 <=> 2 Pi +<p> +Definition at line <a class="el" href="a06286.html#l00131">131</a> of file <a class="el" href="a06286.html">ps_util.h</a>. +<p> +References <a class="el" href="a06285.html#l00059">_CosTableInitialized</a>, <a class="el" href="a06285.html#l00064">_SinTable</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00099">sint32</a>. +<p> +<div class="fragment"><pre>00132 { +00133 <a class="code" href="a04199.html#a6">nlassert</a>(_CosTableInitialized == <span class="keyword">true</span>); +00134 <span class="keywordflow">return</span> <a class="code" href="a03249.html#NL3D_1_1CPSUtilv4">_SinTable</a>[angle & 0xff]; +00135 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile12" doxytag="NL3D::CPSUtil::initFastCosNSinTable" ></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 NL3D::CPSUtil::initFastCosNSinTable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Init the table for cosine and sinus lookup <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03249.html#NL3D_1_1CPSUtile10">getCos()</a>, <a class="el" href="a03249.html#NL3D_1_1CPSUtile11">getSin()</a></dd></dl> + +<p> +Definition at line <a class="el" href="a06285.html#l00083">83</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a06285.html#l00063">_CosTable</a>, <a class="el" href="a06285.html#l00059">_CosTableInitialized</a>, <a class="el" href="a06285.html#l00064">_SinTable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00097">registerSerialParticleSystem()</a>. +<p> +<div class="fragment"><pre>00084 { +00085 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> k = 0; k < 256; k++) +00086 { +00087 <span class="keyword">const</span> <span class="keywordtype">float</span> angle = k / 256.0f * 2.0f * float(NLMISC::Pi); +00088 <a class="code" href="a03249.html#NL3D_1_1CPSUtilv0">_CosTable</a>[k] = (<span class="keywordtype">float</span>) cos( angle ); +00089 <a class="code" href="a03249.html#NL3D_1_1CPSUtilv4">_SinTable</a>[k] = (<span class="keywordtype">float</span>) sin( angle ); +00090 } +00091 <span class="comment">//#ifdef NL_DEBUG</span> +00092 <a class="code" href="a03249.html#NL3D_1_1CPSUtilv1">_CosTableInitialized</a> = <span class="keyword">true</span>; +00093 <span class="comment">//#endif</span> +00094 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile13" doxytag="NL3D::CPSUtil::initPerlinNoiseTable" ></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 NL3D::CPSUtil::initPerlinNoiseTable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +init the table used by perlin noise. This must be used before any call to buildPerlinNoise +<p> +Definition at line <a class="el" href="a06285.html#l00071">71</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a06285.html#l00065">_PerlinNoiseTab</a>, <a class="el" href="a06285.html#l00060">_PerlinNoiseTableInitialized</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00097">registerSerialParticleSystem()</a>. +<p> +<div class="fragment"><pre>00072 { +00073 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> k = 0; k < 1024; ++k) +00074 { +00075 <a class="code" href="a03249.html#NL3D_1_1CPSUtilv2">_PerlinNoiseTab</a>[k] = (rand() % 30000) / 30000.f; +00076 } +00077 <span class="comment">//#ifdef NL_DEBUG</span> +00078 <a class="code" href="a03249.html#NL3D_1_1CPSUtilv3">_PerlinNoiseTableInitialized</a> = <span class="keyword">true</span>; +00079 <span class="comment">//#endif</span> +00080 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile14" doxytag="NL3D::CPSUtil::print" ></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 NL3D::CPSUtil::print </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">NL3D::IDriver</a> * </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::string & </td> + <td class="mdname" nowrap> <em>text</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02541.html">CFontGenerator</a> & </td> + <td class="mdname" nowrap> <em>fg</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02542.html">CFontManager</a> & </td> + <td class="mdname" nowrap> <em>fm</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>pos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>size</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> </td> + <td class="mdname" nowrap> <em>col</em> = <a class="el" href="a03337.html#NLMISC_1_1CRGBAs6">NLMISC::CRGBA::White</a></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +display a string at the given world position. The The model matrix must be restored after this call +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00235">235</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a02434.html#NL3D_1_1IDrivera34">NL3D::IDriver::getViewMatrix()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05595.html#l00151">NL3D::CComputedString::render3D()</a>, <a class="el" href="a05972.html#l00644">NLMISC::CMatrix::scale()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a05646.html#l00645">size</a>, and <a class="el" href="a05972.html#l00935">NLMISC::CMatrix::transpose()</a>. +<p> +<div class="fragment"><pre>00236 { +00237 <a class="code" href="a04199.html#a6">nlassert</a>((&fg) && (&fm)); +00238 CComputedString cptedString; +00239 fm.computeString ( text, +00240 &fg, +00241 col, +00242 16, +00243 driver, +00244 cptedString); +00245 +00246 +00247 CMatrix mat = driver-><a class="code" href="a02434.html#NL3D_1_1IDrivera34">getViewMatrix</a>(); +00248 mat.setPos(CVector::Null); +00249 mat.scale(CVector(size, size, size)); +00250 mat.transpose(); +00251 mat.setPos(pos); +00252 cptedString.render3D(*driver, mat); +00253 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilh2" doxytag="NL3D::CPSUtil::registerAttribs" ></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 NL3D::CPSUtil::registerAttribs </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06264.html#l00040">40</a> of file <a class="el" href="a06264.html">ps_register_attribs.cpp</a>. +<p> +References <a class="el" href="a06223.html#l00058">NL3D::PSRegisterColorAttribs()</a>, <a class="el" href="a06237.html#l00203">NL3D::PSRegisterFloatAttribs()</a>, <a class="el" href="a06241.html#l00054">NL3D::PSRegisterIntAttribs()</a>, and <a class="el" href="a06260.html#l00357">NL3D::PSRegisterPlaneBasisAttribs()</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00097">registerSerialParticleSystem()</a>. +<p> +<div class="fragment"><pre>00041 { +00042 <a class="code" href="a05363.html#a489">PSRegisterIntAttribs</a>(); +00043 <a class="code" href="a05363.html#a487">PSRegisterFloatAttribs</a>(); +00044 <a class="code" href="a05363.html#a478">PSRegisterColorAttribs</a>(); +00045 <a class="code" href="a05363.html#a505">PSRegisterPlaneBasisAttribs</a>(); +00046 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilh3" doxytag="NL3D::CPSUtil::registerEmitters" ></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 NL3D::CPSUtil::registerEmitters </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06266.html#l00035">35</a> of file <a class="el" href="a06266.html">ps_register_emitters.cpp</a>. +<p> +References <a class="el" href="a05550.html#l00120">NLMISC_REGISTER_CLASS</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00097">registerSerialParticleSystem()</a>. +<p> +<div class="fragment"><pre>00036 { +00037 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSEmitterOmni); +00038 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSEmitterDirectionnal); +00039 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSEmitterRectangle); +00040 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSEmitterConic); +00041 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSSphericalEmitter); +00042 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSRadialEmitter); +00043 +00044 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilh4" doxytag="NL3D::CPSUtil::registerForces" ></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 NL3D::CPSUtil::registerForces </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06268.html#l00035">35</a> of file <a class="el" href="a06268.html">ps_register_forces.cpp</a>. +<p> +References <a class="el" href="a05550.html#l00120">NLMISC_REGISTER_CLASS</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00097">registerSerialParticleSystem()</a>. +<p> +<div class="fragment"><pre>00036 { +00037 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSSpring); +00038 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSDirectionnalForce); +00039 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSGravity); +00040 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSBrownianForce); +00041 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSCentralGravity); +00042 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSFluidFriction); +00043 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSTurbul); +00044 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSCylindricVortex); +00045 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSMagneticForce); +00046 CPSBrownianForce::initPrecalc(); +00047 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilh5" doxytag="NL3D::CPSUtil::registerParticles" ></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 NL3D::CPSUtil::registerParticles </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06270.html#l00036">36</a> of file <a class="el" href="a06270.html">ps_register_particles.cpp</a>. +<p> +References <a class="el" href="a05550.html#l00120">NLMISC_REGISTER_CLASS</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00097">registerSerialParticleSystem()</a>. +<p> +<div class="fragment"><pre>00037 { +00038 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSFanLight); +00039 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSTailDot); +00040 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSRibbon); +00041 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSRibbonLookAt); +00042 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSShockWave); +00043 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSFace); +00044 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSMesh); +00045 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSConstraintMesh); +00046 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSDot); +00047 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSFaceLookAt); +00048 +00049 CPSRotated2DParticle::initRotTable(); <span class="comment">// init the precalc rot table for face lookat</span> +00050 CPSFanLight::initFanLightPrecalc(); +00051 CPSDot::initVertexBuffers(); +00052 CPSQuad::initVertexBuffers(); +00053 CPSConstraintMesh::initPrerotVB(); +00054 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtile15" doxytag="NL3D::CPSUtil::registerSerialParticleSystem" ></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 NL3D::CPSUtil::registerSerialParticleSystem </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +register the classes of the system mus be called when serializing +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00097">97</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +References <a class="el" href="a06285.html#l00083">initFastCosNSinTable()</a>, <a class="el" href="a06285.html#l00071">initPerlinNoiseTable()</a>, <a class="el" href="a05550.html#l00120">NLMISC_REGISTER_CLASS</a>, <a class="el" href="a06264.html#l00040">registerAttribs()</a>, <a class="el" href="a06266.html#l00035">registerEmitters()</a>, <a class="el" href="a06268.html#l00035">registerForces()</a>, <a class="el" href="a06270.html#l00036">registerParticles()</a>, and <a class="el" href="a06272.html#l00035">registerZones()</a>. +<p> +<div class="fragment"><pre>00098 { +00099 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSLocated); +00100 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CParticleSystemShape); +00101 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSSound); +00102 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSLight); +00103 +00104 +00105 <a class="code" href="a03249.html#NL3D_1_1CPSUtilh5">registerParticles</a>(); +00106 <a class="code" href="a03249.html#NL3D_1_1CPSUtilh4">registerForces</a>(); +00107 <a class="code" href="a03249.html#NL3D_1_1CPSUtilh3">registerEmitters</a>(); +00108 <a class="code" href="a03249.html#NL3D_1_1CPSUtilh6">registerZones</a>(); +00109 <a class="code" href="a03249.html#NL3D_1_1CPSUtilh2">registerAttribs</a>(); +00110 +00111 +00112 <span class="comment">// while we are here, we perform some important inits </span> +00113 <a class="code" href="a03249.html#NL3D_1_1CPSUtile12">initFastCosNSinTable</a>(); <span class="comment">// init fast cosine lookup table</span> +00114 <a class="code" href="a03249.html#NL3D_1_1CPSUtile13">initPerlinNoiseTable</a>(); <span class="comment">// init perlin noise table </span> +00115 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilh6" doxytag="NL3D::CPSUtil::registerZones" ></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 NL3D::CPSUtil::registerZones </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06272.html#l00035">35</a> of file <a class="el" href="a06272.html">ps_register_zones.cpp</a>. +<p> +References <a class="el" href="a05550.html#l00120">NLMISC_REGISTER_CLASS</a>. +<p> +Referenced by <a class="el" href="a06285.html#l00097">registerSerialParticleSystem()</a>. +<p> +<div class="fragment"><pre>00036 { +00037 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSZonePlane); +00038 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSZoneSphere); +00039 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSZoneDisc); +00040 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSZoneRectangle); +00041 <a class="code" href="a04127.html#a1">NLMISC_REGISTER_CLASS</a>(CPSZoneCylinder); +00042 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NL3D_1_1CPSUtilv0" doxytag="NL3D::CPSUtil::_CosTable" ></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"> float <a class="el" href="a03249.html#NL3D_1_1CPSUtilv0">NL3D::CPSUtil::_CosTable</a><code> [static, private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00063">63</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00122">getCos()</a>, and <a class="el" href="a06285.html#l00083">initFastCosNSinTable()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilv1" doxytag="NL3D::CPSUtil::_CosTableInitialized" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03249.html#NL3D_1_1CPSUtilv1">NL3D::CPSUtil::_CosTableInitialized</a> = false<code> [static, private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00059">59</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00122">getCos()</a>, <a class="el" href="a06286.html#l00131">getSin()</a>, and <a class="el" href="a06285.html#l00083">initFastCosNSinTable()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilv2" doxytag="NL3D::CPSUtil::_PerlinNoiseTab" ></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"> float <a class="el" href="a03249.html#NL3D_1_1CPSUtilv2">NL3D::CPSUtil::_PerlinNoiseTab</a><code> [static, private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00065">65</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00186">getPerlinNoise()</a>, and <a class="el" href="a06285.html#l00071">initPerlinNoiseTable()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilv3" doxytag="NL3D::CPSUtil::_PerlinNoiseTableInitialized" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03249.html#NL3D_1_1CPSUtilv3">NL3D::CPSUtil::_PerlinNoiseTableInitialized</a> = false<code> [static, private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00060">60</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00238">buildPerlinNoise()</a>, and <a class="el" href="a06285.html#l00071">initPerlinNoiseTable()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSUtilv4" doxytag="NL3D::CPSUtil::_SinTable" ></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"> float <a class="el" href="a03249.html#NL3D_1_1CPSUtilv4">NL3D::CPSUtil::_SinTable</a><code> [static, private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06285.html#l00064">64</a> of file <a class="el" href="a06285.html">ps_util.cpp</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00131">getSin()</a>, and <a class="el" href="a06285.html#l00083">initFastCosNSinTable()</a>. </td> + </tr> +</table> +<hr>The documentation for this struct was generated from the following files:<ul> +<li><a class="el" href="a06286.html">ps_util.h</a><li><a class="el" href="a06264.html">ps_register_attribs.cpp</a><li><a class="el" href="a06266.html">ps_register_emitters.cpp</a><li><a class="el" href="a06268.html">ps_register_forces.cpp</a><li><a class="el" href="a06270.html">ps_register_particles.cpp</a><li><a class="el" href="a06272.html">ps_register_zones.cpp</a><li><a class="el" href="a06285.html">ps_util.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 07:29:53 2004 for NeL by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 > +</a>1.3.6 </small></address> +</body> +</html> |