aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03721.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a03721.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/a03721.html11323
1 files changed, 11323 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03721.html b/docs/doxygen/nel/a03721.html
new file mode 100644
index 00000000..6af78a2e
--- /dev/null
+++ b/docs/doxygen/nel/a03721.html
@@ -0,0 +1,11323 @@
+<!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::CWaterModel class 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&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NL3D::CWaterModel Class Reference</h1><code>#include &lt;<a class="el" href="a06738.html">water_model.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NL3D::CWaterModel:
+<p><center><img src="a03721.png" usemap="#NL3D::CWaterModel_map" border="0" alt=""></center>
+<map name="NL3D::CWaterModel_map">
+<area href="a02537.html" alt="NL3D::CTransformShape" shape="rect" coords="81,168,233,192">
+<area href="a03957.html" alt="NL3D::UWaterInstance" shape="rect" coords="243,168,395,192">
+<area href="a02316.html" alt="NL3D::CTransform" shape="rect" coords="81,112,233,136">
+<area href="a02209.html" alt="NLMISC::CRefCount" shape="rect" coords="0,56,152,80">
+<area href="a02278.html" alt="NL3D::ITransformable" shape="rect" coords="162,56,314,80">
+<area href="a02197.html" alt="NL3D::IAnimatable" shape="rect" coords="162,0,314,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A water quad <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="a06738.html#l00057">57</a> of file <a class="el" href="a06738.html">water_model.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Herited from IAnimatable</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">TAnimValues</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2">OwnerBit</a> = IAnimatable::AnimValueLast,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0">AnimValueLast</a>
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Added values. <a href="#NL3D_1_1ITransformablez1087_0">More...</a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03835.html">IAnimatedValue</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_2">getValue</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From <a class="el" href="a02197.html">IAnimatable</a>. <a href="#NL3D_1_1ITransformablez1087_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_3">getValueName</a> (<a class="el" href="a04558.html#a15">uint</a> valueId) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From <a class="el" href="a02197.html">IAnimatable</a>. <a href="#NL3D_1_1ITransformablez1087_3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Model updating/traversing features</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_0">initModel</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaterModelz1017_1">traverseAnimDetail</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">call <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1047_1">updateWorldMatrixFromFather()</a>, then <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1047_0">traverseAnimDetailWithoutUpdateWorldMatrix()</a> <a href="#NL3D_1_1CWaterModelz1017_1"></a><br><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="a02316.html#NL3D_1_1CWaveMakerModelz1017_1">traverseClip</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_2">traverseHrc</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Each method is called in its associated traversal. <a href="#NL3D_1_1CWaveMakerModelz1017_2"></a><br><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="a02316.html#NL3D_1_1CWaveMakerModelz1017_3">traverseLight</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">traverse the lightedModel per default: recompute LightContribution is <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable()</a> <a href="#NL3D_1_1CWaveMakerModelz1017_3"></a><br><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="a02316.html#NL3D_1_1CWaveMakerModelz1017_4">update</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Skinning Behavior.</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const std::vector&lt;<br>
+ <a class="el" href="a02291.html">NLMISC::CBSphere</a> &gt; *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_0">getSkinBoneSphere</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const std::vector&lt;<br>
+ <a class="el" href="a04558.html#a10">sint32</a> &gt; *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deriver must change this method if the model can be skinned. called rarely. <a href="#NL3D_1_1CWaveMakerModelz1032_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_3">renderShadowSkinGeom</a> (<a class="el" href="a04558.html#a15">uint</a> remainingVertices, <a class="el" href="a04558.html#a7">uint8</a> *vbDest)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_4">renderShadowSkinPrimitives</a> (<a class="el" href="a02839.html">CMaterial</a> &amp;castMat, <a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a04558.html#a15">uint</a> baseVertex)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_5">renderSkin</a> (float alphaMRM)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_6">renderSkinGroupGeom</a> (float alphaMRM, <a class="el" href="a04558.html#a15">uint</a> remainingVertices, <a class="el" href="a04558.html#a7">uint8</a> *dest)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_7">renderSkinGroupPrimitives</a> (<a class="el" href="a04558.html#a15">uint</a> baseVertex, std::vector&lt; <a class="el" href="a03407.html">CSkinSpecularRdrPass</a> &gt; &amp;specularRdrPasses, <a class="el" href="a04558.html#a15">uint</a> skinIndex)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_8">renderSkinGroupSpecularRdrPass</a> (<a class="el" href="a04558.html#a15">uint</a> rdrPass)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Render a specific specular renderPass returned by renderSkinGroupPrimitives. <a href="#NL3D_1_1CWaveMakerModelz1032_8"></a><br><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="a02316.html#NL3D_1_1CWaveMakerModelz1032_9">setApplySkin</a> (bool state)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_10">supportShadowSkinGrouping</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Special Skinning For ShadowMapping. <a href="#NL3D_1_1CWaveMakerModelz1032_10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_11">supportSkinGrouping</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_12">_FatherBoneId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html">CSkeletonModel</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a></td></tr>
+
+<tr><td colspan=2><br><h2>[NOHEADER]</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_0">isNeedUpdateFrozenStaticLightSetup</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">non-zero if the object has a FrozenStaticLightSetup not correclty updated. <a href="#NL3D_1_1CWaveMakerModelz1033_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_1">isNeedUpdateLighting</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">non-zero if the object needs to updatelighting. <a href="#NL3D_1_1CWaveMakerModelz1033_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02744.html">CLightContribution</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The contribution of all lights. This enlarge the struct only of approx 15%. <a href="#NL3D_1_1CWaveMakerModelz1033_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02749.html">CLightingManager::CQGItLightedModel</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">_LightedModelIt</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">each transform may be in a quadGird of lighted models (see <a class="el" href="a02747.html">CLightingManager</a>) <a href="#NL3D_1_1CWaveMakerModelz1033_3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Hrc Traversal</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_0">updateClipTravForAncestorSkeleton</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_1">updateWorld</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update the world state according to the parent world state and the local states. <a href="#NL3D_1_1CWaveMakerModelz1043_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html">CSkeletonModel</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_4">_DontUnfreezeChildren</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a12">sint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_6">_LocalDate</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02851.html">CMatrix</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hrc IN variables. <a href="#NL3D_1_1CWaveMakerModelz1043_7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02639.html#NL3D_1_1CHrcTravw3">CHrcTrav::TVisibility</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_8">_LocalVis</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a12">sint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02851.html">CMatrix</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hrc OUT variables. <a href="#NL3D_1_1CWaveMakerModelz1043_10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a></td></tr>
+
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a> { <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a> = 0,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">RotEuler</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10">TransformModeCount</a>
+ }</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela0">canStartStop</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if there is a start/stop caps in the objects (some fxs such as remanence). <a href="#NL3D_1_1CWaveMakerModela0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea0">compareMatrixDate</a> (<a class="el" href="a04558.html#a13">uint64</a> callerDate) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModela2">CWaterModel</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ctor <a href="#NL3D_1_1CWaterModela2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela3">freeze</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">freezeHRC</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela5">getAABBox</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;bbox) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html">CSkeletonModel</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela6">getAncestorSkeletonModel</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModela7">getAttenuatedHeight</a> (const <a class="el" href="a03660.html">NLMISC::CVector2f</a> &amp;pos, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;viewer)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">inherited from <a class="el" href="a03957.html">UWaterInstance</a> <a href="#NL3D_1_1CWaterModela7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela7">getChannelMixerOwnerShip</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02671.html">CInstanceGroup</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela8">getClusterSystem</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03542.html">ITrack</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModela10">getDefaultTrack</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default Track Values are identity (pos,pivot= 0, scale= 1, rots=0). <a href="#NL3D_1_1CWaterModela10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela10">getDistMax</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela11">getForceClipRoot</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModela13">getHeight</a> (const <a class="el" href="a03660.html">NLMISC::CVector2f</a> &amp;pos)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">inherited from <a class="el" href="a03957.html">UWaterInstance</a> <a href="#NL3D_1_1CWaterModela13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModela14">getHeightFactor</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">inherited from <a class="el" href="a03957.html">UWaterInstance</a> <a href="#NL3D_1_1CWaterModela14"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02744.html">CLightContribution</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela12">getLightContribution</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela13">getLightHotSpotInWorld</a> (<a class="el" href="a03128.html">CVector</a> &amp;modelPos, float &amp;modelRadius) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02839.html">CMaterial</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela14">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> materialId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a02839.html">CMaterial</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela15">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> materialId) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea1">getMatrix</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the matrix, compute her if necessary (work in all modes). <a href="#NL3D_1_1ITransformablea1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea2">getMatrixDate</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela18">getNumMaterial</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela19">getOrderingLayer</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the ordering layer. <a href="#NL3D_1_1CWaveMakerModela19"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03348.html">CScene</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the scene which has created us <a href="#NL3D_1_1CWaveMakerModela20"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a14">sint</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypea8">getRefCount</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html">CSkeletonModel</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela22">getSkeletonModel</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the skeleton model. Returnr NULL in normal mode. <a href="#NL3D_1_1CWaveMakerModela22"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela23">getUserClipping</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the user clipping state. <a href="#NL3D_1_1CWaveMakerModela23"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02639.html#NL3D_1_1CHrcTravw3">CHrcTrav::TVisibility</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela24">getVisibility</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the local visibility state. <a href="#NL3D_1_1CWaveMakerModela24"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModela28">getWaterHeightMapID</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">inherited from <a class="el" href="a03957.html">UWaterInstance</a> <a href="#NL3D_1_1CWaterModela28"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela26">heritVisibility</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">herit the visibility from his father. (default behavior). <a href="#NL3D_1_1CWaveMakerModela26"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela27">hide</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hide the object and his sons. <a href="#NL3D_1_1CWaveMakerModela27"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModela32">init</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela28">isClipVisible</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela29">isHrcVisible</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela30">isLinkToQuadCluster</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">true if the model is linked to a quadCluster <a href="#NL3D_1_1CWaveMakerModela30"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela31">isOpaque</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela32">isQuadGridClipEnabled</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela33">isStarted</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela34">isTransparent</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela35">setChannelMixerOwnerShip</a> (bool enable=true)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela36">setClusterSystem</a> (<a class="el" href="a02671.html">CInstanceGroup</a> *pCS)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela37">setDistMax</a> (float distMax)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela38">setDontUnfreezeChildren</a> (bool val)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela39">setForceClipRoot</a> (bool forceClipRoot)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela40">setLogicInfo</a> (<a class="el" href="a03863.html">ILogicInfo</a> *logicInfo)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela41">setOpacity</a> (bool <a class="el" href="a04223.html#a576">v</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela42">setOrderingLayer</a> (<a class="el" href="a04558.html#a15">uint</a> layer)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela43">setTransparency</a> (bool <a class="el" href="a04223.html#a576">v</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela44">setUserClipping</a> (bool enable)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela45">setWorldMatrix</a> (const <a class="el" href="a02851.html">CMatrix</a> &amp;mat)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela46">show</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Show the objet and his sons. <a href="#NL3D_1_1CWaveMakerModela46"></a><br><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="a02537.html#NL3D_1_1CWaveMakerModela47">start</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela48">stop</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela49">unfreezeHRC</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">CTransform traverse specialisation</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelz1176_0">clip</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">clip method called by <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_1">traverseClip()</a>. deafult is always visible <a href="#NL3D_1_1CWaterModelz1176_0"></a><br><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="a03721.html#NL3D_1_1CWaterModelz1176_1">traverseRender</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02316.html">CTransform</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModele0">creator</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee0">getPivotValueName</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee1">getPosValueName</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee2">getRotEulerValueName</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee3">getRotQuatValueName</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee4">getScaleValueName</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModele6">registerBasic</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Call at the begining of the program, to register the model. <a href="#NL3D_1_1CWaterModele6"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">crefs</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">pinfo</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03408.html">CSmartPtr</a>&lt; <a class="el" href="a02539.html">IShape</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The shape, the object instancied. <a href="#NL3D_1_1CWaveMakerModelo2"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NullPtrInfo</a></td></tr>
+
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a> (<a class="el" href="a02335.html">CChannelMixer</a> *chanMixer, <a class="el" href="a04558.html#a15">uint</a> valueId, <a class="el" href="a04558.html#a15">uint</a> ownerValueId, const std::string &amp;prefix, bool detail)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02197.html#NL3D_1_1ITransformableb1">clearFlag</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method clear a bit in the bitset. <a href="#NL3D_1_1ITransformableb1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelb2">computeClippedPoly</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelb3">computeSimpleClippedPoly</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelb4">doSimpleRender</a> (<a class="el" href="a02434.html">IDriver</a> *drv)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelb2">forceCompute</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02335.html">CChannelMixer</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelb3">getChannelMixer</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelb4">getShowWhenLODSticked</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if obj must be displayed when sticked to an object displayed as a LOD (example: sword in hand of a character displayed as a LOD state). <a href="#NL3D_1_1CWaveMakerModelb4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02197.html#NL3D_1_1ITransformableb2">setFlag</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method set a bit in the bitset. <a href="#NL3D_1_1ITransformableb2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelb6">setupCurrentLightContribution</a> (<a class="el" href="a02744.html">CLightContribution</a> *lightContrib, bool useLocalAtt)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelb10">setupMaterialNVertexShader</a> (<a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03724.html">CWaterShape</a> *shape, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;obsPos, bool above, float maxDist, float zHeight)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelb7">unlinkFromQuadCluster</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">special feature for <a class="el" href="a03287.html">CQuadGridClipManager</a>. remove from it. <a href="#NL3D_1_1CWaveMakerModelb7"></a><br><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="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelp0">_RenderFilterType</a></td></tr>
+
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModeld0">updateDiffuseMapMatrix</a> (bool force=false)</td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03100.html">NLMISC::CPolygon</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03660.html">NLMISC::CVector2f</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelr1">_ColorMapMatColumn0</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03660.html">NLMISC::CVector2f</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelr2">_ColorMapMatColumn1</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03660.html">NLMISC::CVector2f</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelr3">_ColorMapMatPos</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03408.html">CSmartPtr</a>&lt; <a class="el" href="a03497.html">CTextureEmboss</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelr4">_EmbossTexture</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03100.html">NLMISC::CPolygon</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelr5">_EndClippedPoly</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelr6">_MatrixUpdateDate</a></td></tr>
+
+<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03692.html">CVertexBuffer</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelv0">_SimpleRenderVB</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02839.html">CMaterial</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02839.html">CMaterial</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a></td></tr>
+
+<tr><td colspan=2><br><h2>Friends</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypen0">CPtrInfo</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a></td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_0" doxytag="NL3D::CWaterModel::TAnimValues" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">NL3D::ITransformable::TAnimValues</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Added values.
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2" doxytag="OwnerBit" ></a>OwnerBit</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4" doxytag="PosValue" ></a>PosValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6" doxytag="RotEulerValue" ></a>RotEulerValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8" doxytag="RotQuatValue" ></a>RotQuatValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9" doxytag="ScaleValue" ></a>ScaleValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3" doxytag="PivotValue" ></a>PivotValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0" doxytag="AnimValueLast" ></a>AnimValueLast</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Reimplemented from <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_0">NL3D::IAnimatable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_0">NL3D::CCamera</a>, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0">NL3D::CMeshBaseInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_0">NL3D::CParticleSystemModel</a>, <a class="el" href="a03357.html#NL3D_1_1CSegRemanencew10">NL3D::CSegRemanence</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz918_0">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06575.html#l00280">280</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+<div class="fragment"><pre>00281 {
+00282 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2">OwnerBit</a>= IAnimatable::AnimValueLast,
+00283 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>,
+00284 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>,
+00285 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>,
+00286 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>,
+00287 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>,
+00288 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0">AnimValueLast</a>
+00289 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablew11" doxytag="NL3D::CWaterModel::TTransformMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02278.html#NL3D_1_1ITransformablew11">NL3D::ITransformable::TTransformMode</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1" doxytag="DirectMatrix" ></a>DirectMatrix</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5" doxytag="RotEuler" ></a>RotEuler</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7" doxytag="RotQuat" ></a>RotQuat</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10" doxytag="TransformModeCount" ></a>TransformModeCount</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00058">58</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00189">NL3D::ITransformable::getTransformMode()</a>.
+<p>
+<div class="fragment"><pre>00059 {
+00060 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>=0, <span class="comment">// DirectMatrixMode.</span>
+00061 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">RotEuler</a>, <span class="comment">// Matrix is computed from sperated composantes, with euler rotation.</span>
+00062 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>, <span class="comment">// Matrix is computed from sperated composantes, with quat rotation (default).</span>
+00063
+00064 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10">TransformModeCount</a>
+00065 };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CWaterModela2" doxytag="NL3D::CWaterModel::CWaterModel" ></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"> NL3D::CWaterModel::CWaterModel </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></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ctor
+<p>
+
+<p>
+Definition at line <a class="el" href="a06737.html#l00063">63</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06568.html#l00255">NL3D::CTransform::setOpacity()</a>, <a class="el" href="a06569.html#l00184">NL3D::CTransform::setOrderingLayer()</a>, and <a class="el" href="a06568.html#l00240">NL3D::CTransform::setTransparency()</a>.
+<p>
+<div class="fragment"><pre>00064 {
+00065 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela41">setOpacity</a>(<span class="keyword">false</span>);
+00066 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela43">setTransparency</a>(<span class="keyword">true</span>);
+00067 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela42">setOrderingLayer</a>(1);
+00068
+00069 <span class="comment">// RenderFilter: We are a SegRemanece</span>
+00070 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelp0">_RenderFilterType</a>= UScene::FilterWater;
+00071 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1ITransformableb0" doxytag="NL3D::CWaterModel::addValue" ></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"> <a class="el" href="a04558.html#a14">sint</a> NL3D::IAnimatable::addValue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>chanMixer</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>valueId</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>ownerValueId</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>prefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>detail</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This is a tool function which add a given value to a channel. <dl compact><dt><b>Returns:</b></dt><dd>-1 if the track was not found in the animationSet, else it return the channelId as if returned by CAnimationSet::getChannelIdByName(channelName).</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a05433.html#l00037">37</a> of file <a class="el" href="a05433.html">animatable.cpp</a>.
+<p>
+References <a class="el" href="a05543.html#l00306">NL3D::CChannelMixer::addChannel()</a>, <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_1">NL3D::IAnimatable::getDefaultTrack()</a>, <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_2">NL3D::IAnimatable::getValue()</a>, <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_3">NL3D::IAnimatable::getValueName()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>, <a class="el" href="a06148.html#l00470">NL3D::CParticleSystemModel::registerToChannelMixer()</a>, <a class="el" href="a05530.html#l00151">NL3D::CCamera::registerToChannelMixer()</a>, <a class="el" href="a05491.html#l00141">NL3D::CBone::registerToChannelMixer()</a>, <a class="el" href="a05439.html#l00102">NL3D::CAnimatedMorph::registerToChannelMixer()</a>, <a class="el" href="a05437.html#l00376">NL3D::CAnimatedMaterial::registerToChannelMixer()</a>, and <a class="el" href="a05435.html#l00139">NL3D::CAnimatedLightmap::registerToChannelMixer()</a>.
+<p>
+<div class="fragment"><pre>00038 {
+00039 <a class="code" href="a04199.html#a6">nlassert</a>(chanMixer);
+00040 <span class="keywordflow">return</span> chanMixer-&gt;addChannel(prefix+<a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_3">getValueName</a>(valueId), <span class="keyword">this</span>, <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_2">getValue</a>(valueId), <a class="code" href="a03721.html#NL3D_1_1CWaterModela10">getDefaultTrack</a>(valueId), valueId, ownerValueId, detail);
+00041 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_0" doxytag="NL3D::CWaterModel::canCastShadowMap" ></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 NL3D::CTransform::canCastShadowMap </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+true if the instance cast shadow. By default false
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00470">470</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy10">NL3D::CTransform::IsFinalShadowMapCaster</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l01335">NL3D::CTransform::enableCastShadowMap()</a>, <a class="el" href="a06569.html#l00514">NL3D::CTransform::setGeneratingShadowMap()</a>, and <a class="el" href="a06001.html#l00330">NL3D::CMeshInstance::traverseRender()</a>.
+<p>
+<div class="fragment"><pre>00470 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsFinalShadowMapCaster)!=0;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_1" doxytag="NL3D::CWaterModel::canReceiveShadowMap" ></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 NL3D::CTransform::canReceiveShadowMap </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+true if the instance receive shadow. By default false
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00477">477</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy11">NL3D::CTransform::IsFinalShadowMapReceiver</a>.
+<p>
+Referenced by <a class="el" href="a05874.html#l00554">NL3D::CLandscapeUser::canReceiveShadowMap()</a>, and <a class="el" href="a05870.html#l00257">NL3D::CLandscapeModel::traverseRender()</a>.
+<p>
+<div class="fragment"><pre>00477 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsFinalShadowMapReceiver)!=0;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela0" doxytag="NL3D::CWaterModel::canStartStop" ></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 bool NL3D::CTransformShape::canStartStop </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><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Test if there is a start/stop caps in the objects (some fxs such as remanence).
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez886_0">NL3D::CSegRemanence</a>.
+<p>
+Definition at line <a class="el" href="a06571.html#l00126">126</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a05829.html#l00105">NL3D::CInstanceUser::canStartStop()</a>.
+<p>
+<div class="fragment"><pre>00126 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1055_0" doxytag="NL3D::CWaterModel::changeLightSetup" ></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::CTransformShape::changeLightSetup </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03325.html">CRenderTrav</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rdrTrav</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup lighting for this instance into driver. The <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1057_3">traverseRender()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06570.html#l00105">105</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a06571.html#l00182">NL3D::CTransformShape::_CurrentLightContribution</a>, <a class="el" href="a06571.html#l00184">NL3D::CTransformShape::_CurrentUseLocalAttenuation</a>, and <a class="el" href="a06329.html#l00409">NL3D::CRenderTrav::changeLightSetup()</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l02738">NL3D::CMeshMRMGeom::activeInstance()</a>, <a class="el" href="a05989.html#l02058">NL3D::CMeshGeom::activeInstance()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, and <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>.
+<p>
+<div class="fragment"><pre>00106 {
+00107 <span class="comment">// setup the instance lighting.</span>
+00108 rdrTrav-&gt;changeLightSetup(_CurrentLightContribution, _CurrentUseLocalAttenuation);
+00109 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformableb1" doxytag="NL3D::CWaterModel::clearFlag" ></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::IAnimatable::clearFlag </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This method clear a bit in the bitset.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00233">233</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05434.html#l00206">NL3D::IAnimatable::_BitSet</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00124">NL3D::ITransformable::clearTransformFlags()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, and <a class="el" href="a05437.html#l00197">NL3D::CAnimatedMaterial::update()</a>.
+<p>
+<div class="fragment"><pre>00234 {
+00235 _BitSet&amp;= ~(1&lt;&lt;valueId);
+00236 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelz1176_0" doxytag="NL3D::CWaterModel::clip" ></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 NL3D::CWaterModel::clip </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><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+clip method called by <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_1">traverseClip()</a>. deafult is always visible
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1057_0">NL3D::CTransformShape</a>.
+<p>
+Definition at line <a class="el" href="a06737.html#l01130">1130</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06738.html#l00105">_ClippedPoly</a>, <a class="el" href="a06738.html#l00106">_EndClippedPoly</a>, <a class="el" href="a06737.html#l01054">computeClippedPoly()</a>, <a class="el" href="a06737.html#l01026">computeSimpleClippedPoly()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06348.html#l00579">NL3D::CScene::getDriver()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz149_1">NL3D::IDriver::isWaterShaderSupported()</a>, and <a class="el" href="a06191.html#l00055">NLMISC::CPolygon::Vertices</a>.
+<p>
+<div class="fragment"><pre>01131 {
+01132 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_Water_Render );
+01133 CClipTrav &amp;clipTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav();
+01134
+01135 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>)
+01136 {
+01137 IDriver *drv = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getDriver();
+01138
+01139 <span class="preprocessor"> #ifndef FORCE_SIMPLE_WATER_RENDER</span>
+01140 <span class="preprocessor"></span> <span class="keywordflow">if</span> (drv-&gt;isWaterShaderSupported())
+01141 {
+01142 <a class="code" href="a03721.html#NL3D_1_1CWaterModelb2">computeClippedPoly</a>();
+01143 <span class="keywordflow">if</span> (<a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.empty() &amp;&amp; <a class="code" href="a03721.html#NL3D_1_1CWaterModelr5">_EndClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.empty()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01144 }
+01145 <span class="keywordflow">else</span>
+01146 <span class="preprocessor"> #endif</span>
+01147 <span class="preprocessor"></span> {
+01148
+01149 <a class="code" href="a03721.html#NL3D_1_1CWaterModelb3">computeSimpleClippedPoly</a>();
+01150 <span class="keywordflow">if</span> (<a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.empty())
+01151 {
+01152 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01153 }
+01154 }
+01155
+01156 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01157 }
+01158 <span class="keywordflow">else</span>
+01159 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01160 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_0" doxytag="NL3D::CWaterModel::clipAddChild" ></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::CTransform::clipAddChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>son</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01217">1217</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00712">NL3D::CTransform::_ClipParents</a>, <a class="el" href="a06569.html#l00711">NL3D::CTransform::_ClipSons</a>, <a class="el" href="a06568.html#l01273">NL3D::CTransform::clipHasParent()</a>, <a class="el" href="a06569.html#l00708">NL3D::CTransform::CClipNode::ClipNode</a>, <a class="el" href="a05705.html#l00128">NL3D::CFastPtrList&lt; CTransform &gt;::insert()</a>, and <a class="el" href="a06569.html#l00709">NL3D::CTransform::CClipNode::Parent</a>.
+<p>
+Referenced by <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a05870.html#l00075">NL3D::CLandscapeModel::initModel()</a>, <a class="el" href="a06348.html#l00277">NL3D::CScene::initQuadGridClipManager()</a>, <a class="el" href="a06302.html#l00086">NL3D::CQuadGridClipClusterListDist::resetSons()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>.
+<p>
+<div class="fragment"><pre>01218 {
+01219 <span class="keywordflow">if</span>(!son)
+01220 <span class="keywordflow">return</span>;
+01221
+01222 <span class="comment">// if already linked, no-op.</span>
+01223 <span class="keywordflow">if</span>(son-&gt;clipHasParent(<span class="keyword">this</span>))
+01224 <span class="keywordflow">return</span>;
+01225
+01226 <span class="comment">// add a new parent entry for our son.</span>
+01227 CClipNode *clipNode= <span class="keyword">new</span> CClipNode;
+01228 son-&gt;_ClipParents.push_back(clipNode);
+01229
+01230 <span class="comment">// link the son to us</span>
+01231 clipNode-&gt;Parent= <span class="keyword">this</span>;
+01232
+01233 <span class="comment">// link us to the son </span>
+01234 _ClipSons.insert(son, &amp;clipNode-&gt;ClipNode);
+01235 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_1" doxytag="NL3D::CWaterModel::clipDelChild" ></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::CTransform::clipDelChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>son</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01238">1238</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06568.html#l01286">NL3D::CTransform::clipDelFromParent()</a>.
+<p>
+Referenced by <a class="el" href="a06348.html#l00249">NL3D::CScene::initDefaultRoots()</a>, <a class="el" href="a05870.html#l00075">NL3D::CLandscapeModel::initModel()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>01239 {
+01240 <span class="keywordflow">if</span>(!son)
+01241 <span class="keywordflow">return</span>;
+01242
+01243 <span class="comment">// try to remove from me from my parent</span>
+01244 son-&gt;clipDelFromParent(<span class="keyword">this</span>);
+01245 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_2" doxytag="NL3D::CWaterModel::clipGetChild" ></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"> <a class="el" href="a02316.html">CTransform</a> * NL3D::CTransform::clipGetChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>index</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01265">1265</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00711">NL3D::CTransform::_ClipSons</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05705.html#l00135">NL3D::CFastPtrList&lt; CTransform &gt;::size()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06341.html#l00052">NL3D::CRootModel::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>01266 {
+01267 <a class="code" href="a04199.html#a6">nlassert</a>(index &lt; _ClipSons.size());
+01268 <span class="keywordflow">return</span> (const_cast&lt;CTransform*&gt;(<span class="keyword">this</span>))-&gt;_ClipSons.begin()[<a class="code" href="a04223.html#a566">index</a>];
+01269 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_3" doxytag="NL3D::CWaterModel::clipGetNumChildren" ></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"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CTransform::clipGetNumChildren </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00237">237</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00711">NL3D::CTransform::_ClipSons</a>, <a class="el" href="a05705.html#l00135">NL3D::CFastPtrList&lt; CTransform &gt;::size()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06341.html#l00052">NL3D::CRootModel::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>00237 {<span class="keywordflow">return</span> _ClipSons.size();}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_4" doxytag="NL3D::CWaterModel::clipGetNumParents" ></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"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CTransform::clipGetNumParents </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00234">234</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00712">NL3D::CTransform::_ClipParents</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01248">NL3D::CTransform::clipUnlinkFromAll()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>.
+<p>
+<div class="fragment"><pre>00234 {<span class="keywordflow">return</span> _ClipParents.size();}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_5" doxytag="NL3D::CWaterModel::clipGetParent" ></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"> <a class="el" href="a02316.html">CTransform</a> * NL3D::CTransform::clipGetParent </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>index</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01258">1258</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00712">NL3D::CTransform::_ClipParents</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01248">NL3D::CTransform::clipUnlinkFromAll()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>.
+<p>
+<div class="fragment"><pre>01259 {
+01260 <a class="code" href="a04199.html#a6">nlassert</a>(index &lt; _ClipParents.size());
+01261 <span class="keywordflow">return</span> _ClipParents[<a class="code" href="a04223.html#a566">index</a>]-&gt;Parent;
+01262 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_6" doxytag="NL3D::CWaterModel::clipUnlinkFromAll" ></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::CTransform::clipUnlinkFromAll </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01248">1248</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06568.html#l01286">NL3D::CTransform::clipDelFromParent()</a>, <a class="el" href="a06569.html#l00234">NL3D::CTransform::clipGetNumParents()</a>, and <a class="el" href="a06568.html#l01258">NL3D::CTransform::clipGetParent()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a06348.html#l00277">NL3D::CScene::initQuadGridClipManager()</a>, <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>01249 {
+01250 <span class="comment">// unlink from all parent clip</span>
+01251 <span class="keywordflow">while</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_4">clipGetNumParents</a>() )
+01252 {
+01253 <a class="code" href="a02316.html#NL3D_1_1CTransformz1037_0">clipDelFromParent</a>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_5">clipGetParent</a>(0) );
+01254 }
+01255 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea0" doxytag="NL3D::CWaterModel::compareMatrixDate" ></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 NL3D::ITransformable::compareMatrixDate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>callerDate</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Tells if the LocalMatrix is newer than what caller except. This return true either if the matrix components (pos/rot etc...) are touched, or if matrix is newer than caller date.
+<p>
+Definition at line <a class="el" href="a06575.html#l00082">82</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a06575.html#l00334">NL3D::ITransformable::needCompute()</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>.
+<p>
+<div class="fragment"><pre>00083 {
+00084 <span class="keywordflow">return</span> callerDate&lt;_LocalMatrixDate || <a class="code" href="a02278.html#NL3D_1_1ITransformabled1">needCompute</a>();
+00085 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelb2" doxytag="NL3D::CWaterModel::computeClippedPoly" ></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::CWaterModel::computeClippedPoly </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><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06737.html#l01054">1054</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06738.html#l00105">_ClippedPoly</a>, <a class="el" href="a06738.html#l00106">_EndClippedPoly</a>, <a class="el" href="a06742.html#l00208">NL3D::CWaterShape::_Poly</a>, <a class="el" href="a06742.html#l00221">NL3D::CWaterShape::_TransitionRatio</a>, <a class="el" href="a06190.html#l00056">NLMISC::CPolygon::clip()</a>, <a class="el" href="a06171.html#l00052">NLMISC::CPlane::d</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Far</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06170.html#l00036">NLMISC::CPlane::make()</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Near</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Right</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Top</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06191.html#l00126">NLMISC::CPolygon2D::Vertices</a>, <a class="el" href="a06191.html#l00055">NLMISC::CPolygon::Vertices</a>, <a class="el" href="a06583.html#l00078">NL3D::CTravCameraScene::ViewMatrix</a>, and <a class="el" href="a05556.html#l00147">NL3D::CClipTrav::WorldFrustumPyramid</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01130">clip()</a>.
+<p>
+<div class="fragment"><pre>01055 {
+01056 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *shape = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+01057 CClipTrav &amp;clipTrav = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav();
+01058 <span class="keyword">const</span> std::vector&lt;CPlane&gt; &amp;worldPyramid = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav().WorldFrustumPyramid;
+01059
+01060 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.resize(shape-&gt;_Poly.Vertices.size());
+01061 <a class="code" href="a04558.html#a15">uint</a> k;
+01062 <span class="keywordflow">for</span> (k = 0; k &lt; shape-&gt;_Poly.Vertices.size(); ++k)
+01063 {
+01064 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[k].set(shape-&gt;_Poly.Vertices[k].x,
+01065 shape-&gt;_Poly.Vertices[k].y,
+01066 0
+01067 );
+01068 }
+01069
+01070 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr5">_EndClippedPoly</a> = <a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>;
+01071
+01072 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> numStepX = CWaterShape::getScreenXGridSize();
+01073 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> numStepY = CWaterShape::getScreenYGridSize();
+01074 <span class="keyword">const</span> <a class="code" href="a02851.html">NLMISC::CMatrix</a> &amp;viewMat = clipTrav.ViewMatrix;
+01075
+01076 <span class="comment">// Build the view pyramid. We need to rebuild it because we use a wider one to avoid holes on the border of the screen</span>
+01077
+01078 <a class="code" href="a03082.html">NLMISC::CPlane</a> plvect[6];
+01079
+01080 <span class="keyword">const</span> <span class="keywordtype">float</span> borderFactor = 0.67f; <span class="comment">// we must avoid numerical imprecision as well as the rotation case (must divide by sqrt(2))</span>
+01081 <span class="keyword">const</span> <span class="keywordtype">float</span> fRight = clipTrav.Right * (2.f * borderFactor * (<span class="keywordtype">float</span>) CWaterShape::_XGridBorder + (<span class="keywordtype">float</span>) numStepX) / numStepX;
+01082 <span class="keyword">const</span> <span class="keywordtype">float</span> fTop = clipTrav.Top * (2.f * borderFactor * (<span class="keywordtype">float</span>) CWaterShape::_YGridBorder + (<span class="keywordtype">float</span>) numStepY) / numStepY;
+01083
+01084 <span class="comment">// build pyramid corners</span>
+01085 <span class="keyword">const</span> <span class="keywordtype">float</span> nearDist = clipTrav.Near;
+01086 <span class="keyword">const</span> <span class="keywordtype">float</span> farDist = clipTrav.Far;
+01087 <span class="preprocessor"> #ifdef NO_WATER_TESSEL</span>
+01088 <span class="preprocessor"></span> <span class="keyword">const</span> <span class="keywordtype">float</span> transitionDist = nearDist * 0.99f;
+01089 <span class="preprocessor"> #else</span>
+01090 <span class="preprocessor"></span> <span class="keyword">const</span> <span class="keywordtype">float</span> transitionDist = shape-&gt;_TransitionRatio * farDist;
+01091 <span class="preprocessor"> #endif</span>
+01092 <span class="preprocessor"></span>
+01093
+01094 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> pfoc(0,0,0);
+01095 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> lb(-fRight, nearDist, - fTop );
+01096 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> lt(-fRight, nearDist, fTop );
+01097 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> rb( fRight, nearDist, -fTop );
+01098 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> rt(fRight, nearDist, fTop );
+01099
+01100 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> lbfarDist(-fRight, transitionDist, -fTop);
+01101 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> ltfarDist(-fRight, transitionDist, fTop );
+01102 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> rtfarDist(fRight , transitionDist, fTop );
+01103
+01104
+01105 plvect[0].<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>(lt, lb, rt); <span class="comment">// near plane</span>
+01106 plvect[1].<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>(lbfarDist, ltfarDist, rtfarDist); <span class="comment">// far plane</span>
+01107
+01108 plvect[2].<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>(pfoc, lt, lb);
+01109 plvect[3].<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>(pfoc, rt, lt);
+01110 plvect[4].<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>(pfoc, rb, rt);
+01111 plvect[5].<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>(pfoc, lb, rb);
+01112
+01113
+01114 <span class="keyword">const</span> <a class="code" href="a02851.html">NLMISC::CMatrix</a> pyramidMat = viewMat * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>();
+01115 <span class="keywordflow">for</span> (k = 0; k &lt; worldPyramid.size(); ++k)
+01116 {
+01117 plvect[k] = plvect[k] * pyramidMat; <span class="comment">// put the plane in object space</span>
+01118 }
+01119
+01120 _ClippedPoly.clip(plvect, 6); <span class="comment">// get the tesselated part of the poly </span>
+01121
+01122 <span class="comment">// modify the pyramid to get the transition part of the poly (no tesselated)</span>
+01123 plvect[0].<a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a> += (transitionDist - nearDist);
+01124 plvect[1].<a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a> -= (farDist - transitionDist);
+01125 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr5">_EndClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygona3">clip</a>(plvect, 6);
+01126 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelb3" doxytag="NL3D::CWaterModel::computeSimpleClippedPoly" ></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::CWaterModel::computeSimpleClippedPoly </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><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06737.html#l01026">1026</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06738.html#l00105">_ClippedPoly</a>, <a class="el" href="a06742.html#l00208">NL3D::CWaterShape::_Poly</a>, <a class="el" href="a06190.html#l00056">NLMISC::CPolygon::clip()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06191.html#l00126">NLMISC::CPolygon2D::Vertices</a>, <a class="el" href="a06191.html#l00055">NLMISC::CPolygon::Vertices</a>, and <a class="el" href="a05556.html#l00147">NL3D::CClipTrav::WorldFrustumPyramid</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01130">clip()</a>.
+<p>
+<div class="fragment"><pre>01027 {
+01028 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *shape = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+01029 CClipTrav &amp;clipTrav = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav();
+01030 <span class="keyword">const</span> std::vector&lt;CPlane&gt; &amp;worldPyramid = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav().WorldFrustumPyramid;
+01031
+01032 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.resize(shape-&gt;_Poly.Vertices.size());
+01033 <a class="code" href="a04558.html#a15">uint</a> k;
+01034 <span class="keywordflow">for</span> (k = 0; k &lt; shape-&gt;_Poly.Vertices.size(); ++k)
+01035 {
+01036 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[k].set(shape-&gt;_Poly.Vertices[k].x,
+01037 shape-&gt;_Poly.Vertices[k].y,
+01038 0
+01039 );
+01040 }
+01041
+01042 <span class="keyword">static</span> std::vector&lt;CPlane&gt; xformPyram;
+01043 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> numPlanes = (<a class="code" href="a04558.html#a15">uint</a>) worldPyramid.size();
+01044 xformPyram.resize(numPlanes);
+01045 <span class="keywordflow">for</span> (k = 0; k &lt; numPlanes; ++k)
+01046 {
+01047 xformPyram[k] = worldPyramid[k] * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>(); <span class="comment">// put the plane in object space</span>
+01048 }
+01049 <span class="comment">// do the clip</span>
+01050 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygona3">clip</a>(xformPyram);
+01051 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_2" doxytag="NL3D::CWaterModel::computeWorldBBoxForShadow" ></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 bool NL3D::CTransform::computeWorldBBoxForShadow </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>worldBB</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Special For Skeleton Caster. When Skeletons cast shadows, they first compute the WorldBBox. The model should compute its bbox in World (best fit). <dl compact><dt><b>Returns:</b></dt><dd>false if the model don't support it (default), or if hidden in HRC!!</dd></dl>
+
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_0">NL3D::CMeshInstance</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz934_0">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00521">521</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01987">NL3D::CSkeletonModel::computeWorldBBoxForShadow()</a>.
+<p>
+<div class="fragment"><pre>00521 {<span class="keywordflow">return</span> <span class="keyword">false</span>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1051_0" doxytag="NL3D::CWaterModel::createShadowMap" ></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 NL3D::CTransform::createShadowMap </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><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+To implement for ShadowCaster support. typically allocate a <a class="el" href="a03370.html">CShadowMap</a> and store NB: the texture doesn't have to be inited at this time. Update it each frame in <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_5">generateShadowMap()</a>
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstanceb3">NL3D::CMeshInstance</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelb2">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00902">902</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01335">NL3D::CTransform::enableCastShadowMap()</a>.
+<p>
+<div class="fragment"><pre>00902 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModele0" doxytag="NL3D::CWaterModel::creator" ></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"> <a class="el" href="a02316.html">CTransform</a>* NL3D::CWaterModel::creator </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><code> [inline, static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CTransformShapeh0">NL3D::CTransformShape</a>.
+<p>
+Definition at line <a class="el" href="a06738.html#l00071">71</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+<div class="fragment"><pre>00071 { <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a03721.html#NL3D_1_1CWaterModela2">CWaterModel</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1051_1" doxytag="NL3D::CWaterModel::deleteShadowMap" ></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 NL3D::CTransform::deleteShadowMap </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><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+To implement for ShadowCaster support. typically free the shadowMap.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstanceb4">NL3D::CMeshInstance</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelb4">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00904">904</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01335">NL3D::CTransform::enableCastShadowMap()</a>.
+<p>
+<div class="fragment"><pre>00904 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelb4" doxytag="NL3D::CWaterModel::doSimpleRender" ></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::CWaterModel::doSimpleRender </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>drv</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06737.html#l01170">1170</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06742.html#l00211">NL3D::CWaterShape::_BumpMap</a>, <a class="el" href="a06738.html#l00105">_ClippedPoly</a>, <a class="el" href="a06742.html#l00212">NL3D::CWaterShape::_ColorMap</a>, <a class="el" href="a06742.html#l00216">NL3D::CWaterShape::_ColorMapMatColumn0</a>, <a class="el" href="a06742.html#l00216">NL3D::CWaterShape::_ColorMapMatColumn1</a>, <a class="el" href="a06742.html#l00216">NL3D::CWaterShape::_ColorMapMatPos</a>, <a class="el" href="a06738.html#l00107">_EmbossTexture</a>, <a class="el" href="a06742.html#l00210">NL3D::CWaterShape::_EnvMap</a>, <a class="el" href="a06742.html#l00214">NL3D::CWaterShape::_HeightMapScale</a>, <a class="el" href="a06742.html#l00215">NL3D::CWaterShape::_HeightMapSpeed</a>, <a class="el" href="a06742.html#l00208">NL3D::CWaterShape::_Poly</a>, <a class="el" href="a06737.html#l00058">_SimpleRenderVB</a>, <a class="el" href="a06737.html#l00057">_SimpleWaterMat</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera2">NL3D::IDriver::activeVertexBuffer()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_2">NL3D::IDriver::activeVertexProgram()</a>, <a class="el" href="a06583.html#l00079">NL3D::CTravCameraScene::CamPos</a>, <a class="el" href="a05646.html#l01013">data</a>, <a class="el" href="a06512.html#l00054">NL3D::CTextureBump::getHeightMap()</a>, <a class="el" href="a06552.html#l00055">NLMISC::CTime::getLocalTime()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06710.html#l00438">NL3D::CVertexBuffer::getVertexCoordPointer()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera55">NL3D::IDriver::renderSimpleTriangles()</a>, <a class="el" href="a05641.html#l00064">NL3D::CMaterial::setBlend()</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#l00058">NL3D::CMaterial::setDstBlend()</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="a05968.html#l00282">NL3D::CMaterial::setShader()</a>, <a class="el" href="a05641.html#l00052">NL3D::CMaterial::setSrcBlend()</a>, <a class="el" href="a05968.html#l00322">NL3D::CMaterial::setTexture()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera67">NL3D::IDriver::setupMaterial()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera68">NL3D::IDriver::setupModelMatrix()</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="a05641.html#l00247">NL3D::CMaterial::texEnvArg0Alpha()</a>, <a class="el" href="a05641.html#l00221">NL3D::CMaterial::texEnvArg0RGB()</a>, <a class="el" href="a05641.html#l00256">NL3D::CMaterial::texEnvArg1Alpha()</a>, <a class="el" href="a05641.html#l00229">NL3D::CMaterial::texEnvArg1RGB()</a>, <a class="el" href="a05641.html#l00240">NL3D::CMaterial::texEnvOpAlpha()</a>, <a class="el" href="a05641.html#l00214">NL3D::CMaterial::texEnvOpRGB()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a06191.html#l00126">NLMISC::CPolygon2D::Vertices</a>, <a class="el" href="a06191.html#l00055">NLMISC::CPolygon::Vertices</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06677.html#l00052">NLMISC::CVector2f::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, <a class="el" href="a06677.html#l00052">NLMISC::CVector2f::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00437">traverseRender()</a>.
+<p>
+<div class="fragment"><pre>01171 {
+01172 <span class="keywordflow">if</span> (<a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.empty()) <span class="keywordflow">return</span>;
+01173 <span class="comment">// rendering of water when no vertex / pixel shaders are available</span>
+01174 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *shape = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+01175 CRenderTrav &amp;renderTrav = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav();
+01176 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="a03721.html#NL3D_1_1CWaterModela32">init</a> = <span class="keyword">false</span>;
+01177 <span class="keywordflow">if</span> (!init)
+01178 {
+01179 <span class="comment">// setup the material, no special shader is used here</span>
+01180 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setLighting(<span class="keyword">false</span>);
+01181 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setDoubleSided(<span class="keyword">true</span>);
+01182 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setColor(NLMISC::CRGBA::White);
+01183
+01184 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setBlend(<span class="keyword">true</span>);
+01185 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setSrcBlend(CMaterial::srcalpha);
+01186 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setDstBlend(CMaterial::invsrcalpha);
+01187 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setZWrite(<span class="keyword">true</span>);
+01188 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setShader(CMaterial::Normal);
+01189
+01190 <span class="comment">// stage 0</span>
+01191 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvOpRGB(0, CMaterial::Replace);
+01192 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvOpAlpha(0, CMaterial::Replace);
+01193 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvArg0RGB(0, CMaterial::Texture, CMaterial::SrcColor);
+01194 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvArg0Alpha(0, CMaterial::Texture, CMaterial::SrcAlpha);
+01195
+01196 <span class="comment">// stage 1</span>
+01197 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvOpRGB(1, CMaterial::Modulate);
+01198 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvOpAlpha(1, CMaterial::Modulate);
+01199 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvArg0RGB(0, CMaterial::Texture, CMaterial::SrcColor);
+01200 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvArg0Alpha(0, CMaterial::Texture, CMaterial::SrcAlpha);
+01201 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvArg1RGB(0, CMaterial::Previous, CMaterial::SrcColor);
+01202 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.texEnvArg1Alpha(0, CMaterial::Previous, CMaterial::SrcAlpha);
+01203
+01204 <span class="comment">// setup the vb : one position &amp; two tex coords</span>
+01205 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv0">_SimpleRenderVB</a>.setVertexFormat(CVertexBuffer::PositionFlag | CVertexBuffer::TexCoord0Flag | CVertexBuffer::TexCoord1Flag);
+01206 init = <span class="keyword">true</span>;
+01207 }
+01208
+01209 <span class="keyword">const</span> <a class="code" href="a02851.html">NLMISC::CMatrix</a> &amp;worldMatrix = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>();
+01210 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> &amp;obsPos = renderTrav.CamPos;
+01211
+01212 <span class="comment">// setup the material</span>
+01213 <span class="keywordtype">bool</span> isAbove = obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> &gt; worldMatrix.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>().z;
+01214
+01215 <span class="comment">// envmap is always present and is in stage 0</span>
+01216 <span class="keywordflow">if</span> (!isAbove &amp;&amp; shape-&gt;_EnvMap[1])
+01217 {
+01218 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setTexture(0, shape-&gt;_EnvMap[1]);
+01219 }
+01220 <span class="keywordflow">else</span>
+01221 {
+01222 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setTexture(0, shape-&gt;_EnvMap[0]);
+01223 }
+01224 <span class="comment">// </span>
+01225 <span class="keyword">static</span> std::vector&lt;CSimpleVertexInfo&gt; verts;
+01226 <span class="keyword">static</span> std::vector&lt;uint32&gt; indices;
+01227 <span class="comment">//</span>
+01228 <a class="code" href="a03101.html">NLMISC::CPolygon2D</a> &amp;poly = shape-&gt;_Poly;
+01229 <a class="code" href="a04558.html#a15">uint</a> numVerts = poly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>.size();
+01230 <a class="code" href="a04558.html#a15">uint</a> k;
+01231 <span class="comment">//</span>
+01232 <span class="keywordflow">if</span> (shape-&gt;_ColorMap == NULL)
+01233 {
+01234 <span class="comment">// version with no color map</span>
+01235 <span class="keywordflow">if</span> (!<a class="code" href="a03721.html#NL3D_1_1CWaterModelr4">_EmbossTexture</a>)
+01236 {
+01237 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr4">_EmbossTexture</a> = <span class="keyword">new</span> CTextureEmboss;
+01238 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr4">_EmbossTexture</a>-&gt;setSlopeFactor(4.f);
+01239 <span class="comment">/*te-&gt;setAmbient(CRGBA(127, 127, 127));</span>
+01240 <span class="comment"> te-&gt;setDiffuse(CRGBA(127, 127, 127)); */</span>
+01241 }
+01242 <span class="keywordflow">if</span> (shape-&gt;_BumpMap[1] &amp;&amp; shape-&gt;_BumpMap[1]-&gt;isBumpMap())
+01243 {
+01244 CTextureBump *bm = static_cast&lt;CTextureBump *&gt;((ITexture *) shape-&gt;_BumpMap[1]);
+01245 <span class="keywordflow">if</span> (bm-&gt;getHeightMap())
+01246 {
+01247 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr4">_EmbossTexture</a>-&gt;setHeightMap(bm-&gt;getHeightMap());
+01248 }
+01249 }
+01250 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setTexture(1, _EmbossTexture);
+01251 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv0">_SimpleRenderVB</a>.setNumVertices(numVerts);
+01252 <span class="comment">// retrieve current time</span>
+01253 <span class="keywordtype">float</span> date = 0.001f * (<a class="code" href="a02142.html#NLMISC_1_1CTimee0">NLMISC::CTime::getLocalTime</a>() &amp; 0xffffff); <span class="comment">// must keep some precision.</span>
+01258 <span class="comment"></span> verts.resize(numVerts);
+01259 <span class="keywordflow">for</span>(k = 0; k &lt; numVerts; ++k)
+01260 {
+01261 verts[k].XFormPos = worldMatrix * <a class="code" href="a03128.html">NLMISC::CVector</a>(poly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>[k].x, poly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>[k].y ,0.f);
+01262 verts[k].UV.U = shape-&gt;_HeightMapScale[0].x * verts[k].XFormPos.x + date * shape-&gt;_HeightMapSpeed[0].x;
+01263 verts[k].UV.V = shape-&gt;_HeightMapScale[0].y * verts[k].XFormPos.y + date * shape-&gt;_HeightMapSpeed[0].y;
+01264 }
+01265 <span class="comment">// get min tex coords</span>
+01266 <span class="keywordtype">float</span> minU = verts[0].UV.U;
+01267 <span class="keywordtype">float</span> minV = verts[0].UV.V;
+01268 <span class="keywordflow">for</span>(k = 1; k &lt; numVerts; ++k)
+01269 {
+01270 minU = <a class="code" href="a04061.html#a0">std::min</a>(minU, verts[k].UV.U);
+01271 minV = <a class="code" href="a04061.html#a0">std::min</a>(minV, verts[k].UV.V);
+01272 }
+01273 <span class="comment">//</span>
+01274 minU = floorf(minU);
+01275 minV = floorf(minV);
+01276 <span class="comment">//</span>
+01277 <a class="code" href="a04558.html#a7">uint8</a> *<a class="code" href="a04223.html#a637">data</a> = (<a class="code" href="a04558.html#a7">uint8</a> *) <a class="code" href="a03721.html#NL3D_1_1CWaterModelv0">_SimpleRenderVB</a>.getVertexCoordPointer();
+01278 <span class="keywordflow">for</span>(k = 0; k &lt; numVerts; ++k)
+01279 {
+01280 ((<a class="code" href="a03128.html">NLMISC::CVector</a> *) <a class="code" href="a04223.html#a637">data</a>)-&gt;set(poly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>[k].x, poly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>[k].y, 0.f);
+01281 <a class="code" href="a04223.html#a637">data</a> += <span class="keyword">sizeof</span>(<a class="code" href="a03128.html">NLMISC::CVector</a>);
+01282 <span class="comment">// texture coord 0 is reflected vector into envmap</span>
+01283 <span class="comment">// xform position in world space to compute the reflection </span>
+01284 CVector surfToEye = (obsPos - verts[k].XFormPos).normed();
+01285 <span class="comment">// we assume that normal is (0, 0, 1) </span>
+01286 * (<span class="keywordtype">float</span> *) <a class="code" href="a04223.html#a637">data</a> = 0.5f - 0.5f * surfToEye.x;
+01287 ((<span class="keywordtype">float</span> *) <a class="code" href="a04223.html#a637">data</a>)[1] = 0.5f - 0.5f * surfToEye.y;
+01288 <a class="code" href="a04223.html#a637">data</a> += <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>[2]);
+01289 <span class="comment">// texture coord 1 is the embossed map</span>
+01290 * (<span class="keywordtype">float</span> *) <a class="code" href="a04223.html#a637">data</a> = verts[k].UV.U - minU;
+01291 ((<span class="keywordtype">float</span> *) <a class="code" href="a04223.html#a637">data</a>)[1] = verts[k].UV.V - minV;
+01292 <a class="code" href="a04223.html#a637">data</a> += <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>[2]);
+01293 }
+01294 }
+01295 <span class="keywordflow">else</span>
+01296 {
+01297 <span class="comment">// version with a color map : it remplace the emboss texture </span>
+01298 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv1">_SimpleWaterMat</a>.setTexture(1, shape-&gt;_ColorMap);
+01299 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv0">_SimpleRenderVB</a>.setNumVertices(numVerts);
+01300 <span class="comment">//</span>
+01301 <a class="code" href="a04558.html#a7">uint8</a> *<a class="code" href="a04223.html#a637">data</a> = (<a class="code" href="a04558.html#a7">uint8</a> *) <a class="code" href="a03721.html#NL3D_1_1CWaterModelv0">_SimpleRenderVB</a>.getVertexCoordPointer();
+01302 <span class="keywordflow">for</span>(k = 0; k &lt; numVerts; ++k)
+01303 {
+01304 * (<a class="code" href="a03128.html">NLMISC::CVector</a> *) <a class="code" href="a04223.html#a637">data</a> = poly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>[k];
+01305 <a class="code" href="a04223.html#a637">data</a> += <span class="keyword">sizeof</span>(CVector);
+01306 <span class="comment">// texture coord 0 is reflected vector into envmap</span>
+01307 <span class="comment">// xform position in world space to compute the reflection</span>
+01308 <a class="code" href="a03128.html">NLMISC::CVector</a> xformPos = worldMatrix * poly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>[k];
+01309 <a class="code" href="a03128.html">NLMISC::CVector</a> surfToEye = (obsPos - xformPos).normed();
+01310 <span class="comment">// we assume that normal is (0, 0, 1) </span>
+01311 * (<span class="keywordtype">float</span> *) <a class="code" href="a04223.html#a637">data</a> = 0.5f - 0.5f * surfToEye.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>;
+01312 ((<span class="keywordtype">float</span> *) <a class="code" href="a04223.html#a637">data</a>)[1] = 0.5f * - 0.5f * surfToEye.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>;
+01313 <a class="code" href="a04223.html#a637">data</a> += <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>[2]);
+01314 <span class="comment">// texture coord 1 is the color map</span>
+01315 * (<span class="keywordtype">float</span> *) <a class="code" href="a04223.html#a637">data</a> = shape-&gt;_ColorMapMatColumn0.x * xformPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> + shape-&gt;_ColorMapMatColumn1.x * xformPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> + shape-&gt;_ColorMapMatPos.x;
+01316 ((<span class="keywordtype">float</span> *) <a class="code" href="a04223.html#a637">data</a>)[1] = shape-&gt;_ColorMapMatColumn0.y * xformPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> + shape-&gt;_ColorMapMatColumn1.y * xformPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> + shape-&gt;_ColorMapMatPos.y;
+01317 <a class="code" href="a04223.html#a637">data</a> += <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>[2]);
+01318 }
+01319 }
+01320
+01321 drv-&gt;activeVertexProgram(NULL);
+01322 drv-&gt;setupModelMatrix(worldMatrix);
+01323 drv-&gt;activeVertexBuffer(_SimpleRenderVB);
+01324
+01325 <span class="comment">// create an index buffer to do the display </span>
+01326 indices.resize((numVerts - 2) * 3);
+01327 <span class="keywordflow">for</span>(k = 0; k &lt; (numVerts - 2); ++k)
+01328 {
+01329
+01330 indices[ k * 3 ] = 0;
+01331 indices[ k * 3 + 1 ] = k + 1;
+01332 indices[ k * 3 + 2 ] = k + 2;
+01333 }
+01334 drv-&gt;setupMaterial(_SimpleWaterMat);
+01335 drv-&gt;renderSimpleTriangles(&amp;indices[0], numVerts - 2);
+01336 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_3" doxytag="NL3D::CWaterModel::enableCastShadowMap" ></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::CTransform::enableCastShadowMap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>state</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+By default, map shadow casting is disabled. This enabled shadow for this model. Fails if the model don't support dynamic Map Shadow Casting (eg landscape) Dervier note: <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_0">createShadowMap()</a> and <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_1">deleteShadowMap()</a> is called here.
+<p>
+Definition at line <a class="el" href="a06568.html#l01335">1335</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00470">NL3D::CTransform::canCastShadowMap()</a>, <a class="el" href="a06569.html#l00902">NL3D::CTransform::createShadowMap()</a>, <a class="el" href="a06569.html#l00904">NL3D::CTransform::deleteShadowMap()</a>, <a class="el" href="a06569.html#l00495">NL3D::CTransform::getShadowMap()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy10">NL3D::CTransform::IsFinalShadowMapCaster</a>, <a class="el" href="a06569.html#l00480">NL3D::CTransform::modelCanCastShadowMap()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>01336 {
+01337 <span class="keywordtype">bool</span> precState= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>();
+01338
+01339 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_10">modelCanCastShadowMap</a>())
+01340 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalShadowMapCaster, state);
+01341 <span class="keywordflow">else</span>
+01342 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalShadowMapCaster, <span class="keyword">false</span>);
+01343
+01344 <span class="comment">// if just enabled, create the shadowMap</span>
+01345 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>() &amp;&amp; !precState)
+01346 {
+01347 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_0">createShadowMap</a>();
+01348 <span class="comment">// The user must have created it.</span>
+01349 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_8">getShadowMap</a>());
+01350 }
+01351 <span class="comment">// if just disabled, free ressource</span>
+01352 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>() &amp;&amp; precState)
+01353 {
+01354 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_1">deleteShadowMap</a>();
+01355 }
+01356 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_4" doxytag="NL3D::CWaterModel::enableReceiveShadowMap" ></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::CTransform::enableReceiveShadowMap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>state</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+By default, map shadow receiving is disabled. This enabled shadow for this model. Fails if the model don't support dynamic Map Shadow Receiving (eg Particle system)
+<p>
+Definition at line <a class="el" href="a06569.html#l00475">475</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy11">NL3D::CTransform::IsFinalShadowMapReceiver</a>, <a class="el" href="a06569.html#l00482">NL3D::CTransform::modelCanReceiveShadowMap()</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a05874.html#l00548">NL3D::CLandscapeUser::enableReceiveShadowMap()</a>.
+<p>
+<div class="fragment"><pre>00475 {<span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_11">modelCanReceiveShadowMap</a>()) <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalShadowMapReceiver, state);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelb2" doxytag="NL3D::CWaterModel::forceCompute" ></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::CTransform::forceCompute </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><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01359">1359</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00618">NL3D::CTransform::_FatherBoneId</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>.
+<p>
+Referenced by <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>.
+<p>
+<div class="fragment"><pre>01360 {
+01361 <span class="comment">// if father is a skeleton, force to compute the bone we are sticked to</span>
+01362 <span class="keywordflow">if</span> (<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>)
+01363 {
+01364 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;forceComputeBone(_FatherBoneId);
+01365 }
+01366 <span class="keywordflow">else</span>
+01367 {
+01368 <span class="comment">// force to compûte the father</span>
+01369 <span class="keywordflow">if</span> (_HrcParent)
+01370 {
+01371 _HrcParent-&gt;forceCompute();
+01372 }
+01373 }
+01374 <span class="comment">// compute</span>
+01375 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_4">update</a>();
+01376 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1047_1">updateWorldMatrixFromFather</a>();
+01377 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela3" doxytag="NL3D::CWaterModel::freeze" ></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::CTransform::freeze </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+freeze the preceding position of the model. Do not use, special code for cluster. This inform the scene that preceding position setuped by user is "frozen". ie at next render(), this object won't be added to the "object moving list" (usefull for cluster mgt). The "frozen" state is disabled (at render() time) if:<ul>
+<li>change in position (directly or indireclty, such as animation) is performed after the <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela3">freeze()</a>.</li><li>the "frozen" state of a father is not enabled (or disabled by a change in position of him :) ).</li></ul>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00367">367</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00847">NL3D::CTransform::_Frozen</a>, and <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, and <a class="el" href="a06348.html#l00249">NL3D::CScene::initDefaultRoots()</a>.
+<p>
+<div class="fragment"><pre>00368 {
+00369 <span class="comment">// First, update the model</span>
+00370 <span class="comment">// _Frozen state is disabled here (in CTransform::update()).</span>
+00371 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_4">update</a>();
+00372
+00373 <span class="comment">// Then flag the frozen state.</span>
+00374 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a>= <span class="keyword">true</span>;
+00375 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela4" doxytag="NL3D::CWaterModel::freezeHRC" ></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::CTransform::freezeHRC </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+freeze the HRC so the WorldMatrix computed at next render() will be kept for long, and the model won't either be tested in HRC (which is still expensive, even if the worldmatrix doesn't need to be recomputed). The model won't either be validated. It is suposed to not change at all. Also, if it is not a son of a <a class="el" href="a02362.html">CCluster</a>, it may be accelerated during Cliping (with <a class="el" href="a03287.html">CQuadGridClipManager</a>).<p>
+NB: the model won't be tested in HRC anymore. calling <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">freezeHRC()</a> on a model in a hierarchy without calling it to the root of the hierarchy will result in that the model won't be validated nor be HRC traversed. To be simplier, you should <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">freezeHRC()</a> all the models of a hierarchy, from base root to leaves.<p>
+NB: if the hierarchy of this object must change, or if the object must moves, you must call <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela49">unfreezeHRC()</a> first, and you should do this for all the parents of this model.
+<p>
+Definition at line <a class="el" href="a06568.html#l00385">385</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00741">NL3D::CTransform::_FreezeHRCState</a>, <a class="el" href="a06569.html#l00847">NL3D::CTransform::_Frozen</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformy29NL3D_1_1CTransformy1">NL3D::CTransform::FreezeHRCStateDisabled</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformy29NL3D_1_1CTransformy4">NL3D::CTransform::FreezeHRCStateRequest</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy28">NL3D::CTransform::QuadGridClipEnabled</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l01132">NL3D::CInstanceGroup::freezeHRC()</a>.
+<p>
+<div class="fragment"><pre>00386 {
+00387 <span class="comment">// if disabled, say we are ready to validate our worldMatrix for long.</span>
+00388 <span class="keywordflow">if</span>(_FreezeHRCState==FreezeHRCStateDisabled)
+00389 {
+00390 _FreezeHRCState= FreezeHRCStateRequest;
+00391 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(QuadGridClipEnabled, <span class="keyword">true</span>);
+00392
+00393 <span class="comment">/* If the transform is not frozen (ie staticaly inserted in a cluster),</span>
+00394 <span class="comment"> We must be sure it will be tested against QuadGridClipManager at next ClipTrav pass.</span>
+00395 <span class="comment"> =&gt; must make this object a "moving object" at next render=&gt; dirt _LocalMatrixDate.</span>
+00396 <span class="comment"> */</span>
+00397 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a>)
+00398 {
+00399 _TransformDirty= <span class="keyword">true</span>;
+00400 }
+00401 }
+00402 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_0" doxytag="NL3D::CWaterModel::freezeStaticLightSetup" ></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::CTransform::freezeStaticLightSetup </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03091.html">CPointLight</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>pointLight</em>[NL3D_MAX_LIGHT_CONTRIBUTION], </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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>numPointLights</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sunContribution</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03091.html">CPointLight</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>frozenAmbientlight</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Freeze and set the Static Light Setup. Called by <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa1">CInstanceGroup::addToScene()</a> NB: it calls <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting()</a> first. NB: nlassert(numPointLights&lt;=NL3D_MAX_LIGHT_CONTRIBUTION)
+<p>
+Definition at line <a class="el" href="a06568.html#l01028">1028</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a05894.html#l00071">NL3D::CLightContribution::Factor</a>, <a class="el" href="a05894.html#l00093">NL3D::CLightContribution::FrozenAmbientLight</a>, <a class="el" href="a05894.html#l00079">NL3D::CLightContribution::FrozenStaticLightSetup</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy17">NL3D::CTransform::IsNeedUpdateFrozenStaticLightSetup</a>, <a class="el" href="a05894.html#l00042">NL3D_MAX_LIGHT_CONTRIBUTION</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05894.html#l00084">NL3D::CLightContribution::NumFrozenStaticLight</a>, <a class="el" href="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, <a class="el" href="a05894.html#l00086">NL3D::CLightContribution::SunContribution</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>01030 {
+01031 <a class="code" href="a04199.html#a6">nlassert</a>(numPointLights &lt;= NL3D_MAX_LIGHT_CONTRIBUTION);
+01032
+01033 <span class="comment">// resetLighting() first.</span>
+01034 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting</a>();
+01035
+01036 <span class="comment">// Enable StaticLightSetup.</span>
+01037 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenStaticLightSetup= <span class="keyword">true</span>;
+01038 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.NumFrozenStaticLight= numPointLights;
+01039 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.SunContribution= sunContribution;
+01040 <span class="comment">// setup the FrozenAmbientLight</span>
+01041 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenAmbientLight= frozenAmbientlight;
+01042 <span class="comment">// Setup other pointLights</span>
+01043 <a class="code" href="a04558.html#a15">uint</a> i;
+01044 <span class="keywordflow">for</span>(i=0;i&lt;numPointLights;i++)
+01045 {
+01046 <span class="comment">// set the light</span>
+01047 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[i]= pointLight[i];
+01048 <span class="comment">// Enable at max.</span>
+01049 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.Factor[i]= 255;
+01050 <span class="comment">// Compute static AttFactor Later because don't have WorlPosition of the model here!!</span>
+01051 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsNeedUpdateFrozenStaticLightSetup, <span class="keyword">true</span>);
+01052
+01053 <span class="comment">// Do NOT set the iterator, because it is a staticLight.</span>
+01054 }
+01055 <span class="comment">// End the list</span>
+01056 <span class="keywordflow">if</span>(i&lt;<a class="code" href="a04471.html#a0">NL3D_MAX_LIGHT_CONTRIBUTION</a>)
+01057 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[i]= NULL;
+01058 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_5" doxytag="NL3D::CWaterModel::generateShadowMap" ></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 NL3D::CTransform::generateShadowMap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>lightDir</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For Casters. Display the Shadow to the "Auxiliary Driver". This method should only write to AlphaBuffer (since RGB may be the current rendered scene!), with Alpha==1 when pixel is shadowed. The ShadowMapManager has already cleared the AlphaBuffer to black, and has already enabled alpha write only. The ShadowMapManager has already setuped Viewport/Scissor as its convenience. The extra blurring is a work of the ShadowMapManager (which blurs multiple shadows in a same pass) NB: you can overwrite the current driver frustum/ViewMatrix/modelMatrix without backuping it (ShadowMapManager work)
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_1">NL3D::CMeshInstance</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz934_1">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00492">492</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>.
+<p>
+<div class="fragment"><pre>00492 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela5" doxytag="NL3D::CWaterModel::getAABBox" ></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::CTransformShape::getAABBox </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bbox</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the untransformed AABBox of the mesh. NULL (gtSize()==0) if no mesh.
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModela3">NL3D::CTransform</a>.
+<p>
+Reimplemented in <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModela7">NL3D::CParticleSystemModel</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00083">83</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a05385.html#l00066">NLMISC::CAABBox::setCenter()</a>, <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>, and <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>.
+<p>
+Referenced by <a class="el" href="a06570.html#l00316">NL3D::CTransformShape::getLightHotSpotInWorld()</a>, <a class="el" href="a05828.html#l00064">NL3D::CInstanceUser::getShapeAABBox()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, and <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>.
+<p>
+<div class="fragment"><pre>00084 {
+00085 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>)
+00086 {
+00087 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>-&gt;getAABBox(bbox);
+00088 }
+00089 <span class="keywordflow">else</span>
+00090 {
+00091 bbox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(CVector::Null);
+00092 bbox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">setHalfSize</a>(CVector::Null);
+00093 }
+00094 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela6" doxytag="NL3D::CWaterModel::getAncestorSkeletonModel" ></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"> <a class="el" href="a03399.html">CSkeletonModel</a>* NL3D::CTransform::getAncestorSkeletonModel </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00207">207</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>.
+<p>
+Referenced by <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>.
+<p>
+<div class="fragment"><pre>00207 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModela7" doxytag="NL3D::CWaterModel::getAttenuatedHeight" ></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::CWaterModel::getAttenuatedHeight </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03660.html">NLMISC::CVector2f</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>pos</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> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>viewer</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+inherited from <a class="el" href="a03957.html">UWaterInstance</a>
+<p>
+
+<p>
+Implements <a class="el" href="a03957.html#NL3D_1_1UWaterInstancea0">NL3D::UWaterInstance</a>.
+<p>
+Definition at line <a class="el" href="a06737.html#l00127">127</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06742.html#l00209">NL3D::CWaterShape::_WaterPoolID</a>, <a class="el" href="a06742.html#l00222">NL3D::CWaterShape::_WaveHeightFactor</a>, <a class="el" href="a06735.html#l00726">NL3D::CWaterHeightMap::getHeight()</a>, <a class="el" href="a06575.html#l00076">NL3D::ITransformable::getMatrix()</a>, <a class="el" href="a06739.html#l00109">NL3D::CWaterPoolManager::getPoolByID()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06736.html#l00082">NL3D::CWaterHeightMap::getSize()</a>, <a class="el" href="a06736.html#l00171">NL3D::CWaterHeightMap::getUnitSize()</a>, <a class="el" href="a06739.html#l00078">NL3D::GetWaterPoolManager()</a>, <a class="el" href="a05646.html#l01013">height</a>, <a class="el" href="a06677.html#l00052">NLMISC::CVector2f::x</a>, and <a class="el" href="a06677.html#l00052">NLMISC::CVector2f::y</a>.
+<p>
+<div class="fragment"><pre>00128 {
+00129 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *ws = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+00130 CWaterHeightMap &amp;whm = <a class="code" href="a05363.html#a551">GetWaterPoolManager</a>().getPoolByID(ws-&gt;_WaterPoolID);
+00131 <span class="keyword">const</span> <span class="keywordtype">float</span> maxDist = whm.getUnitSize() * (whm.getSize() &gt;&gt; 1);
+00132 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> planePos(pos.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo0">x</a>, pos.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo1">y</a>, this-&gt;getMatrix().getPos().z);
+00133 <span class="keyword">const</span> <span class="keywordtype">float</span> userDist = (planePos - viewer).norm();
+00134
+00135 <span class="keywordflow">if</span> (userDist &gt; maxDist)
+00136 {
+00137 <span class="keywordflow">return</span> this-&gt;<a class="code" href="a02278.html#NL3D_1_1ITransformablea1">getMatrix</a>().<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>().z;
+00138 }
+00139 <span class="keywordflow">else</span>
+00140 {
+00141 <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="a04223.html#a633">height</a> = whm.getHeight(pos);
+00142 <span class="keywordflow">return</span> ws-&gt;_WaveHeightFactor * <a class="code" href="a04223.html#a633">height</a> * (1.f - userDist / maxDist) + this-&gt;<a class="code" href="a02278.html#NL3D_1_1ITransformablea1">getMatrix</a>().<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>().z;
+00143 }
+00144 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelb3" doxytag="NL3D::CWaterModel::getChannelMixer" ></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"> <a class="el" href="a02335.html">CChannelMixer</a>* NL3D::CTransform::getChannelMixer </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, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the channelMixer owned by the transform. return result of a refPtr =&gt; may be NULL.
+<p>
+Definition at line <a class="el" href="a06569.html#l00641">641</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01665">NL3D::CSkeletonModel::computeCurrentBBox()</a>, <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, and <a class="el" href="a06393.html#l00280">NL3D::CSkeletonModel::updateBoneToCompute()</a>.
+<p>
+<div class="fragment"><pre>00641 {<span class="keywordflow">return</span> _ChannelMixer;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela7" doxytag="NL3D::CWaterModel::getChannelMixerOwnerShip" ></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 NL3D::CTransform::getChannelMixerOwnerShip </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00257">257</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy8">NL3D::CTransform::IsDeleteChannelMixer</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>00257 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsDeleteChannelMixer)!=0; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela8" doxytag="NL3D::CWaterModel::getClusterSystem" ></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"> <a class="el" href="a02671.html">CInstanceGroup</a>* NL3D::CTransform::getClusterSystem </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00320">320</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00737">NL3D::CTransform::_ClusterSystem</a>.
+<p>
+Referenced by <a class="el" href="a06348.html#l01268">NL3D::CScene::findCameraClusterSystemFromRay()</a>, and <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>.
+<p>
+<div class="fragment"><pre>00320 { <span class="keywordflow">return</span> _ClusterSystem; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModela10" doxytag="NL3D::CWaterModel::getDefaultTrack" ></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"> <a class="el" href="a03542.html">ITrack</a> * NL3D::CWaterModel::getDefaultTrack </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default Track Values are identity (pos,pivot= 0, scale= 1, rots=0).
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1023_0">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06737.html#l00083">83</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06742.html#l00187">NL3D::CWaterShape::getDefaultPos()</a>, <a class="el" href="a06742.html#l00189">NL3D::CWaterShape::getDefaultRotQuat()</a>, <a class="el" href="a06742.html#l00188">NL3D::CWaterShape::getDefaultScale()</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>00084 {
+00085 <a class="code" href="a04199.html#a6">nlassert</a>(Shape);
+00086 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *ws = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+00087 <span class="keywordflow">switch</span> (valueId)
+00088 {
+00089 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>: <span class="keywordflow">return</span> ws-&gt;getDefaultPos(); <span class="keywordflow">break</span>;
+00090 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>: <span class="keywordflow">return</span> ws-&gt;getDefaultScale(); <span class="keywordflow">break</span>;
+00091 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>: <span class="keywordflow">return</span> ws-&gt;getDefaultRotQuat(); <span class="keywordflow">break</span>;
+00092 <span class="keywordflow">default</span>: <span class="comment">// delegate to parent</span>
+00093 <span class="keywordflow">return</span> CTransformShape::getDefaultTrack(valueId);
+00094 <span class="keywordflow">break</span>;
+00095 }
+00096 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela10" doxytag="NL3D::CWaterModel::getDistMax" ></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::CTransformShape::getDistMax </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06571.html#l00135">135</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a06302.html#l00414">NL3D::CQuadGridClipCluster::addModel()</a>, <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, and <a class="el" href="a05829.html#l00125">NL3D::CInstanceUser::getDistMax()</a>.
+<p>
+<div class="fragment"><pre>00135 { <span class="keywordflow">return</span> _DistMax; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela11" doxytag="NL3D::CWaterModel::getForceClipRoot" ></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 NL3D::CTransform::getForceClipRoot </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00538">538</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, and <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00265">NL3D::CTransformUser::getForceClipRoot()</a>.
+<p>
+<div class="fragment"><pre>00538 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot) != 0; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModela13" doxytag="NL3D::CWaterModel::getHeight" ></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::CWaterModel::getHeight </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03660.html">NLMISC::CVector2f</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+inherited from <a class="el" href="a03957.html">UWaterInstance</a>
+<p>
+
+<p>
+Implements <a class="el" href="a03957.html#NL3D_1_1UWaterInstancea1">NL3D::UWaterInstance</a>.
+<p>
+Definition at line <a class="el" href="a06737.html#l00117">117</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06742.html#l00209">NL3D::CWaterShape::_WaterPoolID</a>, <a class="el" href="a06742.html#l00222">NL3D::CWaterShape::_WaveHeightFactor</a>, <a class="el" href="a06735.html#l00726">NL3D::CWaterHeightMap::getHeight()</a>, <a class="el" href="a06739.html#l00109">NL3D::CWaterPoolManager::getPoolByID()</a>, <a class="el" href="a06575.html#l00231">NL3D::ITransformable::getPos()</a>, <a class="el" href="a06739.html#l00078">NL3D::GetWaterPoolManager()</a>, <a class="el" href="a05646.html#l01013">height</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+<div class="fragment"><pre>00118 {
+00119 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *ws = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+00120 CWaterHeightMap &amp;whm = <a class="code" href="a05363.html#a551">GetWaterPoolManager</a>().getPoolByID(ws-&gt;_WaterPoolID);
+00121 <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="a04223.html#a633">height</a> = whm.getHeight(pos);
+00122 <span class="keywordflow">return</span> <a class="code" href="a04223.html#a633">height</a> * ws-&gt;_WaveHeightFactor + this-&gt;<a class="code" href="a02278.html#NL3D_1_1ITransformablez1083_2">getPos</a>().z;
+00123 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModela14" doxytag="NL3D::CWaterModel::getHeightFactor" ></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::CWaterModel::getHeightFactor </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> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+inherited from <a class="el" href="a03957.html">UWaterInstance</a>
+<p>
+
+<p>
+Implements <a class="el" href="a03957.html#NL3D_1_1UWaterInstancea2">NL3D::UWaterInstance</a>.
+<p>
+Definition at line <a class="el" href="a06737.html#l00108">108</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06742.html#l00222">NL3D::CWaterShape::_WaveHeightFactor</a>.
+<p>
+<div class="fragment"><pre>00109 {
+00110 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *ws = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+00111 <span class="keywordflow">return</span> ws-&gt;_WaveHeightFactor;
+00112 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_1" doxytag="NL3D::CWaterModel::getLightContribution" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02744.html">CLightContribution</a>&amp; NL3D::CTransform::getLightContribution </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the current light contribution of this model
+<p>
+Definition at line <a class="el" href="a06569.html#l00373">373</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00626">NL3D::CShadowMapManager::computeShadowColors()</a>, and <a class="el" href="a06372.html#l00595">NL3D::CShadowMapManager::computeShadowDirection()</a>.
+<p>
+<div class="fragment"><pre>00373 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela12" doxytag="NL3D::CWaterModel::getLightContribution" ></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"> <a class="el" href="a02744.html">CLightContribution</a>&amp; NL3D::CTransformShape::getLightContribution </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02914.html#NL3D_1_1CMeshMultiLodInstancea13">NL3D::CMeshMultiLodInstance</a>.
+<p>
+Definition at line <a class="el" href="a06571.html#l00155">155</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>, and <a class="el" href="a06148.html#l00680">NL3D::CParticleSystemModel::traverseRender()</a>.
+<p>
+<div class="fragment"><pre>00155 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela13" doxytag="NL3D::CWaterModel::getLightHotSpotInWorld" ></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::CTransformShape::getLightHotSpotInWorld </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>modelPos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>modelRadius</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the HotSpot of the model for Light computation. For models with global attenuation, this is the point taken for attenuation computes. NB: should return the current world position. NB: return also the modelRadius (only for bigLightable) Default to NULL.
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1024_2">NL3D::CTransform</a>.
+<p>
+Reimplemented in <a class="el" href="a03399.html#NL3D_1_1CSkeletonModela11">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00316">316</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a06570.html#l00083">NL3D::CTransformShape::getAABBox()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a05385.html#l00096">NLMISC::CAABBox::getRadius()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, and <a class="el" href="a06569.html#l00365">NL3D::CTransform::isBigLightable()</a>.
+<p>
+<div class="fragment"><pre>00317 {
+00318 <span class="comment">/*</span>
+00319 <span class="comment"> // get the untransformed bbox from the model.</span>
+00320 <span class="comment"> CAABBox bbox;</span>
+00321 <span class="comment"> getAABBox(bbox);</span>
+00322 <span class="comment"> // get transformed center pos of bbox</span>
+00323 <span class="comment"> modelPos= getWorldMatrix() * bbox.getCenter();</span>
+00324 <span class="comment"> // If the model is a big lightable, must take radius from aabbox, else suppose 0 radius.</span>
+00325 <span class="comment"> if(isBigLightable())</span>
+00326 <span class="comment"> {</span>
+00327 <span class="comment"> // get size of the bbox (bounding sphere)</span>
+00328 <span class="comment"> modelRadius= bbox.getRadius();</span>
+00329 <span class="comment"> }</span>
+00330 <span class="comment"> else</span>
+00331 <span class="comment"> {</span>
+00332 <span class="comment"> // Assume 0 radius =&gt; faster computeLinearAttenuation()</span>
+00333 <span class="comment"> modelRadius= 0;</span>
+00334 <span class="comment"> }</span>
+00335 <span class="comment"> */</span>
+00336
+00337 <span class="comment">// This method works well for Big Trees.</span>
+00338 <span class="comment">// TODO: generalize, saving a LightHotSpot per shape.</span>
+00339
+00340 <span class="comment">// get pos of object. Ie the hotSpot is the pivot.</span>
+00341 modelPos= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>();
+00342 <span class="comment">// If the model is a big lightable, must take radius from aabbox, else suppose 0 radius.</span>
+00343 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_3">isBigLightable</a>())
+00344 {
+00345 <span class="comment">// get the untransformed bbox from the model.</span>
+00346 CAABBox bbox;
+00347 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModela5">getAABBox</a>(bbox);
+00348 <span class="comment">// get size of the bbox (bounding sphere)</span>
+00349 modelRadius= bbox.getRadius();
+00350 }
+00351 <span class="keywordflow">else</span>
+00352 {
+00353 <span class="comment">// Assume 0 radius =&gt; faster computeLinearAttenuation()</span>
+00354 modelRadius= 0;
+00355 }
+00356
+00357 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1025_0" doxytag="NL3D::CWaterModel::getLoadBalancingGroup" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const std::string &amp; NL3D::CTransform::getLoadBalancingGroup </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> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the load Balancing group of a model. see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1025_1">setLoadBalancingGroup()</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00532">532</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00894">NL3D::CTransform::_LoadBalancingGroup</a>, and <a class="el" href="a05924.html#l00068">NL3D::CLoadBalancingGroup::Name</a>.
+<p>
+<div class="fragment"><pre>00533 {
+00534 <span class="comment">// get the group name</span>
+00535 <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1049_0">_LoadBalancingGroup</a>-&gt;Name;
+00536 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela14" doxytag="NL3D::CWaterModel::getMaterial" ></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"> <a class="el" href="a02839.html">CMaterial</a> * NL3D::CTransformShape::getMaterial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>materialId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a material of the transform shape
+<p>
+Reimplemented in <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez439_0">NL3D::CMeshBaseInstance</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00127">127</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00128 {
+00129 <span class="keywordflow">return</span> NULL;
+00130 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela15" doxytag="NL3D::CWaterModel::getMaterial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02839.html">CMaterial</a> * NL3D::CTransformShape::getMaterial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>materialId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a material of the transform shape
+<p>
+Reimplemented in <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez439_1">NL3D::CMeshBaseInstance</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00120">120</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00121 {
+00122 <span class="keywordflow">return</span> NULL;
+00123 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea1" doxytag="NL3D::CWaterModel::getMatrix" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">CMatrix</a>&amp; NL3D::ITransformable::getMatrix </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the matrix, compute her if necessary (work in all modes).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00076">76</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06574.html#l00141">NL3D::ITransformable::updateMatrix()</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a05530.html#l00243">NL3D::CCamera::buildCameraPyramid()</a>, <a class="el" href="a05491.html#l00155">NL3D::CBone::compute()</a>, <a class="el" href="a06741.html#l00327">NL3D::CWaterShape::createInstance()</a>, <a class="el" href="a06737.html#l00127">getAttenuatedHeight()</a>, <a class="el" href="a06577.html#l00081">NL3D::CTransformableUser::getMatrix()</a>, <a class="el" href="a05559.html#l00777">NL3D::CCloudScape::render()</a>, <a class="el" href="a06016.html#l00496">NL3D::CMeshMultiLod::renderCoarseMesh()</a>, and <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>.
+<p>
+<div class="fragment"><pre>00076 {<a class="code" href="a02278.html#NL3D_1_1ITransformabled2">updateMatrix</a>(); <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea2" doxytag="NL3D::CWaterModel::getMatrixDate" ></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"> <a class="el" href="a04558.html#a13">uint64</a> NL3D::ITransformable::getMatrixDate </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the last date of computed matrix. <a class="el" href="a02278.html#NL3D_1_1ITransformabled2">updateMatrix()</a> if necessary.
+<p>
+Definition at line <a class="el" href="a06575.html#l00090">90</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a06574.html#l00141">NL3D::ITransformable::updateMatrix()</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>.
+<p>
+<div class="fragment"><pre>00091 {
+00092 <a class="code" href="a02278.html#NL3D_1_1ITransformabled2">updateMatrix</a>();
+00093 <span class="keywordflow">return</span> _LocalMatrixDate;
+00094 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_0" doxytag="NL3D::CWaterModel::getMeanColor" ></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"> <a class="el" href="a03337.html">CRGBA</a> NL3D::CTransform::getMeanColor </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_7">setMeanColor()</a>
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00437">437</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00756">NL3D::CTransform::_MeanColor</a>.
+<p>
+<div class="fragment"><pre>00437 {<span class="keywordflow">return</span> _MeanColor;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1053_0" doxytag="NL3D::CWaterModel::getMRMLevelDetail" ></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 const <a class="el" href="a02959.html">CMRMLevelDetail</a>* NL3D::CTransformShape::getMRMLevelDetail </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If the model support MRM, return the level detail setup. default is return NULL.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez501_1">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez533_1">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06571.html#l00114">114</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00114 {<span class="keywordflow">return</span> NULL;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela18" doxytag="NL3D::CWaterModel::getNumMaterial" ></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"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CTransformShape::getNumMaterial </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> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the count of material in this transform shape
+<p>
+Reimplemented in <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez439_2">NL3D::CMeshBaseInstance</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00113">113</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00114 {
+00115 <span class="keywordflow">return</span> 0;
+00116 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1053_1" doxytag="NL3D::CWaterModel::getNumTriangles" ></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::CTransformShape::getNumTriangles </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>distance</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get an approximation of the number of triangles this instance want render for a fixed distance.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>distance</em>&nbsp;</td><td>is the distance of the shape from the eye. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>the approximate number of triangles this instance will render at this distance. This number can be a float. The function MUST be decreasing or constant with the distance but don't have to be continus.</dd></dl>
+
+<p>
+Reimplemented in <a class="el" href="a02914.html#NL3D_1_1CMeshMultiLodInstancea17">NL3D::CMeshMultiLodInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModela20">NL3D::CParticleSystemModel</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz928_1">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00075">75</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>.
+<p>
+Referenced by <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>.
+<p>
+<div class="fragment"><pre>00076 {
+00077 <span class="comment">// Call shape method</span>
+00078 <span class="keywordflow">return</span> <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>-&gt;getNumTriangles (distance);
+00079 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1053_2" doxytag="NL3D::CWaterModel::getNumTrianglesAfterLoadBalancing" ></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::CTransformShape::getNumTrianglesAfterLoadBalancing </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get an approximation of the number of triangles this instance should render. This method is valid only for <a class="el" href="a02539.html">IShape</a> classes (in render()), after LoadBalancing traversal is performed. NB: It is not guaranted that this instance will render those number of triangles.
+<p>
+Definition at line <a class="el" href="a06571.html#l00111">111</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+References <a class="el" href="a06571.html#l00175">NL3D::CTransformShape::_NumTrianglesAfterLoadBalancing</a>.
+<p>
+Referenced by <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06011.html#l01538">NL3D::CMeshMRMSkinned::profileSceneRender()</a>, <a class="el" href="a06005.html#l03030">NL3D::CMeshMRM::profileSceneRender()</a>, <a class="el" href="a06011.html#l01468">NL3D::CMeshMRMSkinned::render()</a>, <a class="el" href="a06005.html#l02953">NL3D::CMeshMRM::render()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a06005.html#l03017">NL3D::CMeshMRM::supportMeshBlockRendering()</a>, and <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>.
+<p>
+<div class="fragment"><pre>00111 {<span class="keywordflow">return</span> _NumTrianglesAfterLoadBalancing;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela19" doxytag="NL3D::CWaterModel::getOrderingLayer" ></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"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CTransform::getOrderingLayer </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the ordering layer.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00187">187</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00743">NL3D::CTransform::_OrderingLayer</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00169">NL3D::CTransformUser::getOrderingLayer()</a>, and <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>.
+<p>
+<div class="fragment"><pre>00187 { <span class="keywordflow">return</span> _OrderingLayer; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela20" doxytag="NL3D::CWaterModel::getOwnerScene" ></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"> <a class="el" href="a03348.html">CScene</a>* NL3D::CTransform::getOwnerScene </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the scene which has created us
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00105">105</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00693">NL3D::CTransform::_OwnerScene</a>.
+<p>
+Referenced by <a class="el" href="a05862.html#l00385">NL3D::CLandscape::addZone()</a>, <a class="el" href="a06737.html#l01130">clip()</a>, <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, <a class="el" href="a05870.html#l00143">NL3D::CLandscapeModel::clipAndRenderLandscape()</a>, <a class="el" href="a06737.html#l01054">computeClippedPoly()</a>, <a class="el" href="a06393.html#l00972">NL3D::CSkeletonModel::computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l00866">NL3D::CSkeletonModel::computeLodTexture()</a>, <a class="el" href="a06737.html#l01026">computeSimpleClippedPoly()</a>, <a class="el" href="a06393.html#l01852">NL3D::CSkeletonModel::createShadowMap()</a>, <a class="el" href="a06001.html#l00254">NL3D::CMeshInstance::createShadowMap()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06737.html#l01170">doSimpleRender()</a>, <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a06018.html#l00067">NL3D::CMeshMultiLodInstance::getCoarseMeshLighting()</a>, <a class="el" href="a06568.html#l00214">NL3D::CTransform::initModel()</a>, <a class="el" href="a06393.html#l00154">NL3D::CSkeletonModel::initModel()</a>, <a class="el" href="a06182.html#l00059">NL3D::CPointLightModel::initModel()</a>, <a class="el" href="a05870.html#l00075">NL3D::CLandscapeModel::initModel()</a>, <a class="el" href="a06149.html#l00315">NL3D::CParticleSystemModel::insertInVisibleList()</a>, <a class="el" href="a06016.html#l00740">NL3D::CMeshMultiLod::instanciateCoarseMeshSpace()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a06304.html#l00319">NL3D::CQuadGridClipManager::profile()</a>, <a class="el" href="a06570.html#l00248">NL3D::CTransformShape::profileRender()</a>, <a class="el" href="a05870.html#l00293">NL3D::CLandscapeModel::receiveShadowMap()</a>, <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a05993.html#l00486">NL3D::CMeshBaseInstance::releaseCurrentAsyncTextures()</a>, <a class="el" href="a06358.html#l00141">NL3D::CSegRemanence::render()</a>, <a class="el" href="a06016.html#l00232">NL3D::CMeshMultiLod::render()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06393.html#l01295">NL3D::CSkeletonModel::renderCLod()</a>, <a class="el" href="a06016.html#l00496">NL3D::CMeshMultiLod::renderCoarseMesh()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06393.html#l01885">NL3D::CSkeletonModel::renderShadowSkins()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, <a class="el" href="a06011.html#l00726">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06011.html#l00795">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupPrimitives()</a>, <a class="el" href="a06005.html#l01406">NL3D::CMeshMRMGeom::renderSkinGroupPrimitives()</a>, <a class="el" href="a06011.html#l00877">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupSpecularRdrPass()</a>, <a class="el" href="a06005.html#l01488">NL3D::CMeshMRMGeom::renderSkinGroupSpecularRdrPass()</a>, <a class="el" href="a06393.html#l01449">NL3D::CSkeletonModel::renderSkinList()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a06304.html#l00081">NL3D::CQuadGridClipManager::reset()</a>, <a class="el" href="a06568.html#l00522">NL3D::CTransform::setLoadBalancingGroup()</a>, <a class="el" href="a06393.html#l00837">NL3D::CSkeletonModel::setLodCharacterShape()</a>, <a class="el" href="a05993.html#l00445">NL3D::CMeshBaseInstance::startAsyncTextureLoading()</a>, <a class="el" href="a06737.html#l00998">NL3D::CWaveMakerModel::traverseAnimDetail()</a>, <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>, <a class="el" href="a06358.html#l00458">NL3D::CSegRemanence::traverseAnimDetail()</a>, <a class="el" href="a06148.html#l00516">NL3D::CParticleSystemModel::traverseAnimDetail()</a>, <a class="el" href="a05993.html#l00214">NL3D::CMeshBaseInstance::traverseAnimDetail()</a>, <a class="el" href="a06568.html#l00938">NL3D::CTransform::traverseAnimDetailWithoutUpdateWorldMatrix()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06304.html#l00303">NL3D::CQuadGridClipManager::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, <a class="el" href="a05870.html#l00105">NL3D::CLandscapeModel::traverseClip()</a>, <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, <a class="el" href="a05870.html#l00090">NL3D::CLandscapeModel::traverseHrc()</a>, <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>, <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>, <a class="el" href="a06570.html#l00262">NL3D::CTransformShape::traverseLoadBalancing()</a>, <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>, <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>, <a class="el" href="a06737.html#l00437">traverseRender()</a>, <a class="el" href="a06688.html#l00145">NL3D::CVegetableBlendLayerModel::traverseRender()</a>, <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>, <a class="el" href="a06001.html#l00330">NL3D::CMeshInstance::traverseRender()</a>, <a class="el" href="a05870.html#l00257">NL3D::CLandscapeModel::traverseRender()</a>, <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>, <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>, <a class="el" href="a06304.html#l00112">NL3D::CQuadGridClipManager::updateClustersFromCamera()</a>, <a class="el" href="a06393.html#l01872">NL3D::CSkeletonModel::updateShadowMap()</a>, <a class="el" href="a06001.html#l00319">NL3D::CMeshInstance::updateShadowMap()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, <a class="el" href="a06393.html#l00123">NL3D::CSkeletonModel::~CSkeletonModel()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>00105 {<span class="keywordflow">return</span> _OwnerScene;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_0" doxytag="NL3D::CWaterModel::getPivot" ></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"> <a class="el" href="a03128.html">CVector</a> NL3D::ITransformable::getPivot </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00255">255</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00256 {
+00257 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00258 <span class="keywordflow">return</span> _Pivot.Value;
+00259 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_1" doxytag="NL3D::CWaterModel::getPivot" ></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::ITransformable::getPivot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pivot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00224">224</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00169">NL3D::CTransformableUser::getPivot()</a>.
+<p>
+<div class="fragment"><pre>00225 {
+00226 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00227 pivot= _Pivot.Value;
+00228 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee0" doxytag="NL3D::CWaterModel::getPivotValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getPivotValueName </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><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00117">117</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00118 {
+00119 <span class="keywordflow">return</span> <span class="stringliteral">"pivot"</span>;
+00120 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_2" doxytag="NL3D::CWaterModel::getPos" ></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"> <a class="el" href="a03128.html">CVector</a> NL3D::ITransformable::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00231">231</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06737.html#l00117">getHeight()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, and <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00232 {
+00233 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00234 <span class="keywordflow">return</span> _Pos.Value;
+00235 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_3" doxytag="NL3D::CWaterModel::getPos" ></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::ITransformable::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00200">200</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00149">NL3D::CTransformableUser::getPos()</a>, <a class="el" href="a06350.html#l01105">NL3D::CInstanceGroup::getPos()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>.
+<p>
+<div class="fragment"><pre>00201 {
+00202 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00203 pos= _Pos.Value;
+00204 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee1" doxytag="NL3D::CWaterModel::getPosValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getPosValueName </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><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00097">97</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00098 {
+00099 <span class="keywordflow">return</span> <span class="stringliteral">"pos"</span>;
+00100 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_6" doxytag="NL3D::CWaterModel::getReceiverBBox" ></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::CTransform::getReceiverBBox </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02156.html">CAABBox</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bbox</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For receivers. get the World Instance bbox that includes the receiver.
+<p>
+Reimplemented in <a class="el" href="a02713.html#NL3D_1_1CLandscapeModelz282_0">NL3D::CLandscapeModel</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l01328">1328</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a05385.html#l00066">NLMISC::CAABBox::setCenter()</a>, and <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00223">NL3D::CShadowMapManager::addShadowReceiver()</a>.
+<p>
+<div class="fragment"><pre>01329 {
+01330 bbox.setCenter(CVector::Null);
+01331 bbox.setHalfSize(CVector::Null);
+01332 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_7" doxytag="NL3D::CWaterModel::getReceiverRenderWorldMatrix" ></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 const <a class="el" href="a02851.html">CMatrix</a>&amp; NL3D::CTransform::getReceiverRenderWorldMatrix </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For receivers. Retrieve the WorldMatrix of the model used for <a class="el" href="a02434.html#NL3D_1_1IDrivera51">IDriver::render()</a>. By default it returns <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix()</a>. The exception is the Landscape and his "ZBuffer Problem" management.
+<p>
+Reimplemented in <a class="el" href="a02713.html#NL3D_1_1CLandscapeModelz282_1">NL3D::CLandscapeModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00511">511</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>.
+<p>
+<div class="fragment"><pre>00511 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>();}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypea8" doxytag="NL3D::CWaterModel::getRefCount" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a04558.html#a14">sint</a>&amp; NLMISC::CRefCount::getRefCount </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06402.html#l00070">70</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>.
+<p>
+References <a class="el" href="a06402.html#l00079">NLMISC::CRefCount::crefs</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+<div class="fragment"><pre>00071 {
+00072 <span class="keywordflow">return</span> <a class="code" href="a02209.html#NLGEORGES_1_1UTypeo0">crefs</a>;
+00073 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_4" doxytag="NL3D::CWaterModel::getRotEuler" ></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"> <a class="el" href="a03128.html">CVector</a> NL3D::ITransformable::getRotEuler </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotEuler mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00237">237</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00238 {
+00239 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler);
+00240 <span class="keywordflow">return</span> _RotEuler.Value;
+00241 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_5" doxytag="NL3D::CWaterModel::getRotEuler" ></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::ITransformable::getRotEuler </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotEuler mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00206">206</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00154">NL3D::CTransformableUser::getRotEuler()</a>.
+<p>
+<div class="fragment"><pre>00207 {
+00208 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler);
+00209 rot= _RotEuler.Value;
+00210 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee2" doxytag="NL3D::CWaterModel::getRotEulerValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getRotEulerValueName </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><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00102">102</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00103 {
+00104 <span class="keywordflow">return</span> <span class="stringliteral">"roteuler"</span>;
+00105 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_6" doxytag="NL3D::CWaterModel::getRotOrder" ></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"> <a class="el" href="a02851.html#NLMISC_1_1CMatrixw0">CMatrix::TRotOrder</a> NL3D::ITransformable::getRotOrder </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the current rotorder (information vlaid only when RotEuler mode).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00194">194</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00317">NL3D::ITransformable::_RotOrder</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00143">NL3D::CTransformableUser::getRotOrder()</a>.
+<p>
+<div class="fragment"><pre>00195 {
+00196 <span class="keywordflow">return</span> _RotOrder;
+00197 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_7" doxytag="NL3D::CWaterModel::getRotQuat" ></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"> <a class="el" href="a03296.html">CQuat</a> NL3D::ITransformable::getRotQuat </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotQuat mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00243">243</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00244 {
+00245 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat);
+00246 <span class="keywordflow">return</span> _RotQuat.Value;
+00247 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_8" doxytag="NL3D::CWaterModel::getRotQuat" ></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::ITransformable::getRotQuat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03296.html">CQuat</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>quat</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotQuat mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00212">212</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00159">NL3D::CTransformableUser::getRotQuat()</a>, and <a class="el" href="a06350.html#l01114">NL3D::CInstanceGroup::getRotQuat()</a>.
+<p>
+<div class="fragment"><pre>00213 {
+00214 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat);
+00215 quat= _RotQuat.Value;
+00216 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee3" doxytag="NL3D::CWaterModel::getRotQuatValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getRotQuatValueName </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><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00107">107</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00108 {
+00109 <span class="keywordflow">return</span> <span class="stringliteral">"rotquat"</span>;
+00110 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_9" doxytag="NL3D::CWaterModel::getScale" ></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"> <a class="el" href="a03128.html">CVector</a> NL3D::ITransformable::getScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00249">249</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00250 {
+00251 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00252 <span class="keywordflow">return</span> _Scale.Value;
+00253 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_10" doxytag="NL3D::CWaterModel::getScale" ></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::ITransformable::getScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>scale</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00218">218</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00155">NL3D::CBone::compute()</a>, and <a class="el" href="a06577.html#l00164">NL3D::CTransformableUser::getScale()</a>.
+<p>
+<div class="fragment"><pre>00219 {
+00220 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00221 scale= _Scale.Value;
+00222 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee4" doxytag="NL3D::CWaterModel::getScaleValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getScaleValueName </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><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00112">112</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00113 {
+00114 <span class="keywordflow">return</span> <span class="stringliteral">"scale"</span>;
+00115 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_8" doxytag="NL3D::CWaterModel::getShadowMap" ></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 <a class="el" href="a03370.html">CShadowMap</a>* NL3D::CTransform::getShadowMap </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><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get The shadow Map result for receveing. If NULL, nothing is displayed.
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_2">NL3D::CMeshInstance</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz934_2">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00495">495</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l01335">NL3D::CTransform::enableCastShadowMap()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>, and <a class="el" href="a06372.html#l00880">NL3D::CShadowMapManager::selectShadowMapsToGenerate()</a>.
+<p>
+<div class="fragment"><pre>00495 {<span class="keywordflow">return</span> NULL;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelb4" doxytag="NL3D::CWaterModel::getShowWhenLODSticked" ></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 NL3D::CTransform::getShowWhenLODSticked </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, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Test if obj must be displayed when sticked to an object displayed as a LOD (example: sword in hand of a character displayed as a LOD state).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00680">680</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00746">NL3D::CTransform::_ForceCLodSticked</a>.
+<p>
+Referenced by <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>.
+<p>
+<div class="fragment"><pre>00680 { <span class="keywordflow">return</span> _ForceCLodSticked; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela22" doxytag="NL3D::CWaterModel::getSkeletonModel" ></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"> <a class="el" href="a03399.html">CSkeletonModel</a>* NL3D::CTransform::getSkeletonModel </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the skeleton model. Returnr NULL in normal mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00205">205</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>.
+<p>
+Referenced by <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06011.html#l01843">NL3D::CMeshMRMSkinnedGeom::renderShadowSkinGeom()</a>, <a class="el" href="a06005.html#l03376">NL3D::CMeshMRMGeom::renderShadowSkinGeom()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, <a class="el" href="a06011.html#l00726">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>, and <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>.
+<p>
+<div class="fragment"><pre>00205 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_0" doxytag="NL3D::CWaterModel::getSkinBoneSphere" ></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 const std::vector&lt;<a class="el" href="a02291.html">NLMISC::CBSphere</a>&gt;* NL3D::CTransform::getSkinBoneSphere </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, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL.
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_0">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_0">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00584">584</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00584 {<span class="keywordflow">return</span> NULL;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_1" doxytag="NL3D::CWaterModel::getSkinBoneUsage" ></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 const std::vector&lt;<a class="el" href="a04558.html#a10">sint32</a>&gt;* NL3D::CTransform::getSkinBoneUsage </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, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return the list of bone (correct skeleton index) used by the skins (NB: without the parents of the bone). NB: if an index is -1, it means that the skin bone has not been found in the skeleton (skip it) default is to return NULL.
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez461_0">NL3D::CMeshInstance</a>, <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_1">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_1">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00578">578</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01043">NL3D::CSkeletonModel::computeCLodVertexAlpha()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00578 {<span class="keywordflow">return</span> NULL;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_11" doxytag="NL3D::CWaterModel::getTransformMode" ></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"> <a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a> NL3D::ITransformable::getTransformMode </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the current transform mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00189">189</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00058">NL3D::ITransformable::TTransformMode</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, and <a class="el" href="a06577.html#l00138">NL3D::CTransformableUser::getTransformMode()</a>.
+<p>
+<div class="fragment"><pre>00190 {
+00191 <span class="keywordflow">return</span> _Mode;
+00192 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela23" doxytag="NL3D::CWaterModel::getUserClipping" ></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 NL3D::CTransform::getUserClipping </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> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the user clipping state.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01316">1316</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy30">NL3D::CTransform::UserClipping</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00132">NL3D::CTransformUser::getUserClipping()</a>.
+<p>
+<div class="fragment"><pre>01317 {
+01318 <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(UserClipping) != 0;
+01319 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_2" doxytag="NL3D::CWaterModel::getUserLightable" ></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 NL3D::CTransform::getUserLightable </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the UserLightable flag.
+<p>
+Definition at line <a class="el" href="a06569.html#l00347">347</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy27">NL3D::CTransform::IsUserLightable</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00183">NL3D::CTransformUser::getUserLightable()</a>.
+<p>
+<div class="fragment"><pre>00347 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsUserLightable)!=0;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_2" doxytag="NL3D::CWaterModel::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"> <a class="el" href="a03835.html">IAnimatedValue</a> * NL3D::ITransformable::getValue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+From <a class="el" href="a02197.html">IAnimatable</a>.
+<p>
+
+<p>
+Implements <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_2">NL3D::IAnimatable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_2">NL3D::CCamera</a>, and <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_3">NL3D::CParticleSystemModel</a>.
+<p>
+Definition at line <a class="el" href="a06574.html#l00058">58</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00059 {
+00060 <span class="comment">// what value ?</span>
+00061 <span class="keywordflow">switch</span> (valueId)
+00062 {
+00063 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>: <span class="keywordflow">return</span> &amp;_Pos;
+00064 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>: <span class="keywordflow">return</span> &amp;_RotEuler;
+00065 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>: <span class="keywordflow">return</span> &amp;_RotQuat;
+00066 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>: <span class="keywordflow">return</span> &amp;_Scale;
+00067 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>: <span class="keywordflow">return</span> &amp;_Pivot;
+00068 }
+00069
+00070 <span class="comment">// No, only ITrnasformable values!</span>
+00071 <a class="code" href="a04199.html#a12">nlstop</a>;
+00072 <span class="comment">// Deriver note: else call BaseClass::getValue(valueId);</span>
+00073
+00074 <span class="keywordflow">return</span> NULL;
+00075 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_3" doxytag="NL3D::CWaterModel::getValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getValueName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+From <a class="el" href="a02197.html">IAnimatable</a>.
+<p>
+
+<p>
+Implements <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_3">NL3D::IAnimatable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_3">NL3D::CCamera</a>, and <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_4">NL3D::CParticleSystemModel</a>.
+<p>
+Definition at line <a class="el" href="a06574.html#l00077">77</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a06574.html#l00117">NL3D::ITransformable::getPivotValueName()</a>, <a class="el" href="a06574.html#l00097">NL3D::ITransformable::getPosValueName()</a>, <a class="el" href="a06574.html#l00102">NL3D::ITransformable::getRotEulerValueName()</a>, <a class="el" href="a06574.html#l00107">NL3D::ITransformable::getRotQuatValueName()</a>, <a class="el" href="a06574.html#l00112">NL3D::ITransformable::getScaleValueName()</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00078 {
+00079 <span class="comment">// what value ?</span>
+00080 <span class="keywordflow">switch</span> (valueId)
+00081 {
+00082 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee1">getPosValueName</a> ();
+00083 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee2">getRotEulerValueName</a>();
+00084 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee3">getRotQuatValueName</a>();
+00085 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee4">getScaleValueName</a>();
+00086 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee0">getPivotValueName</a>();
+00087 }
+00088
+00089 <span class="comment">// No, only ITrnasformable values!</span>
+00090 <a class="code" href="a04199.html#a12">nlstop</a>;
+00091 <span class="comment">// Deriver note: else call BaseClass::getValueName(valueId);</span>
+00092
+00093 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00094 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela24" doxytag="NL3D::CWaterModel::getVisibility" ></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"> <a class="el" href="a02639.html#NL3D_1_1CHrcTravw3">CHrcTrav::TVisibility</a> NL3D::CTransform::getVisibility </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the local visibility state.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00203">203</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00146">NL3D::CTransformUser::getVisibility()</a>, <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>, <a class="el" href="a06013.html#l00159">NL3D::CMeshMRMSkinnedInstance::renderSkin()</a>, <a class="el" href="a06007.html#l00164">NL3D::CMeshMRMInstance::renderSkin()</a>, <a class="el" href="a06001.html#l00127">NL3D::CMeshInstance::renderSkin()</a>, <a class="el" href="a06148.html#l00516">NL3D::CParticleSystemModel::traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00203 {<span class="keywordflow">return</span> Visibility;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModela28" doxytag="NL3D::CWaterModel::getWaterHeightMapID" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CWaterModel::getWaterHeightMapID </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> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+inherited from <a class="el" href="a03957.html">UWaterInstance</a>
+<p>
+
+<p>
+Implements <a class="el" href="a03957.html#NL3D_1_1UWaterInstancea3">NL3D::UWaterInstance</a>.
+<p>
+Definition at line <a class="el" href="a06737.html#l00100">100</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06742.html#l00209">NL3D::CWaterShape::_WaterPoolID</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00101 {
+00102 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *ws = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+00103 <span class="keywordflow">return</span> ws-&gt;_WaterPoolID;
+00104 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela25" doxytag="NL3D::CWaterModel::getWorldMatrix" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">CMatrix</a>&amp; NL3D::CTransform::getWorldMatrix </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the worldMatrix that is computed at last Hrc pass
+<p>
+Definition at line <a class="el" href="a06569.html#l00299">299</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l02738">NL3D::CMeshMRMGeom::activeInstance()</a>, <a class="el" href="a05989.html#l02058">NL3D::CMeshGeom::activeInstance()</a>, <a class="el" href="a05901.html#l00151">NL3D::CLightingManager::addDynamicLight()</a>, <a class="el" href="a05530.html#l00243">NL3D::CCamera::buildCameraPyramid()</a>, <a class="el" href="a06148.html#l00490">NL3D::CParticleSystemModel::checkAgainstPyramid()</a>, <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06737.html#l01054">computeClippedPoly()</a>, <a class="el" href="a06393.html#l00972">NL3D::CSkeletonModel::computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06372.html#l00595">NL3D::CShadowMapManager::computeShadowDirection()</a>, <a class="el" href="a06737.html#l01026">computeSimpleClippedPoly()</a>, <a class="el" href="a06001.html#l00352">NL3D::CMeshInstance::computeWorldBBoxForShadow()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06737.html#l01170">doSimpleRender()</a>, <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a06570.html#l00316">NL3D::CTransformShape::getLightHotSpotInWorld()</a>, <a class="el" href="a06569.html#l00511">NL3D::CTransform::getReceiverRenderWorldMatrix()</a>, <a class="el" href="a05901.html#l00231">NL3D::CLightingManager::insertStaticLightedModel()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>, <a class="el" href="a06148.html#l00328">NL3D::CParticleSystemModel::refreshRscDeletion()</a>, <a class="el" href="a06152.html#l00287">NL3D::CParticleSystemShape::render()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06393.html#l01295">NL3D::CSkeletonModel::renderCLod()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06016.html#l00446">NL3D::CMeshMultiLod::renderMeshGeom()</a>, <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a06358.html#l00326">NL3D::CSegRemanence::samplePos()</a>, <a class="el" href="a06372.html#l00880">NL3D::CShadowMapManager::selectShadowMapsToGenerate()</a>, <a class="el" href="a06024.html#l00228">NL3D::CMeshVPWindTree::setupPerInstanceConstants()</a>, <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, <a class="el" href="a06737.html#l00998">NL3D::CWaveMakerModel::traverseAnimDetail()</a>, <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>, <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>, <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>, <a class="el" href="a06737.html#l00437">traverseRender()</a>, <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>, and <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>.
+<p>
+<div class="fragment"><pre>00299 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela26" doxytag="NL3D::CWaterModel::heritVisibility" ></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::CTransform::heritVisibility </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+herit the visibility from his father. (default behavior).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00287">287</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00139">NL3D::CTransformUser::heritVisibility()</a>.
+<p>
+<div class="fragment"><pre>00288 {
+00289 <span class="comment">// Optim: do nothing if already set</span>
+00290 <span class="keywordflow">if</span>(Visibility!= CHrcTrav::Herit)
+00291 {
+00292 _TransformDirty= <span class="keyword">true</span>;
+00293 Visibility= CHrcTrav::Herit;
+00294 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span>
+00295 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>())
+00296 {
+00297 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel);
+00298 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;dirtSkinRenderLists();
+00299 }
+00300 }
+00301 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela27" doxytag="NL3D::CWaterModel::hide" ></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::CTransform::hide </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Hide the object and his sons.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00223">223</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00113">NL3D::CTransformUser::hide()</a>, <a class="el" href="a05875.html#l00158">NL3D::CLandscapeUser::hide()</a>, <a class="el" href="a06250.html#l00225">NL3D::CPSMesh::newElement()</a>, and <a class="el" href="a06250.html#l00295">NL3D::CPSMesh::updatePos()</a>.
+<p>
+<div class="fragment"><pre>00224 {
+00225 <span class="comment">// Optim: do nothing if already set</span>
+00226 <span class="keywordflow">if</span>(Visibility!= CHrcTrav::Hide)
+00227 {
+00228 _TransformDirty= <span class="keyword">true</span>;
+00229 Visibility= CHrcTrav::Hide;
+00230 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span>
+00231 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>())
+00232 {
+00233 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel);
+00234 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;dirtSkinRenderLists();
+00235 }
+00236 }
+00237 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_0" doxytag="NL3D::CWaterModel::hrcGetChild" ></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"> <a class="el" href="a02316.html">CTransform</a> * NL3D::CTransform::hrcGetChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>index</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01202">1202</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00699">NL3D::CTransform::_HrcSons</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05705.html#l00135">NL3D::CFastPtrList&lt; CTransform &gt;::size()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00786">NL3D::CTransform::traverseHrc()</a>, <a class="el" href="a06341.html#l00043">NL3D::CRootModel::traverseHrc()</a>, <a class="el" href="a05431.html#l00099">NL3D::CAnimDetailTrav::traverseHrcRecurs()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>01203 {
+01204 <a class="code" href="a04199.html#a6">nlassert</a>(index &lt; _HrcSons.size());
+01205 <span class="keywordflow">return</span> (const_cast&lt;CTransform*&gt;(<span class="keyword">this</span>))-&gt;_HrcSons.begin()[<a class="code" href="a04223.html#a566">index</a>];
+01206 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_1" doxytag="NL3D::CWaterModel::hrcGetNumChildren" ></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"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CTransform::hrcGetNumChildren </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00220">220</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00699">NL3D::CTransform::_HrcSons</a>, <a class="el" href="a05705.html#l00135">NL3D::CFastPtrList&lt; CTransform &gt;::size()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00786">NL3D::CTransform::traverseHrc()</a>, <a class="el" href="a06341.html#l00043">NL3D::CRootModel::traverseHrc()</a>, <a class="el" href="a05431.html#l00099">NL3D::CAnimDetailTrav::traverseHrcRecurs()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>00220 {<span class="keywordflow">return</span> _HrcSons.size();}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_2" doxytag="NL3D::CWaterModel::hrcGetParent" ></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"> <a class="el" href="a02316.html">CTransform</a>* NL3D::CTransform::hrcGetParent </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00218">218</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>.
+<p>
+Referenced by <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>.
+<p>
+<div class="fragment"><pre>00218 {<span class="keywordflow">return</span> _HrcParent;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_3" doxytag="NL3D::CWaterModel::hrcLinkSon" ></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::CTransform::hrcLinkSon </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>son</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+link son to this in Hierarchy traversal NB: link does nothing if the son node is HRC frozen
+<p>
+Definition at line <a class="el" href="a06568.html#l01151">1151</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00741">NL3D::CTransform::_FreezeHRCState</a>, <a class="el" href="a06569.html#l00698">NL3D::CTransform::_HrcNode</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06569.html#l00701">NL3D::CTransform::_HrcParentUnfreeze</a>, <a class="el" href="a06569.html#l00699">NL3D::CTransform::_HrcSons</a>, <a class="el" href="a06569.html#l00845">NL3D::CTransform::_WorldDate</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, and <a class="el" href="a05705.html#l00128">NL3D::CFastPtrList&lt; CTransform &gt;::insert()</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06350.html#l01123">NL3D::CInstanceGroup::linkRoot()</a>, <a class="el" href="a06568.html#l01380">NL3D::CTransform::setForceClipRoot()</a>, <a class="el" href="a06393.html#l00543">NL3D::CSkeletonModel::stickObjectEx()</a>, and <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>.
+<p>
+<div class="fragment"><pre>01152 {
+01153 <span class="keywordflow">if</span>(!son)
+01154 <span class="keywordflow">return</span>;
+01155
+01156 <span class="comment">// If not unfrozen, can't link</span>
+01157 <span class="keywordflow">if</span> (son-&gt;_FreezeHRCState != CTransform::FreezeHRCStateDisabled)
+01158 <span class="keywordflow">return</span>;
+01159
+01160 <span class="comment">// no-op if already me.</span>
+01161 <span class="keywordflow">if</span>(son-&gt;_HrcParent==<span class="keyword">this</span>)
+01162 <span class="keywordflow">return</span>;
+01163
+01164 <span class="comment">// unlink from anyone</span>
+01165 son-&gt;hrcUnlink();
+01166
+01167 <span class="comment">// link son to me</span>
+01168 _HrcSons.insert(son, &amp;son-&gt;_HrcNode);
+01169
+01170 <span class="comment">// link me to son</span>
+01171 son-&gt;_HrcParent= <span class="keyword">this</span>;
+01172
+01173 <span class="comment">// Backup parent</span>
+01174 son-&gt;_HrcParentUnfreeze= <span class="keyword">this</span>;
+01175
+01176 <span class="comment">// my son should recompute his worldMatrix!</span>
+01177 son-&gt;_WorldDate= -1;
+01178 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_4" doxytag="NL3D::CWaterModel::hrcUnlink" ></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::CTransform::hrcUnlink </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+unlink this from any Father in Hrc. No-op if no parent NB: unlink does nothing if the node is HRC frozen
+<p>
+Definition at line <a class="el" href="a06568.html#l01181">1181</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00698">NL3D::CTransform::_HrcNode</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06569.html#l00701">NL3D::CTransform::_HrcParentUnfreeze</a>, <a class="el" href="a06569.html#l00845">NL3D::CTransform::_WorldDate</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05704.html#l00037">NL3D::CFastPtrListNode::unlink()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06348.html#l00249">NL3D::CScene::initDefaultRoots()</a>, <a class="el" href="a06348.html#l00277">NL3D::CScene::initQuadGridClipManager()</a>, <a class="el" href="a06568.html#l01380">NL3D::CTransform::setForceClipRoot()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>01182 {
+01183 <span class="comment">// no-op if already NULL</span>
+01184 <span class="keywordflow">if</span>(_HrcParent==NULL)
+01185 <span class="keywordflow">return</span>;
+01186
+01187 <span class="comment">// if ForceClipRoot flag is set, then the fx can't be linked elsewhere in the hierarchy</span>
+01188 <a class="code" href="a04199.html#a6">nlassert</a>(!<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot));
+01189
+01190 <span class="comment">// unlink my parent from me.</span>
+01191 _HrcNode.unlink();
+01192
+01193 <span class="comment">// unlink me from parent</span>
+01194 _HrcParent= NULL;
+01195 _HrcParentUnfreeze= NULL;
+01196
+01197 <span class="comment">// I should recompute my worldMatrix (well not usefull since not linked, but still do it...)</span>
+01198 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a>= -1;
+01199 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModela32" doxytag="NL3D::CWaterModel::init" ></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::CWaterModel::init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00064">64</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+References <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>.
+<p>
+Referenced by <a class="el" href="a06741.html#l00327">NL3D::CWaterShape::createInstance()</a>.
+<p>
+<div class="fragment"><pre>00065 {
+00066 <a class="code" href="a03721.html#NL3D_1_1CWaterModeld0">updateDiffuseMapMatrix</a>(<span class="keyword">true</span>);
+00067 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_0" doxytag="NL3D::CWaterModel::initModel" ></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::CTransform::initModel </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><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Extra init for a model. this method is called by the framework at the very end of <a class="el" href="a03348.html#NL3D_1_1CScenez804_0">CScene::createModel()</a> Warning! if the model is a <a class="el" href="a02537.html">CTransformShape</a>, then when <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_0">initModel()</a> is called, Shape and other related member/setup of <a class="el" href="a02539.html#NL3D_1_1IShapea1">IShape::createInstance()</a> are not yet done (because createModel() is called at the begining in createInstance()).<p>
+Because <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_0">initModel()</a> is called at the very end, deriver could implement anything like creating other models, but not deleting this model...<p>
+Default behavior is to do nothing.
+<p>
+Reimplemented in <a class="el" href="a02713.html#NL3D_1_1CLandscapeModela25">NL3D::CLandscapeModel</a>, <a class="el" href="a03093.html#NL3D_1_1CPointLightModelb6">NL3D::CPointLightModel</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelb8">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00214">214</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00894">NL3D::CTransform::_LoadBalancingGroup</a>, <a class="el" href="a05924.html#l00168">NL3D::CLoadBalancingTrav::getDefaultGroup()</a>, <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, and <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>.
+<p>
+Referenced by <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>.
+<p>
+<div class="fragment"><pre>00215 {
+00216 <span class="comment">// assign me to the default group</span>
+00217 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1049_0">_LoadBalancingGroup</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getLoadBalancingTrav().getDefaultGroup();
+00218 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_1" doxytag="NL3D::CWaterModel::isAnimDetailable" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isAnimDetailable </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the model is animDetailable (ie added to the animDetail list if visible)
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00440">440</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy5">NL3D::CTransform::IsAnimDetailable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00440 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsAnimDetailable);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_3" doxytag="NL3D::CWaterModel::isBigLightable" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isBigLightable </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the lighting Manager must take into account the bbox of the transform. Default behavior is false. Deriver must call <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1035_0">setIsBigLightable()</a> at initialisation to change it.
+<p>
+Definition at line <a class="el" href="a06569.html#l00365">365</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy6">NL3D::CTransform::IsBigLightable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06570.html#l00316">NL3D::CTransformShape::getLightHotSpotInWorld()</a>.
+<p>
+<div class="fragment"><pre>00365 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsBigLightable);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela28" doxytag="NL3D::CWaterModel::isClipVisible" ></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 NL3D::CTransform::isClipVisible </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+tells if the transform has been clipped in the clip traversal.
+<p>
+Definition at line <a class="el" href="a06569.html#l00313">313</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00867">NL3D::CTransform::_Visible</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06393.html#l00972">NL3D::CSkeletonModel::computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l01620">NL3D::CSkeletonModel::computeRenderedBBox()</a>, <a class="el" href="a06573.html#l00204">NL3D::CTransformUser::getLastClippedState()</a>, <a class="el" href="a06393.html#l00374">NL3D::CSkeletonModel::isBoneComputed()</a>, <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, and <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00314 {
+00315 <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>;
+00316 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_2" doxytag="NL3D::CWaterModel::isCluster" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isCluster </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the <a class="el" href="a02316.html">CTransform</a> can be casted to a <a class="el" href="a02362.html">CCluster</a>
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00451">451</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy7">NL3D::CTransform::IsCluster</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>.
+<p>
+<div class="fragment"><pre>00451 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsCluster);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_9" doxytag="NL3D::CWaterModel::isGeneratingShadowMap" ></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 NL3D::CTransform::isGeneratingShadowMap </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+true if the instance cast shadow. By default false
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00515">515</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy13">NL3D::CTransform::IsGeneratingShadowMap</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, and <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00515 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsGeneratingShadowMap)!=0;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela29" doxytag="NL3D::CWaterModel::isHrcVisible" ></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 NL3D::CTransform::isHrcVisible </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+tells if the transform has been determined as visible in the hrc traversal
+<p>
+Reimplemented in <a class="el" href="a03093.html#NL3D_1_1CPointLightModeld0">NL3D::CPointLightModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00306">306</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00844">NL3D::CTransform::_WorldVis</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06393.html#l01987">NL3D::CSkeletonModel::computeWorldBBoxForShadow()</a>, <a class="el" href="a06001.html#l00352">NL3D::CMeshInstance::computeWorldBBoxForShadow()</a>, <a class="el" href="a06573.html#l00198">NL3D::CTransformUser::getLastWorldVisState()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, and <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00307 {
+00308 <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>;
+00309 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_4" doxytag="NL3D::CWaterModel::isLightable" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isLightable </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+true if the model can be lighted (such as <a class="el" href="a02873.html">CMeshBaseInstance</a>) Default behavior is false. Deriver must use setIsLightable(true) method if the instance can be lighted. <dl compact><dt><b>Returns:</b></dt><dd>0 if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_2">getUserLightable()</a> is false, or if the model can't be lighted at all. else return a non-zero value</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00337">337</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy9">NL3D::CTransform::IsFinalLightable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>, <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>.
+<p>
+<div class="fragment"><pre>00337 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsFinalLightable);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela30" doxytag="NL3D::CWaterModel::isLinkToQuadCluster" ></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 NL3D::CTransformShape::isLinkToQuadCluster </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+true if the model is linked to a quadCluster
+<p>
+
+<p>
+Definition at line <a class="el" href="a06571.html#l00141">141</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+References <a class="el" href="a06571.html#l00196">NL3D::CTransformShape::_QuadClusterListNode</a>, and <a class="el" href="a05705.html#l00055">NL3D::CFastPtrListNode::isLinked()</a>.
+<p>
+<div class="fragment"><pre>00141 {<span class="keywordflow">return</span> _QuadClusterListNode.isLinked();}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_3" doxytag="NL3D::CWaterModel::isLoadBalancable" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isLoadBalancable </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the model is loadBalancable (ie added to the loadBalancing list if visible)
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00442">442</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy15">NL3D::CTransform::IsLoadBalancable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>.
+<p>
+<div class="fragment"><pre>00442 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsLoadBalancable);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_4" doxytag="NL3D::CWaterModel::isMeshBaseInstance" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isMeshBaseInstance </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the <a class="el" href="a02316.html">CTransform</a> can be casted to a <a class="el" href="a02873.html">CMeshBaseInstance</a>
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00447">447</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy16">NL3D::CTransform::IsMeshBaseInstance</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05828.html#l00131">NL3D::CInstanceUser::enableAsyncTextureMode()</a>, <a class="el" href="a05828.html#l00171">NL3D::CInstanceUser::getAsyncTextureDistance()</a>, <a class="el" href="a05828.html#l00139">NL3D::CInstanceUser::getAsyncTextureMode()</a>, <a class="el" href="a05828.html#l00187">NL3D::CInstanceUser::isAsyncTextureDirty()</a>, <a class="el" href="a05828.html#l00155">NL3D::CInstanceUser::isAsyncTextureReady()</a>, <a class="el" href="a05828.html#l00179">NL3D::CInstanceUser::setAsyncTextureDirty()</a>, <a class="el" href="a05828.html#l00163">NL3D::CInstanceUser::setAsyncTextureDistance()</a>, and <a class="el" href="a05828.html#l00147">NL3D::CInstanceUser::startAsyncTextureLoading()</a>.
+<p>
+<div class="fragment"><pre>00447 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsMeshBaseInstance);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_0" doxytag="NL3D::CWaterModel::isNeedUpdateFrozenStaticLightSetup" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isNeedUpdateFrozenStaticLightSetup </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, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the object has a FrozenStaticLightSetup not correclty updated.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00631">631</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy17">NL3D::CTransform::IsNeedUpdateFrozenStaticLightSetup</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00631 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsNeedUpdateFrozenStaticLightSetup);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_1" doxytag="NL3D::CWaterModel::isNeedUpdateLighting" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isNeedUpdateLighting </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, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the object needs to updatelighting.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00629">629</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy18">NL3D::CTransform::IsNeedUpdateLighting</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, and <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00629 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsNeedUpdateLighting);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela31" doxytag="NL3D::CWaterModel::isOpaque" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isOpaque </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00173">173</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00239">NL3D::CTransformUser::isOpaque()</a>, <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00173 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsOpaque); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela32" doxytag="NL3D::CWaterModel::isQuadGridClipEnabled" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isQuadGridClipEnabled </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+special feature for <a class="el" href="a03287.html">CQuadGridClipManager</a>. return a non-zero value if true
+<p>
+Definition at line <a class="el" href="a06569.html#l00294">294</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy28">NL3D::CTransform::QuadGridClipEnabled</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>.
+<p>
+<div class="fragment"><pre>00294 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(QuadGridClipEnabled);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_5" doxytag="NL3D::CWaterModel::isRenderable" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isRenderable </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the model is renderable (ie something may appear on screen)
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00444">444</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy20">NL3D::CTransform::IsRenderable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>.
+<p>
+<div class="fragment"><pre>00444 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsRenderable);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1027_0" doxytag="NL3D::CWaterModel::isSkeleton" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isSkeleton </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return non-zero if I am a skeleton. if yes, static_cast&lt;CSkeletonModel*&gt; may be used
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00421">421</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy23">NL3D::CTransform::IsSkeleton</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>, and <a class="el" href="a05431.html#l00060">NL3D::CAnimDetailTrav::traverse()</a>.
+<p>
+<div class="fragment"><pre>00421 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsSkeleton);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_2" doxytag="NL3D::CWaterModel::isSkinnable" ></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 bool NL3D::CTransform::isSkinnable </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, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if the model can be skinned. called rarely.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez461_1">NL3D::CMeshInstance</a>, <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_2">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_2">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00567">567</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>.
+<p>
+<div class="fragment"><pre>00567 {<span class="keywordflow">return</span> <span class="keyword">false</span>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1027_1" doxytag="NL3D::CWaterModel::isSkinned" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isSkinned </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the model is skinned onto a skeleton.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00423">423</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy24">NL3D::CTransform::IsSkinned</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06568.html#l00287">NL3D::CTransform::heritVisibility()</a>, <a class="el" href="a06568.html#l00223">NL3D::CTransform::hide()</a>, <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, <a class="el" href="a06011.html#l00726">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06568.html#l00590">NL3D::CTransform::setIsForceAnimDetail()</a>, <a class="el" href="a06568.html#l00255">NL3D::CTransform::setOpacity()</a>, <a class="el" href="a06568.html#l00240">NL3D::CTransform::setTransparency()</a>, <a class="el" href="a06568.html#l00271">NL3D::CTransform::show()</a>, <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>00423 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsSkinned);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela33" doxytag="NL3D::CWaterModel::isStarted" ></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 bool NL3D::CTransformShape::isStarted </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez886_1">NL3D::CSegRemanence</a>.
+<p>
+Definition at line <a class="el" href="a06571.html#l00132">132</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a05829.html#l00120">NL3D::CInstanceUser::isStarted()</a>.
+<p>
+<div class="fragment"><pre>00132 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez5_0" doxytag="NL3D::CWaterModel::isTouched" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::IAnimatable::isTouched </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return non 0 int if the value as been touched else 0.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>valueId</em>&nbsp;</td><td>is the animated value ID in the object we want to test the touch flag. or it may be an OwnerBit.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00184">184</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05434.html#l00206">NL3D::IAnimatable::_BitSet</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06575.html#l00334">NL3D::ITransformable::needCompute()</a>, <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, and <a class="el" href="a05437.html#l00197">NL3D::CAnimatedMaterial::update()</a>.
+<p>
+<div class="fragment"><pre>00185 {
+00186 <span class="keywordflow">return</span> _BitSet&amp;(1&lt;&lt;valueId);
+00187 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_6" doxytag="NL3D::CWaterModel::isTransformShape" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isTransformShape </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+non-zero if the <a class="el" href="a02316.html">CTransform</a> can be casted to a <a class="el" href="a02537.html">CTransformShape</a>
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00449">449</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy25">NL3D::CTransform::IsTransformShape</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>.
+<p>
+<div class="fragment"><pre>00449 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsTransformShape);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela34" doxytag="NL3D::CWaterModel::isTransparent" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::isTransparent </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><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00174">174</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00244">NL3D::CTransformUser::isTransparent()</a>, <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00174 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsTransparent); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1085_0" doxytag="NL3D::CWaterModel::lookAt" ></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::ITransformable::lookAt </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>eye</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>target</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>roll</em> = 0.f</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup Matrix by the lookAt method. Work only in DirectMatrix mode and RotQuat mode (not euler...).<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>eye</em>&nbsp;</td><td>is the coordinate of the object. </td></tr>
+ <tr><td valign=top><em>target</em>&nbsp;</td><td>is the point the object look at. </td></tr>
+ <tr><td valign=top><em>roll</em>&nbsp;</td><td>is the roll angle in radian along the object's Y axis.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00169">169</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">NL3D::ITransformable::DirectMatrix</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a05972.html#l00353">NLMISC::CMatrix::getRot()</a>, <a class="el" href="a05972.html#l00200">NLMISC::CMatrix::identity()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06682.html#l00119">NLMISC::CVector::normalize()</a>, <a class="el" href="a05972.html#l00538">NLMISC::CMatrix::rotateY()</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a06575.html#l00174">NL3D::ITransformable::setMatrix()</a>, <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</a>, <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>, <a class="el" href="a06575.html#l00138">NL3D::ITransformable::setRotQuat()</a>, and <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00206">NL3D::CTransformableUser::lookAt()</a>, and <a class="el" href="a05530.html#l00164">NL3D::CCamera::update()</a>.
+<p>
+<div class="fragment"><pre>00170 {
+00171 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat || _Mode==DirectMatrix);
+00172
+00173 <span class="comment">// Roll matrix</span>
+00174 <a class="code" href="a02851.html">CMatrix</a> rollMT;
+00175 rollMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+00176 <span class="keywordflow">if</span> (roll!=0.f)
+00177 rollMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_3">rotateY</a> (roll);
+00178
+00179 <span class="comment">// Make the target base</span>
+00180 CVector j=target;
+00181 j-=eye;
+00182 j.normalize();
+00183 CVector i=j^CVector (0,0,1.f);
+00184 CVector k=i^j;
+00185 k.normalize();
+00186 i=j^k;
+00187 i.normalize();
+00188
+00189 <span class="comment">// Make the target matrix</span>
+00190 <a class="code" href="a02851.html">CMatrix</a> targetMT;
+00191 targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+00192 targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a> (i, j, k);
+00193 targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_4">setPos</a> (eye);
+00194
+00195 <span class="comment">// Compose matrix</span>
+00196 targetMT*=rollMT;
+00197
+00198 <span class="comment">// Set the matrix</span>
+00199 <span class="keywordflow">if</span>(_Mode==<a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>)
+00200 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_0">setMatrix</a> (targetMT);
+00201 <span class="keywordflow">else</span>
+00202 {
+00203 <span class="comment">// transfrom to quaternion mode.</span>
+00204 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(1,1,1));
+00205 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_2">setPivot</a>(CVector::Null);
+00206 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_4">setPos</a>(targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>());
+00207 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_7">setRotQuat</a>(targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_11">getRot</a>());
+00208 }
+00209 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_10" doxytag="NL3D::CWaterModel::modelCanCastShadowMap" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::modelCanCastShadowMap </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+true if the model provide a method to support shadowMap generation
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00480">480</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy21">NL3D::CTransform::IsShadowMapCaster</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01335">NL3D::CTransform::enableCastShadowMap()</a>.
+<p>
+<div class="fragment"><pre>00480 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsShadowMapCaster);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_11" doxytag="NL3D::CWaterModel::modelCanReceiveShadowMap" ></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"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CTransform::modelCanReceiveShadowMap </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+true if the model provide a method to support shadowMap receiving
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00482">482</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy22">NL3D::CTransform::IsShadowMapReceiver</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06569.html#l00475">NL3D::CTransform::enableReceiveShadowMap()</a>.
+<p>
+<div class="fragment"><pre>00482 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsShadowMapReceiver);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1057_1" doxytag="NL3D::CWaterModel::profileRender" ></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::CTransformShape::profileRender </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><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called at RenderTrav to profile current render. no-op per default.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1017_1">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00248">248</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06330.html#l00145">NL3D::CRenderTrav::isCurrentPassOpaque()</a>, and <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>.
+<p>
+<div class="fragment"><pre>00249 {
+00250 <span class="comment">// profile the shape.</span>
+00251 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>)
+00252 {
+00253 CRenderTrav &amp;rdrTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav();
+00254 <span class="keywordtype">bool</span> currentPassOpaque= rdrTrav.isCurrentPassOpaque();
+00255
+00256 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>-&gt;profileSceneRender( &amp;rdrTrav, <span class="keyword">this</span>, currentPassOpaque );
+00257 }
+00258 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_12" doxytag="NL3D::CWaterModel::receiveShadowMap" ></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 NL3D::CTransform::receiveShadowMap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03370.html">CShadowMap</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>shadowMap</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>casterPos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>shadowMat</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For receivers. Modulate the Object with a ShadowMap. The model shoud render in the scene driver a version of its geometry simplified, and modulate the background with shadowColor. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>casterPos</em>&nbsp;</td><td>the world position of the caster model. </td></tr>
+ <tr><td valign=top><em>shadowMat</em>&nbsp;</td><td>a correclty setuped material with good ShadowColor, ready to be rendered.</td></tr>
+ </table>
+</dl>
+
+<p>
+Reimplemented in <a class="el" href="a02713.html#NL3D_1_1CLandscapeModelz282_2">NL3D::CLandscapeModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00506">506</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>.
+<p>
+<div class="fragment"><pre>00506 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModele6" doxytag="NL3D::CWaterModel::registerBasic" ></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::CWaterModel::registerBasic </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><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Call at the begining of the program, to register the model.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CTransformShapee5">NL3D::CTransformShape</a>.
+<p>
+Definition at line <a class="el" href="a06737.html#l00075">75</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06571.html#l00054">NL3D::TransformShapeId</a>, and <a class="el" href="a06742.html#l00059">NL3D::WaterModelClassId</a>.
+<p>
+<div class="fragment"><pre>00076 {
+00077 CScene::registerModel(WaterModelClassId, TransformShapeId, CWaterModel::creator);
+00078 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1023_0" doxytag="NL3D::CWaterModel::registerToChannelMixer" ></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::CTransform::registerToChannelMixer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>chanMixer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>prefix</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+register transform channels (in global anim mode). <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela35">setChannelMixerOwnerShip</a></dd></dl>
+
+<p>
+Implements <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_4">NL3D::ITransformable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_4">NL3D::CCamera</a>, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_1">NL3D::CMeshBaseInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_6">NL3D::CParticleSystemModel</a>, <a class="el" href="a03357.html#NL3D_1_1CSegRemanencea34">NL3D::CSegRemanence</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz918_1">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00334">334</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a05433.html#l00037">NL3D::IAnimatable::addValue()</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00257">NL3D::CTransform::getChannelMixerOwnerShip()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy5">NL3D::CTransform::IsAnimDetailable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy12">NL3D::CTransform::IsForceAnimDetail</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06569.html#l00256">NL3D::CTransform::setChannelMixerOwnerShip()</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06177.html#l00073">NL3D::CPlayListUser::registerTransform()</a>.
+<p>
+<div class="fragment"><pre>00335 {
+00336 <span class="keywordflow">if</span> (<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela7">getChannelMixerOwnerShip</a>() &amp;&amp; chanMixer != _ChannelMixer)
+00337 {
+00338 <span class="keyword">delete</span> _ChannelMixer;
+00339 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela35">setChannelMixerOwnerShip</a>(<span class="keyword">false</span>);
+00340 }
+00341
+00342 <span class="comment">// Hey!! we are animated!!</span>
+00343 _ChannelMixer= chanMixer;
+00344
+00345 <span class="comment">// Update flag, if we must be inserted in AnimDetail</span>
+00346 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsAnimDetailable, _ChannelMixer || <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsForceAnimDetail) );
+00347
+00348 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span>
+00349 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>())
+00350 {
+00351 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel);
+00352 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;dirtSkinRenderLists();
+00353 }
+00354
+00355 <span class="comment">// For CTransfom, channels are not detailled.</span>
+00356 <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, PosValue, OwnerBit, prefix, <span class="keyword">false</span>);
+00357 <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, RotEulerValue, OwnerBit, prefix, <span class="keyword">false</span>);
+00358 <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, RotQuatValue, OwnerBit, prefix, <span class="keyword">false</span>);
+00359 <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, ScaleValue, OwnerBit, prefix, <span class="keyword">false</span>);
+00360 <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, PivotValue, OwnerBit, prefix, <span class="keyword">false</span>);
+00361
+00362 <span class="comment">// Deriver note: if necessary, call BaseClass::registerToChannelMixer(chanMixer, prefix);</span>
+00363 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_13" doxytag="NL3D::CWaterModel::renderIntoSkeletonShadowMap" ></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 NL3D::CTransform::renderIntoSkeletonShadowMap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03399.html">CSkeletonModel</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>rootSkeleton</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>castMat</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Special For Skeleton Caster. Render into the AuxDriver the mesh, within the current setuped Frustum/ViewMatrix. no-op by default, or if hidden in HRC!! <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>rootSkeleton</em>&nbsp;</td><td>the skeleton which is currently rendering its shadowMap</td></tr>
+ </table>
+</dl>
+
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_3">NL3D::CMeshInstance</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz934_3">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00527">527</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>.
+<p>
+<div class="fragment"><pre>00527 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_3" doxytag="NL3D::CWaterModel::renderShadowSkinGeom" ></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 <a class="el" href="a04558.html#a14">sint</a> NL3D::CTransform::renderShadowSkinGeom </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>remainingVertices</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>vbDest</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL.
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_3">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_3">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00612">612</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00612 {<span class="keywordflow">return</span> 0;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_4" doxytag="NL3D::CWaterModel::renderShadowSkinPrimitives" ></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 NL3D::CTransform::renderShadowSkinPrimitives </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>castMat</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>drv</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>baseVertex</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL.
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_4">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_4">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00613">613</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00613 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_5" doxytag="NL3D::CWaterModel::renderSkin" ></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 NL3D::CTransform::renderSkin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>alphaMRM</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It renders the skin with current ctx of the skeletonModel SkeletonModel has already setuped the Light and the modelMatrix in the driver. If the skin is a MRM, it is the skeleton which drives the MRM level with alphaMRM: [0,1] default is nop
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez461_2">NL3D::CMeshInstance</a>, <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_5">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_5">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00590">590</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+<div class="fragment"><pre>00590 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_6" doxytag="NL3D::CWaterModel::renderSkinGroupGeom" ></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 <a class="el" href="a04558.html#a14">sint</a> NL3D::CTransform::renderSkinGroupGeom </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>alphaMRM</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>remainingVertices</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>dest</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_11">supportSkinGrouping()</a>, called to transform the VBuffer, and store it into dest. <dl compact><dt><b>Returns:</b></dt><dd>number of vertices added to the VBuffer, or -1 if &gt; reaminingVertices</dd></dl>
+
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_6">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_6">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00601">601</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00601 {<span class="keywordflow">return</span> 0;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_7" doxytag="NL3D::CWaterModel::renderSkinGroupPrimitives" ></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 NL3D::CTransform::renderSkinGroupPrimitives </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>baseVertex</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::vector&lt; <a class="el" href="a03407.html">CSkinSpecularRdrPass</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>specularRdrPasses</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>skinIndex</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_11">supportSkinGrouping()</a>, called to render the primitives of the already skinned vertices (VB activated in the driver) Optionnaly, fill specRdrPasses with specular rdrPass to sort (used for specular grouping). <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>baseVertex</em>&nbsp;</td><td>value to add to each PBlock index.</td></tr>
+ </table>
+</dl>
+
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_7">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_7">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00606">606</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00606 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_8" doxytag="NL3D::CWaterModel::renderSkinGroupSpecularRdrPass" ></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 NL3D::CTransform::renderSkinGroupSpecularRdrPass </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rdrPass</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Render a specific specular renderPass returned by renderSkinGroupPrimitives.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_8">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_8">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00608">608</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00608 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_5" doxytag="NL3D::CWaterModel::resetLighting" ></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::CTransform::resetLighting </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+reset lights which influence this models. NB: the model is removed from all lights's list (except FrozenStaticLightSetup). Called by light rendering.<p>
+NB: the model is NOT removed from LightingManager (with eraseStaticLightedModel()).
+<p>
+Definition at line <a class="el" href="a06568.html#l00988">988</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a05894.html#l00079">NL3D::CLightContribution::FrozenStaticLightSetup</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy18">NL3D::CTransform::IsNeedUpdateLighting</a>, <a class="el" href="a06569.html#l00629">NL3D::CTransform::isNeedUpdateLighting()</a>, <a class="el" href="a05894.html#l00042">NL3D_MAX_LIGHT_CONTRIBUTION</a>, <a class="el" href="a05894.html#l00084">NL3D::CLightContribution::NumFrozenStaticLight</a>, <a class="el" href="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06179.html#l00418">NL3D::CPointLight::removeLightedModel()</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, <a class="el" href="a05894.html#l00069">NL3D::CLightContribution::TransformIterator</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05901.html#l00151">NL3D::CLightingManager::addDynamicLight()</a>, <a class="el" href="a06568.html#l01028">NL3D::CTransform::freezeStaticLightSetup()</a>, <a class="el" href="a06179.html#l00393">NL3D::CPointLight::resetLightedModels()</a>, <a class="el" href="a06568.html#l01061">NL3D::CTransform::unfreezeStaticLightSetup()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>00989 {
+00990 <span class="comment">// if the model is already isNeedUpdateLighting, his light setup is reseted.</span>
+00991 <span class="comment">// so no need to reset again</span>
+00992 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_1">isNeedUpdateLighting</a>())
+00993 <span class="keywordflow">return</span>;
+00994
+00995
+00996 <span class="comment">// For all light not in FrozenStaticLightSetup, remove me from their list</span>
+00997 <a class="code" href="a04558.html#a15">uint</a> startLight= 0;
+00998 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenStaticLightSetup)
+00999 {
+01000 startLight= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.NumFrozenStaticLight;
+01001 }
+01002
+01003 <span class="comment">// for all light in the list, remove me from their list.</span>
+01004 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=startLight; i&lt;<a class="code" href="a04471.html#a0">NL3D_MAX_LIGHT_CONTRIBUTION</a>; i++)
+01005 {
+01006 CPointLight *pl= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[i];
+01007 <span class="comment">// if end of list, break.</span>
+01008 <span class="keywordflow">if</span>(!pl)
+01009 <span class="keywordflow">break</span>;
+01010 <span class="keywordflow">else</span>
+01011 {
+01012 <span class="comment">// remove me from this light.</span>
+01013 pl-&gt;removeLightedModel(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.TransformIterator[i]);
+01014 }
+01015 }
+01016 <span class="comment">// empty the list.</span>
+01017 <span class="keywordflow">if</span>(startLight&lt;<a class="code" href="a04471.html#a0">NL3D_MAX_LIGHT_CONTRIBUTION</a>)
+01018 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[startLight]= NULL;
+01019
+01020
+01021 <span class="comment">// the model needs to update his lighting.</span>
+01022 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsNeedUpdateLighting, <span class="keyword">true</span>);
+01023
+01024 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez5_1" doxytag="NL3D::CWaterModel::resize" ></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::IAnimatable::resize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>count</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Change value count, bit are set to 0<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>count</em>&nbsp;</td><td>is the new value count.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00195">195</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05646.html#l00240">count</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>00196 {
+00197 <span class="comment">// with the "uint32 _BitSet" implementation, juste check the size is correct</span>
+00198 <a class="code" href="a04199.html#a6">nlassert</a>(count&lt;=32);
+00199 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_9" doxytag="NL3D::CWaterModel::setApplySkin" ></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::CTransform::setApplySkin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>state</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. called by <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_0">CSkeletonModel::bindSkin()</a> NB: _FatherSkeletonModel is valid when <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_9">setApplySkin()</a> is called The default behavior must be called: it sets the flag so <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned()</a> return the good thing
+<p>
+Reimplemented in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez461_3">NL3D::CMeshInstance</a>, <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_9">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_9">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00584">584</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy24">NL3D::CTransform::IsSkinned</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, and <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>.
+<p>
+<div class="fragment"><pre>00585 {
+00586 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsSkinned, state);
+00587 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela35" doxytag="NL3D::CWaterModel::setChannelMixerOwnerShip" ></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::CTransform::setChannelMixerOwnerShip </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>enable</em> = true </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This force gives this object ownership of the channel mixer it is registered to, so it will delete it when the dtor is called. It should be called AFTER this object has been registered to a channel mixer, because a new registration will broke the ownership. This is useful for automatic animations, when there's no owner of the channel mixer that could delete it.
+<p>
+Definition at line <a class="el" href="a06569.html#l00256">256</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy8">NL3D::CTransform::IsDeleteChannelMixer</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>, and <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>.
+<p>
+<div class="fragment"><pre>00256 { <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsDeleteChannelMixer, enable); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela36" doxytag="NL3D::CWaterModel::setClusterSystem" ></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::CTransform::setClusterSystem </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02671.html">CInstanceGroup</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pCS</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00912">912</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00737">NL3D::CTransform::_ClusterSystem</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a06348.html#l01268">NL3D::CScene::findCameraClusterSystemFromRay()</a>, and <a class="el" href="a06568.html#l01380">NL3D::CTransform::setForceClipRoot()</a>.
+<p>
+<div class="fragment"><pre>00913 {
+00914 <span class="keywordflow">if</span> (pCS != NULL)
+00915 {
+00916 <a class="code" href="a04199.html#a6">nlassert</a>(!<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot)); <span class="comment">// the transform must be linked to the root, and have not cluster system when this flag is set</span>
+00917 }
+00918 _ClusterSystem = pCS;
+00919 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela37" doxytag="NL3D::CWaterModel::setDistMax" ></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::CTransformShape::setDistMax </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>distMax</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06571.html#l00137">137</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>, and <a class="el" href="a05829.html#l00130">NL3D::CInstanceUser::setDistMax()</a>.
+<p>
+<div class="fragment"><pre>00137 { _DistMax = distMax; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela38" doxytag="NL3D::CWaterModel::setDontUnfreezeChildren" ></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::CTransform::setDontUnfreezeChildren </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00378">378</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00848">NL3D::CTransform::_DontUnfreezeChildren</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l00476">NL3D::CInstanceGroup::createRoot()</a>.
+<p>
+<div class="fragment"><pre>00379 {
+00380 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_4">_DontUnfreezeChildren</a> = val;
+00381 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez5_2" doxytag="NL3D::CWaterModel::setFather" ></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::IAnimatable::setFather </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02197.html">IAnimatable</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>father</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>fatherOwnerBit</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Say which (if any) <a class="el" href="a02197.html">IAnimatable</a> owns this one. This is important for Touch propagation. By this system, Fathers and ancestors know if they must check their sons (<a class="el" href="a02197.html#NL3D_1_1ITransformablez5_0">isTouched()</a> return true).<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>father</em>&nbsp;</td><td>the father we must inform of our update. </td></tr>
+ <tr><td valign=top><em>fatherOwnerBit</em>&nbsp;</td><td>What bit of father we must set when we are updated</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00153">153</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05434.html#l00208">NL3D::IAnimatable::_Father</a>, <a class="el" href="a05434.html#l00210">NL3D::IAnimatable::_FatherOwnerBit</a>, <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, and <a class="el" href="a06358.html#l00424">NL3D::CSegRemanence::setAnimatedMaterial()</a>.
+<p>
+<div class="fragment"><pre>00154 {
+00155 _Father= father; _FatherOwnerBit= fatherOwnerBit;
+00156
+00157 <span class="comment">// propagate the touch to the fathers.</span>
+00158 <a class="code" href="a02197.html#NL3D_1_1IAnimatabled0">propagateTouch</a>();
+00159 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformableb2" doxytag="NL3D::CWaterModel::setFlag" ></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::IAnimatable::setFlag </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This method set a bit in the bitset.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00239">239</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05434.html#l00206">NL3D::IAnimatable::_BitSet</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, and <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>.
+<p>
+<div class="fragment"><pre>00240 {
+00241 _BitSet|= (1&lt;&lt;valueId);
+00242 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela39" doxytag="NL3D::CWaterModel::setForceClipRoot" ></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::CTransform::setForceClipRoot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>forceClipRoot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Force the transform to always be attached to the root As a consequence, it can't be inserted into a cluster system (even the root cluster) and is thus always visible when in the frustum (not clusterized) NB : any call to setClusterSystem will cause an assertion when the flag is set NB : any call to hrcUnlink will cause an assertion when the flag is set (must remain linked to the root)
+<p>
+Definition at line <a class="el" href="a06568.html#l01380">1380</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00693">NL3D::CTransform::_OwnerScene</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, <a class="el" href="a06349.html#l00482">NL3D::CScene::getRoot()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, <a class="el" href="a06569.html#l00912">NL3D::CTransform::setClusterSystem()</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00259">NL3D::CTransformUser::setForceClipRoot()</a>.
+<p>
+<div class="fragment"><pre>01381 {
+01382 <span class="keywordflow">if</span> (forceClipRoot == (<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot) != 0)) <span class="keywordflow">return</span>;
+01383 <span class="keywordflow">if</span> (forceClipRoot)
+01384 {
+01385 <span class="comment">// unlink from previous father and link to the root</span>
+01386 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_4">hrcUnlink</a>();
+01387 <span class="keywordflow">if</span> (_OwnerScene)
+01388 {
+01389 _OwnerScene-&gt;getRoot()-&gt;hrcLinkSon(<span class="keyword">this</span>);
+01390 }
+01391 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela36">setClusterSystem</a>(NULL);
+01392 }
+01393 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(ForceClipRoot, forceClipRoot);
+01394 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_14" doxytag="NL3D::CWaterModel::setGeneratingShadowMap" ></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::CTransform::setGeneratingShadowMap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>state</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For ShadowMapManager. true if the model is rendering its ShadowMap this frame.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00514">514</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00470">NL3D::CTransform::canCastShadowMap()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy13">NL3D::CTransform::IsGeneratingShadowMap</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00215">NL3D::CShadowMapManager::addShadowCasterGenerate()</a>.
+<p>
+<div class="fragment"><pre>00514 {<span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>()) <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsGeneratingShadowMap, state);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_0" doxytag="NL3D::CWaterModel::setIsBigLightable" ></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::CTransform::setIsBigLightable </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must use this method with true to indicate the model is a big lightable.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00574">574</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy6">NL3D::CTransform::IsBigLightable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>.
+<p>
+<div class="fragment"><pre>00575 {
+00576 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsBigLightable, val);
+00577 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_1" doxytag="NL3D::CWaterModel::setIsCluster" ></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::CTransform::setIsCluster </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For <a class="el" href="a02362.html">CCluster</a> only.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00671">671</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy7">NL3D::CTransform::IsCluster</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00671 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsCluster, val);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_2" doxytag="NL3D::CWaterModel::setIsForceAnimDetail" ></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::CTransform::setIsForceAnimDetail </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must use this method with true if the model must be AnimDetail-ed whatever <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1023_0">registerToChannelMixer()</a> has been called or not
+<p>
+Definition at line <a class="el" href="a06568.html#l00590">590</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy5">NL3D::CTransform::IsAnimDetailable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy12">NL3D::CTransform::IsForceAnimDetail</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00591 {
+00592 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsForceAnimDetail, val );
+00593
+00594 <span class="comment">// Update flag, if we must be inserted in AnimDetail</span>
+00595 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsAnimDetailable, _ChannelMixer || <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsForceAnimDetail) );
+00596
+00597 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span>
+00598 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>())
+00599 {
+00600 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel);
+00601 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;dirtSkinRenderLists();
+00602 }
+00603 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_3" doxytag="NL3D::CWaterModel::setIsLightable" ></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::CTransform::setIsLightable </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must use this method with true to indicate the model support lighting.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00552">552</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy9">NL3D::CTransform::IsFinalLightable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy14">NL3D::CTransform::IsLightable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy27">NL3D::CTransform::IsUserLightable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>.
+<p>
+<div class="fragment"><pre>00553 {
+00554 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsLightable, val);
+00555 <span class="comment">// update IsFinalLightable</span>
+00556 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalLightable, (<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsLightable) &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsUserLightable)) );
+00557 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_4" doxytag="NL3D::CWaterModel::setIsLoadbalancable" ></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::CTransform::setIsLoadbalancable </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must use this method with true to indicate the model support loadBalancing.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00605">605</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy15">NL3D::CTransform::IsLoadBalancable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00606 {
+00607 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsLoadBalancable, val );
+00608 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_5" doxytag="NL3D::CWaterModel::setIsMeshBaseInstance" ></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::CTransform::setIsMeshBaseInstance </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For <a class="el" href="a02873.html">CMeshBaseInstance</a> only.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00667">667</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy16">NL3D::CTransform::IsMeshBaseInstance</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00667 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsMeshBaseInstance, val);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_6" doxytag="NL3D::CWaterModel::setIsRenderable" ></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::CTransform::setIsRenderable </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must use this method with true to indicate the model can be rendered. "can be rendered" means if object has to be inserted in RenderTrav list. eg: a mesh must be inserted in a render list, but not a light, or a NULL transform. The default is false.
+<p>
+Definition at line <a class="el" href="a06568.html#l00568">568</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy20">NL3D::CTransform::IsRenderable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00569 {
+00570 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsRenderable, val);
+00571 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_7" doxytag="NL3D::CWaterModel::setIsShadowMapCaster" ></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::CTransform::setIsShadowMapCaster </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ShadowMap.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00674">674</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy21">NL3D::CTransform::IsShadowMapCaster</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00674 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsShadowMapCaster, val);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_8" doxytag="NL3D::CWaterModel::setIsShadowMapReceiver" ></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::CTransform::setIsShadowMapReceiver </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must use this method with true to indicate the model is a big lightable.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00675">675</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy22">NL3D::CTransform::IsShadowMapReceiver</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00675 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsShadowMapReceiver, val);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_9" doxytag="NL3D::CWaterModel::setIsSkeleton" ></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::CTransform::setIsSkeleton </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For <a class="el" href="a03399.html">CSkeletonModel</a> only.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00579">579</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy23">NL3D::CTransform::IsSkeleton</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00580 {
+00581 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsSkeleton, val);
+00582 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_10" doxytag="NL3D::CWaterModel::setIsTransformShape" ></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::CTransform::setIsTransformShape </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For <a class="el" href="a02537.html">CTransformShape</a> only.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00669">669</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy25">NL3D::CTransform::IsTransformShape</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+<div class="fragment"><pre>00669 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsTransformShape, val);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1025_1" doxytag="NL3D::CWaterModel::setLoadBalancingGroup" ></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::CTransform::setLoadBalancingGroup </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>group</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Change the load Balancing group of a model. Every models are in a special LoadBalancingGroup. NB: the group is created if did not exist. NB: if models are skinned, it is their Skeleton which drive the group<p>
+By default, models lies in the "Default" group, but Skeletons for skinning and ParticlesSystems which are in "Skin" and "Fx" group respectively. The "Default" group is special because it is not balanced (ie models are only degraded from their distance to camera)
+<p>
+Definition at line <a class="el" href="a06568.html#l00522">522</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00894">NL3D::CTransform::_LoadBalancingGroup</a>, <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, <a class="el" href="a05923.html#l00227">NL3D::CLoadBalancingTrav::getOrCreateGroup()</a>, and <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>.
+<p>
+Referenced by <a class="el" href="a06395.html#l00154">NL3D::CSkeletonShape::createInstance()</a>, <a class="el" href="a06360.html#l00150">NL3D::CSegRemanenceShape::createInstance()</a>, and <a class="el" href="a06152.html#l00267">NL3D::CParticleSystemShape::createInstance()</a>.
+<p>
+<div class="fragment"><pre>00523 {
+00524 <span class="comment">// Get the traversal.</span>
+00525 CLoadBalancingTrav &amp;trav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getLoadBalancingTrav();
+00526 <span class="comment">// get the group from trav (create if needed), and set it.</span>
+00527 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1049_0">_LoadBalancingGroup</a>= trav.getOrCreateGroup(group);
+00528 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela40" doxytag="NL3D::CWaterModel::setLogicInfo" ></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::CTransform::setLogicInfo </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03863.html">ILogicInfo</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>logicInfo</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the LogicInfo for this transfrom, eg to retrieve statc light information, see <a class="el" href="a03863.html">ILogicInfo</a>. Ptr is kept in CTransfrom, so should call setLogicInfo(NULL) before to clean up.
+<p>
+Definition at line <a class="el" href="a06569.html#l00389">389</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00752">NL3D::CTransform::_LogicInfo</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00191">NL3D::CTransformUser::setLogicInfo()</a>.
+<p>
+<div class="fragment"><pre>00389 {_LogicInfo= logicInfo;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_0" doxytag="NL3D::CWaterModel::setMatrix" ></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::ITransformable::setMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mat</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in DirecTMatrix mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00174">174</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">NL3D::ITransformable::DirectMatrix</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, and <a class="el" href="a06577.html#l00076">NL3D::CTransformableUser::setMatrix()</a>.
+<p>
+<div class="fragment"><pre>00175 {
+00176 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==DirectMatrix);
+00177 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>= mat;
+00178 <span class="comment">// The matrix has changed.</span>
+00179 _LocalMatrixDate++;
+00180 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_7" doxytag="NL3D::CWaterModel::setMeanColor" ></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::CTransform::setMeanColor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">CRGBA</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>color</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+set the Mean color of the transform. The mean color can be used for many purpose, such as drawing objects if the textures are not loaded. It is used also for Lod Character. Default color is (255,255,255)
+<p>
+Definition at line <a class="el" href="a06568.html#l00540">540</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00756">NL3D::CTransform::_MeanColor</a>.
+<p>
+<div class="fragment"><pre>00541 {
+00542 <span class="comment">// if the color is different from prec</span>
+00543 <span class="keywordflow">if</span>(color!=_MeanColor)
+00544 {
+00545 <span class="comment">// change it.</span>
+00546 _MeanColor= color;
+00547 }
+00548 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela41" doxytag="NL3D::CWaterModel::setOpacity" ></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::CTransform::setOpacity </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>v</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00255">255</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+Referenced by <a class="el" href="a05712.html#l00044">NL3D::CFlareModel::CFlareModel()</a>, <a class="el" href="a06148.html#l00117">NL3D::CParticleSystemModel::CParticleSystemModel()</a>, <a class="el" href="a06393.html#l00075">NL3D::CSkeletonModel::CSkeletonModel()</a>, <a class="el" href="a06688.html#l00051">NL3D::CVegetableBlendLayerModel::CVegetableBlendLayerModel()</a>, <a class="el" href="a06737.html#l00063">CWaterModel()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, <a class="el" href="a06573.html#l00234">NL3D::CTransformUser::setOpacity()</a>, <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>, <a class="el" href="a06358.html#l00415">NL3D::CSegRemanence::updateOpacityFromShape()</a>, and <a class="el" href="a06148.html#l00196">NL3D::CParticleSystemModel::updateOpacityInfos()</a>.
+<p>
+<div class="fragment"><pre>00256 {
+00257 <span class="keywordtype">bool</span> bTmp = <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsOpaque) == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>;
+00258 <span class="keywordflow">if</span> (bTmp != <a class="code" href="a04223.html#a576">v</a>)
+00259 {
+00260 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsOpaque, v);
+00261 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>())
+00262 {
+00263 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel);
+00264 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;dirtSkinRenderLists();
+00265 }
+00266 }
+00267 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela42" doxytag="NL3D::CWaterModel::setOrderingLayer" ></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::CTransform::setOrderingLayer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>layer</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the current layer for this transform. Typically, this is used to sort transparent objects. Isn't used with solid objects. For now : Layer 0 is for underwater Layer 1 is for water surfaces Layer 2 is for object above water
+<p>
+Definition at line <a class="el" href="a06569.html#l00184">184</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00743">NL3D::CTransform::_OrderingLayer</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00063">CWaterModel()</a>, and <a class="el" href="a06573.html#l00162">NL3D::CTransformUser::setOrderingLayer()</a>.
+<p>
+<div class="fragment"><pre>00184 { _OrderingLayer = layer; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_1" doxytag="NL3D::CWaterModel::setPivot" ></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::ITransformable::setPivot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>z</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00169">169</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</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>
+<div class="fragment"><pre>00170 {
+00171 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_2">setPivot</a>(CVector(x, y, z));
+00172 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_2" doxytag="NL3D::CWaterModel::setPivot" ></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::ITransformable::setPivot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pivot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00162">162</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00132">NL3D::CTransformableUser::setPivot()</a>, and <a class="el" href="a06575.html#l00169">NL3D::ITransformable::setPivot()</a>.
+<p>
+<div class="fragment"><pre>00163 {
+00164 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00165 _Pivot.Value= pivot;
+00166 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PivotValue, OwnerBit);
+00167 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_3" doxytag="NL3D::CWaterModel::setPos" ></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::ITransformable::setPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>z</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00121">121</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</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>
+<div class="fragment"><pre>00122 {
+00123 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_4">setPos</a>(CVector(x,y,z));
+00124 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_4" doxytag="NL3D::CWaterModel::setPos" ></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::ITransformable::setPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00114">114</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a05530.html#l00196">NL3D::CCamera::build()</a>, <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00097">NL3D::CTransformableUser::setPos()</a>, <a class="el" href="a06575.html#l00121">NL3D::ITransformable::setPos()</a>, <a class="el" href="a06350.html#l01090">NL3D::CInstanceGroup::setPos()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>.
+<p>
+<div class="fragment"><pre>00115 {
+00116 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00117 _Pos.Value= pos;
+00118 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PosValue, OwnerBit);
+00119 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_5" doxytag="NL3D::CWaterModel::setRotEuler" ></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::ITransformable::setRotEuler </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>rotX</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>rotY</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>rotZ</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotEuler mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00133">133</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00126">NL3D::ITransformable::setRotEuler()</a>.
+<p>
+<div class="fragment"><pre>00134 {
+00135 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_6">setRotEuler</a>(CVector(rotX, rotY, rotZ));
+00136 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_6" doxytag="NL3D::CWaterModel::setRotEuler" ></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::ITransformable::setRotEuler </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotEuler mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00126">126</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00102">NL3D::CTransformableUser::setRotEuler()</a>, and <a class="el" href="a06575.html#l00133">NL3D::ITransformable::setRotEuler()</a>.
+<p>
+<div class="fragment"><pre>00127 {
+00128 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler);
+00129 _RotEuler.Value= rot;
+00130 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(RotEulerValue, OwnerBit);
+00131 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_7" doxytag="NL3D::CWaterModel::setRotQuat" ></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::ITransformable::setRotQuat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03296.html">CQuat</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>quat</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotQuat mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00138">138</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00107">NL3D::CTransformableUser::setRotQuat()</a>, and <a class="el" href="a06350.html#l01098">NL3D::CInstanceGroup::setRotQuat()</a>.
+<p>
+<div class="fragment"><pre>00139 {
+00140 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat);
+00141 _RotQuat.Value= quat;
+00142 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(RotQuatValue, OwnerBit);
+00143 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_8" doxytag="NL3D::CWaterModel::setScale" ></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::ITransformable::setScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>scale</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00157">157</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>.
+<p>
+<div class="fragment"><pre>00158 {
+00159 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(scale, scale, scale));
+00160 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_9" doxytag="NL3D::CWaterModel::setScale" ></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::ITransformable::setScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>scaleX</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>scaleY</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>scaleZ</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00152">152</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>.
+<p>
+<div class="fragment"><pre>00153 {
+00154 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(scaleX, scaleY, scaleZ));
+00155 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_10" doxytag="NL3D::CWaterModel::setScale" ></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::ITransformable::setScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>scale</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00145">145</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00128">NL3D::CTransformableUser::setScale()</a>, and <a class="el" href="a06575.html#l00152">NL3D::ITransformable::setScale()</a>.
+<p>
+<div class="fragment"><pre>00146 {
+00147 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00148 _Scale.Value= scale;
+00149 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(ScaleValue, OwnerBit);
+00150 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1079_0" doxytag="NL3D::CWaterModel::setTransformMode" ></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::ITransformable::setTransformMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02851.html#NLMISC_1_1CMatrixw0">CMatrix::TRotOrder</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>ro</em> = CMatrix::ZXY</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Change the transform mode. Components or matrix are not reseted.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00100">100</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00317">NL3D::ITransformable::_RotOrder</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, and <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>.
+<p>
+Referenced by <a class="el" href="a05530.html#l00196">NL3D::CCamera::build()</a>, <a class="el" href="a05531.html#l00125">NL3D::CCamera::enableTargetAnimation()</a>, <a class="el" href="a06250.html#l00225">NL3D::CPSMesh::newElement()</a>, <a class="el" href="a06577.html#l00092">NL3D::CTransformableUser::setTransformMode()</a>, and <a class="el" href="a06250.html#l00295">NL3D::CPSMesh::updatePos()</a>.
+<p>
+<div class="fragment"><pre>00101 {
+00102 _Mode= mode;
+00103 _RotOrder= ro;
+00104 <span class="comment">// just for information.</span>
+00105 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PosValue, OwnerBit);
+00106 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela43" doxytag="NL3D::CWaterModel::setTransparency" ></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::CTransform::setTransparency </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>v</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Accessors for opacity/transparency
+<p>
+Definition at line <a class="el" href="a06568.html#l00240">240</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+Referenced by <a class="el" href="a05712.html#l00044">NL3D::CFlareModel::CFlareModel()</a>, <a class="el" href="a06148.html#l00117">NL3D::CParticleSystemModel::CParticleSystemModel()</a>, <a class="el" href="a06393.html#l00075">NL3D::CSkeletonModel::CSkeletonModel()</a>, <a class="el" href="a06688.html#l00051">NL3D::CVegetableBlendLayerModel::CVegetableBlendLayerModel()</a>, <a class="el" href="a06737.html#l00063">CWaterModel()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, <a class="el" href="a06573.html#l00229">NL3D::CTransformUser::setTransparency()</a>, <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>, <a class="el" href="a06358.html#l00415">NL3D::CSegRemanence::updateOpacityFromShape()</a>, <a class="el" href="a06148.html#l00196">NL3D::CParticleSystemModel::updateOpacityInfos()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00241 {
+00242 <span class="keywordtype">bool</span> bTmp = <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsTransparent) == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>;
+00243 <span class="keywordflow">if</span> (bTmp != <a class="code" href="a04223.html#a576">v</a>)
+00244 {
+00245 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsTransparent, v);
+00246 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>())
+00247 {
+00248 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel);
+00249 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;dirtSkinRenderLists();
+00250 }
+00251 }
+00252 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelb6" doxytag="NL3D::CWaterModel::setupCurrentLightContribution" ></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::CTransformShape::setupCurrentLightContribution </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02744.html">CLightContribution</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>lightContrib</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>useLocalAtt</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For deriver who wants to setup their own current lightContribution setup (as skeleton). Must call <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1055_0">changeLightSetup()</a> so change are effectively made in driver
+<p>
+Definition at line <a class="el" href="a06570.html#l00098">98</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a06571.html#l00182">NL3D::CTransformShape::_CurrentLightContribution</a>, and <a class="el" href="a06571.html#l00184">NL3D::CTransformShape::_CurrentUseLocalAttenuation</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>.
+<p>
+<div class="fragment"><pre>00099 {
+00100 _CurrentLightContribution= lightContrib;
+00101 _CurrentUseLocalAttenuation= useLocalAtt;
+00102 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelb10" doxytag="NL3D::CWaterModel::setupMaterialNVertexShader" ></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::CWaterModel::setupMaterialNVertexShader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>drv</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03724.html">CWaterShape</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>shape</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> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>obsPos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>above</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>maxDist</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>zHeight</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+set matrix <p>
+set all our constants in one call
+<p>
+Definition at line <a class="el" href="a06737.html#l00831">831</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06742.html#l00211">NL3D::CWaterShape::_BumpMap</a>, <a class="el" href="a06742.html#l00212">NL3D::CWaterShape::_ColorMap</a>, <a class="el" href="a06738.html#l00109">_ColorMapMatColumn0</a>, <a class="el" href="a06738.html#l00109">_ColorMapMatColumn1</a>, <a class="el" href="a06738.html#l00109">_ColorMapMatPos</a>, <a class="el" href="a06742.html#l00210">NL3D::CWaterShape::_EnvMap</a>, <a class="el" href="a06742.html#l00214">NL3D::CWaterShape::_HeightMapScale</a>, <a class="el" href="a06742.html#l00215">NL3D::CWaterShape::_HeightMapSpeed</a>, <a class="el" href="a06741.html#l00182">NL3D::CWaterShape::_VertexProgramBump2</a>, <a class="el" href="a06741.html#l00184">NL3D::CWaterShape::_VertexProgramBump2Diffuse</a>, <a class="el" href="a06737.html#l00055">_WaterMat</a>, <a class="el" href="a06742.html#l00222">NL3D::CWaterShape::_WaveHeightFactor</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_2">NL3D::IDriver::activeVertexProgram()</a>, <a class="el" href="a06741.html#l00568">NL3D::CWaterShape::envMapUpdate()</a>, <a class="el" href="a06742.html#l00172">NL3D::CWaterShape::getColorMap()</a>, <a class="el" href="a06552.html#l00055">NLMISC::CTime::getLocalTime()</a>, <a class="el" href="a06741.html#l00253">NL3D::CWaterShape::initVertexProgram()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06681.html#l00060">NLMISC::CVectorH::set()</a>, <a class="el" href="a05641.html#l00064">NL3D::CMaterial::setBlend()</a>, <a class="el" href="a05641.html#l00118">NL3D::CMaterial::setColor()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_11">NL3D::IDriver::setConstant()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_12">NL3D::IDriver::setConstantMatrix()</a>, <a class="el" href="a05641.html#l00071">NL3D::CMaterial::setDoubleSided()</a>, <a class="el" href="a05641.html#l00058">NL3D::CMaterial::setDstBlend()</a>, <a class="el" href="a05641.html#l00127">NL3D::CMaterial::setLighting()</a>, <a class="el" href="a05968.html#l00282">NL3D::CMaterial::setShader()</a>, <a class="el" href="a05641.html#l00052">NL3D::CMaterial::setSrcBlend()</a>, <a class="el" href="a05641.html#l00105">NL3D::CMaterial::setZWrite()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06677.html#l00052">NLMISC::CVector2f::x</a>, <a class="el" href="a06677.html#l00052">NLMISC::CVector2f::y</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>
+Referenced by <a class="el" href="a06737.html#l00437">traverseRender()</a>.
+<p>
+<div class="fragment"><pre>00832 {
+00833 <span class="keyword">static</span> <span class="keywordtype">bool</span> matSetupped = <span class="keyword">false</span>;
+00834 <span class="keywordflow">if</span> (!matSetupped)
+00835 {
+00836 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a>.setLighting(<span class="keyword">false</span>);
+00837 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a>.setDoubleSided(<span class="keyword">true</span>);
+00838 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a>.setColor(NLMISC::CRGBA::White);
+00839 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a>.setBlend(<span class="keyword">true</span>);
+00840 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a>.setSrcBlend(CMaterial::srcalpha);
+00841 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a>.setDstBlend(CMaterial::invsrcalpha);
+00842 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a>.setZWrite(<span class="keyword">true</span>);
+00843 <a class="code" href="a03721.html#NL3D_1_1CWaterModelv2">_WaterMat</a>.setShader(CMaterial::Water);
+00844 }
+00845
+00846
+00847 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> cstOffset = 4; <span class="comment">// 4 places for the matrix</span>
+00848 <a class="code" href="a03668.html">NLMISC::CVectorH</a> cst[13];
+00849
+00850
+00851 <span class="comment">//=========================//</span>
+00852 <span class="comment">// setup Water material //</span>
+00853 <span class="comment">//=========================//</span>
+00854
+00855 CWaterModel::_WaterMat.setTexture(0, shape-&gt;_BumpMap[0]);
+00856 CWaterModel::_WaterMat.setTexture(1, shape-&gt;_BumpMap[1]);
+00857 CWaterModel::_WaterMat.setTexture(3, shape-&gt;_ColorMap);
+00858
+00859 <span class="keywordflow">if</span> (!above &amp;&amp; shape-&gt;_EnvMap[1])
+00860 {
+00861 CWaterModel::_WaterMat.setTexture(2, shape-&gt;_EnvMap[1]);
+00862 }
+00863 <span class="keywordflow">else</span>
+00864 {
+00865 CWaterModel::_WaterMat.setTexture(2, shape-&gt;_EnvMap[0]);
+00866 }
+00867
+00868
+00869 shape-&gt;envMapUpdate();
+00870
+00871 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> alphaMapStage = 3;
+00872 <span class="keywordflow">if</span> (shape-&gt;_ColorMap)
+00873 {
+00874 <span class="comment">//WaterMat.setTexture(alphaMapStage, shape-&gt;_ColorMap);</span>
+00875 <span class="comment">//if (shape-&gt;_ColorMap-&gt;supportSharing()) nlinfo(shape-&gt;_ColorMap-&gt;getShareName().c_str());</span>
+00876
+00877
+00878 <span class="comment">// setup 2x3 matrix for lookup in diffuse map</span>
+00879 <a class="code" href="a03721.html#NL3D_1_1CWaterModeld0">updateDiffuseMapMatrix</a>();
+00880 cst[13 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(<a class="code" href="a03721.html#NL3D_1_1CWaterModelr1">_ColorMapMatColumn0</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo0">x</a>, <a class="code" href="a03721.html#NL3D_1_1CWaterModelr2">_ColorMapMatColumn1</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo0">x</a>, 0, <a class="code" href="a03721.html#NL3D_1_1CWaterModelr1">_ColorMapMatColumn0</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo0">x</a> * obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> + <a class="code" href="a03721.html#NL3D_1_1CWaterModelr2">_ColorMapMatColumn1</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo0">x</a> * obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> + <a class="code" href="a03721.html#NL3D_1_1CWaterModelr3">_ColorMapMatPos</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo0">x</a>);
+00881 cst[14 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(<a class="code" href="a03721.html#NL3D_1_1CWaterModelr1">_ColorMapMatColumn0</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo1">y</a>, <a class="code" href="a03721.html#NL3D_1_1CWaterModelr2">_ColorMapMatColumn1</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo1">y</a>, 0, <a class="code" href="a03721.html#NL3D_1_1CWaterModelr1">_ColorMapMatColumn0</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo1">y</a> * obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> + <a class="code" href="a03721.html#NL3D_1_1CWaterModelr2">_ColorMapMatColumn1</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo1">y</a> * obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> + <a class="code" href="a03721.html#NL3D_1_1CWaterModelr3">_ColorMapMatPos</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fo1">y</a>);
+00882 }
+00883 <span class="keywordflow">else</span>
+00884 {
+00885 cst[13 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(0, 0, 0, 0);
+00886 cst[14 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(0, 0, 0, 0);
+00887 }
+00888
+00889 cst[16 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(0.1f, 0.1f, 0.1f, 0.1f); <span class="comment">// used to avoid imprecision when performing a RSQ to get distance from the origin</span>
+00890 <span class="comment">// cst[16 - cstOffset].set(0.0f, 0.0f, 0.0f, 0.0f); // used to avoid imprecision when performing a RSQ to get distance from the origin</span>
+00891
+00892
+00893
+00894
+00895 cst[5 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(0.f, 0.f, 0.f, 0.f); <span class="comment">// claping negative values to 0</span>
+00896
+00897 <span class="comment">// slope of attenuation of normal / height with distance </span>
+00898 <span class="keyword">const</span> <span class="keywordtype">float</span> invMaxDist = shape-&gt;_WaveHeightFactor / maxDist;
+00899 cst[6 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(invMaxDist, shape-&gt;_WaveHeightFactor, 0, 0);
+00900
+00901 <span class="comment">/*cst[6 - cstOffset].set(invMaxDist, invMaxDist, invMaxDist, invMaxDist); // upcoming light vectorshape-&gt;_WaveHeightFactor </span>
+00902 <span class="comment"> cst[15 - cstOffset].set(shape-&gt;_WaveHeightFactor, shape-&gt;_WaveHeightFactor, shape-&gt;_WaveHeightFactor, shape-&gt;_WaveHeightFactor);</span>
+00903 <span class="comment"> */</span>
+00904
+00905
+00906
+00907
+00909 drv-&gt;setConstantMatrix(0, IDriver::ModelViewProjection, IDriver::Identity);
+00910
+00911 <span class="comment">// retrieve current time</span>
+00912 <span class="keywordtype">float</span> date = 0.001f * (<a class="code" href="a02142.html#NLMISC_1_1CTimee0">NLMISC::CTime::getLocalTime</a>() &amp; 0xffffff); <span class="comment">// must keep some precision.</span>
+00913 <span class="comment">// set bumpmaps pos</span>
+00914 cst[9 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(fmodf(obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * shape-&gt;_HeightMapScale[0].x, 1.f) + fmodf(date * shape-&gt;_HeightMapSpeed[0].x, 1.f), fmodf(shape-&gt;_HeightMapScale[0].y * obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, 1.f) + fmodf(date * shape-&gt;_HeightMapSpeed[0].y, 1.f), 0.f, 1.f); <span class="comment">// bump map 0 offset</span>
+00915 cst[10 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(shape-&gt;_HeightMapScale[0].x, shape-&gt;_HeightMapScale[0].y, 0, 1); <span class="comment">// bump map 0 scale</span>
+00916 cst[11 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(fmodf(shape-&gt;_HeightMapScale[1].x * obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, 1.f) + fmodf(date * shape-&gt;_HeightMapSpeed[1].x, 1.f), fmodf(shape-&gt;_HeightMapScale[1].y * obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, 1.f) + fmodf(date * shape-&gt;_HeightMapSpeed[1].y, 1.f), 0.f, 0.f); <span class="comment">// bump map 1 offset</span>
+00917 cst[12 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(shape-&gt;_HeightMapScale[1].x, shape-&gt;_HeightMapScale[1].y, 0, 1); <span class="comment">// bump map 1 scale</span>
+00918
+00919
+00920
+00921
+00922 cst[4 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(1.f, 1.f, 1.f, 1.f); <span class="comment">// use with min man, and to get the 1 constant </span>
+00923 cst[7 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(0, 0, obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> - zHeight, 1.f);
+00924 cst[8 - cstOffset].<a class="code" href="a03668.html#NLMISC_1_1CVectorHa5">set</a>(0.5f, 0.5f, 0.f, 0.f); <span class="comment">// used to scale reflected ray into the envmap</span>
+00925
+00926
+00927
+00928
+00930 drv-&gt;setConstant(4, <span class="keyword">sizeof</span>(cst) / <span class="keyword">sizeof</span>(cst[0]), (<span class="keywordtype">float</span> *) &amp;cst[0]);
+00931
+00932 shape-&gt;initVertexProgram();
+00933 <span class="keywordtype">bool</span> result;
+00934 <span class="comment">/*</span>
+00935 <span class="comment"> if (useBumpedVersion)</span>
+00936 <span class="comment"> {</span>
+00937 <span class="comment"> if (!useEMBM)</span>
+00938 <span class="comment"> { </span>
+00939 <span class="comment"> result = shape-&gt;getColorMap() ? drv-&gt;activeVertexProgram((shape-&gt;_VertexProgramBump2Diffuse).get())</span>
+00940 <span class="comment"> : drv-&gt;activeVertexProgram((shape-&gt;_VertexProgramBump2).get());</span>
+00941 <span class="comment"> }</span>
+00942 <span class="comment"> else</span>
+00943 <span class="comment"> {</span>
+00944 <span class="comment"> result = shape-&gt;getColorMap() ? drv-&gt;activeVertexProgram((shape-&gt;_VertexProgramBump1Diffuse).get())</span>
+00945 <span class="comment"> : drv-&gt;activeVertexProgram((shape-&gt;_VertexProgramBump1).get());</span>
+00946 <span class="comment"> }</span>
+00947 <span class="comment"> }</span>
+00948 <span class="comment"> else</span>
+00949 <span class="comment"> {</span>
+00950 <span class="comment"> result = shape-&gt;getColorMap() ? drv-&gt;activeVertexProgram((shape-&gt;_VertexProgramNoBumpDiffuse).get())</span>
+00951 <span class="comment"> : drv-&gt;activeVertexProgram((shape-&gt;_VertexProgramNoBump).get());</span>
+00952 <span class="comment"> }</span>
+00953 <span class="comment"> */</span>
+00954
+00955
+00956
+00957 result = shape-&gt;getColorMap() ? drv-&gt;activeVertexProgram((shape-&gt;_VertexProgramBump2Diffuse).get())
+00958 : drv-&gt;activeVertexProgram((shape-&gt;_VertexProgramBump2).get());
+00959
+00960 <span class="comment">//</span>
+00961 <span class="keywordflow">if</span> (!result) <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"no vertex program setupped"</span>);
+00962 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela44" doxytag="NL3D::CWaterModel::setUserClipping" ></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::CTransform::setUserClipping </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>enable</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l01310">1310</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy30">NL3D::CTransform::UserClipping</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00126">NL3D::CTransformUser::setUserClipping()</a>.
+<p>
+<div class="fragment"><pre>01311 {
+01312 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a> (UserClipping, enable);
+01313 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_6" doxytag="NL3D::CWaterModel::setUserLightable" ></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::CTransform::setUserLightable </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>enable</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the UserLightable flag. if false, <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable()</a> will always return false. Doing this, user can disable lighting on a model which may be interesting for speed. Default behavior is UserLightable==true.
+<p>
+Definition at line <a class="el" href="a06568.html#l00559">559</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy9">NL3D::CTransform::IsFinalLightable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy14">NL3D::CTransform::IsLightable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy27">NL3D::CTransform::IsUserLightable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00178">NL3D::CTransformUser::setUserLightable()</a>.
+<p>
+<div class="fragment"><pre>00560 {
+00561 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsUserLightable, enable);
+00562 <span class="comment">// update IsFinalLightable</span>
+00563 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalLightable, (<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsLightable) &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsUserLightable)) );
+00564 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela45" doxytag="NL3D::CWaterModel::setWorldMatrix" ></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::CTransform::setWorldMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mat</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00302">302</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>.
+<p>
+<div class="fragment"><pre>00302 { <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a> = mat;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela46" doxytag="NL3D::CWaterModel::show" ></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::CTransform::show </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Show the objet and his sons.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00271">271</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>.
+<p>
+Referenced by <a class="el" href="a06573.html#l00120">NL3D::CTransformUser::show()</a>, and <a class="el" href="a05875.html#l00153">NL3D::CLandscapeUser::show()</a>.
+<p>
+<div class="fragment"><pre>00272 {
+00273 <span class="comment">// Optim: do nothing if already set</span>
+00274 <span class="keywordflow">if</span>(Visibility!= CHrcTrav::Show)
+00275 {
+00276 _TransformDirty= <span class="keyword">true</span>;
+00277 Visibility= CHrcTrav::Show;
+00278 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span>
+00279 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>())
+00280 {
+00281 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel);
+00282 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;dirtSkinRenderLists();
+00283 }
+00284 }
+00285 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela47" doxytag="NL3D::CWaterModel::start" ></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 NL3D::CTransformShape::start </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><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez886_4">NL3D::CSegRemanence</a>.
+<p>
+Definition at line <a class="el" href="a06571.html#l00128">128</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a05829.html#l00110">NL3D::CInstanceUser::start()</a>.
+<p>
+<div class="fragment"><pre>00128 {};
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela48" doxytag="NL3D::CWaterModel::stop" ></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 NL3D::CTransformShape::stop </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><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez886_5">NL3D::CSegRemanence</a>.
+<p>
+Definition at line <a class="el" href="a06571.html#l00130">130</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a05829.html#l00115">NL3D::CInstanceUser::stop()</a>.
+<p>
+<div class="fragment"><pre>00130 {};
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_10" doxytag="NL3D::CWaterModel::supportShadowSkinGrouping" ></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 bool NL3D::CTransform::supportShadowSkinGrouping </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, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Special Skinning For ShadowMapping.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_10">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_10">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00611">611</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+<div class="fragment"><pre>00611 {<span class="keywordflow">return</span> <span class="keyword">false</span>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_11" doxytag="NL3D::CWaterModel::supportSkinGrouping" ></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 bool NL3D::CTransform::supportSkinGrouping </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, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver may support SkinGrouping if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It renders the skin with current ctx of the skeletonModel, but torn in 2 pass: fillVB,a nd renderPrimitives Deriver may check NL3D_MESH_SKIN_MANAGER_VERTEXFORMAT and NL3D_MESH_SKIN_MANAGER_MAXVERTICES
+<p>
+Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_11">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_11">NL3D::CMeshMRMSkinnedInstance</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00597">597</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+<div class="fragment"><pre>00597 {<span class="keywordflow">return</span> <span class="keyword">false</span>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez5_3" doxytag="NL3D::CWaterModel::touch" ></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::IAnimatable::touch </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>valueId</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>ownerValueId</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Touch a value because it has been modified.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>valueId</em>&nbsp;</td><td>is the animated value ID in the object we want to touch. </td></tr>
+ <tr><td valign=top><em>ownerValueId</em>&nbsp;</td><td>is the bit of the <a class="el" href="a02197.html">IAnimatable</a> part which owns this animated value.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00168">168</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, <a class="el" href="a05434.html#l00239">NL3D::IAnimatable::setFlag()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05543.html#l00154">NL3D::CChannelMixer::eval()</a>, <a class="el" href="a05543.html#l00083">NL3D::CChannelMixer::evalSingleChannel()</a>, <a class="el" href="a06148.html#l00249">NL3D::CParticleSystemModel::reallocRsc()</a>, <a class="el" href="a05543.html#l00621">NL3D::CChannelMixer::refreshList()</a>, <a class="el" href="a05531.html#l00154">NL3D::CCamera::setFov()</a>, <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</a>, <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>, <a class="el" href="a05531.html#l00147">NL3D::CCamera::setRoll()</a>, <a class="el" href="a06575.html#l00126">NL3D::ITransformable::setRotEuler()</a>, <a class="el" href="a06575.html#l00138">NL3D::ITransformable::setRotQuat()</a>, <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>, <a class="el" href="a05531.html#l00135">NL3D::CCamera::setTargetPos()</a>, <a class="el" href="a06575.html#l00100">NL3D::ITransformable::setTransformMode()</a>, and <a class="el" href="a06144.html#l00100">NL3D::CParticleSystemInstanceUser::setUserParam()</a>.
+<p>
+<div class="fragment"><pre>00169 {
+00170 <span class="comment">// Set the bit</span>
+00171 <a class="code" href="a02197.html#NL3D_1_1ITransformableb2">setFlag</a>(valueId);
+00172 <span class="comment">// Set the owner bit</span>
+00173 <a class="code" href="a02197.html#NL3D_1_1ITransformableb2">setFlag</a>(ownerValueId);
+00174
+00175 <span class="comment">// propagate the touch to the fathers.</span>
+00176 <a class="code" href="a02197.html#NL3D_1_1IAnimatabled0">propagateTouch</a>();
+00177 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelz1017_1" doxytag="NL3D::CWaterModel::traverseAnimDetail" ></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::CTransform::traverseAnimDetail </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><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+call <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1047_1">updateWorldMatrixFromFather()</a>, then <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1047_0">traverseAnimDetailWithoutUpdateWorldMatrix()</a>
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez449_0">NL3D::CMeshBaseInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz627_1">NL3D::CParticleSystemModel</a>, <a class="el" href="a03287.html#NL3D_1_1CQuadGridClipManagerz778_1">NL3D::CQuadGridClipManager</a>, <a class="el" href="a03340.html#NL3D_1_1CRootModelz794_0">NL3D::CRootModel</a>, <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez888_0">NL3D::CSegRemanence</a>, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz930_0">NL3D::CSkeletonModel</a>, and <a class="el" href="a03725.html#NL3D_1_1CWaveMakerModelz1178_0">NL3D::CWaveMakerModel</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00953">953</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06568.html#l00938">NL3D::CTransform::traverseAnimDetailWithoutUpdateWorldMatrix()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>.
+<p>
+Referenced by <a class="el" href="a05431.html#l00060">NL3D::CAnimDetailTrav::traverse()</a>, and <a class="el" href="a05431.html#l00099">NL3D::CAnimDetailTrav::traverseHrcRecurs()</a>.
+<p>
+<div class="fragment"><pre>00954 {
+00955 <span class="comment">// First, test if I must update my worldMatrix because of the ancestorSkeleton scheme</span>
+00956 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1047_1">updateWorldMatrixFromFather</a>();
+00957
+00958 <span class="comment">// eval channelMixer.</span>
+00959 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1047_0">traverseAnimDetailWithoutUpdateWorldMatrix</a>();
+00960
+00961 <span class="comment">// NB: if want to add something, do it in traverseAnimDetailWithoutUpdateWorldMatrix(), because</span>
+00962 <span class="comment">// CSkeletonModel doesn't call CTransform::traverseAnimDetail()</span>
+00963 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1047_0" doxytag="NL3D::CWaterModel::traverseAnimDetailWithoutUpdateWorldMatrix" ></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::CTransform::traverseAnimDetailWithoutUpdateWorldMatrix </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><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+traverse without updatin WorldMatrixFromFather:<ul>
+<li>animdetail if the model channelmixer is not NULL, and if model not clipped</li></ul>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00938">938</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a05543.html#l00154">NL3D::CChannelMixer::eval()</a>, and <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00953">NL3D::CTransform::traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00939 {
+00940 <span class="comment">// AnimDetail behavior: animate only if not clipped.</span>
+00941 <span class="comment">// NB: no need to test because of VisibilityList use.</span>
+00942
+00943 <span class="comment">// test if the refptr is NULL or not (RefPtr).</span>
+00944 CChannelMixer *chanmix= _ChannelMixer;
+00945 <span class="keywordflow">if</span>(chanmix)
+00946 {
+00947 <span class="comment">// eval detail!!</span>
+00948 chanmix-&gt;eval(<span class="keyword">true</span>, <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getAnimDetailTrav().CurrentDate);
+00949 }
+00950 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_1" doxytag="NL3D::CWaterModel::traverseClip" ></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::CTransform::traverseClip </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><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The base traverseClip method. The behavior is to:<ul>
+<li>test if _WorldVis is visible.</li><li>test if is clipped with <a class="el" href="a02316.html#NL3D_1_1CTransformz1017_0">clip()</a> OR IF SKELETON MODEL, USE SKELETON MODEL clip!!</li><li>if visible and not clipped, set <code>_Visible=true</code> (else false). and<ul>
+<li>add the CTransform* to the ClipTrav list</li></ul>
+</li><li>if _Visible==true, and renderable, add it to the RenderTraversal: <code>RenderTrav-&gt;addRenderModel(model)</code>;</li><li>always traverseSons(), to clip the sons.</li></ul>
+
+<p>
+Reimplemented in <a class="el" href="a02362.html#NL3D_1_1CClusterz70_3">NL3D::CCluster</a>, <a class="el" href="a02713.html#NL3D_1_1CLandscapeModela47">NL3D::CLandscapeModel</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz627_2">NL3D::CParticleSystemModel</a>, <a class="el" href="a03287.html#NL3D_1_1CQuadGridClipManagerz778_2">NL3D::CQuadGridClipManager</a>, and <a class="el" href="a03340.html#NL3D_1_1CRootModelz794_1">NL3D::CRootModel</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00806">806</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a06569.html#l00865">NL3D::CTransform::_ClipDate</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00746">NL3D::CTransform::_ForceCLodSticked</a>, <a class="el" href="a06569.html#l00830">NL3D::CTransform::_RenderFilterType</a>, <a class="el" href="a06569.html#l00806">NL3D::CTransform::_StateFlags</a>, <a class="el" href="a06569.html#l00867">NL3D::CTransform::_Visible</a>, <a class="el" href="a06569.html#l00844">NL3D::CTransform::_WorldVis</a>, <a class="el" href="a05898.html#l00077">NL3D::CLightTrav::addLightedModel()</a>, <a class="el" href="a06330.html#l00121">NL3D::CRenderTrav::addRenderModel()</a>, <a class="el" href="a05924.html#l00178">NL3D::CLoadBalancingTrav::addVisibleModel()</a>, <a class="el" href="a05432.html#l00084">NL3D::CAnimDetailTrav::addVisibleModel()</a>, <a class="el" href="a05556.html#l00105">NL3D::CClipTrav::addVisibleModel()</a>, <a class="el" href="a06569.html#l00155">NL3D::CTransform::clip()</a>, <a class="el" href="a06568.html#l01265">NL3D::CTransform::clipGetChild()</a>, <a class="el" href="a06569.html#l00237">NL3D::CTransform::clipGetNumChildren()</a>, <a class="el" href="a05556.html#l00151">NL3D::CClipTrav::CurrentDate</a>, <a class="el" href="a06349.html#l00477">NL3D::CScene::getAnimDetailTrav()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06349.html#l00508">NL3D::CScene::getFilterRenderFlags()</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06569.html#l00440">NL3D::CTransform::isAnimDetailable()</a>, <a class="el" href="a06569.html#l00313">NL3D::CTransform::isClipVisible()</a>, <a class="el" href="a06394.html#l00259">NL3D::CSkeletonModel::isDisplayedAsLodCharacter()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a06569.html#l00442">NL3D::CTransform::isLoadBalancable()</a>, <a class="el" href="a06569.html#l00444">NL3D::CTransform::isRenderable()</a>, <a class="el" href="a05646.html#l01124">num</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy30">NL3D::CTransform::UserClipping</a>.
+<p>
+Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, <a class="el" href="a06341.html#l00052">NL3D::CRootModel::traverseClip()</a>, and <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>.
+<p>
+<div class="fragment"><pre>00807 {
+00808 <span class="comment">// disable H_AUTO, because slowdown when lot of models (eg 1000-2000 tested in forest)</span>
+00809 <span class="comment">//H_AUTO( NL3D_TransformClip );</span>
+00810
+00811 CScene *scene= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>();
+00812 CClipTrav &amp;clipTrav= scene-&gt;getClipTrav();
+00813
+00814 <span class="keywordflow">if</span> ((<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_0">_ClipDate</a> == clipTrav.CurrentDate) &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>)
+00815 <span class="keywordflow">return</span>;
+00816 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_0">_ClipDate</a> = clipTrav.CurrentDate;
+00817
+00818 <span class="comment">// clip: update Visible flag.</span>
+00819 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <span class="keyword">false</span>;
+00820 <span class="comment">// if at least visible.</span>
+00821 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>)
+00822 {
+00823 <span class="comment">// If linked to a SkeletonModel anywhere in the hierarchy, don't clip, and use skeleton model clip result.</span>
+00824 <span class="comment">// This works because we are sons of a special node which is not in the clip traversal, and</span>
+00825 <span class="comment">// which is traversed at end of the traversal.</span>
+00826 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>!=NULL )
+00827 {
+00828 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>-&gt;isClipVisible();
+00829 <span class="comment">// Special test: if we are sticked to a skeletonModel, and if we are still visible, maybe we don't have to</span>
+00830 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a> &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>)
+00831 {
+00832 <span class="comment">// if our skeletonModel father is displayed with a Lod, maybe we are not to be displayed</span>
+00833 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;isDisplayedAsLodCharacter())
+00834 {
+00835 <span class="comment">// We are visible only if we where sticked to the skeleton with forceCLod==true.</span>
+00836 <span class="comment">// This is also true if we are actually a skeletonModel</span>
+00837 <span class="keywordflow">if</span>(!_ForceCLodSticked)
+00838 <span class="comment">// otherWise we are not visible. eg: this is the case of skins and some sticked object</span>
+00839 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <span class="keyword">false</span>;
+00840 }
+00841 }
+00842 }
+00843 <span class="comment">// else, clip.</span>
+00844 <span class="keywordflow">else</span>
+00845 {
+00846 <span class="comment">// If the instance is not filtered</span>
+00847 <span class="keywordflow">if</span>(scene-&gt;getFilterRenderFlags() &amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelp0">_RenderFilterType</a>)
+00848 {
+00849 <span class="comment">// User cliping enabled ?</span>
+00850 <span class="keywordflow">if</span> (_StateFlags &amp; UserClipping)
+00851 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <span class="keyword">true</span>;
+00852 <span class="keywordflow">else</span>
+00853 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <a class="code" href="a03721.html#NL3D_1_1CWaterModelz1176_0">clip</a>();
+00854 }
+00855 }
+00856 }
+00857
+00858 <span class="comment">// if visible, add to list.</span>
+00859 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>)
+00860 {
+00861 <span class="comment">// add this model to the visibility list.</span>
+00862 clipTrav.addVisibleModel(<span class="keyword">this</span>);
+00863
+00864 <span class="comment">// Has not an ancestor skeleton model?</span>
+00865 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL )
+00866 {
+00867 <span class="comment">// If needed, insert the model in the lighted list.</span>
+00868 <span class="comment">// don't insert if has an ancestorSkeletonModel, because in this case, result is driven by </span>
+00869 <span class="comment">// the _LightContribution of the _AncestorSkeletonModel.</span>
+00870 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable</a>() )
+00871 scene-&gt;getLightTrav().addLightedModel(<span class="keyword">this</span>);
+00872
+00873 <span class="comment">// If needed, insert the model in the animDetail list.</span>
+00874 <span class="comment">// don't insert if has an ancestoreSkeletonModel, because in this case, this ancestore will </span>
+00875 <span class="comment">// animDetail through the hierarchy...</span>
+00876 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_1">isAnimDetailable</a>() )
+00877 scene-&gt;getAnimDetailTrav().addVisibleModel(<span class="keyword">this</span>);
+00878 }
+00879
+00880 <span class="comment">// If needed, Add it to the loadBalancing trav</span>
+00881 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_3">isLoadBalancable</a>() )
+00882 scene-&gt;getLoadBalancingTrav().addVisibleModel(<span class="keyword">this</span>);
+00883
+00884 <span class="comment">// If needed, insert the model in the render list.</span>
+00885 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_5">isRenderable</a>() )
+00886 scene-&gt;getRenderTrav().addRenderModel(<span class="keyword">this</span>);
+00887 }
+00888
+00889 <span class="comment">// Traverse the Clip sons.</span>
+00890 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a653">num</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_3">clipGetNumChildren</a>();
+00891 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;<a class="code" href="a04223.html#a653">num</a>;i++)
+00892 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_2">clipGetChild</a>(i)-&gt;traverseClip();
+00893 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_2" doxytag="NL3D::CWaterModel::traverseHrc" ></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::CTransform::traverseHrc </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><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Each method is called in its associated traversal.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02362.html#NL3D_1_1CClusterz70_4">NL3D::CCluster</a>, <a class="el" href="a02713.html#NL3D_1_1CLandscapeModela48">NL3D::CLandscapeModel</a>, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez449_1">NL3D::CMeshBaseInstance</a>, <a class="el" href="a03287.html#NL3D_1_1CQuadGridClipManagerz778_3">NL3D::CQuadGridClipManager</a>, and <a class="el" href="a03340.html#NL3D_1_1CRootModelz794_2">NL3D::CRootModel</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00786">786</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06568.html#l01202">NL3D::CTransform::hrcGetChild()</a>, <a class="el" href="a06569.html#l00220">NL3D::CTransform::hrcGetNumChildren()</a>, <a class="el" href="a05646.html#l01124">num</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>.
+<p>
+Referenced by <a class="el" href="a05796.html#l00041">NL3D::CHrcTrav::traverse()</a>, and <a class="el" href="a06341.html#l00043">NL3D::CRootModel::traverseHrc()</a>.
+<p>
+<div class="fragment"><pre>00787 {
+00788 <span class="comment">// Recompute the matrix, according to _HrcParent matrix mode, and local matrix.</span>
+00789 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_1">updateWorld</a>();
+00790
+00791 <span class="comment">// Traverse the Hrc sons.</span>
+00792 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a653">num</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_1">hrcGetNumChildren</a>();
+00793 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;<a class="code" href="a04223.html#a653">num</a>;i++)
+00794 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_0">hrcGetChild</a>(i)-&gt;traverseHrc();
+00795 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_3" doxytag="NL3D::CWaterModel::traverseLight" ></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::CTransform::traverseLight </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><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+traverse the lightedModel per default: recompute LightContribution is <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable()</a>
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03093.html#NL3D_1_1CPointLightModela36">NL3D::CPointLightModel</a>, <a class="el" href="a03287.html#NL3D_1_1CQuadGridClipManagerz778_4">NL3D::CQuadGridClipManager</a>, and <a class="el" href="a03340.html#NL3D_1_1CRootModelz794_3">NL3D::CRootModel</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l01080">1080</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a06569.html#l00752">NL3D::CTransform::_LogicInfo</a>, <a class="el" href="a05894.html#l00073">NL3D::CLightContribution::AttFactor</a>, <a class="el" href="a06179.html#l00267">NL3D::CPointLight::computeLinearAttenuation()</a>, <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06568.html#l00514">NL3D::CTransform::getAABBox()</a>, <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06180.html#l00116">NL3D::CPointLight::getPosition()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06569.html#l00631">NL3D::CTransform::isNeedUpdateFrozenStaticLightSetup()</a>, <a class="el" href="a06569.html#l00629">NL3D::CTransform::isNeedUpdateLighting()</a>, <a class="el" href="a05898.html#l00097">NL3D::CLightTrav::LightingManager</a>, <a class="el" href="a05894.html#l00084">NL3D::CLightContribution::NumFrozenStaticLight</a>, <a class="el" href="a05701.html#l00125">NLMISC::OptFastFloor()</a>, <a class="el" href="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>01081 {
+01082 <span class="comment">// if the model do not need to update his lighting, just skip.</span>
+01083 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_1">isNeedUpdateLighting</a>())
+01084 <span class="keywordflow">return</span>;
+01085
+01086
+01087 <span class="comment">// If a freezeStaticLightSetup() has been called on this model recently.</span>
+01088 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_0">isNeedUpdateFrozenStaticLightSetup</a>())
+01089 {
+01090 <span class="comment">// Now, the correct matrix is computed.</span>
+01091 <span class="comment">// get the untransformed bbox from the model.</span>
+01092 CAABBox bbox;
+01093 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModela5">getAABBox</a>(bbox);
+01094 <span class="comment">// get transformed center pos of bbox</span>
+01095 CVector worldModelPos= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>() * bbox.getCenter();
+01096
+01097 <span class="comment">// So we can compute AttFactor for each static light influencing this static object</span>
+01098 <a class="code" href="a04558.html#a15">uint</a> numPointLights= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.NumFrozenStaticLight;
+01099 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;numPointLights;i++)
+01100 {
+01101 <span class="keyword">const</span> CPointLight *pl= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[i];
+01102 <span class="comment">// don't worry about the precision of floor, because of *255.</span>
+01103 <span class="keywordtype">float</span> distToModel= (pl-&gt;getPosition() - worldModelPos).norm();
+01104 <a class="code" href="a04558.html#a14">sint</a> attFactor= <a class="code" href="a05378.html#a397">NLMISC::OptFastFloor</a>( 255 * pl-&gt;computeLinearAttenuation(worldModelPos, distToModel) );
+01105 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.AttFactor[i]= (<a class="code" href="a04558.html#a7">uint8</a>)attFactor;
+01106 }
+01107
+01108 <span class="comment">// clean.</span>
+01109 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(CTransform::IsNeedUpdateFrozenStaticLightSetup, <span class="keyword">false</span>);
+01110 }
+01111
+01112
+01113 <span class="comment">// see CTransform::clip(), here I am Lightable(), and I have no _AncestorSkeletonModel</span>
+01114 <span class="comment">// So I am sure that I really need to recompute my ModelLightContributions.</span>
+01115 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getLightTrav().LightingManager.computeModelLightContributions(<span class="keyword">this</span>,
+01116 _LightContribution, _LogicInfo);
+01117
+01118 <span class="comment">// done!</span>
+01119 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(CTransform::IsNeedUpdateLighting, <span class="keyword">false</span>);
+01120 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1057_2" doxytag="NL3D::CWaterModel::traverseLoadBalancing" ></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::CTransformShape::traverseLoadBalancing </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><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+no-op by default
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1017_6">NL3D::CTransform</a>.
+<p>
+Reimplemented in <a class="el" href="a02914.html#NL3D_1_1CMeshMultiLodInstancez541_0">NL3D::CMeshMultiLodInstance</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00262">262</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, <a class="el" href="a05924.html#l00166">NL3D::CLoadBalancingTrav::getLoadPass()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>, and <a class="el" href="a06570.html#l00308">NL3D::CTransformShape::traverseLoadBalancingPass1()</a>.
+<p>
+<div class="fragment"><pre>00263 {
+00264 CLoadBalancingTrav &amp;loadTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getLoadBalancingTrav();
+00265 <span class="keywordflow">if</span>(loadTrav.getLoadPass()==0)
+00266 <a class="code" href="a02537.html#NL3D_1_1CTransformShapez1061_0">traverseLoadBalancingPass0</a>();
+00267 <span class="keywordflow">else</span>
+00268 <a class="code" href="a02537.html#NL3D_1_1CTransformShapez1061_1">traverseLoadBalancingPass1</a>();
+00269 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelz1176_1" doxytag="NL3D::CWaterModel::traverseRender" ></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::CWaterModel::traverseRender </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><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Compute the origin of the area of Water covered by the height map. We use this to converted from object space to 2d map space
+<p>
+We don't store a heighmap for a complete Water area we just consider the height of Water columns that are near the observer<p>
+Compute a quad in Water height field space that contains the useful heights This helps us to decide wether we should do a lookup in the height map<p>
+get the pos used in the height map (may not be the same than our current pos, has it is taken in account every 'PropagationTime' second
+<p>
+Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1057_3">NL3D::CTransformShape</a>.
+<p>
+Definition at line <a class="el" href="a06737.html#l00437">437</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06738.html#l00105">_ClippedPoly</a>, <a class="el" href="a06738.html#l00106">_EndClippedPoly</a>, <a class="el" href="a06741.html#l00180">NL3D::CWaterShape::_GridSizeTouched</a>, <a class="el" href="a06741.html#l00175">NL3D::CWaterShape::_MaxGridSize</a>, <a class="el" href="a06742.html#l00221">NL3D::CWaterShape::_TransitionRatio</a>, <a class="el" href="a06741.html#l00176">NL3D::CWaterShape::_VB</a>, <a class="el" href="a06742.html#l00209">NL3D::CWaterShape::_WaterPoolID</a>, <a class="el" href="a06741.html#l00173">NL3D::CWaterShape::_XGridBorder</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera2">NL3D::IDriver::activeVertexBuffer()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_2">NL3D::IDriver::activeVertexProgram()</a>, <a class="el" href="a06735.html#l00236">NL3D::CWaterHeightMap::animate()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz139_0">NL3D::IDriver::beginMaterialMultiPass()</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Bottom</a>, <a class="el" href="a06583.html#l00077">NL3D::CTravCameraScene::CamMatrix</a>, <a class="el" href="a06583.html#l00079">NL3D::CTravCameraScene::CamPos</a>, <a class="el" href="a06190.html#l01075">NLMISC::CPolygon2D::computeBorders()</a>, <a class="el" href="a06737.html#l00344">NL3D::ComputeUpMatrix()</a>, <a class="el" href="a05646.html#l00240">count</a>, <a class="el" href="a05797.html#l00092">NL3D::CHrcTrav::CurrentDate</a>, <a class="el" href="a06736.html#l00174">NL3D::CWaterHeightMap::Date</a>, <a class="el" href="a06737.html#l01170">doSimpleRender()</a>, <a class="el" href="a06737.html#l00387">NL3D::DrawPoly2D()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz139_1">NL3D::IDriver::endMaterialMultiPass()</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Far</a>, <a class="el" href="a06330.html#l00133">NL3D::CRenderTrav::getDriver()</a>, <a class="el" href="a06349.html#l00474">NL3D::CScene::getHrcTrav()</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="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06739.html#l00109">NL3D::CWaterPoolManager::getPoolByID()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06736.html#l00082">NL3D::CWaterHeightMap::getSize()</a>, <a class="el" href="a06736.html#l00171">NL3D::CWaterHeightMap::getUnitSize()</a>, <a class="el" href="a06735.html#l00347">NL3D::CWaterHeightMap::getUserPos()</a>, <a class="el" href="a06710.html#l00438">NL3D::CVertexBuffer::getVertexCoordPointer()</a>, <a class="el" href="a06711.html#l00473">NL3D::CVertexBuffer::getVertexSize()</a>, <a class="el" href="a06739.html#l00078">NL3D::GetWaterPoolManager()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a05972.html#l01090">NLMISC::CMatrix::inverted()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz149_1">NL3D::IDriver::isWaterShaderSupported()</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Left</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05972.html#l00279">NLMISC::CMatrix::movePos()</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Near</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera55">NL3D::IDriver::renderSimpleTriangles()</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Right</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera67">NL3D::IDriver::setupMaterial()</a>, <a class="el" href="a06737.html#l00831">setupMaterialNVertexShader()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz139_2">NL3D::IDriver::setupMaterialPass()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera68">NL3D::IDriver::setupModelMatrix()</a>, <a class="el" href="a06741.html#l00274">NL3D::CWaterShape::setupVertexBuffer()</a>, <a class="el" href="a06737.html#l00182">NL3D::SetupWaterVertex()</a>, <a class="el" href="a06735.html#l00339">NL3D::CWaterHeightMap::setUserPos()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00101">sint64</a>, <a class="el" href="a05646.html#l00985">t</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Top</a>, <a class="el" href="a06191.html#l00160">NLMISC::CPolygon2D::TRasterVect</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a06191.html#l00126">NLMISC::CPolygon2D::Vertices</a>, <a class="el" href="a06191.html#l00055">NLMISC::CPolygon::Vertices</a>, <a class="el" href="a06583.html#l00078">NL3D::CTravCameraScene::ViewMatrix</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>00438 {
+00439 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_Water_Render );
+00440
+00441 CRenderTrav &amp;renderTrav = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav();
+00442 IDriver *drv = renderTrav.getDriver();
+00443
+00444
+00445 <span class="preprocessor"> #ifndef FORCE_SIMPLE_WATER_RENDER</span>
+00446 <span class="preprocessor"></span> <span class="keywordflow">if</span> (!drv-&gt;isWaterShaderSupported())
+00447 <span class="preprocessor"> #endif</span>
+00448 <span class="preprocessor"></span> {
+00449 <a class="code" href="a03721.html#NL3D_1_1CWaterModelb4">doSimpleRender</a>(drv);
+00450 <span class="keywordflow">return</span>;
+00451 }
+00452
+00453 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *shape = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+00454
+00455
+00456 <span class="keywordflow">if</span> (shape-&gt;_GridSizeTouched)
+00457 {
+00458 shape-&gt;setupVertexBuffer();
+00459 }
+00460
+00461 <span class="comment">// inverted object world matrix</span>
+00462 <span class="comment">//NLMISC::CMatrix invObjMat = getWorldMatrix().inverted();</span>
+00463
+00464 <span class="comment">// viewer pos in world space</span>
+00465 <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> &amp;obsPos = <span class="comment">/*invObjMat **/</span> renderTrav.CamPos;
+00466
+00467 <span class="comment">// camera matrix in world space</span>
+00468 <span class="keyword">const</span> <a class="code" href="a02851.html">NLMISC::CMatrix</a> &amp;camMat = renderTrav.CamMatrix;
+00469
+00470 <span class="comment">// view matrix (inverted cam matrix)</span>
+00471 <span class="keyword">const</span> <a class="code" href="a02851.html">NLMISC::CMatrix</a> &amp;viewMat = renderTrav.ViewMatrix;
+00472
+00473 <span class="comment">// compute the camera matrix such as there is no rotation around the y axis</span>
+00474 <a class="code" href="a02851.html">NLMISC::CMatrix</a> camMatUp;
+00475 <a class="code" href="a05363.html#a549">ComputeUpMatrix</a>(camMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>(), camMatUp, camMat);
+00476 camMatUp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_4">setPos</a>(camMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>());
+00477
+00478 <span class="keyword">const</span> <a class="code" href="a02851.html">NLMISC::CMatrix</a> matViewUp = camMatUp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1967_1">inverted</a>();
+00479
+00480 <span class="comment">// plane z pos in world</span>
+00481 <span class="keyword">const</span> <span class="keywordtype">float</span> zHeight = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>().z;
+00482
+00483 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> numStepX = CWaterShape::getScreenXGridSize();
+00484 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> numStepY = CWaterShape::getScreenYGridSize();
+00485
+00486 <span class="keyword">const</span> <span class="keywordtype">float</span> invNumStepX = 1.f / numStepX;
+00487 <span class="keyword">const</span> <span class="keywordtype">float</span> invNumStepY = 1.f / numStepY;
+00488
+00489 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> rotBorderSize = (shape-&gt;_MaxGridSize + (shape-&gt;_XGridBorder &lt;&lt; 1) - numStepX) &gt;&gt; 1;
+00490
+00491 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> isAbove = obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> &gt; zHeight ? 1 : 0;
+00492
+00493
+00494 <span class="preprocessor"> #ifdef NO_WATER_TESSEL</span>
+00495 <span class="preprocessor"></span> <span class="keyword">const</span> <span class="keywordtype">float</span> transitionDist = renderTrav.Near * 0.99f;
+00496 <span class="preprocessor"> #else</span>
+00497 <span class="preprocessor"></span> <span class="keyword">const</span> <span class="keywordtype">float</span> transitionDist = shape-&gt;_TransitionRatio * renderTrav.Far;
+00498 <span class="preprocessor"> #endif</span>
+00499 <span class="preprocessor"></span>
+00500
+00501 <a class="code" href="a02851.html">NLMISC::CMatrix</a> modelMat;
+00502 modelMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_4">setPos</a>(<a class="code" href="a03128.html">NLMISC::CVector</a>(obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, zHeight));
+00503 drv-&gt;setupModelMatrix(modelMat);
+00504
+00505
+00506
+00507
+00508 <span class="comment">//==================//</span>
+00509 <span class="comment">// material setup //</span>
+00510 <span class="comment">//==================//</span>
+00511
+00512 CWaterHeightMap &amp;whm = <a class="code" href="a05363.html#a551">GetWaterPoolManager</a>().getPoolByID(shape-&gt;_WaterPoolID);
+00513
+00514 <a class="code" href="a03721.html#NL3D_1_1CWaterModelb10">setupMaterialNVertexShader</a>(drv, shape, obsPos, isAbove &gt; 0, whm.getUnitSize() * (whm.getSize() &gt;&gt; 1), zHeight);
+00515
+00516
+00517 drv-&gt;setupMaterial(CWaterModel::_WaterMat);
+00518
+00519
+00520
+00521 <a class="code" href="a04558.html#a14">sint</a> numPass = drv-&gt;beginMaterialMultiPass();
+00522 <a class="code" href="a04199.html#a6">nlassert</a>(numPass == 1); <span class="comment">// for now, we assume water is always rendered in a single pass !</span>
+00523 drv-&gt;setupMaterialPass(0);
+00524
+00525
+00526 <span class="comment">//setAttenuationFactor(drv, false, obsPos, camMat.getJ(), farDist);</span>
+00527 <span class="comment">//disableAttenuation(drv);</span>
+00528
+00529
+00530 <span class="comment">//================================//</span>
+00531 <span class="comment">// Vertex buffer setup //</span>
+00532 <span class="comment">//================================//</span>
+00533
+00534 drv-&gt;activeVertexBuffer(shape-&gt;_VB);
+00535
+00536 <span class="comment">//================================//</span>
+00537 <span class="comment">// tesselated part of the poly //</span>
+00538 <span class="comment">//================================//</span>
+00539
+00540 <span class="keywordflow">if</span> (<a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size())
+00541 {
+00542
+00543
+00544
+00545 <span class="comment">//======================================//</span>
+00546 <span class="comment">// Polygon projection on the near plane //</span>
+00547 <span class="comment">//======================================//</span>
+00548
+00549 <span class="keyword">static</span> <a class="code" href="a03101.html">NLMISC::CPolygon2D</a> projPoly; <span class="comment">// projected poly</span>
+00550 projPoly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>.resize(<a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size());
+00551 <span class="keyword">const</span> <span class="keywordtype">float</span> Near = renderTrav.Near;
+00552 <span class="keyword">const</span> <span class="keywordtype">float</span> xFactor = (numStepX &gt;&gt; 1) * Near / renderTrav.Right;
+00553 <span class="keyword">const</span> <span class="keywordtype">float</span> xOffset = (<span class="keywordtype">float</span>) (numStepX &gt;&gt; 1) + 0.5f;
+00554 <span class="keyword">const</span> <span class="keywordtype">float</span> yFactor = - (numStepX &gt;&gt; 1) * Near / renderTrav.Top;
+00555 <span class="keyword">const</span> <span class="keywordtype">float</span> yOffset = (<span class="keywordtype">float</span>) (numStepY &gt;&gt; 1) - 0.5f * isAbove;
+00556
+00557 <span class="keyword">const</span> <a class="code" href="a02851.html">NLMISC::CMatrix</a> projMat = matViewUp * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>();
+00558 <a class="code" href="a04558.html#a15">uint</a> k;
+00559 <span class="keywordflow">for</span> (k = 0; k &lt; <a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size(); ++k)
+00560 {
+00561 <span class="comment">// project points in the view</span>
+00562 <a class="code" href="a03128.html">NLMISC::CVector</a> <a class="code" href="a04223.html#a627">t</a> = projMat * <a class="code" href="a03721.html#NL3D_1_1CWaterModelr0">_ClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[k];
+00563 <span class="keywordtype">float</span> invY = 1.f / <a class="code" href="a04223.html#a627">t</a>.y;
+00564 projPoly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Do0">Vertices</a>[k].set(xFactor * <a class="code" href="a04223.html#a627">t</a>.x * invY + xOffset, yFactor * <a class="code" href="a04223.html#a627">t</a>.z * invY + yOffset);
+00565 }
+00566
+00567
+00568
+00569 <span class="comment">//=============================================//</span>
+00570 <span class="comment">// compute borders of poly at a low resolution //</span>
+00571 <span class="comment">//=============================================//</span>
+00572
+00573 <a class="code" href="a03101.html#NLMISC_1_1CPolygon2Dw1">NLMISC::CPolygon2D::TRasterVect</a> rasters;
+00574 <a class="code" href="a04558.html#a14">sint</a> startY;
+00575 projPoly.<a class="code" href="a03101.html#NLMISC_1_1CPolygon2Da1">computeBorders</a>(rasters, startY);
+00576
+00577 <span class="keywordflow">if</span> (rasters.size())
+00578 {
+00579 <span class="comment">//===========================//</span>
+00580 <span class="comment">// perform Water animation //</span>
+00581 <span class="comment">//===========================// </span>
+00582
+00583 <span class="keyword">const</span> <span class="keywordtype">float</span> WaterRatio = whm.getUnitSize();
+00584 <span class="keyword">const</span> <span class="keywordtype">float</span> invWaterRatio = 1.f / WaterRatio;
+00585 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> WaterHeightMapSize = whm.getSize();
+00586 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> doubleWaterHeightMapSize = (WaterHeightMapSize &lt;&lt; 1);
+00587
+00588
+00589 <a class="code" href="a04558.html#a12">sint64</a> idate = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getHrcTrav().CurrentDate;
+00590
+00591
+00592
+00593 <span class="keywordflow">if</span> (idate != whm.Date)
+00594 {
+00595 whm.setUserPos((<a class="code" href="a04558.html#a14">sint</a>) (obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * invWaterRatio) - (WaterHeightMapSize &gt;&gt; 1),
+00596 (<a class="code" href="a04558.html#a14">sint</a>) (obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> * invWaterRatio) - (WaterHeightMapSize &gt;&gt; 1)
+00597 );
+00598 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()); <span class="comment">// this object should have been created from a CWaterShape!</span>
+00599 whm.animate((<span class="keywordtype">float</span>) (<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getEllapsedTime()));
+00600 whm.Date = idate;
+00601 }
+00602
+00603 <span class="comment">//float startDate = (float) (1000.f * NLMISC::CTime::ticksToSecond(NLMISC::CTime::getPerformanceTime()));</span>
+00604
+00605 <span class="comment">//=====================================//</span>
+00606 <span class="comment">// compute heightmap useful area //</span>
+00607 <span class="comment">//=====================================//</span>
+00608
+00616 <a class="code" href="a04558.html#a14">sint</a> mapPosX, mapPosY;
+00617
+00620 whm.getUserPos(mapPosX, mapPosY);
+00621
+00622 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> mapBorder = 3;
+00623 <span class="comment">/*const sint qRight = (sint) mapPosX + (WaterHeightMapSize &gt;&gt; 1) - mapBorder;</span>
+00624 <span class="comment"> sint qLeft = (sint) mapPosX - (WaterHeightMapSize &gt;&gt; 1);</span>
+00625 <span class="comment"> const sint qUp = (sint) mapPosY + (WaterHeightMapSize &gt;&gt; 1) - mapBorder;</span>
+00626 <span class="comment"> sint qDown = (sint) mapPosY - (WaterHeightMapSize &gt;&gt; 1); */</span>
+00627
+00628
+00629 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> qRight = (<a class="code" href="a04558.html#a14">sint</a>) mapPosX + WaterHeightMapSize - mapBorder;
+00630 <a class="code" href="a04558.html#a14">sint</a> qLeft = (<a class="code" href="a04558.html#a14">sint</a>) mapPosX;
+00631 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> qUp = (<a class="code" href="a04558.html#a14">sint</a>) mapPosY + WaterHeightMapSize - mapBorder;
+00632 <a class="code" href="a04558.html#a14">sint</a> qDown = (<a class="code" href="a04558.html#a14">sint</a>) mapPosY;
+00633
+00635 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> qSubLeft = qLeft - (<a class="code" href="a04558.html#a15">uint</a>) qLeft % WaterHeightMapSize;
+00636 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> qSubDown = qDown - (<a class="code" href="a04558.html#a15">uint</a>) qDown % WaterHeightMapSize;
+00637
+00638 qLeft += mapBorder;
+00639 qDown += mapBorder;
+00640
+00641
+00642
+00643
+00644 <span class="comment">//==============================================//</span>
+00645 <span class="comment">// setup rays to be traced, and their increment //</span>
+00646 <span class="comment">//==============================================//</span>
+00647
+00648
+00649 <span class="comment">// compute camera rays in world space</span>
+00650 <a class="code" href="a03128.html">NLMISC::CVector</a> currHV = renderTrav.Left * camMatUp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>() + renderTrav.Near * camMatUp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>() + renderTrav.Top * camMatUp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_4">getK</a>(); <span class="comment">// current border vector, incremented at each line</span>
+00651 <a class="code" href="a03128.html">NLMISC::CVector</a> currV; <span class="comment">// current ray vector</span>
+00652 <a class="code" href="a03128.html">NLMISC::CVector</a> xStep = (renderTrav.Right - renderTrav.Left) * invNumStepX * camMatUp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>(); <span class="comment">// xStep for the ray vector</span>
+00653 <a class="code" href="a03128.html">NLMISC::CVector</a> yStep = (renderTrav.Bottom - renderTrav.Top) * invNumStepY * camMatUp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_4">getK</a>(); <span class="comment">// yStep for the ray vector</span>
+00654
+00655
+00656
+00657 <span class="comment">//===============================================//</span>
+00658 <span class="comment">// perform display //</span>
+00659 <span class="comment">//===============================================//</span>
+00660
+00661 <span class="comment">// scale currHV at the top of the poly</span>
+00662 currHV += (startY - 0.5f * isAbove) * yStep;
+00663
+00664 <span class="comment">// current index buffer used. We swap each time a row has been drawn</span>
+00665 std::vector&lt;uint32&gt; *currIB = &amp;CWaterShape::_IBUpDown, *otherIB = &amp;CWaterShape::_IBDownUp;
+00666
+00667
+00668 <a class="code" href="a04558.html#a14">sint</a> vIndex = 0; <span class="comment">// index in vertices </span>
+00669
+00670 <span class="comment">// current raster position</span>
+00671 <a class="code" href="a04558.html#a14">sint</a> oldStartX, oldEndX, realStartX, realEndX;
+00672 <span class="comment">//float invNearWidth = numStepX / (renderTrav.Right - renderTrav.Left);</span>
+00673
+00674 <span class="comment">//nlinfo("size = %d, maxSize = ", rasters.size(), numStepY);</span>
+00675
+00676
+00677 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> wqHeight = rasters.size();
+00678 <span class="keywordflow">if</span> (wqHeight)
+00679 {
+00680 <span class="comment">// denominator of the intersection equation</span>
+00681 <span class="keyword">const</span> <span class="keywordtype">float</span> denom = - obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> + zHeight;
+00682 <span class="comment">// test the upper raster</span>
+00683 <span class="comment">// if it is above the horizon, we modify it to reach the correct location</span>
+00684 <span class="keyword">const</span> <span class="keywordtype">float</span> horizonEpsilon = 10E-4f; <span class="comment">// we must be a little below the horizon</span>
+00685
+00686 <span class="comment">// distance from the viewer along the traced ray</span>
+00687 <span class="keywordtype">float</span> <a class="code" href="a04223.html#a627">t</a>;
+00688
+00689
+00690
+00691
+00692 NLMISC::CPolygon2D::TRasterVect::const_iterator it = rasters.begin();
+00693 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a05373.html#a2">l</a> = 0; <a class="code" href="a05373.html#a2">l</a> &lt;= wqHeight; ++<a class="code" href="a05373.html#a2">l</a>)
+00694 {
+00695 <span class="comment">//nlinfo("start = %d, end = %d", it-&gt;first, it-&gt;second); </span>
+00696 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> startX = it-&gt;first;
+00697 <span class="keyword">const</span> <a class="code" href="a04558.html#a14">sint</a> endX = (it-&gt;second + 1);
+00698
+00699 <a class="code" href="a04199.html#a6">nlassert</a>(startX &gt;= - (<a class="code" href="a04558.html#a14">sint</a>) rotBorderSize);
+00700 <a class="code" href="a04199.html#a6">nlassert</a>(endX &lt;= (<a class="code" href="a04558.html#a14">sint</a>) (numStepX + rotBorderSize));
+00701
+00702 <span class="keywordflow">if</span> (<a class="code" href="a05373.html#a2">l</a> != 0)
+00703 {
+00704 realStartX = <a class="code" href="a04061.html#a0">std::min</a>(startX, oldStartX);
+00705 realEndX = std::max(endX, oldEndX);
+00706 }
+00707 <span class="keywordflow">else</span>
+00708 {
+00709 realStartX = startX;
+00710 realEndX = endX;
+00711 }
+00712
+00713
+00714 <span class="comment">// current view vector</span>
+00715 currV = currHV + (realStartX - 0.5f) * xStep;
+00716
+00717 <span class="keywordflow">if</span> (<a class="code" href="a05373.html#a2">l</a> == 0)
+00718 {
+00719 <span class="keywordflow">if</span> (isAbove)
+00720 {
+00721 <span class="comment">// test wether the first row is out of horizon.</span>
+00722 <span class="comment">// if this is the case, we make a correction</span>
+00723 <span class="keywordflow">if</span> (denom * currV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> &lt;= 0)
+00724 {
+00725 <span class="comment">// correct for the first line only by adding a y offset</span>
+00726 currV += yStep * ((denom &gt; 0 ? horizonEpsilon : - horizonEpsilon) - currV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>) / yStep.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>;
+00727 }
+00728
+00729 <span class="comment">// now, for the transition, check wether the first raster does not go over the transition dist</span>
+00730
+00731 <a class="code" href="a04223.html#a627">t</a> = denom / currV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>;
+00732 <span class="keyword">const</span> <span class="keywordtype">float</span> VJ = camMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>() * currV;
+00733 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a627">t</a> * VJ &gt; transitionDist)
+00734 {
+00735 <span class="keywordtype">float</span> delta = (1.f / yStep.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>) * ( denom * VJ / transitionDist - currV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>);
+00736 <span class="comment">// correct the first line to reach that position</span>
+00737 currV += delta * yStep;
+00738 }
+00739 }
+00740 }
+00741
+00742
+00743 <a class="code" href="a04558.html#a7">uint8</a> *vbPointer = (<a class="code" href="a04558.html#a7">uint8</a> *) shape-&gt;_VB.getVertexCoordPointer() + shape-&gt;_VB.getVertexSize() * (vIndex + realStartX + rotBorderSize);
+00744
+00745
+00746 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a14">sint</a> k = realStartX; k &lt;= realEndX; ++k)
+00747 {
+00748 <a class="code" href="a04223.html#a627">t</a> = denom / currV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>;
+00749 <span class="comment">// compute intersection with plane </span>
+00750 <a class="code" href="a03128.html">NLMISC::CVector</a> inter = <a class="code" href="a04223.html#a627">t</a> * currV;
+00751 inter.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> += obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>;
+00752 <a class="code" href="a05363.html#a548">SetupWaterVertex</a>(qLeft, qRight, qUp, qDown, qSubLeft, qSubDown, inter, invWaterRatio, doubleWaterHeightMapSize, whm, vbPointer, obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>);
+00753 currV += xStep;
+00754 }
+00755
+00756 <span class="keywordflow">if</span> (<a class="code" href="a05373.html#a2">l</a> != 0) <span class="comment">// 2 line of the ib done ?</span>
+00757 {
+00758 <a class="code" href="a04558.html#a14">sint</a> <a class="code" href="a04223.html#a577">count</a> = oldEndX - oldStartX;
+00759 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a577">count</a> &gt; 0)
+00760 {
+00761 drv-&gt;renderSimpleTriangles(&amp;((*currIB)[(oldStartX + rotBorderSize) * 6]),
+00762 2 * count );
+00763 }
+00764 }
+00765
+00766 oldStartX = startX;
+00767 oldEndX = endX;
+00768 currHV += yStep;
+00769 vIndex = (numStepX + 2 * rotBorderSize + 1) - vIndex; <span class="comment">// swap first row and second row</span>
+00770 std::swap(currIB, otherIB);
+00771 <span class="keywordflow">if</span> (<a class="code" href="a05373.html#a2">l</a> &lt; (wqHeight - 1))
+00772 {
+00773 ++it;
+00774 }
+00775 <span class="keywordflow">else</span>
+00776 {
+00777 <span class="keywordflow">if</span> (!isAbove)
+00778 {
+00779 <span class="comment">// last line</span>
+00780 <span class="comment">// test wether we are out of horizon</span>
+00781 <span class="keywordflow">if</span> (denom * currHV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> &lt;= 0)
+00782 {
+00783 <span class="comment">// correct for the first line only by adding a y offset</span>
+00784 currHV += yStep * ((denom &gt; 0 ? horizonEpsilon : - horizonEpsilon) - currHV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>) / yStep.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>;
+00785 }
+00786
+00787 <span class="comment">// now, for the transition, check wether the first raster does not go over the transition dist</span>
+00788
+00789 <a class="code" href="a04223.html#a627">t</a> = denom / currHV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>;
+00790 <span class="keyword">const</span> <span class="keywordtype">float</span> VJ = camMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>() * currHV;
+00791 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a627">t</a> * VJ &gt; transitionDist)
+00792 {
+00793 <span class="keywordtype">float</span> delta = (1.f / yStep.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>) * ( denom * VJ / transitionDist - currHV.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>);
+00794 <span class="comment">// correct the first line to reach that position</span>
+00795 currHV += delta * yStep;
+00796 }
+00797 }
+00798
+00799 }
+00800 }
+00801
+00802 }
+00803 <span class="comment">//nlinfo("display: %f ms", (float) (1000.f * NLMISC::CTime::ticksToSecond(NLMISC::CTime::getPerformanceTime()) - startDate));</span>
+00804 }
+00805 }
+00806
+00807 <span class="comment">//=========================================//</span>
+00808 <span class="comment">// display end poly //</span>
+00809 <span class="comment">//=========================================//</span>
+00810
+00811 <span class="keywordflow">if</span> (<a class="code" href="a03721.html#NL3D_1_1CWaterModelr5">_EndClippedPoly</a>.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size() != 0)
+00812 {
+00813
+00814 <a class="code" href="a02851.html">CMatrix</a> xform = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>;
+00815 xform.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_1">movePos</a>(<a class="code" href="a03128.html">NLMISC::CVector</a>(- obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, - obsPos.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, _WorldMatrix.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>().z));
+00816 <a class="code" href="a05363.html#a550">DrawPoly2D</a>(shape-&gt;_VB, drv, xform, _EndClippedPoly);
+00817 }
+00818
+00819 drv-&gt;endMaterialMultiPass();
+00820
+00821
+00822 drv-&gt;activeVertexProgram(NULL);
+00823
+00824 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela49" doxytag="NL3D::CWaterModel::unfreezeHRC" ></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::CTransform::unfreezeHRC </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">freezeHRC()</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00406">406</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00741">NL3D::CTransform::_FreezeHRCState</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06569.html#l00701">NL3D::CTransform::_HrcParentUnfreeze</a>, <a class="el" href="a06569.html#l00634">NL3D::CTransform::_LightedModelIt</a>, <a class="el" href="a05901.html#l00217">NL3D::CLightingManager::eraseStaticLightedModel()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformy29NL3D_1_1CTransformy1">NL3D::CTransform::FreezeHRCStateDisabled</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00482">NL3D::CScene::getRoot()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a05898.html#l00097">NL3D::CLightTrav::LightingManager</a>, <a class="el" href="a06568.html#l00612">NL3D::CTransform::linkToUpdateList()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy28">NL3D::CTransform::QuadGridClipEnabled</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, and <a class="el" href="a06569.html#l00561">NL3D::CTransform::unlinkFromQuadCluster()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, and <a class="el" href="a06350.html#l01146">NL3D::CInstanceGroup::unfreezeHRC()</a>.
+<p>
+<div class="fragment"><pre>00407 {
+00408 <span class="comment">// if this model is no HRC frozen disabled</span>
+00409 <span class="keywordflow">if</span>(_FreezeHRCState!=FreezeHRCStateDisabled)
+00410 {
+00411 <span class="comment">// if model correctly frozen.</span>
+00412 <span class="keywordflow">if</span>(_FreezeHRCState == CTransform::FreezeHRCStateEnabled )
+00413 {
+00414 <span class="comment">// Should not be linked : can't link after a freezeHRC</span>
+00415 <a class="code" href="a04199.html#a6">nlassert</a> (_HrcParent == NULL);
+00416
+00417 <span class="comment">// Set as unfreeze else, hrcLinkSon doesn't work</span>
+00418 _FreezeHRCState= FreezeHRCStateDisabled;
+00419
+00420 <span class="comment">// Link this model to the previous HRC parent.</span>
+00421 <span class="keywordflow">if</span> (_HrcParentUnfreeze)
+00422 _HrcParentUnfreeze-&gt;hrcLinkSon( <span class="keyword">this</span> );
+00423 <span class="keywordflow">else</span>
+00424 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRoot()-&gt;hrcLinkSon( <span class="keyword">this</span> );
+00425
+00426 <span class="comment">// Link this object to the validateList.</span>
+00427 <a class="code" href="a02316.html#NL3D_1_1CTransformz1039_0">linkToUpdateList</a>();
+00428
+00429 <span class="comment">// if lightable()</span>
+00430 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable</a>() )
+00431 {
+00432 CLightTrav &amp;lightTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getLightTrav();
+00433 <span class="comment">// Lighting: must remove the object from the quadGrid.</span>
+00434 <span class="comment">// NB: works if _LightedModelIt==NULL. result is that _LightedModelIt= NULL.</span>
+00435 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">_LightedModelIt</a>= lightTrav.LightingManager.eraseStaticLightedModel(_LightedModelIt);
+00436 }
+00437
+00438 }
+00439 <span class="keywordflow">else</span>
+00440 _FreezeHRCState= FreezeHRCStateDisabled;
+00441
+00442 <span class="comment">// unlink me from any QuadCluster, and disable QuadCluster</span>
+00443 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelb7">unlinkFromQuadCluster</a>();
+00444 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(QuadGridClipEnabled, <span class="keyword">false</span>);
+00445 }
+00446 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_7" doxytag="NL3D::CWaterModel::unfreezeStaticLightSetup" ></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::CTransform::unfreezeStaticLightSetup </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><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+unFreeze the Static Light Setup. Must be called if static pointLights are deleted. NB: it calls <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting()</a> first. NB: do not need to call it if pointLights and this transform are deleted at same time.
+<p>
+Definition at line <a class="el" href="a06568.html#l01061">1061</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a05894.html#l00093">NL3D::CLightContribution::FrozenAmbientLight</a>, <a class="el" href="a05894.html#l00079">NL3D::CLightContribution::FrozenStaticLightSetup</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy17">NL3D::CTransform::IsNeedUpdateFrozenStaticLightSetup</a>, <a class="el" href="a05894.html#l00084">NL3D::CLightContribution::NumFrozenStaticLight</a>, <a class="el" href="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l00935">NL3D::CInstanceGroup::removeFromScene()</a>.
+<p>
+<div class="fragment"><pre>01062 {
+01063 <span class="comment">// resetLighting() first.</span>
+01064 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting</a>();
+01065
+01066 <span class="comment">// Disable StaticLightSetup.</span>
+01067 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenStaticLightSetup= <span class="keyword">false</span>;
+01068 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.NumFrozenStaticLight= 0;
+01069 <span class="comment">// End the list</span>
+01070 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[0]= NULL;
+01071 <span class="comment">// No more FrozenAmbientLight</span>
+01072 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenAmbientLight= NULL;
+01073
+01074 <span class="comment">// Don't need to update StaticLightSetup since no more exist.</span>
+01075 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsNeedUpdateFrozenStaticLightSetup, <span class="keyword">false</span>);
+01076 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelb7" doxytag="NL3D::CWaterModel::unlinkFromQuadCluster" ></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::CTransformShape::unlinkFromQuadCluster </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><code> [protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+special feature for <a class="el" href="a03287.html">CQuadGridClipManager</a>. remove from it.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelb7">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00133">133</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a06571.html#l00196">NL3D::CTransformShape::_QuadClusterListNode</a>, and <a class="el" href="a05704.html#l00037">NL3D::CFastPtrListNode::unlink()</a>.
+<p>
+<div class="fragment"><pre>00134 {
+00135 <span class="comment">// if linked to a quadGridClipCluster, unlink it</span>
+00136 _QuadClusterListNode.unlink();
+00137 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_4" doxytag="NL3D::CWaterModel::update" ></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::CTransform::update </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><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This function update the model (called by <a class="el" href="a03348.html#NL3D_1_1CScened0">CScene::updateModels()</a>) Deriver Must :<ul>
+<li>call BaseClass::update() (eg: <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_4">CTransform::update()</a>).</li><li>test if something is different (eg: animation modification). Then update Model information (eg compute new Matrix).</li></ul>
+<p>
+The default behavior is to update transform Matrix etc...
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCamerab8">NL3D::CCamera</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00450">450</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00741">NL3D::CTransform::_FreezeHRCState</a>, <a class="el" href="a06569.html#l00847">NL3D::CTransform::_Frozen</a>, <a class="el" href="a06569.html#l00735">NL3D::CTransform::_LastTransformableMatrixDate</a>, <a class="el" href="a06569.html#l00634">NL3D::CTransform::_LightedModelIt</a>, <a class="el" href="a06569.html#l00841">NL3D::CTransform::_LocalDate</a>, <a class="el" href="a06569.html#l00839">NL3D::CTransform::_LocalMatrix</a>, <a class="el" href="a06569.html#l00840">NL3D::CTransform::_LocalVis</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a05797.html#l00092">NL3D::CHrcTrav::CurrentDate</a>, <a class="el" href="a05901.html#l00217">NL3D::CLightingManager::eraseStaticLightedModel()</a>, <a class="el" href="a06349.html#l00474">NL3D::CScene::getHrcTrav()</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06575.html#l00076">NL3D::ITransformable::getMatrix()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, <a class="el" href="a05901.html#l00231">NL3D::CLightingManager::insertStaticLightedModel()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a05898.html#l00097">NL3D::CLightTrav::LightingManager</a>, <a class="el" href="a06568.html#l00630">NL3D::CTransform::unlinkFromUpdateList()</a>, and <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, <a class="el" href="a06568.html#l00367">NL3D::CTransform::freeze()</a>, and <a class="el" href="a06348.html#l01067">NL3D::CScene::updateModels()</a>.
+<p>
+<div class="fragment"><pre>00451 {
+00452 <span class="comment">// test if the matrix has been changed in ITransformable.</span>
+00453 <span class="keywordflow">if</span>(ITransformable::compareMatrixDate(_LastTransformableMatrixDate))
+00454 {
+00455 _LastTransformableMatrixDate= ITransformable::getMatrixDate();
+00456 _TransformDirty= <span class="keyword">true</span>;
+00457 }
+00458
+00459 <span class="comment">// update the freezeHRC state.</span>
+00460 <span class="keywordflow">if</span>(_FreezeHRCState != CTransform::FreezeHRCStateDisabled)
+00461 {
+00462 <span class="comment">// if the model request to be frozen in HRC</span>
+00463 <span class="keywordflow">if</span>(_FreezeHRCState == CTransform::FreezeHRCStateRequest )
+00464 {
+00465 <span class="comment">// Wait for next Hrc traversal to compute good _WorldMatrix for this model and his sons.</span>
+00466 <span class="comment">// Also, next Hrc traversal will insert the model in the LightingManager quadGrid (if lightable)</span>
+00467 _FreezeHRCState = CTransform::FreezeHRCStateReady;
+00468 }
+00469 <span class="comment">// if the model is ready to be frozen in HRC, then do it!!</span>
+00470 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( _FreezeHRCState == CTransform::FreezeHRCStateReady )
+00471 {
+00472 <span class="comment">// Unlink this model.</span>
+00473 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_4">hrcUnlink</a>();
+00474
+00475 <span class="comment">// unLink this object from the validateList. NB: the list will still be correclty parsed.</span>
+00476 <a class="code" href="a02316.html#NL3D_1_1CTransformz1039_1">unlinkFromUpdateList</a>();
+00477
+00478 <span class="comment">// if lightable, the model is inserted in a quadgrid to update his lighting only when</span>
+00479 <span class="comment">// dynamicLights touch him (since himself is static).</span>
+00480 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable</a>() )
+00481 {
+00482 CLightTrav &amp;lightTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getLightTrav();
+00483 <span class="comment">// Lighting: must reinsert the object from the quadGrid.</span>
+00484 <span class="comment">// NB: works if _LightedModelIt==NULL. result is that _LightedModelIt= NULL.</span>
+00485 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">_LightedModelIt</a>= lightTrav.LightingManager.eraseStaticLightedModel(_LightedModelIt);
+00486 <span class="comment">// insert in the quadgrid.</span>
+00487 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">_LightedModelIt</a>= lightTrav.LightingManager.insertStaticLightedModel(<span class="keyword">this</span>);
+00488 }
+00489
+00490 <span class="comment">// Now this model won't be tested for validation nor for worldMatrix update. End!!</span>
+00491 _FreezeHRCState = CTransform::FreezeHRCStateEnabled;
+00492 }
+00493 }
+00494
+00495 <span class="comment">// update _LocalMatrix</span>
+00496 <span class="keywordflow">if</span>(_TransformDirty)
+00497 {
+00498 <span class="comment">// update the local matrix.</span>
+00499 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>= <a class="code" href="a02278.html#NL3D_1_1ITransformablea1">getMatrix</a>();
+00500 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_8">_LocalVis</a>= Visibility;
+00501 <span class="comment">// update the date of the local matrix.</span>
+00502 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_6">_LocalDate</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getHrcTrav().CurrentDate;
+00503
+00504 <span class="comment">// The transform has been modified. Hence, it is no more frozen.</span>
+00505 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a>= <span class="keyword">false</span>;
+00506
+00507 <span class="comment">// ok!</span>
+00508 _TransformDirty= <span class="keyword">false</span>;
+00509 }
+00510 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_0" doxytag="NL3D::CWaterModel::updateClipTravForAncestorSkeleton" ></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::CTransform::updateClipTravForAncestorSkeleton </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><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00748">748</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a06569.html#l00849">NL3D::CTransform::_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>, <a class="el" href="a06568.html#l01217">NL3D::CTransform::clipAddChild()</a>, <a class="el" href="a06569.html#l00234">NL3D::CTransform::clipGetNumParents()</a>, <a class="el" href="a06568.html#l01258">NL3D::CTransform::clipGetParent()</a>, <a class="el" href="a06568.html#l01248">NL3D::CTransform::clipUnlinkFromAll()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00482">NL3D::CScene::getRoot()</a>, and <a class="el" href="a06349.html#l00636">NL3D::CScene::SonsOfAncestorSkeletonModelGroup</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>.
+<p>
+<div class="fragment"><pre>00749 {
+00750 CClipTrav &amp;clipTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav();
+00751
+00752 <span class="comment">// If I have an ancestor Skeleton Model, I must be binded in ClipTrav to the SonsOfAncestorSkeletonModelGroup</span>
+00753 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a> &amp;&amp; !<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>)
+00754 {
+00755 <span class="comment">// must unlink from ALL olds models.</span>
+00756 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_6">clipUnlinkFromAll</a>();
+00757
+00758 <span class="comment">// And link to SonsOfAncestorSkeletonModelGroup.</span>
+00759 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;SonsOfAncestorSkeletonModelGroup-&gt;clipAddChild(<span class="keyword">this</span>);
+00760
+00761 <span class="comment">// update the flag.</span>
+00762 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>= <span class="keyword">true</span>;
+00763 }
+00764
+00765
+00766 <span class="comment">// else I must be binded to the standard Root.</span>
+00767 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a> &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>)
+00768 {
+00769 <span class="comment">// verify first I am really still linked to the SonsOfAncestorSkeletonModelGroup.</span>
+00770 <span class="comment">// This test is important, because link may have changed for any reason (portals, clipManager....).</span>
+00771 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_4">clipGetNumParents</a>() == 1 &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_5">clipGetParent</a>(0)==<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;SonsOfAncestorSkeletonModelGroup )
+00772 {
+00773 <span class="comment">// must unlink from ALL olds models.</span>
+00774 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_6">clipUnlinkFromAll</a>();
+00775 <span class="comment">// and now, link to std root.</span>
+00776 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRoot()-&gt;clipAddChild(<span class="keyword">this</span>);
+00777 }
+00778
+00779 <span class="comment">// update the flag</span>
+00780 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>= <span class="keyword">false</span>;
+00781 }
+00782 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModeld0" doxytag="NL3D::CWaterModel::updateDiffuseMapMatrix" ></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::CWaterModel::updateDiffuseMapMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>force</em> = false </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06737.html#l01339">1339</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+References <a class="el" href="a06738.html#l00109">_ColorMapMatColumn0</a>, <a class="el" href="a06742.html#l00216">NL3D::CWaterShape::_ColorMapMatColumn0</a>, <a class="el" href="a06738.html#l00109">_ColorMapMatColumn1</a>, <a class="el" href="a06742.html#l00216">NL3D::CWaterShape::_ColorMapMatColumn1</a>, <a class="el" href="a06738.html#l00109">_ColorMapMatPos</a>, <a class="el" href="a06742.html#l00216">NL3D::CWaterShape::_ColorMapMatPos</a>, <a class="el" href="a06738.html#l00110">_MatrixUpdateDate</a>, <a class="el" href="a06575.html#l00082">NL3D::ITransformable::compareMatrixDate()</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="a06575.html#l00090">NL3D::ITransformable::getMatrixDate()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05972.html#l01090">NLMISC::CMatrix::inverted()</a>, <a class="el" href="a06677.html#l00110">NLMISC::CVector2f::set()</a>, <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06677.html#l00052">NLMISC::CVector2f::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06677.html#l00052">NLMISC::CVector2f::y</a>.
+<p>
+Referenced by <a class="el" href="a06738.html#l00064">init()</a>, and <a class="el" href="a06737.html#l00831">setupMaterialNVertexShader()</a>.
+<p>
+<div class="fragment"><pre>01340 {
+01341 <span class="keywordflow">if</span> (<a class="code" href="a02278.html#NL3D_1_1ITransformablea0">compareMatrixDate</a>(_MatrixUpdateDate) ||force)
+01342 {
+01343 <a class="code" href="a03721.html#NL3D_1_1CWaterModeln1">CWaterShape</a> *shape = NLMISC::safe_cast&lt;CWaterShape *&gt;((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+01344 <span class="keywordflow">if</span> (shape)
+01345 {
+01346 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr6">_MatrixUpdateDate</a> = <a class="code" href="a02278.html#NL3D_1_1ITransformablea2">getMatrixDate</a>();
+01347 <span class="comment">// update the uv matrix</span>
+01348 <a class="code" href="a02851.html">CMatrix</a> uvMat;
+01349 uvMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a>(CVector(shape-&gt;_ColorMapMatColumn0.x, shape-&gt;_ColorMapMatColumn0.y, 0.f),
+01350 CVector(shape-&gt;_ColorMapMatColumn1.x, shape-&gt;_ColorMapMatColumn1.y, 0.f),
+01351 CVector(shape-&gt;_ColorMapMatPos.x, shape-&gt;_ColorMapMatPos.y, 1.f));
+01352 <a class="code" href="a02851.html">CMatrix</a> xformMat;
+01353 <a class="code" href="a02851.html">CMatrix</a> invMat = this-&gt;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1967_1">inverted</a>();
+01354 xformMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a>(CVector(invMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>().x, invMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>().y, 0.f),
+01355 CVector(invMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>().x, invMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>().y, 0.f),
+01356 CVector(invMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>().x, invMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>().y, 1.f));
+01357 uvMat = uvMat * xformMat;
+01358 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr1">_ColorMapMatColumn0</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fz2067_6">set</a>(uvMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>().x, uvMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_2">getI</a>().y);
+01359 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr2">_ColorMapMatColumn1</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fz2067_6">set</a>(uvMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>().x, uvMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_3">getJ</a>().y);
+01360 <a class="code" href="a03721.html#NL3D_1_1CWaterModelr3">_ColorMapMatPos</a>.<a class="code" href="a03660.html#NLMISC_1_1CVector2fz2067_6">set</a>(uvMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_4">getK</a>().x, uvMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_4">getK</a>().y);
+01361 }
+01362 }
+01363 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_1" doxytag="NL3D::CWaterModel::updateWorld" ></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::CTransform::updateWorld </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><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Update the world state according to the parent world state and the local states.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06568.html#l00663">663</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a06569.html#l00848">NL3D::CTransform::_DontUnfreezeChildren</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00847">NL3D::CTransform::_Frozen</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a06569.html#l00841">NL3D::CTransform::_LocalDate</a>, <a class="el" href="a06569.html#l00839">NL3D::CTransform::_LocalMatrix</a>, <a class="el" href="a06569.html#l00840">NL3D::CTransform::_LocalVis</a>, <a class="el" href="a05797.html#l00088">NL3D::CHrcTrav::_MovingObjects</a>, <a class="el" href="a06569.html#l00845">NL3D::CTransform::_WorldDate</a>, <a class="el" href="a06569.html#l00843">NL3D::CTransform::_WorldMatrix</a>, <a class="el" href="a06569.html#l00844">NL3D::CTransform::_WorldVis</a>, <a class="el" href="a05797.html#l00092">NL3D::CHrcTrav::CurrentDate</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, <a class="el" href="a05894.html#l00079">NL3D::CLightContribution::FrozenStaticLightSetup</a>, <a class="el" href="a06349.html#l00474">NL3D::CScene::getHrcTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a06569.html#l00449">NL3D::CTransform::isTransformShape()</a>, <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00786">NL3D::CTransform::traverseHrc()</a>.
+<p>
+<div class="fragment"><pre>00664 {
+00665 <span class="keyword">const</span> <a class="code" href="a02851.html">CMatrix</a> *pFatherWM;
+00666 <span class="keywordtype">bool</span> visFather;
+00667
+00668 <span class="comment">// If not root case, link to Fahter.</span>
+00669 <span class="keywordflow">if</span>(_HrcParent)
+00670 {
+00671 pFatherWM= &amp;(_HrcParent-&gt;_WorldMatrix);
+00672 visFather= _HrcParent-&gt;_WorldVis;
+00673
+00674 <span class="comment">// if _HrcParent is not frozen (for any reason), disable us!</span>
+00675
+00676 <span class="keywordflow">if</span> (!_HrcParent-&gt;_Frozen &amp;&amp; !_HrcParent-&gt;_DontUnfreezeChildren)
+00677 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a>= <span class="keyword">false</span>;
+00678
+00679 <span class="comment">// herit _AncestorSkeletonModel</span>
+00680 <span class="keywordflow">if</span> (_HrcParent-&gt;_AncestorSkeletonModel)
+00681 <span class="comment">// If my father has an _AncestorSkeletonModel, get it.</span>
+00682 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>= _HrcParent-&gt;_AncestorSkeletonModel;
+00683 <span class="keywordflow">else</span>
+00684 <span class="comment">// else I have an ancestor skel model if I am sticked/binded directly to a skeleton model.</span>
+00685 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>;
+00686 }
+00687 <span class="comment">// else, default!!</span>
+00688 <span class="keywordflow">else</span>
+00689 {
+00690 pFatherWM= &amp;(CMatrix::Identity);
+00691 visFather= <span class="keyword">true</span>;
+00692
+00693 <span class="comment">// at the root of the hierarchy, we have no parent, hence no FatherSkeletonModel nor _AncestorSkeletonModel.</span>
+00694 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>= NULL;
+00695
+00696 <span class="comment">// NB: Root is Frozen by essence :), so don't modify the frozen state here.</span>
+00697 }
+00698
+00699 <span class="comment">// Combine matrix</span>
+00700 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_6">_LocalDate</a>&gt;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a> || (_HrcParent &amp;&amp; _HrcParent-&gt;_WorldDate&gt;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a>) )
+00701 {
+00702 <span class="comment">// Must recompute the world matrix. ONLY IF I AM NOT SKINNED/STICKED TO A SKELETON in the hierarchy!</span>
+00703 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL )
+00704 {
+00705 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>= *pFatherWM * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>;
+00706 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getHrcTrav().CurrentDate;
+00707
+00708 <span class="comment">// Add the model to the moving object list, only if I am a transform shape</span>
+00709 <span class="keywordflow">if</span> (!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a> &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_6">isTransformShape</a>() &amp;&amp; !<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot))
+00710 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getHrcTrav()._MovingObjects.push_back (static_cast&lt;CTransformShape*&gt;(<span class="keyword">this</span>));
+00711 }
+00712 }
+00713
+00714 <span class="comment">// Update dynamic lighting.</span>
+00715 <span class="comment">/*</span>
+00716 <span class="comment"> If the model is not frozen in StaticLight, then must update lighting each frame.</span>
+00717 <span class="comment"> Even if the object doesn't move, a new dynamic light may enter in its aera. Hence we must test</span>
+00718 <span class="comment"> it in the light quadrid. StaticLight-ed Objects don't need it because they are inserted in a special quadgrid, </span>
+00719 <span class="comment"> where dynamics lights touch all StaticLight-ed object to force their computing</span>
+00720 <span class="comment"></span>
+00721 <span class="comment"> NB: not done if _AncestorSkeletonModel!=NULL. no need because in this case, </span>
+00722 <span class="comment"> result is driven by the _LightContribution of the _AncestorSkeletonModel.</span>
+00723 <span class="comment"> */</span>
+00724 <span class="keywordflow">if</span>( !<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenStaticLightSetup &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL )
+00725 {
+00726 <span class="comment">// if the model is lightable reset lighting</span>
+00727 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable</a>() )
+00728 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting</a>();
+00729 }
+00730
+00731 <span class="comment">// Combine visibility.</span>
+00732 <span class="keywordflow">switch</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_8">_LocalVis</a>)
+00733 {
+00734 <span class="keywordflow">case</span> CHrcTrav::Herit: <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>= visFather; <span class="keywordflow">break</span>;
+00735 <span class="keywordflow">case</span> CHrcTrav::Hide: <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>= <span class="keyword">false</span>; <span class="keywordflow">break</span>;
+00736 <span class="keywordflow">case</span> CHrcTrav::Show: <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>= <span class="keyword">true</span>; <span class="keywordflow">break</span>;
+00737 <span class="keywordflow">default</span>: <span class="keywordflow">break</span>;
+00738 }
+00739
+00740
+00741 <span class="comment">// If I have an ancestor Skeleton Model, I must be binded in ClipTrav to the SonsOfAncestorSkeletonModelGroup</span>
+00742 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_0">updateClipTravForAncestorSkeleton</a>();
+00743
+00744 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1047_1" doxytag="NL3D::CWaterModel::updateWorldMatrixFromFather" ></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::CTransform::updateWorldMatrixFromFather </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><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For Skeleton Object Stick. update the wolrd matrix. no-op if skinned. no-op if no AcnestorSkeletonModel. use standard father WorldMatrix if !_FatherSkeletonModel else get the correct boneId WorldMatrix from _FatherSkeletonModel
+<p>
+Definition at line <a class="el" href="a06568.html#l00905">905</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a06569.html#l00618">NL3D::CTransform::_FatherBoneId</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00839">NL3D::CTransform::_LocalMatrix</a>, <a class="el" href="a06569.html#l00843">NL3D::CTransform::_WorldMatrix</a>, <a class="el" href="a06394.html#l00098">NL3D::CSkeletonModel::Bones</a>, <a class="el" href="a06569.html#l00218">NL3D::CTransform::hrcGetParent()</a>, and <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, and <a class="el" href="a06568.html#l00953">NL3D::CTransform::traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00906 {
+00907 <span class="comment">// If I am not skinned, and If I have a skeleton ancestor</span>
+00908 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>() &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a> )
+00909 {
+00910 <span class="comment">// Compute the HRC _WorldMatrix.</span>
+00911 <span class="comment">// if I am not sticked.</span>
+00912 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>)
+00913 {
+00914 <span class="comment">// get the normal father worldMatrix in Hrc.</span>
+00915 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *fatherTransform= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_2">hrcGetParent</a>();
+00916 <span class="comment">// if exist</span>
+00917 <span class="keywordflow">if</span>(fatherTransform)
+00918 {
+00919 <span class="keyword">const</span> <a class="code" href="a02851.html">CMatrix</a> &amp;parentWM= fatherTransform-&gt;_WorldMatrix;
+00920 <span class="comment">// combine worldMatrix</span>
+00921 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>= parentWM * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>;
+00922 }
+00923 <span class="keywordflow">else</span>
+00924 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>;
+00925 }
+00926 <span class="keywordflow">else</span>
+00927 {
+00928 <span class="comment">// get the worldMatrix of the bone if I am sticked.</span>
+00929 <span class="keyword">const</span> <a class="code" href="a02851.html">CMatrix</a> &amp;parentWM= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>-&gt;Bones[<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_12">_FatherBoneId</a>].getWorldMatrix();
+00930 <span class="comment">// combine worldMatrix</span>
+00931 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>= parentWM * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>;
+00932 }
+00933 }
+00934 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_8" doxytag="NL3D::CWaterModel::useMergedPointLight" ></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 NL3D::CTransform::useMergedPointLight </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return true if the current light contribution of this model use a MergedPointLight
+<p>
+Definition at line <a class="el" href="a06569.html#l00369">369</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, and <a class="el" href="a05894.html#l00088">NL3D::CLightContribution::UseMergedPointLight</a>.
+<p>
+<div class="fragment"><pre>00369 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.UseMergedPointLight;}
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" name="NLGEORGES_1_1UTypen0" doxytag="NL3D::CWaterModel::CPtrInfo" ></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"> friend struct CPtrInfo<code> [friend, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06402.html#l00067">67</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModeln1" doxytag="NL3D::CWaterModel::CWaterShape" ></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"> friend class <a class="el" href="a03724.html">CWaterShape</a><code> [friend]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00095">95</a> of file <a class="el" href="a06738.html">water_model.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_2" doxytag="NL3D::CWaterModel::_AncestorSkeletonModel" ></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"> <a class="el" href="a03399.html">CSkeletonModel</a>* <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">NL3D::CTransform::_AncestorSkeletonModel</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00851">851</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06569.html#l00207">NL3D::CTransform::getAncestorSkeletonModel()</a>, <a class="el" href="a05431.html#l00060">NL3D::CAnimDetailTrav::traverse()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1045_0" doxytag="NL3D::CWaterModel::_ClipDate" ></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"> <a class="el" href="a04558.html#a12">sint64</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_0">NL3D::CTransform::_ClipDate</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+date of last <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_1">traverseClip()</a>
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00865">865</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, and <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_3" doxytag="NL3D::CWaterModel::_ClipLinkedInSonsOfAncestorSkeletonModelGroup" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">NL3D::CTransform::_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00849">849</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelr0" doxytag="NL3D::CWaterModel::_ClippedPoly" ></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"> <a class="el" href="a03100.html">NLMISC::CPolygon</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelr0">NL3D::CWaterModel::_ClippedPoly</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00105">105</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01130">clip()</a>, <a class="el" href="a06737.html#l01054">computeClippedPoly()</a>, <a class="el" href="a06737.html#l01026">computeSimpleClippedPoly()</a>, <a class="el" href="a06737.html#l01170">doSimpleRender()</a>, and <a class="el" href="a06737.html#l00437">traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelr1" doxytag="NL3D::CWaterModel::_ColorMapMatColumn0" ></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"> <a class="el" href="a03660.html">NLMISC::CVector2f</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelr1">NL3D::CWaterModel::_ColorMapMatColumn0</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00109">109</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00831">setupMaterialNVertexShader()</a>, and <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelr2" doxytag="NL3D::CWaterModel::_ColorMapMatColumn1" ></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"> <a class="el" href="a03660.html">NLMISC::CVector2f</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelr2">NL3D::CWaterModel::_ColorMapMatColumn1</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00109">109</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00831">setupMaterialNVertexShader()</a>, and <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelr3" doxytag="NL3D::CWaterModel::_ColorMapMatPos" ></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"> <a class="el" href="a03660.html">NLMISC::CVector2f</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelr3">NL3D::CWaterModel::_ColorMapMatPos</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00109">109</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00831">setupMaterialNVertexShader()</a>, and <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_4" doxytag="NL3D::CWaterModel::_DontUnfreezeChildren" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1043_4">NL3D::CTransform::_DontUnfreezeChildren</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00848">848</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00378">NL3D::CTransform::setDontUnfreezeChildren()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelr4" doxytag="NL3D::CWaterModel::_EmbossTexture" ></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"> <a class="el" href="a03408.html">CSmartPtr</a>&lt;<a class="el" href="a03497.html">CTextureEmboss</a>&gt; <a class="el" href="a03721.html#NL3D_1_1CWaterModelr4">NL3D::CWaterModel::_EmbossTexture</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00107">107</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01170">doSimpleRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelr5" doxytag="NL3D::CWaterModel::_EndClippedPoly" ></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"> <a class="el" href="a03100.html">NLMISC::CPolygon</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelr5">NL3D::CWaterModel::_EndClippedPoly</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00106">106</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01130">clip()</a>, <a class="el" href="a06737.html#l01054">computeClippedPoly()</a>, and <a class="el" href="a06737.html#l00437">traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_12" doxytag="NL3D::CWaterModel::_FatherBoneId" ></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"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_12">NL3D::CTransform::_FatherBoneId</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL.
+<p>
+Definition at line <a class="el" href="a06569.html#l00618">618</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01043">NL3D::CSkeletonModel::computeCLodVertexAlpha()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, <a class="el" href="a06393.html#l00543">NL3D::CSkeletonModel::stickObjectEx()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_13" doxytag="NL3D::CWaterModel::_FatherSkeletonModel" ></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"> <a class="el" href="a03399.html">CSkeletonModel</a>* <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">NL3D::CTransform::_FatherSkeletonModel</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL.
+<p>
+Definition at line <a class="el" href="a06569.html#l00616">616</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>, <a class="el" href="a06569.html#l00205">NL3D::CTransform::getSkeletonModel()</a>, <a class="el" href="a06568.html#l00287">NL3D::CTransform::heritVisibility()</a>, <a class="el" href="a06568.html#l00223">NL3D::CTransform::hide()</a>, <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>, <a class="el" href="a06568.html#l00590">NL3D::CTransform::setIsForceAnimDetail()</a>, <a class="el" href="a06568.html#l00255">NL3D::CTransform::setOpacity()</a>, <a class="el" href="a06568.html#l00240">NL3D::CTransform::setTransparency()</a>, <a class="el" href="a06568.html#l00271">NL3D::CTransform::show()</a>, <a class="el" href="a06393.html#l00543">NL3D::CSkeletonModel::stickObjectEx()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_5" doxytag="NL3D::CWaterModel::_Frozen" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">NL3D::CTransform::_Frozen</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00847">847</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00367">NL3D::CTransform::freeze()</a>, <a class="el" href="a06568.html#l00385">NL3D::CTransform::freezeHRC()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1045_1" doxytag="NL3D::CWaterModel::_IndexInVisibleList" ></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"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_1">NL3D::CTransform::_IndexInVisibleList</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+date of last <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_1">traverseClip()</a>
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00869">869</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a05556.html#l00105">NL3D::CClipTrav::addVisibleModel()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_2" doxytag="NL3D::CWaterModel::_LightContribution" ></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"> <a class="el" href="a02744.html">CLightContribution</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">NL3D::CTransform::_LightContribution</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The contribution of all lights. This enlarge the struct only of approx 15%.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00626">626</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01028">NL3D::CTransform::freezeStaticLightSetup()</a>, <a class="el" href="a06569.html#l00373">NL3D::CTransform::getLightContribution()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>, <a class="el" href="a06568.html#l01061">NL3D::CTransform::unfreezeStaticLightSetup()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06569.html#l00369">NL3D::CTransform::useMergedPointLight()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_3" doxytag="NL3D::CWaterModel::_LightedModelIt" ></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"> <a class="el" href="a02749.html">CLightingManager::CQGItLightedModel</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">NL3D::CTransform::_LightedModelIt</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+each transform may be in a quadGird of lighted models (see <a class="el" href="a02747.html">CLightingManager</a>)
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00634">634</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1049_0" doxytag="NL3D::CWaterModel::_LoadBalancingGroup" ></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"> <a class="el" href="a02774.html">CLoadBalancingGroup</a>* <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1049_0">NL3D::CTransform::_LoadBalancingGroup</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00894">894</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00532">NL3D::CTransform::getLoadBalancingGroup()</a>, <a class="el" href="a06568.html#l00214">NL3D::CTransform::initModel()</a>, and <a class="el" href="a06568.html#l00522">NL3D::CTransform::setLoadBalancingGroup()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_6" doxytag="NL3D::CWaterModel::_LocalDate" ></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"> <a class="el" href="a04558.html#a12">sint64</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_6">NL3D::CTransform::_LocalDate</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00841">841</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_7" doxytag="NL3D::CWaterModel::_LocalMatrix" ></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"> <a class="el" href="a02851.html">CMatrix</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">NL3D::CTransform::_LocalMatrix</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Hrc IN variables.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02278.html#NL3D_1_1ITransformabler0">NL3D::ITransformable</a>.
+<p>
+Definition at line <a class="el" href="a06569.html#l00839">839</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_8" doxytag="NL3D::CWaterModel::_LocalVis" ></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"> <a class="el" href="a02639.html#NL3D_1_1CHrcTravw3">CHrcTrav::TVisibility</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_8">NL3D::CTransform::_LocalVis</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00840">840</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelr6" doxytag="NL3D::CWaterModel::_MatrixUpdateDate" ></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"> <a class="el" href="a04558.html#a13">uint64</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelr6">NL3D::CWaterModel::_MatrixUpdateDate</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06738.html#l00110">110</a> of file <a class="el" href="a06738.html">water_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01339">updateDiffuseMapMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelp0" doxytag="NL3D::CWaterModel::_RenderFilterType" ></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"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelp0">NL3D::CTransform::_RenderFilterType</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+State for renderFiltering. Default is 0xFFFFFFFF (always displayed) Deriver work to change this value
+<p>
+Definition at line <a class="el" href="a06569.html#l00830">830</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, and <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelv0" doxytag="NL3D::CWaterModel::_SimpleRenderVB" ></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"> <a class="el" href="a03692.html">CVertexBuffer</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelv0">NL3D::CWaterModel::_SimpleRenderVB</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06737.html#l00058">58</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01170">doSimpleRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelv1" doxytag="NL3D::CWaterModel::_SimpleWaterMat" ></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"> <a class="el" href="a02839.html">CMaterial</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelv1">NL3D::CWaterModel::_SimpleWaterMat</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06737.html#l00057">57</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01170">doSimpleRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1045_2" doxytag="NL3D::CWaterModel::_Visible" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">NL3D::CTransform::_Visible</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+set to true is the object is visible (not clipped).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00867">867</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06569.html#l00313">NL3D::CTransform::isClipVisible()</a>, and <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaterModelv2" doxytag="NL3D::CWaterModel::_WaterMat" ></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"> <a class="el" href="a02839.html">CMaterial</a> <a class="el" href="a03721.html#NL3D_1_1CWaterModelv2">NL3D::CWaterModel::_WaterMat</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06737.html#l00055">55</a> of file <a class="el" href="a06737.html">water_model.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00831">setupMaterialNVertexShader()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_9" doxytag="NL3D::CWaterModel::_WorldDate" ></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"> <a class="el" href="a04558.html#a12">sint64</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">NL3D::CTransform::_WorldDate</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00845">845</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_10" doxytag="NL3D::CWaterModel::_WorldMatrix" ></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"> <a class="el" href="a02851.html">CMatrix</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">NL3D::CTransform::_WorldMatrix</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Hrc OUT variables.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00843">843</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_11" doxytag="NL3D::CWaterModel::_WorldVis" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">NL3D::CTransform::_WorldVis</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06569.html#l00844">844</a> of file <a class="el" href="a06569.html">transform.h</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06569.html#l00306">NL3D::CTransform::isHrcVisible()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypeo0" doxytag="NL3D::CWaterModel::crefs" ></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"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">NLMISC::CRefCount::crefs</a><code> [mutable, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06402.html#l00079">79</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>.
+<p>
+Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, <a class="el" href="a06402.html#l00070">NLMISC::CRefCount::getRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypes0" doxytag="NL3D::CWaterModel::NullPtrInfo" ></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"> <a class="el" href="a03320.html">CRefCount::CPtrInfo</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NLMISC::CRefCount::NullPtrInfo</a><code> [static, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypeo1" doxytag="NL3D::CWaterModel::pinfo" ></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"> CPtrInfo* <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">NLMISC::CRefCount::pinfo</a><code> [mutable, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06402.html#l00080">80</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>.
+<p>
+Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelo2" doxytag="NL3D::CWaterModel::Shape" ></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"> <a class="el" href="a03408.html">CSmartPtr</a>&lt;<a class="el" href="a02539.html">IShape</a>&gt; <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelo2">NL3D::CTransformShape::Shape</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The shape, the object instancied.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06571.html#l00072">72</a> of file <a class="el" href="a06571.html">transform_shape.h</a>.
+<p>
+Referenced by <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, <a class="el" href="a06393.html#l00866">NL3D::CSkeletonModel::computeLodTexture()</a>, <a class="el" href="a06741.html#l00684">NL3D::CWaveMakerShape::createInstance()</a>, <a class="el" href="a06741.html#l00327">NL3D::CWaterShape::createInstance()</a>, <a class="el" href="a06395.html#l00154">NL3D::CSkeletonShape::createInstance()</a>, <a class="el" href="a06376.html#l00050">NL3D::IShape::createInstance()</a>, <a class="el" href="a06360.html#l00150">NL3D::CSegRemanenceShape::createInstance()</a>, <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>, <a class="el" href="a06152.html#l00267">NL3D::CParticleSystemShape::createInstance()</a>, <a class="el" href="a06016.html#l00182">NL3D::CMeshMultiLod::createInstance()</a>, <a class="el" href="a06011.html#l01439">NL3D::CMeshMRMSkinned::createInstance()</a>, <a class="el" href="a06005.html#l02924">NL3D::CMeshMRM::createInstance()</a>, <a class="el" href="a05989.html#l02357">NL3D::CMesh::createInstance()</a>, <a class="el" href="a05714.html#l00100">NL3D::CFlareShape::createInstance()</a>, <a class="el" href="a06348.html#l00691">NL3D::CScene::deleteInstance()</a>, <a class="el" href="a06570.html#l00083">NL3D::CTransformShape::getAABBox()</a>, <a class="el" href="a06570.html#l00075">NL3D::CTransformShape::getNumTriangles()</a>, <a class="el" href="a06397.html#l00082">NL3D::CSkeletonUser::getShapeDistMax()</a>, <a class="el" href="a05828.html#l00108">NL3D::CInstanceUser::getShapeDistMax()</a>, <a class="el" href="a06570.html#l00248">NL3D::CTransformShape::profileRender()</a>, <a class="el" href="a06397.html#l00070">NL3D::CSkeletonUser::setShapeDistMax()</a>, <a class="el" href="a05828.html#l00098">NL3D::CInstanceUser::setShapeDistMax()</a>, and <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06738.html">water_model.h</a><li><a class="el" href="a06737.html">water_model.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 08:30:24 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>