aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03399.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/a03399.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a03399.html')
-rw-r--r--docs/doxygen/nel/a03399.html14504
1 files changed, 14504 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03399.html b/docs/doxygen/nel/a03399.html
new file mode 100644
index 00000000..865d00a9
--- /dev/null
+++ b/docs/doxygen/nel/a03399.html
@@ -0,0 +1,14504 @@
+<!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::CSkeletonModel 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::CSkeletonModel Class Reference</h1><code>#include &lt;<a class="el" href="a06394.html">skeleton_model.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NL3D::CSkeletonModel:
+<p><center><img src="a03399.png" usemap="#NL3D::CSkeletonModel_map" border="0" alt=""></center>
+<map name="NL3D::CSkeletonModel_map">
+<area href="a02537.html" alt="NL3D::CTransformShape" shape="rect" coords="81,168,233,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 Skeleton model, instance of <a class="el" href="a03402.html">CSkeletonShape</a>.<p>
+Skeletons sons are added with <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_0">bindSkin()</a>, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_3">stickObject()</a>. They are removed auto at dtor.<p>
+<dl compact><dt><b>Author:</b></dt><dd>Lionel Berenguier <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="a06394.html#l00084">84</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>IAnimatable Interface (registering only IAnimatable sons (bones)).</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz918_0">TAnimValues</a> { <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz918_0NL3D_1_1CSkeletonModelw4">OwnerBit</a> = CTransformShape::AnimValueLast,
+<a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz918_0NL3D_1_1CSkeletonModelw1">AnimValueLast</a>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Added values. <a href="#NL3D_1_1CSkeletonModelz918_0">More...</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="a03399.html#NL3D_1_1CSkeletonModelz918_1">registerToChannelMixer</a> (<a class="el" href="a02335.html">CChannelMixer</a> *chanMixer, const std::string &amp;prefix)</td></tr>
+
+<tr><td colspan=2><br><h2>Skin/BoneUsage Accessor. Called by CMeshInstance only.</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0">TBoneUsageType</a> { <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw16">UsageNormal</a>,
+<a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw15">UsageForced</a>,
+<a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw14">UsageCLodForced</a>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_1">decBoneUsage</a> (<a class="el" href="a04558.html#a15">uint</a> i, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0">TBoneUsageType</a> boneUsageType)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">decrement the refCount of the ith bone. set forced to the same param passed when <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_3">incBoneUsage()</a> <a href="#NL3D_1_1CSkeletonModelz922_1"></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="a03399.html#NL3D_1_1CSkeletonModelz922_2">flagBoneAndParents</a> (<a class="el" href="a04558.html#a11">uint32</a> boneId, std::vector&lt; bool &gt; &amp;boneUsage) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_3">incBoneUsage</a> (<a class="el" href="a04558.html#a15">uint</a> i, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0">TBoneUsageType</a> boneUsageType)</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>CLod / Character Lod</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz938_0">computeCLodVertexAlpha</a> (<a class="el" href="a02800.html">CLodCharacterManager</a> *mngr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">recompute _CLodVertexAlpha, ignoring _CLodVertexAlphaDirty <a href="#NL3D_1_1CSkeletonModelz938_0"></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="a03399.html#NL3D_1_1CSkeletonModelz938_1">dirtLodVertexAlpha</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">recompute _CLodVertexAlpha, ignoring _CLodVertexAlphaDirty <a href="#NL3D_1_1CSkeletonModelz938_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02744.html">CLightContribution</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz938_2">getSkeletonLightContribution</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">recompute _CLodVertexAlpha, ignoring _CLodVertexAlphaDirty <a href="#NL3D_1_1CSkeletonModelz938_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02799.html">CLodCharacterInstance</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The Lod instance. -1 by default. <a href="#NL3D_1_1CSkeletonModelz938_3"></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="a03399.html#NL3D_1_1CSkeletonModelz938_4">_CLodVertexAlphaDirty</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz938_5">_DisplayedAsLodCharacter</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">_LodCharacterDistance</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see setLodCharacterDistance <a href="#NL3D_1_1CSkeletonModelz938_6"></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="a03399.html#NL3D_1_1CSkeletonModelz938_7">_OOLodCharacterDistance</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">recompute _CLodVertexAlpha, ignoring _CLodVertexAlphaDirty <a href="#NL3D_1_1CSkeletonModelz938_7"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Bone Usage.</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz936_0">decForcedBoneUsageAndParents</a> (<a class="el" href="a04558.html#a15">uint</a> i, bool forceCLod)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">increment the refCount of the ith bone and its parents. for stickObjects. <a href="#NL3D_1_1CSkeletonModelz936_0"></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="a03399.html#NL3D_1_1CSkeletonModelz936_1">incForcedBoneUsageAndParents</a> (<a class="el" href="a04558.html#a15">uint</a> i, bool forceCLod)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">increment the refCount of the ith bone and its parents. for stickObjects. <a href="#NL3D_1_1CSkeletonModelz936_1"></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="a03399.html#NL3D_1_1CSkeletonModelz936_2">initBoneUsages</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">called by <a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_1">CSkeletonShape::createInstance()</a>. init the vector. <a href="#NL3D_1_1CSkeletonModelz936_2"></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="a03399.html#NL3D_1_1CSkeletonModelz936_3">updateBoneToCompute</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">According to Usage, ForedUsage and current skeleton Lod, update MustCompute and ValidBoneSkinMatrix. <a href="#NL3D_1_1CSkeletonModelz936_3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03400.html">CBoneCompute</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of bones to compute. <a href="#NL3D_1_1CSkeletonModelz936_4"></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="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag set if the MRSkeleton lod change, or if a new bone Usage change (only if was 0 or become 0). <a href="#NL3D_1_1CSkeletonModelz936_5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03401.html">CBoneUsage</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list of BoneUsage. Updated by Meshes, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_3">stickObject()</a>, and lod changes. <a href="#NL3D_1_1CSkeletonModelz936_6"></a><br><br></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="a03399.html#NL3D_1_1CSkeletonModelz936_7">_CurLod</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The current lod activated for this skeleton. <a href="#NL3D_1_1CSkeletonModelz936_7"></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="a03399.html#NL3D_1_1CSkeletonModelz936_8">_CurLodInterp</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The current lod Interpolation Value for this skeleton. <a href="#NL3D_1_1CSkeletonModelz936_8"></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="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For lod interpolation. Inverse of distance. If 0, disable interpolation. <a href="#NL3D_1_1CSkeletonModelz936_9"></a><br><br></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="a03399.html#NL3D_1_1CSkeletonModelw0NL3D_1_1CSkeletonModelw3">MaxNumBones</a> = 256
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">max number of bones supported in skeleton <a href="#NL3D_1_1CSkeletonModelw0">More...</a><br><br></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>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>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>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><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="a03399.html#NL3D_1_1CSkeletonModela11">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>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>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 class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModela48">updateSkinRenderLists</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Skin operation.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_0">bindSkin</a> (<a class="el" href="a02316.html">CTransform</a> *mi)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_1">detachSkeletonSon</a> (<a class="el" href="a02316.html">CTransform</a> *mi)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_2">dirtSkinRenderLists</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_3">stickObject</a> (<a class="el" href="a02316.html">CTransform</a> *mi, <a class="el" href="a04558.html#a15">uint</a> boneId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_4">stickObjectEx</a> (<a class="el" href="a02316.html">CTransform</a> *mi, <a class="el" href="a04558.html#a15">uint</a> boneId, bool forceCLod)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Load balancing methods</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz928_0">changeMRMDistanceSetup</a> (float distanceFinest, float distanceMiddle, float distanceCoarsest)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz928_1">getNumTriangles</a> (float distance)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Special version for skins. <a href="#NL3D_1_1CSkeletonModelz928_1"></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="a03399.html#NL3D_1_1CSkeletonModelz928_2">resetDefaultMRMDistanceSetup</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the Default MRM setup: follow MAX skin setup (ie the finer). <a href="#NL3D_1_1CSkeletonModelz928_2"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Misc.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_0">computeAllBones</a> (const <a class="el" href="a02851.html">CMatrix</a> &amp;modelWorldMatrix)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_1">computeCurrentBBox</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;bbox, bool forceCompute=false, bool computeInWorld=false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_2">computeRenderedBBox</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;bbox, bool computeInWorld=false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_3">forceComputeBone</a> (<a class="el" href="a04558.html#a15">uint</a> boneId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_4">getActiveBoneSkinMatrix</a> (<a class="el" href="a04558.html#a15">uint</a> boneId) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_5">getBoneIdByName</a> (const std::string &amp;name) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return, from skeleton shape, the BoneIdByName. -1 if not here. <a href="#NL3D_1_1CSkeletonModelz924_5"></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="a03399.html#NL3D_1_1CSkeletonModelz924_6">getInterpolationDistance</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_9">setInterpolationDistance()</a> <a href="#NL3D_1_1CSkeletonModelz924_6"></a><br><br></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="a03399.html#NL3D_1_1CSkeletonModelz924_7">getNumBoneComputed</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the number of bones currently animated/computed (because of <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_0">bindSkin()</a>/stickObject() / Lod system). <a href="#NL3D_1_1CSkeletonModelz924_7"></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="a03399.html#NL3D_1_1CSkeletonModelz924_8">isBoneComputed</a> (<a class="el" href="a04558.html#a15">uint</a> boneId) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tell if a bone has been computed in the last frame or not. false if boneId is invalid. <a href="#NL3D_1_1CSkeletonModelz924_8"></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="a03399.html#NL3D_1_1CSkeletonModelz924_9">setInterpolationDistance</a> (float dist)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">CLod / Character Lod</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz926_0">computeDisplayLodCharacterPriority</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="a03399.html#NL3D_1_1CSkeletonModelz926_1">computeLodTexture</a> ()</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="a03399.html#NL3D_1_1CSkeletonModelz926_2">getLodCharacterAnimId</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a367">TGlobalAnimationTime</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz926_3">getLodCharacterAnimTime</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz926_4">getLodCharacterDistance</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see setLodCharacterDistance. 0 if disabled <a href="#NL3D_1_1CSkeletonModelz926_4"></a><br><br></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="a03399.html#NL3D_1_1CSkeletonModelz926_5">getLodCharacterShape</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see setLodCharacterShape <a href="#NL3D_1_1CSkeletonModelz926_5"></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="a03399.html#NL3D_1_1CSkeletonModelz926_6">getLodCharacterWrapMode</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="a03399.html#NL3D_1_1CSkeletonModelz926_7">isDisplayedAsLodCharacter</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="a03399.html#NL3D_1_1CSkeletonModelz926_8">setDisplayLodCharacterFlag</a> (bool displayCLod)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz926_9">setLodCharacterAnimId</a> (<a class="el" href="a04558.html#a15">uint</a> animId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change/get the Character Lod anim setup. <a href="#NL3D_1_1CSkeletonModelz926_9"></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="a03399.html#NL3D_1_1CSkeletonModelz926_10">setLodCharacterAnimTime</a> (<a class="el" href="a05363.html#a367">TGlobalAnimationTime</a> time)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz926_11">setLodCharacterDistance</a> (float dist)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz926_12">setLodCharacterShape</a> (<a class="el" href="a04558.html#a14">sint</a> shapeId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the Character Lod shape Id. set -1 if want to disable the feature (default). <a href="#NL3D_1_1CSkeletonModelz926_12"></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="a03399.html#NL3D_1_1CSkeletonModelz926_13">setLodCharacterWrapMode</a> (bool wrapMode)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">tells if the animation must loop or clamp. <a href="#NL3D_1_1CSkeletonModelz926_13"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">ShadowMap CTransform Implementation</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="a03399.html#NL3D_1_1CSkeletonModelz934_0">computeWorldBBoxForShadow</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;worldBB)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz934_1">generateShadowMap</a> (const <a class="el" href="a03128.html">CVector</a> &amp;lightDir)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03370.html">CShadowMap</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz934_2">getShadowMap</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="a03399.html#NL3D_1_1CSkeletonModelz934_3">renderIntoSkeletonShadowMap</a> (<a class="el" href="a03399.html">CSkeletonModel</a> *rootSkeleton, <a class="el" href="a02839.html">CMaterial</a> &amp;castMat)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">AnimCtrl (IK...)</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03836.html">IAnimCtrl</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz932_0">getBoneAnimCtrl</a> (<a class="el" href="a04558.html#a15">uint</a> boneId) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz932_1">setBoneAnimCtrl</a> (<a class="el" href="a04558.html#a15">uint</a> boneId, <a class="el" href="a03836.html">IAnimCtrl</a> *ctrl)</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 void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz930_0">traverseAnimDetail</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="a03399.html#NL3D_1_1CSkeletonModelz930_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>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="a03399.html#NL3D_1_1CSkeletonModele5">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_1CSkeletonModele5"></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>std::vector&lt; <a class="el" href="a02277.html">CBone</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a></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>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelb2">createShadowMap</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelb3">CSkeletonModel</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NL3D_1_1CSkeletonModelb3"></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="a03399.html#NL3D_1_1CSkeletonModelb4">deleteShadowMap</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">To implement for ShadowCaster support. typically free the shadowMap. <a href="#NL3D_1_1CSkeletonModelb4"></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_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>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelb8">initModel</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Build link to traversals. <a href="#NL3D_1_1CSkeletonModelb8"></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>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 class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelb12">~CSkeletonModel</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NL3D_1_1CSkeletonModelb12"></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 Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef TTransformSet::iterator&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModely0">ItTransformSet</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt;<br>
+ <a class="el" href="a02316.html">CTransform</a> *, false &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModely1">TTransformArray</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::set&lt; <a class="el" href="a02316.html">CTransform</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModely2">TTransformSet</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">skins/sticked objects <a href="#NL3D_1_1CSkeletonModely2"></a><br><br></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="a03399.html#NL3D_1_1CSkeletonModeld0">buildDefaultLevelDetail</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModeld1">renderShadowSkins</a> (<a class="el" href="a02839.html">CMaterial</a> &amp;castMat)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModeld2">updateShadowMap</a> (<a class="el" href="a02434.html">IDriver</a> *driver)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Rendering</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz940_0">renderCLod</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz940_1">renderSkinList</a> (<a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; <a class="el" href="a02316.html">CTransform</a> *, false &gt; &amp;skinList, float alphaMRM)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz940_2">renderSkins</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Static Private 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="a03399.html#NL3D_1_1CSkeletonModelh0">creator</a> ()</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="a03000.html">TTransformArray</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr0">_AnimDetailSkins</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr1">_DefaultMRMSetup</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::list&lt; <a class="el" href="a03399.html">CSkeletonModel</a> <br>
+* &gt;::iterator&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr2">_ItSkeletonInScene</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02959.html">CMRMLevelDetail</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03000.html">TTransformArray</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr4">_OpaqueSkins</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03370.html">CShadowMap</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html#NL3D_1_1CSkeletonModely2">TTransformSet</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The skins. <a href="#NL3D_1_1CSkeletonModelr6"></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="a03399.html#NL3D_1_1CSkeletonModelr7">_SkinToRenderDirty</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html#NL3D_1_1CSkeletonModely2">TTransformSet</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The StickedObjects. <a href="#NL3D_1_1CSkeletonModelr8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03000.html">TTransformArray</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr9">_TransparentSkins</a></td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">AnimCtrl (IK...)</div></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="a03399.html#NL3D_1_1CSkeletonModelz942_0">_AnimCtrlUsage</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="a03399.html#NL3D_1_1CSkeletonModeln1">CSkeletonShape</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="NL3D_1_1CSkeletonModely0" doxytag="NL3D::CSkeletonModel::ItTransformSet" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef TTransformSet::iterator <a class="el" href="a03399.html#NL3D_1_1CSkeletonModely0">NL3D::CSkeletonModel::ItTransformSet</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="a06394.html#l00371">371</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01043">computeCLodVertexAlpha()</a>, <a class="el" href="a06393.html#l00866">computeLodTexture()</a>, <a class="el" href="a06393.html#l01987">computeWorldBBoxForShadow()</a>, <a class="el" href="a06393.html#l02062">renderIntoSkeletonShadowMap()</a>, and <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModely1" doxytag="NL3D::CSkeletonModel::TTransformArray" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt;<a class="el" href="a02316.html">CTransform</a>*, false&gt; <a class="el" href="a03000.html">NL3D::CSkeletonModel::TTransformArray</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="a06394.html#l00382">382</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModely2" doxytag="NL3D::CSkeletonModel::TTransformSet" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::set&lt;<a class="el" href="a02316.html">CTransform</a>*&gt; <a class="el" href="a03399.html#NL3D_1_1CSkeletonModely2">NL3D::CSkeletonModel::TTransformSet</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+skins/sticked objects
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00370">370</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NL3D_1_1CSkeletonModelw0" doxytag="NL3D::CSkeletonModel::@31" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> anonymous enum
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+max number of bones supported in skeleton
+<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_1CSkeletonModelw0NL3D_1_1CSkeletonModelw3" doxytag="MaxNumBones" ></a>MaxNumBones</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00088">88</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+<div class="fragment"><pre>00088 { <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelw0NL3D_1_1CSkeletonModelw3">MaxNumBones</a> = 256 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz918_0" doxytag="NL3D::CSkeletonModel::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="a03399.html#NL3D_1_1CSkeletonModelz918_0">NL3D::CSkeletonModel::TAnimValues</a>
+ </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_1CSkeletonModelz918_0NL3D_1_1CSkeletonModelw4" doxytag="OwnerBit" ></a>OwnerBit</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CSkeletonModelz918_0NL3D_1_1CSkeletonModelw1" doxytag="AnimValueLast" ></a>AnimValueLast</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Reimplemented from <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">NL3D::ITransformable</a>.
+<p>
+Definition at line <a class="el" href="a06394.html#l00103">103</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+<div class="fragment"><pre>00104 {
+00105 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz918_0NL3D_1_1CSkeletonModelw4">OwnerBit</a>= CTransformShape::AnimValueLast,
+00106
+00107 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz918_0NL3D_1_1CSkeletonModelw1">AnimValueLast</a>,
+00108 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz922_0" doxytag="NL3D::CSkeletonModel::TBoneUsageType" ></a><p>
+<table class="mdTable" 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="a03399.html#NL3D_1_1CSkeletonModelz922_0">NL3D::CSkeletonModel::TBoneUsageType</a>
+ </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_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw16" doxytag="UsageNormal" ></a>UsageNormal</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw15" doxytag="UsageForced" ></a>UsageForced</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw14" doxytag="UsageCLodForced" ></a>UsageCLodForced</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00158">158</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+<div class="fragment"><pre>00158 {<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw16">UsageNormal</a>, <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw15">UsageForced</a>, <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw14">UsageCLodForced</a>} <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_0">TBoneUsageType</a>;
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablew11" doxytag="NL3D::CSkeletonModel::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_1CSkeletonModelb3" doxytag="NL3D::CSkeletonModel::CSkeletonModel" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::CSkeletonModel </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>
+Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00075">75</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00508">_AnimCtrlUsage</a>, <a class="el" href="a06394.html#l00474">_CLodVertexAlphaDirty</a>, <a class="el" href="a06394.html#l00380">_DefaultMRMSetup</a>, <a class="el" href="a06394.html#l00463">_DisplayedAsLodCharacter</a>, <a class="el" href="a06394.html#l00466">_LodCharacterDistance</a>, <a class="el" href="a06394.html#l00467">_OOLodCharacterDistance</a>, <a class="el" href="a06394.html#l00378">_SkinToRenderDirty</a>, <a class="el" href="a06393.html#l01282">buildDefaultLevelDetail()</a>, <a class="el" href="a06568.html#l00255">NL3D::CTransform::setOpacity()</a>, and <a class="el" href="a06568.html#l00240">NL3D::CTransform::setTransparency()</a>.
+<p>
+<div class="fragment"><pre>00076 {
+00077 IAnimatable::resize(AnimValueLast);
+00078 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_5">_DisplayedAsLodCharacter</a>= <span class="keyword">false</span>;
+00079 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">_LodCharacterDistance</a>= 0;
+00080 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_7">_OOLodCharacterDistance</a>= 0;
+00081
+00082 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr1">_DefaultMRMSetup</a>= <span class="keyword">true</span>;
+00083
+00084 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr7">_SkinToRenderDirty</a>= <span class="keyword">false</span>;
+00085
+00086 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_4">_CLodVertexAlphaDirty</a>= <span class="keyword">true</span>;
+00087
+00088 <span class="comment">// Inform the transform that I am a skeleton</span>
+00089 CTransform::setIsSkeleton(<span class="keyword">true</span>);
+00090
+00091 <span class="comment">// By default, no skins, hence, impossible to have transparent pass. But opaque pass is always possible</span>
+00092 <span class="comment">// because of CLod rendering</span>
+00093 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela41">setOpacity</a>(<span class="keyword">true</span>);
+00094 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela43">setTransparency</a>(<span class="keyword">false</span>);
+00095
+00096 <span class="comment">// AnimDetail behavior: Must be traversed in AnimDetail, even if no channel mixer registered</span>
+00097 CTransform::setIsForceAnimDetail(<span class="keyword">true</span>);
+00098
+00099 <span class="comment">// LoadBalancing behavior. true because directly act on skins to draw all their MRM level</span>
+00100 CTransform::setIsLoadbalancable(<span class="keyword">true</span>);
+00101
+00102 <span class="comment">// Lighting behavior. Lightable because skins/stickedObjects may surely need its LightContribution</span>
+00103 CTransform::setIsLightable(<span class="keyword">true</span>);
+00104
+00105 <span class="comment">// Render behavior. Always renderable, because either render the skeleton as a CLod, or render skins</span>
+00106 CTransform::setIsRenderable(<span class="keyword">true</span>);
+00107
+00108 <span class="comment">// build a bug-free level detail</span>
+00109 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModeld0">buildDefaultLevelDetail</a>();
+00110
+00111 <span class="comment">// RenderFilter: We are a skeleton</span>
+00112 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelp0">_RenderFilterType</a>= UScene::FilterSkeleton;
+00113
+00114 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz942_0">_AnimCtrlUsage</a>= 0;
+00115
+00116 <span class="comment">// ShadowMap</span>
+00117 CTransform::setIsShadowMapCaster(<span class="keyword">true</span>);
+00118 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>= NULL;
+00119 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelb12" doxytag="NL3D::CSkeletonModel::~CSkeletonModel" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::~<a class="el" href="a03399.html">CSkeletonModel</a> </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Destructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00123">123</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00367">_ItSkeletonInScene</a>, <a class="el" href="a06394.html#l00373">_Skins</a>, <a class="el" href="a06394.html#l00375">_StickedObjects</a>, <a class="el" href="a06393.html#l01862">deleteShadowMap()</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, <a class="el" href="a06348.html#l00968">NL3D::CScene::eraseSkeletonModelToList()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, and <a class="el" href="a06393.html#l00837">setLodCharacterShape()</a>.
+<p>
+<div class="fragment"><pre>00124 {
+00125 <span class="comment">// if initModel() called</span>
+00126 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>())
+00127 {
+00128 <span class="comment">// remove from scene</span>
+00129 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;eraseSkeletonModelToList(_ItSkeletonInScene);
+00130 }
+00131
+00132
+00133 <span class="comment">// detach skeleton sons from skins.</span>
+00134 <span class="keywordflow">while</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.begin()!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.end())
+00135 {
+00136 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz920_1">detachSkeletonSon</a>(*<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.begin());
+00137 }
+00138
+00139 <span class="comment">// detach skeleton sons from sticked objects.</span>
+00140 <span class="keywordflow">while</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.begin()!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.end())
+00141 {
+00142 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz920_1">detachSkeletonSon</a>(*<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.begin());
+00143 }
+00144
+00145 <span class="comment">// Free Lod instance</span>
+00146 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz926_12">setLodCharacterShape</a>(-1);
+00147
+00148 <span class="comment">// delete the shadowMap</span>
+00149 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelb4">deleteShadowMap</a>();
+00150 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1ITransformableb0" doxytag="NL3D::CSkeletonModel::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="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1023_0">getDefaultTrack</a>(valueId), valueId, ownerValueId, detail);
+00041 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz920_0" doxytag="NL3D::CSkeletonModel::bindSkin" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::bindSkin </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>mi</em> </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>
+bind a skin to the skeleton. NB: <a class="el" href="a02316.html#NL3D_1_1CTransformb8">~CTransform()</a> calls <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_1">detachSkeletonSon()</a>. NB: <a class="el" href="a04199.html#a6">nlassert()</a> if there is too many skins/sticked objects on this skeleton (more than 255). NB: an object can't be skinned and sticked at same time :) NB: replaced if already here. NB: when a skin is binded, the command <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela27">hide()</a>, <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela46">show()</a>, ... have no effect on it, until it is <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_1">detachSkeletonSon()</a>-ed NB: For Skins, all Hrc/Clip/UpdateList link is done here <dl compact><dt><b>Returns:</b></dt><dd>false if mi is not skinnable, true otherwise</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00497">497</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00849">NL3D::CTransform::_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06394.html#l00373">_Skins</a>, <a class="el" href="a06568.html#l01248">NL3D::CTransform::clipUnlinkFromAll()</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, <a class="el" href="a06394.html#l00476">dirtLodVertexAlpha()</a>, <a class="el" href="a06394.html#l00151">dirtSkinRenderLists()</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, <a class="el" href="a06569.html#l00567">NL3D::CTransform::isSkinnable()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06568.html#l00584">NL3D::CTransform::setApplySkin()</a>, <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>, and <a class="el" href="a06568.html#l00630">NL3D::CTransform::unlinkFromUpdateList()</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00097">NL3D::CSkeletonUser::bindSkin()</a>.
+<p>
+<div class="fragment"><pre>00498 {
+00499 <a class="code" href="a04199.html#a6">nlassert</a>(mi);
+00500 <span class="keywordflow">if</span>( !mi-&gt;isSkinnable() )
+00501 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00502
+00503 <span class="comment">// try to detach this object from any skeleton first (possibly me).</span>
+00504 <span class="keywordflow">if</span>(mi-&gt;_FatherSkeletonModel)
+00505 mi-&gt;_FatherSkeletonModel-&gt;detachSkeletonSon(mi);
+00506
+00507 <span class="comment">// Then Add me.</span>
+00508 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.insert(mi);
+00509
+00510 <span class="comment">// advert skin transform it is skinned.</span>
+00511 mi-&gt;_FatherSkeletonModel= <span class="keyword">this</span>;
+00512 <span class="comment">// setApplySkin() use _FatherSkeletonModel to computeBonesId() and to update current skeleton bone usage.</span>
+00513 mi-&gt;setApplySkin(<span class="keyword">true</span>);
+00514
+00515
+00516 <span class="comment">// Unlink the Skin from Hrc and clip, because SkeletonModel now does the job for him.</span>
+00517 <span class="comment">// First ensure that the transform is not frozen (unlink from some quadGrids etc...)</span>
+00518 mi-&gt;unfreezeHRC();
+00519 <span class="comment">// then never re-parse in validateList/Hrc/Clip</span>
+00520 mi-&gt;unlinkFromUpdateList();
+00521 mi-&gt;hrcUnlink();
+00522 <span class="comment">// ClipTrav is a graph, so must unlink from ALL olds models.</span>
+00523 mi-&gt;clipUnlinkFromAll();
+00524 <span class="comment">// Ensure flag is correct</span>
+00525 mi-&gt;_ClipLinkedInSonsOfAncestorSkeletonModelGroup= <span class="keyword">false</span>;
+00526
+00527
+00528 <span class="comment">// must recompute lod vertex alpha when LodCharacter used</span>
+00529 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_1">dirtLodVertexAlpha</a>();
+00530 <span class="comment">// must recompute list of skins.</span>
+00531 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz920_2">dirtSkinRenderLists</a>();
+00532
+00533 <span class="comment">// Ok, skinned</span>
+00534 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00535 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModeld0" doxytag="NL3D::CSkeletonModel::buildDefaultLevelDetail" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::buildDefaultLevelDetail </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> [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="a06393.html#l01282">1282</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06059.html#l00037">NL3D::CMRMLevelDetail::compileDistanceSetup()</a>, <a class="el" href="a06060.html#l00065">NL3D::CMRMLevelDetail::DistanceCoarsest</a>, <a class="el" href="a06060.html#l00061">NL3D::CMRMLevelDetail::DistanceFinest</a>, <a class="el" href="a06060.html#l00063">NL3D::CMRMLevelDetail::DistanceMiddle</a>, <a class="el" href="a06060.html#l00058">NL3D::CMRMLevelDetail::MaxFaceUsed</a>, and <a class="el" href="a06060.html#l00056">NL3D::CMRMLevelDetail::MinFaceUsed</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00075">CSkeletonModel()</a>, and <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>01283 {
+01284 <span class="comment">// Avoid divide by zero.</span>
+01285 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.MinFaceUsed= 0;
+01286 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.MaxFaceUsed= 0;
+01287 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceFinest= 1;
+01288 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceMiddle= 2;
+01289 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceCoarsest= 3;
+01290 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.compileDistanceSetup();
+01291 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_0" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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_1CSkeletonModelz928_0" doxytag="NL3D::CSkeletonModel::changeMRMDistanceSetup" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::changeMRMDistanceSetup </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>distanceFinest</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>distanceMiddle</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>distanceCoarsest</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Special version for skins. NB: skins never follow their original MRM distance setup, but follow this skeleton MRM setup. Default is to follow the MAX of all skins binded (ie the finer). NB: Unlike <a class="el" href="a02873.html#NL3D_1_1CMeshInstancea1">CMeshBaseInstance::changeMRMDistanceSetup()</a>, this setup applies to the SkeletonModel, not the shape. NB: no-op if distanceFinest&lt;0, distanceMiddle&lt;=distanceFinest or if distanceCoarsest&lt;=distanceMiddle. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>distanceFinest</em>&nbsp;</td><td>The MRM has its max faces when dist&lt;=distanceFinest. </td></tr>
+ <tr><td valign=top><em>distanceMiddle</em>&nbsp;</td><td>The MRM has 50% of its faces at dist==distanceMiddle. </td></tr>
+ <tr><td valign=top><em>distanceCoarsest</em>&nbsp;</td><td>The MRM has faces/Divisor (ie near 0) when dist&gt;=distanceCoarsest.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l01589">1589</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00380">_DefaultMRMSetup</a>, <a class="el" href="a06059.html#l00037">NL3D::CMRMLevelDetail::compileDistanceSetup()</a>, <a class="el" href="a06060.html#l00065">NL3D::CMRMLevelDetail::DistanceCoarsest</a>, <a class="el" href="a06060.html#l00061">NL3D::CMRMLevelDetail::DistanceFinest</a>, and <a class="el" href="a06060.html#l00063">NL3D::CMRMLevelDetail::DistanceMiddle</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00265">NL3D::CSkeletonUser::changeMRMDistanceSetup()</a>.
+<p>
+<div class="fragment"><pre>01590 {
+01591 <span class="comment">// check input.</span>
+01592 <span class="keywordflow">if</span>(distanceFinest&lt;0) <span class="keywordflow">return</span>;
+01593 <span class="keywordflow">if</span>(distanceMiddle&lt;=distanceFinest) <span class="keywordflow">return</span>;
+01594 <span class="keywordflow">if</span>(distanceCoarsest&lt;=distanceMiddle) <span class="keywordflow">return</span>;
+01595
+01596 <span class="comment">// Change.</span>
+01597 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceFinest= distanceFinest;
+01598 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceMiddle= distanceMiddle;
+01599 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceCoarsest= distanceCoarsest;
+01600
+01601 <span class="comment">// compile </span>
+01602 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.compileDistanceSetup();
+01603
+01604 <span class="comment">// Never more use MAX skin setup.</span>
+01605 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr1">_DefaultMRMSetup</a>= <span class="keyword">false</span>;
+01606 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformableb1" doxytag="NL3D::CSkeletonModel::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_1CWaveMakerModelz1057_0" doxytag="NL3D::CSkeletonModel::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::CTransformShape::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, inherited]</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="a02316.html#NL3D_1_1CTransformz1017_0">NL3D::CTransform</a>.
+<p>
+Reimplemented in <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz627_0">NL3D::CParticleSystemModel</a>, and <a class="el" href="a03721.html#NL3D_1_1CWaterModelz1176_0">NL3D::CWaterModel</a>.
+<p>
+Definition at line <a class="el" href="a06570.html#l00141">141</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>.
+<p>
+References <a class="el" href="a06583.html#l00079">NL3D::CTravCameraScene::CamPos</a>, <a class="el" href="a05556.html#l00161">NL3D::CClipTrav::ForceNoFrustumClip</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06571.html#l00135">NL3D::CTransformShape::getDistMax()</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="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>, and <a class="el" href="a05556.html#l00149">NL3D::CClipTrav::WorldPyramid</a>.
+<p>
+<div class="fragment"><pre>00142 {
+00143 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_TrShape_Clip );
+00144
+00145 CClipTrav &amp;clipTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav();
+00146
+00147 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>)
+00148 {
+00149 <span class="comment">// first test DistMax (faster).</span>
+00150 <span class="keywordtype">float</span> maxDist = <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModela10">getDistMax</a>();
+00151 <span class="comment">// if DistMax test enabled</span>
+00152 <span class="keywordflow">if</span>(maxDist!=-1)
+00153 {
+00154 <span class="comment">// Calc the distance</span>
+00155 <span class="keywordtype">float</span> sqrDist = (clipTrav.CamPos - <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().getPos()).sqrnorm ();
+00156 maxDist*=maxDist;
+00157
+00158 <span class="comment">// if dist &gt; maxDist, skip</span>
+00159 <span class="keywordflow">if</span> (sqrDist &gt; maxDist)
+00160 {
+00161 <span class="comment">// Ok, not shown</span>
+00162 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00163 }
+00164 }
+00165
+00166 <span class="comment">// Else finer clip with pyramid, only if needed</span>
+00167 <span class="keywordflow">if</span>(clipTrav.ForceNoFrustumClip)
+00168 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00169 <span class="keywordflow">else</span>
+00170 <span class="keywordflow">return</span> <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>-&gt;clip(clipTrav.WorldPyramid, <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>());
+00171 }
+00172 <span class="keywordflow">else</span>
+00173 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00174 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_0" doxytag="NL3D::CSkeletonModel::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">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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::CSkeletonModel::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">NL3D::CWaterModel::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_1CSkeletonModelz924_0" doxytag="NL3D::CSkeletonModel::computeAllBones" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::computeAllBones </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>modelWorldMatrix</em> </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>
+Tool function, especially for animation bake. It updates all bones (independent of bone usage, and lod interpolation), and take a user skeleton worldMatrix as input. NB: no detail animation is performed here, just the compute of bone hierarchy. NB: also, no special AnimCtrl (IK etc....) is performed here
+<p>
+Definition at line <a class="el" href="a06393.html#l00807">807</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">Bones</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="a05931.html#l00111">NL3D::CLodCharacterBuilder::addAnim()</a>, and <a class="el" href="a06393.html#l01665">computeCurrentBBox()</a>.
+<p>
+<div class="fragment"><pre>00808 {
+00809 <span class="comment">// must test / update the hierarchy of Bones.</span>
+00810 <span class="comment">// Since they are orderd in depth-first order, we are sure that parent are computed before sons.</span>
+00811 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size();i++)
+00812 {
+00813 <a class="code" href="a04558.html#a14">sint</a> fatherId= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].getFatherId();
+00814 <span class="comment">// if a root bone...</span>
+00815 <span class="keywordflow">if</span>(fatherId==-1)
+00816 <span class="comment">// Compute root bone worldMatrix. Do not allow special AnimCtrl</span>
+00817 Bones[i].compute( NULL, modelWorldMatrix, NULL);
+00818 <span class="keywordflow">else</span>
+00819 <span class="comment">// Compute bone worldMatrix. Do not allow special AnimCtrl</span>
+00820 Bones[i].compute( &amp;Bones[fatherId], modelWorldMatrix, NULL);
+00821 }
+00822
+00823 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz938_0" doxytag="NL3D::CSkeletonModel::computeCLodVertexAlpha" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::computeCLodVertexAlpha </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02800.html">CLodCharacterManager</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mngr</em> </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>
+recompute _CLodVertexAlpha, ignoring _CLodVertexAlphaDirty
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l01043">1043</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a06569.html#l00618">NL3D::CTransform::_FatherBoneId</a>, <a class="el" href="a06394.html#l00373">_Skins</a>, <a class="el" href="a06394.html#l00375">_StickedObjects</a>, <a class="el" href="a05937.html#l00641">NL3D::CLodCharacterShape::addBoneAlpha()</a>, <a class="el" href="a06394.html#l00098">Bones</a>, <a class="el" href="a05937.html#l00552">NL3D::CLodCharacterShape::getBoneIdByName()</a>, <a class="el" href="a05935.html#l00194">NL3D::CLodCharacterManager::getShape()</a>, <a class="el" href="a06569.html#l00578">NL3D::CTransform::getSkinBoneUsage()</a>, <a class="el" href="a06394.html#l00371">ItTransformSet</a>, <a class="el" href="a05934.html#l00057">NL3D::CLodCharacterInstance::ShapeId</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05937.html#l00632">NL3D::CLodCharacterShape::startBoneAlpha()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05934.html#l00069">NL3D::CLodCharacterInstance::VertexAlphas</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01295">renderCLod()</a>.
+<p>
+<div class="fragment"><pre>01044 {
+01045 <span class="comment">// if shape id set.</span>
+01046 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId&lt;0)
+01047 <span class="keywordflow">return</span>;
+01048 <span class="comment">// get the lod shape,a nd check exist in the manager</span>
+01049 <span class="keyword">const</span> CLodCharacterShape *lodShape= mngr-&gt;getShape(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId);
+01050 <span class="keywordflow">if</span>(lodShape)
+01051 {
+01052 <span class="comment">// start process.</span>
+01053 <span class="comment">//-----------------</span>
+01054 lodShape-&gt;startBoneAlpha(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.VertexAlphas);
+01055
+01056 <span class="comment">// build an Id map, from Skeleton Ids to the lodShapes ids. (because may be differents)</span>
+01057 <span class="keyword">static</span> vector&lt;sint&gt; boneMap;
+01058 <span class="comment">// reset to -1 (ie not found)</span>
+01059 boneMap.clear();
+01060 boneMap.resize(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size(), -1);
+01061 <a class="code" href="a04558.html#a15">uint</a> i;
+01062 <span class="comment">// for all skeletons bones.</span>
+01063 <span class="keywordflow">for</span>(i=0; i&lt;boneMap.size(); i++)
+01064 {
+01065 boneMap[i]= lodShape-&gt;getBoneIdByName(Bones[i].getBoneName());;
+01066 }
+01067
+01068 <span class="comment">// Parse all skins</span>
+01069 <span class="comment">//-----------------</span>
+01070 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModely0">ItTransformSet</a> it;
+01071 <span class="keywordflow">for</span>(it= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.begin(); it!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.end(); it++)
+01072 {
+01073 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *skin= *it;
+01074
+01075 <span class="comment">// get array of bone used for this skin.</span>
+01076 <span class="keyword">const</span> vector&lt;sint32&gt; *skinUsage= skin-&gt;getSkinBoneUsage();
+01077 <span class="comment">// check correct skin</span>
+01078 <span class="keywordflow">if</span>(skinUsage)
+01079 {
+01080 <span class="comment">// For all bones used</span>
+01081 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;skinUsage-&gt;size(); i++)
+01082 {
+01083 <span class="comment">// the id in the vector point to a bone in the skeleton. Hence use the boneMap to translate it</span>
+01084 <span class="comment">// in the lodShape ids.</span>
+01085 <a class="code" href="a04558.html#a14">sint</a> idInLod= boneMap[(*skinUsage)[i]];
+01086 <span class="comment">// only if id found in the lod shape</span>
+01087 <span class="keywordflow">if</span>(idInLod&gt;=0)
+01088 <span class="comment">// add color to this bone.</span>
+01089 lodShape-&gt;addBoneAlpha(idInLod, <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.VertexAlphas);
+01090 }
+01091
+01092 }
+01093 }
+01094
+01095 <span class="comment">// Parse all sticked objects</span>
+01096 <span class="comment">//-----------------</span>
+01097 <span class="keywordflow">for</span>(it= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.begin(); it!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.end(); it++)
+01098 {
+01099 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *object= *it;
+01100
+01101 <span class="comment">// get on which bone this object is linked.</span>
+01102 <span class="comment">// use the boneMap to translate id to lodShape id.</span>
+01103 <a class="code" href="a04558.html#a14">sint</a> idInLod= boneMap[object-&gt;_FatherBoneId];
+01104
+01105 <span class="comment">// only if id found in the lod shape</span>
+01106 <span class="keywordflow">if</span>(idInLod&gt;=0)
+01107 <span class="comment">// add color to this bone.</span>
+01108 lodShape-&gt;addBoneAlpha(idInLod, <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.VertexAlphas);
+01109 }
+01110
+01111 }
+01112
+01113 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz924_1" doxytag="NL3D::CSkeletonModel::computeCurrentBBox" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::computeCurrentBBox </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="mdname" nowrap> <em>bbox</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>forceCompute</em> = false, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>computeInWorld</em> = false</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+same as <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_2">computeRenderedBBox()</a> but force animation and compute of all bones =&gt; don't need render(), but slower. for all used bones, extend the bbox with their pos NB: AnimCtrl are not evaluated by this method (since computed with 0 pos). <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bbox</em>&nbsp;</td><td>return the bbox of the skinned skeleton, local to the skeleton. If the skeleton is not skinned/sticked at all, bbox is not modified. </td></tr>
+ <tr><td valign=top><em>forceCompute</em>&nbsp;</td><td>force evalution even if not skinned </td></tr>
+ <tr><td valign=top><em>computeInWorld</em>&nbsp;</td><td>true if want to get the bbox in world. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>true if the bbox is computed, false otherwise.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l01665">1665</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00427">_BoneUsage</a>, <a class="el" href="a06394.html#l00098">Bones</a>, <a class="el" href="a06393.html#l00807">computeAllBones()</a>, <a class="el" href="a05543.html#l00154">NL3D::CChannelMixer::eval()</a>, <a class="el" href="a05384.html#l00215">NLMISC::CAABBox::extend()</a>, <a class="el" href="a06569.html#l00641">NL3D::CTransform::getChannelMixer()</a>, <a class="el" href="a05543.html#l00791">NL3D::CChannelMixer::resetEvalDetailDate()</a>, <a class="el" href="a05385.html#l00066">NLMISC::CAABBox::setCenter()</a>, <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00281">NL3D::CSkeletonUser::computeCurrentBBox()</a>.
+<p>
+<div class="fragment"><pre>01666 {
+01667 <span class="comment">// animate all bones channels (detail only channels). don't bother cur lod state.</span>
+01668 CChannelMixer *chanmix= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelb3">getChannelMixer</a>();
+01669 <span class="keywordflow">if</span> (chanmix)
+01670 {
+01671 <span class="comment">// Force detail evaluation.</span>
+01672 chanmix-&gt;resetEvalDetailDate();
+01673 chanmix-&gt;eval(<span class="keyword">true</span>, 0);
+01674 chanmix-&gt;resetEvalDetailDate();
+01675 }
+01676 <span class="comment">// compute all skeleton bones</span>
+01677 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz924_0">computeAllBones</a>(CMatrix::Identity);
+01678
+01679 <span class="comment">// reset bbox</span>
+01680 <a class="code" href="a02156.html">CAABBox</a> tmpBBox;
+01681 tmpBBox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(CVector::Null);
+01682 tmpBBox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">setHalfSize</a>(CVector::Null);
+01683 <span class="keywordtype">bool</span> empty= <span class="keyword">true</span>;
+01684
+01685 <span class="comment">// For all bones</span>
+01686 <a class="code" href="a04558.html#a15">uint</a> i;
+01687 <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size();i++)
+01688 {
+01689 <span class="comment">// Is the bone used ?? (whatever bone lod, or CLod state)</span>
+01690 <a class="code" href="a04558.html#a7">uint8</a> mustCompute = forceCompute ? 1 : <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].Usage | <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].ForcedUsage | <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].CLodForcedUsage;
+01691
+01692 <span class="comment">// If the bone is used.</span>
+01693 <span class="keywordflow">if</span>(mustCompute)
+01694 {
+01695 CVector pos;
+01696 <span class="keywordflow">if</span>(computeInWorld)
+01697 pos= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].getWorldMatrix().getPos();
+01698 <span class="keywordflow">else</span>
+01699 pos= Bones[i].getLocalSkeletonMatrix().getPos();
+01700 <span class="keywordflow">if</span>(empty)
+01701 {
+01702 empty= <span class="keyword">false</span>;
+01703 tmpBBox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(pos);
+01704 }
+01705 <span class="keywordflow">else</span>
+01706 tmpBBox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1902_0">extend</a>(pos);
+01707 }
+01708 }
+01709
+01710 <span class="comment">// End!</span>
+01711 <span class="keywordflow">if</span>(!empty)
+01712 {
+01713 bbox= tmpBBox;
+01714 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01715 }
+01716 <span class="keywordflow">else</span>
+01717 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01718 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_0" doxytag="NL3D::CSkeletonModel::computeDisplayLodCharacterPriority" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::computeDisplayLodCharacterPriority </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</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called in ClipTrav pass. Used to update the flag _DisplayedAsLodCharacter. return 0 if CLod not enabled. Else return a priority&gt;0 computed from curDistance/LodCharacterDistance return 0 too if the skeleton is not visible or if his ancestorSkeletonModel is not visible. If priority is &gt;1 then the skeleton must be displayed in CLod form
+<p>
+Definition at line <a class="el" href="a06393.html#l00972">972</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a06394.html#l00466">_LodCharacterDistance</a>, <a class="el" href="a06394.html#l00467">_OOLodCharacterDistance</a>, <a class="el" href="a06583.html#l00079">NL3D::CTravCameraScene::CamPos</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="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06569.html#l00313">NL3D::CTransform::isClipVisible()</a>, and <a class="el" href="a05934.html#l00057">NL3D::CLodCharacterInstance::ShapeId</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00457">NL3D::CClipTrav::loadBalanceSkeletonCLod()</a>.
+<p>
+<div class="fragment"><pre>00973 {
+00974 <span class="comment">// if enabled</span>
+00975 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">_LodCharacterDistance</a>&gt;0 &amp;&amp; <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId&gt;=0)
+00976 {
+00977 CVector globalPos;
+00978 <span class="comment">/* \todo yoyo: bad test of visibility. If the skeleton is hidden but has a _AncestorSkeletonModel </span>
+00979 <span class="comment"> wich is visible, then it is supposed to be visible (in this test), but only for The CLod LoadBalancing </span>
+00980 <span class="comment"> (priority not 0). Not so important...</span>
+00981 <span class="comment"> */</span>
+00982
+00983 <span class="comment">// Get object position, test visibility;</span>
+00984 <span class="comment">// If has a skeleton ancestor, take his world position instead, because ours is invalid.</span>
+00985 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a> != NULL)
+00986 {
+00987 <span class="comment">// if the ancestore is clipped, quit</span>
+00988 <span class="keywordflow">if</span>( !<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>-&gt;isClipVisible() )
+00989 <span class="keywordflow">return</span> 0;
+00990 <span class="comment">// take ancestor world position</span>
+00991 globalPos= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>-&gt;getWorldMatrix().getPos();
+00992 }
+00993 <span class="keywordflow">else</span>
+00994 {
+00995 <span class="comment">// if the skeleton is clipped, quit</span>
+00996 <span class="keywordflow">if</span>( !<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela28">isClipVisible</a>() )
+00997 <span class="keywordflow">return</span> 0;
+00998 <span class="comment">// take our world position</span>
+00999 globalPos= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().getPos();
+01000 }
+01001
+01002 <span class="comment">// compute distance from camera.</span>
+01003 <span class="keywordtype">float</span> dist= (<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav().CamPos - globalPos).norm();
+01004
+01005 <span class="comment">// compute priority</span>
+01006 <span class="keywordflow">return</span> dist*<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_7">_OOLodCharacterDistance</a>;
+01007 }
+01008 <span class="keywordflow">else</span>
+01009 <span class="keywordflow">return</span> 0;
+01010 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_1" doxytag="NL3D::CSkeletonModel::computeLodTexture" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::computeLodTexture </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>
+Call it when you want the system to recompute the Lod texture NB: Lod texturing is possible only in conjunction with AsyncTextureManager. Hence, instances skinned to the skeleton should be in AsyncTextureMode. For best result, you should wait that each of these instances are isAsyncTextureReady() (texture loaded)
+<p>
+Definition at line <a class="el" href="a06393.html#l00866">866</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a06394.html#l00373">_Skins</a>, <a class="el" href="a05935.html#l00955">NL3D::CLodCharacterManager::addTextureCompute()</a>, <a class="el" href="a05935.html#l00809">NL3D::CLodCharacterTmpBitmap::build()</a>, <a class="el" href="a05935.html#l00992">NL3D::CLodCharacterManager::endTextureCompute()</a>, <a class="el" href="a05993.html#l00547">NL3D::CMeshBaseInstance::getAsyncTextureId()</a>, <a class="el" href="a06349.html#l00501">NL3D::CScene::getAsyncTextureManager()</a>, <a class="el" href="a05994.html#l00162">NL3D::CMeshBaseInstance::getAsyncTextureMode()</a>, <a class="el" href="a05463.html#l00343">NL3D::CAsyncTextureManager::getCoarseBitmap()</a>, <a class="el" href="a06349.html#l00349">NL3D::CScene::getLodCharacterManager()</a>, <a class="el" href="a05992.html#l00223">NL3D::CMeshBase::getLodCharacterTexture()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05936.html#l00233">NL3D::CLodCharacterManager::getTmpBitmap()</a>, <a class="el" href="a06394.html#l00371">ItTransformSet</a>, <a class="el" href="a05994.html#l00075">NL3D::CMeshBaseInstance::Materials</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>, <a class="el" href="a05934.html#l00057">NL3D::CLodCharacterInstance::ShapeId</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05935.html#l00934">NL3D::CLodCharacterManager::startTextureCompute()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00295">NL3D::CSkeletonUser::computeLodTexture()</a>.
+<p>
+<div class="fragment"><pre>00867 {
+00868 <span class="comment">// is lod setuped</span>
+00869 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId&lt;0)
+00870 <span class="keywordflow">return</span>;
+00871
+00872 <span class="comment">// get a ptr on the scene which owns us, and so on the lodManager.</span>
+00873 CScene *scene= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>();
+00874 CLodCharacterManager *mngr= scene-&gt;getLodCharacterManager();
+00875 <span class="comment">// mngr must be setuped since shape Id is &gt;-1</span>
+00876 <a class="code" href="a04199.html#a6">nlassert</a>(mngr);
+00877 <span class="comment">/* Get the asyncTextureManager. This is a Hack. We use the AsyncTextureManager to store very low version of Textures</span>
+00878 <span class="comment"> (kept in DXTC1 format for minimum memory overhead).</span>
+00879 <span class="comment"> HENCE Lod Texture can work only with Async Textured instances!!</span>
+00880 <span class="comment"> */</span>
+00881 CAsyncTextureManager *asyncMngr= scene-&gt;getAsyncTextureManager();
+00882 <span class="comment">// if not setuped, cancel</span>
+00883 <span class="keywordflow">if</span>(!asyncMngr)
+00884 <span class="keywordflow">return</span>;
+00885
+00886
+00887 <span class="comment">// **** start process. If cannot (TextureId==no more texture space), just quit.</span>
+00888 <span class="keywordflow">if</span>(!mngr-&gt;startTextureCompute(_CLodInstance))
+00889 <span class="keywordflow">return</span>;
+00890 <a class="code" href="a04558.html#a15">uint</a> maxNumBmpToReset= 0;
+00891
+00892 <span class="comment">// **** For all skins which have a LodTexture setuped</span>
+00893 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModely0">ItTransformSet</a> it= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.begin();
+00894 <span class="keywordflow">for</span>(;it!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.end();it++)
+00895 {
+00896 <span class="comment">// the skin should be a meshBaseInstance setuped to asyncTexturing</span>
+00897 CMeshBaseInstance *mbi= dynamic_cast&lt;CMeshBaseInstance*&gt;(*it);
+00898 <span class="keywordflow">if</span>(mbi &amp;&amp; mbi-&gt;getAsyncTextureMode() &amp;&amp; mbi-&gt;Shape)
+00899 {
+00900 CMeshBase *mb= (CMeshBase*)(IShape*)(mbi-&gt;Shape);
+00901 <span class="comment">// get the LodTexture info of this shape.</span>
+00902 <span class="keyword">const</span> CLodCharacterTexture *lodText= mb-&gt;getLodCharacterTexture();
+00903 <span class="comment">// if setuped</span>
+00904 <span class="keywordflow">if</span>(lodText)
+00905 {
+00906 <span class="comment">// Ok, compute influence of this instance on the Lod.</span>
+00907
+00908 <span class="comment">// ---- Build all bmps of the instance with help of the asyncTextureManager</span>
+00909 <a class="code" href="a04558.html#a15">uint</a> numMats= mbi-&gt;Materials.size();
+00910 <span class="comment">// 256 materials possibles for the lod Manager</span>
+00911 numMats= <a class="code" href="a04061.html#a0">min</a>(numMats, 256U);
+00912 <span class="comment">// for endTexturecompute</span>
+00913 maxNumBmpToReset= max(maxNumBmpToReset, numMats);
+00914 <span class="comment">// process each materials</span>
+00915 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;numMats;i++)
+00916 {
+00917 <span class="comment">// get the manager bitmap to write to</span>
+00918 CLodCharacterTmpBitmap &amp;dstBmp= mngr-&gt;getTmpBitmap(i);
+00919
+00920 <span class="comment">// if the material stage 0 is not textured, or has not a valid async id, build the bitmap with a color.</span>
+00921 <a class="code" href="a04558.html#a14">sint</a> asyncTextId= mbi-&gt;getAsyncTextureId(i,0);
+00922 <span class="keyword">const</span> <a class="code" href="a02268.html">CBitmap</a> *coarseBitmap= NULL;
+00923 <span class="keywordflow">if</span>(asyncTextId!=-1)
+00924 {
+00925 <span class="comment">// get it from async manager</span>
+00926 coarseBitmap= asyncMngr-&gt;getCoarseBitmap(asyncTextId);
+00927 }
+00928
+00929 <span class="comment">// So if we have no bmp here, build with material color, else build a texture</span>
+00930 <span class="keywordflow">if</span>(!coarseBitmap)
+00931 {
+00932 dstBmp.build(mbi-&gt;Materials[i].getDiffuse());
+00933 }
+00934 <span class="keywordflow">else</span>
+00935 {
+00936 dstBmp.build(*coarseBitmap);
+00937 }
+00938 }
+00939
+00940 <span class="comment">// ---- add the lodTextureInfo to the current texture computed</span>
+00941 mngr-&gt;addTextureCompute(_CLodInstance, *lodText);
+00942 }
+00943 }
+00944 }
+00945
+00946 <span class="comment">// **** compile the process</span>
+00947 mngr-&gt;endTextureCompute(_CLodInstance, maxNumBmpToReset);
+00948
+00949 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz924_2" doxytag="NL3D::CSkeletonModel::computeRenderedBBox" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::computeRenderedBBox </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="mdname" nowrap> <em>bbox</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>computeInWorld</em> = false</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Retrieve the current approx BBox around the skeleton, computed in the last CSene::render(). for all computed bones, extend the bbox with their pos <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bbox</em>&nbsp;</td><td>return the bbox of the skinned skeleton, local to the skeleton. If the skeleton was clipped, the bbox is not modified. </td></tr>
+ <tr><td valign=top><em>computeInWorld</em>&nbsp;</td><td>true if want to get the bbox in world. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>true if the bbox is computed, false otherwise.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l01620">1620</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">Bones</a>, <a class="el" href="a05384.html#l00215">NLMISC::CAABBox::extend()</a>, <a class="el" href="a06393.html#l00374">isBoneComputed()</a>, <a class="el" href="a06569.html#l00313">NL3D::CTransform::isClipVisible()</a>, <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="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00274">NL3D::CSkeletonUser::computeRenderedBBox()</a>.
+<p>
+<div class="fragment"><pre>01621 {
+01622 <span class="comment">// reset bbox</span>
+01623 <a class="code" href="a02156.html">CAABBox</a> tmpBBox;
+01624 tmpBBox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(CVector::Null);
+01625 tmpBBox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">setHalfSize</a>(CVector::Null);
+01626 <span class="keywordtype">bool</span> empty= <span class="keyword">true</span>;
+01627
+01628 <span class="comment">// Not visible =&gt; empty bbox</span>
+01629 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela28">isClipVisible</a>())
+01630 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01631
+01632 <span class="comment">// For all bones</span>
+01633 <a class="code" href="a04558.html#a15">uint</a> i;
+01634 <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size();i++)
+01635 {
+01636 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz924_8">isBoneComputed</a>(i))
+01637 {
+01638 CVector pos;
+01639 <span class="keywordflow">if</span>(computeInWorld)
+01640 pos= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].getWorldMatrix().getPos();
+01641 <span class="keywordflow">else</span>
+01642 pos= Bones[i].getLocalSkeletonMatrix().getPos();
+01643 <span class="keywordflow">if</span>(empty)
+01644 {
+01645 empty= <span class="keyword">false</span>;
+01646 tmpBBox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(pos);
+01647 }
+01648 <span class="keywordflow">else</span>
+01649 tmpBBox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1902_0">extend</a>(pos);
+01650 }
+01651 }
+01652
+01653 <span class="comment">// End!</span>
+01654 <span class="keywordflow">if</span>(!empty)
+01655 {
+01656 bbox= tmpBBox;
+01657 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01658 }
+01659 <span class="keywordflow">else</span>
+01660 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01661 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz934_0" doxytag="NL3D::CSkeletonModel::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"> bool NL3D::CSkeletonModel::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> [virtual]</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 from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_2">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l01987">1987</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00429">_BoneToCompute</a>, <a class="el" href="a05492.html#l00169">NL3D::CBone::_MaxSphere</a>, <a class="el" href="a06394.html#l00375">_StickedObjects</a>, <a class="el" href="a05504.html#l00088">NLMISC::CBSphere::applyTransform()</a>, <a class="el" href="a05505.html#l00048">NLMISC::CBSphere::Center</a>, <a class="el" href="a05384.html#l00231">NLMISC::CAABBox::computeAABBoxUnion()</a>, <a class="el" href="a06569.html#l00521">NL3D::CTransform::computeWorldBBoxForShadow()</a>, <a class="el" href="a05492.html#l00147">NL3D::CBone::getWorldMatrix()</a>, <a class="el" href="a06569.html#l00306">NL3D::CTransform::isHrcVisible()</a>, <a class="el" href="a06394.html#l00371">ItTransformSet</a>, <a class="el" href="a06682.html#l00192">NLMISC::CVector::maxof()</a>, <a class="el" href="a06682.html#l00186">NLMISC::CVector::minof()</a>, <a class="el" href="a05646.html#l00993">r</a>, <a class="el" href="a05505.html#l00049">NLMISC::CBSphere::Radius</a>, <a class="el" href="a05385.html#l00071">NLMISC::CAABBox::setMinMax()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01781">generateShadowMap()</a>.
+<p>
+<div class="fragment"><pre>01988 {
+01989 <a class="code" href="a04558.html#a15">uint</a> i;
+01990
+01991 <span class="comment">// If even not visible, no-op</span>
+01992 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela29">isHrcVisible</a>() || !<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>)
+01993 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01994
+01995 <span class="comment">// **** Compute The BBox with Bones of the skeleton</span>
+01996 CVector minBB, maxBB;
+01997 <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a>.size();i++)
+01998 {
+01999 CBone *bone= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a>[i].Bone;
+02000 <span class="comment">// compute the world sphere</span>
+02001 <span class="keyword">const</span> CMatrix &amp;worldMat= bone-&gt;getWorldMatrix();
+02002 <a class="code" href="a02291.html">CBSphere</a> worldSphere;
+02003 bone-&gt;_MaxSphere.applyTransform(worldMat, worldSphere);
+02004 <span class="comment">// compute bone min max bounding cube.</span>
+02005 CVector minBone, maxBone;
+02006 minBone= maxBone= worldSphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo0">Center</a>;
+02007 <span class="keywordtype">float</span> <a class="code" href="a04223.html#a628">r</a>= worldSphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo1">Radius</a>;
+02008 minBone.x-= <a class="code" href="a04223.html#a628">r</a>;
+02009 minBone.y-= <a class="code" href="a04223.html#a628">r</a>;
+02010 minBone.z-= <a class="code" href="a04223.html#a628">r</a>;
+02011 maxBone.x+= <a class="code" href="a04223.html#a628">r</a>;
+02012 maxBone.y+= <a class="code" href="a04223.html#a628">r</a>;
+02013 maxBone.z+= <a class="code" href="a04223.html#a628">r</a>;
+02014 <span class="comment">// set or extend</span>
+02015 <span class="keywordflow">if</span>(i==0)
+02016 {
+02017 minBB= minBone;
+02018 maxBB= maxBone;
+02019 }
+02020 <span class="keywordflow">else</span>
+02021 {
+02022 minBB.minof(minBB, minBone);
+02023 maxBB.maxof(maxBB, maxBone);
+02024 }
+02025 }
+02026 <span class="comment">// build the bbox</span>
+02027 worldBB.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_3">setMinMax</a>(minBB, maxBB);
+02028 <span class="comment">/*</span>
+02029 <span class="comment"> // Fake Version. Faster (-0.2 ms for 8 compute each frame) but false.</span>
+02030 <span class="comment"> for(i=0;i&lt;_BoneToCompute.size();i++)</span>
+02031 <span class="comment"> {</span>
+02032 <span class="comment"> CBone *bone= _BoneToCompute[i].Bone;</span>
+02033 <span class="comment"> const CMatrix &amp;worldMat= bone-&gt;getWorldMatrix();</span>
+02034 <span class="comment"> if(i==0)</span>
+02035 <span class="comment"> worldBB.setCenter(worldMat.getPos());</span>
+02036 <span class="comment"> else</span>
+02037 <span class="comment"> worldBB.extend(worldMat.getPos());</span>
+02038 <span class="comment"> }</span>
+02039 <span class="comment"> worldBB.setHalfSize(worldBB.getHalfSize() *1.5f);</span>
+02040 <span class="comment"> */</span>
+02041
+02042
+02043 <span class="comment">// **** Add to this bbox the ones of the Sticked objects.</span>
+02044 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModely0">ItTransformSet</a> it;
+02045 <span class="keywordflow">for</span>(it= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.begin();it!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.end();it++)
+02046 {
+02047 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *stickModel= *it;
+02048 <span class="comment">// Do the same for this son (NB: recurs, may be a skeleton too!!)</span>
+02049 <a class="code" href="a02156.html">CAABBox</a> stickBB;
+02050 <span class="keywordflow">if</span>(stickModel-&gt;computeWorldBBoxForShadow(stickBB))
+02051 {
+02052 <span class="comment">// Make union of the 2</span>
+02053 worldBB= <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1908_2">CAABBox::computeAABBoxUnion</a>(worldBB, stickBB);
+02054 }
+02055 }
+02056
+02057 <span class="comment">// Done!</span>
+02058 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+02059 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelb2" doxytag="NL3D::CSkeletonModel::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"> void NL3D::CSkeletonModel::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> [protected, virtual]</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="a03399.html#NL3D_1_1CSkeletonModelz934_1">generateShadowMap()</a>
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_0">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l01852">1852</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>.
+<p>
+<div class="fragment"><pre>01853 {
+01854 <span class="comment">// create the shadowMap</span>
+01855 <span class="keywordflow">if</span>(!<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>)
+01856 {
+01857 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>= <span class="keyword">new</span> CShadowMap(&amp;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav().getShadowMapManager());
+01858 }
+01859 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelh0" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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, private]</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="a06394.html#l00356">356</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+<div class="fragment"><pre>00356 {<span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelb3">CSkeletonModel</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz922_1" doxytag="NL3D::CSkeletonModel::decBoneUsage" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::decBoneUsage </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>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0">TBoneUsageType</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>boneUsageType</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+decrement the refCount of the ith bone. set forced to the same param passed when <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_3">incBoneUsage()</a>
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00213">213</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00431">_BoneToComputeDirty</a>, <a class="el" href="a06394.html#l00427">_BoneUsage</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw15">UsageForced</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw16">UsageNormal</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00266">decForcedBoneUsageAndParents()</a>, <a class="el" href="a06011.html#l01254">NL3D::CMeshMRMSkinnedGeom::updateSkeletonUsage()</a>, <a class="el" href="a06005.html#l02535">NL3D::CMeshMRMGeom::updateSkeletonUsage()</a>, and <a class="el" href="a05989.html#l01596">NL3D::CMeshGeom::updateSkeletonUsage()</a>.
+<p>
+<div class="fragment"><pre>00214 {
+00215 <a class="code" href="a04199.html#a6">nlassert</a>(i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>.size());
+00216
+00217 <span class="comment">// Get ptr on according refCount</span>
+00218 <a class="code" href="a04558.html#a7">uint8</a> *usagePtr;
+00219 <span class="keywordflow">if</span>(boneUsageType == <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw16">UsageNormal</a>)
+00220 usagePtr= &amp;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].Usage;
+00221 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(boneUsageType == <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw15">UsageForced</a>)
+00222 usagePtr= &amp;_BoneUsage[i].ForcedUsage;
+00223 <span class="keywordflow">else</span>
+00224 usagePtr= &amp;_BoneUsage[i].CLodForcedUsage;
+00225
+00226 <span class="comment">// If the bone was used before (and now won't be more), must update MustCompute.</span>
+00227 <span class="keywordflow">if</span>(*usagePtr==1)
+00228 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a>= <span class="keyword">true</span>;
+00229
+00230 <span class="comment">// Inc the refCount of the bone.</span>
+00231 <a class="code" href="a04199.html#a6">nlassert</a>(*usagePtr&gt;0);
+00232 (*usagePtr)--;
+00233 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_0" doxytag="NL3D::CSkeletonModel::decForcedBoneUsageAndParents" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::decForcedBoneUsageAndParents </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>i</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>forceCLod</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+increment the refCount of the ith bone and its parents. for stickObjects.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00266">266</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">Bones</a>, <a class="el" href="a06393.html#l00213">decBoneUsage()</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="a06393.html#l00573">detachSkeletonSon()</a>.
+<p>
+<div class="fragment"><pre>00267 {
+00268 <span class="comment">// dec forced</span>
+00269 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_1">decBoneUsage</a>(i, forceCLod?UsageCLodForced:UsageForced);
+00270
+00271 <span class="comment">// recurs to father</span>
+00272 <a class="code" href="a04558.html#a14">sint</a> fatherId= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].getFatherId();
+00273 <span class="comment">// if not a root bone...</span>
+00274 <span class="keywordflow">if</span>(fatherId&gt;=0)
+00275 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_0">decForcedBoneUsageAndParents</a>(fatherId, forceCLod);
+00276 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelb4" doxytag="NL3D::CSkeletonModel::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"> void NL3D::CSkeletonModel::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> [protected, virtual]</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 from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_1">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l01862">1862</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00123">~CSkeletonModel()</a>.
+<p>
+<div class="fragment"><pre>01863 {
+01864 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>)
+01865 {
+01866 <span class="keyword">delete</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>;
+01867 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>= NULL;
+01868 }
+01869 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz920_1" doxytag="NL3D::CSkeletonModel::detachSkeletonSon" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::detachSkeletonSon </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>mi</em> </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>
+unparent a <a class="el" href="a02316.html">CTransform</a> from a bone of the skeleton, or unbind a skin. No-op if not a son of this skeleton NB: mi is made son of Root in Traversals Hrc, and change are made at render() for ClipTrav. NB: For Skins, all Hrc/Clip/UpdateList link is done here
+<p>
+Definition at line <a class="el" href="a06393.html#l00573">573</a> of file <a class="el" href="a06393.html">skeleton_model.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#l00746">NL3D::CTransform::_ForceCLodSticked</a>, <a class="el" href="a06394.html#l00373">_Skins</a>, <a class="el" href="a06394.html#l00375">_StickedObjects</a>, <a class="el" href="a06568.html#l01217">NL3D::CTransform::clipAddChild()</a>, <a class="el" href="a06393.html#l00266">decForcedBoneUsageAndParents()</a>, <a class="el" href="a06394.html#l00476">dirtLodVertexAlpha()</a>, <a class="el" href="a06394.html#l00151">dirtSkinRenderLists()</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#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a06568.html#l00612">NL3D::CTransform::linkToUpdateList()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06568.html#l00584">NL3D::CTransform::setApplySkin()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">bindSkin()</a>, <a class="el" href="a06397.html#l00142">NL3D::CSkeletonUser::detachSkeletonSon()</a>, <a class="el" href="a06393.html#l00543">stickObjectEx()</a>, <a class="el" href="a06001.html#l00056">NL3D::CMeshInstance::~CMeshInstance()</a>, <a class="el" href="a06007.html#l00044">NL3D::CMeshMRMInstance::~CMeshMRMInstance()</a>, <a class="el" href="a06013.html#l00045">NL3D::CMeshMRMSkinnedInstance::~CMeshMRMSkinnedInstance()</a>, <a class="el" href="a06148.html#l00232">NL3D::CParticleSystemModel::~CParticleSystemModel()</a>, <a class="el" href="a06358.html#l00082">NL3D::CSegRemanence::~CSegRemanence()</a>, <a class="el" href="a06393.html#l00123">~CSkeletonModel()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>.
+<p>
+<div class="fragment"><pre>00574 {
+00575 <a class="code" href="a04199.html#a6">nlassert</a>(tr);
+00576
+00577 <span class="comment">// If the instance is not binded/sticked to the skeleton, exit.</span>
+00578 <span class="keywordflow">if</span>(tr-&gt;_FatherSkeletonModel!=<span class="keyword">this</span>)
+00579 <span class="keywordflow">return</span>;
+00580
+00581 <span class="comment">// try to erase from StickObject.</span>
+00582 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.erase(tr);
+00583 <span class="comment">// try to erase from Skins.</span>
+00584 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.erase(tr);
+00585
+00586 <span class="comment">// If the instance is not skinned, then it is sticked</span>
+00587 <span class="keywordtype">bool</span> wasSkinned= tr-&gt;isSkinned()!=0;
+00588 <span class="keywordflow">if</span>( !wasSkinned )
+00589 {
+00590 <span class="comment">// Then decrement Bone Usage RefCount. Decrement from CLodForcedUsage if was sticked with forceCLod==true</span>
+00591 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_0">decForcedBoneUsageAndParents</a>(tr-&gt;_FatherBoneId, tr-&gt;_ForceCLodSticked);
+00592 }
+00593 <span class="keywordflow">else</span>
+00594 {
+00595 <span class="comment">// it is skinned, advert the skinning is no more OK.</span>
+00596 <span class="comment">// setApplySkin() use _FatherSkeletonModel to update current skeleton bone usage.</span>
+00597 tr-&gt;setApplySkin(<span class="keyword">false</span>);
+00598 }
+00599
+00600 <span class="comment">// advert transform it is no more sticked/skinned.</span>
+00601 tr-&gt;_FatherSkeletonModel= NULL;
+00602 tr-&gt;_ForceCLodSticked= <span class="keyword">false</span>;
+00603
+00604 <span class="comment">// link correctly Hrc / Clip / UpdateList...</span>
+00605 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRoot()-&gt;hrcLinkSon( tr );
+00606 <span class="keywordflow">if</span>( !wasSkinned )
+00607 {
+00608 <span class="comment">// No-op. ClipTrav graph/UpdateList updated in Hrc traversal.</span>
+00609 }
+00610 <span class="keywordflow">else</span>
+00611 {
+00612 <span class="comment">// Skin case: must do the Job here.</span>
+00613 <span class="comment">// Update ClipTrav here.</span>
+00614 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRoot()-&gt;clipAddChild(tr);
+00615 <span class="comment">// Must re-add to the update list.</span>
+00616 tr-&gt;linkToUpdateList();
+00617 }
+00618
+00619
+00620 <span class="comment">// must recompute lod vertex alpha when LodCharacter used</span>
+00621 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_1">dirtLodVertexAlpha</a>();
+00622 <span class="comment">// must recompute list of skins if was skinned</span>
+00623 <span class="keywordflow">if</span>( wasSkinned )
+00624 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz920_2">dirtSkinRenderLists</a>();
+00625 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz938_1" doxytag="NL3D::CSkeletonModel::dirtLodVertexAlpha" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::dirtLodVertexAlpha </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, private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+recompute _CLodVertexAlpha, ignoring _CLodVertexAlphaDirty
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00476">476</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00474">_CLodVertexAlphaDirty</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">bindSkin()</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, and <a class="el" href="a06393.html#l00543">stickObjectEx()</a>.
+<p>
+<div class="fragment"><pre>00476 {<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_4">_CLodVertexAlphaDirty</a>= <span class="keyword">true</span>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz920_2" doxytag="NL3D::CSkeletonModel::dirtSkinRenderLists" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::dirtSkinRenderLists </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Force the skeletonModel to recompute at next render which skins to render, at wich pass. If you call <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela41">setOpacity()</a>/setTransparency() on one of the skins binded to the skeleton, you should call this method, else strange result may occurs. NB: this is automatically called by <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_0">bindSkin()</a>/detachSkeletonSon()
+<p>
+Definition at line <a class="el" href="a06394.html#l00151">151</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00378">_SkinToRenderDirty</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">bindSkin()</a>, <a class="el" href="a06393.html#l00573">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="a06393.html#l01610">resetDefaultMRMDistanceSetup()</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>, and <a class="el" href="a06568.html#l00271">NL3D::CTransform::show()</a>.
+<p>
+<div class="fragment"><pre>00151 {<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr7">_SkinToRenderDirty</a>= <span class="keyword">true</span>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_3" doxytag="NL3D::CSkeletonModel::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="a03399.html#NL3D_1_1CSkeletonModelb2">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="a03399.html#NL3D_1_1CSkeletonModelz934_2">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="a03399.html#NL3D_1_1CSkeletonModelb4">deleteShadowMap</a>();
+01355 }
+01356 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_4" doxytag="NL3D::CSkeletonModel::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_1CSkeletonModelz922_2" doxytag="NL3D::CSkeletonModel::flagBoneAndParents" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::flagBoneAndParents </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>boneId</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::vector&lt; bool &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>boneUsage</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This method update boneUsage (must be of size of Bones). It's flag boneUsage[boneId] to true, and all parents of boneId.
+<p>
+Definition at line <a class="el" href="a06393.html#l00237">237</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">Bones</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#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06011.html#l01062">NL3D::CMeshMRMSkinnedGeom::computeBonesId()</a>, <a class="el" href="a06005.html#l02293">NL3D::CMeshMRMGeom::computeBonesId()</a>, and <a class="el" href="a05989.html#l01456">NL3D::CMeshGeom::computeBonesId()</a>.
+<p>
+<div class="fragment"><pre>00238 {
+00239 <a class="code" href="a04199.html#a6">nlassert</a>( boneUsage.size()==<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size() );
+00240 <a class="code" href="a04199.html#a6">nlassert</a>( boneId&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size() );
+00241
+00242 <span class="comment">// Flag this bone.</span>
+00243 boneUsage[boneId]= <span class="keyword">true</span>;
+00244
+00245 <span class="comment">// if has father, flag it (recurs).</span>
+00246 <a class="code" href="a04558.html#a14">sint</a> fatherId= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[boneId].getFatherId();
+00247 <span class="keywordflow">if</span>(fatherId&gt;=0)
+00248 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_2">flagBoneAndParents</a>(fatherId, boneUsage);
+00249 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelb2" doxytag="NL3D::CSkeletonModel::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">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_1CSkeletonModelz924_3" doxytag="NL3D::CSkeletonModel::forceComputeBone" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::forceComputeBone </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>boneId</em> </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>
+Force to compute a bone right now (useful if the skeleton is not visible and the bone position is needed) no-op is bone not present or already computed <dl compact><dt><b>Returns:</b></dt><dd>true if good indes &amp; bone recomputed</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00391">391</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00427">_BoneUsage</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="a06394.html#l00098">Bones</a>, <a class="el" href="a05491.html#l00155">NL3D::CBone::compute()</a>, <a class="el" href="a05492.html#l00112">NL3D::CBone::getFatherId()</a>, <a class="el" href="a05492.html#l00147">NL3D::CBone::getWorldMatrix()</a>, <a class="el" href="a06569.html#l00421">NL3D::CTransform::isSkeleton()</a>, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelw0NL3D_1_1CSkeletonModelw3">MaxNumBones</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a06393.html#l00387">NL3D::CForceComputeBoneInfo::StickBoneID</a>, <a class="el" href="a06393.html#l00386">NL3D::CForceComputeBoneInfo::Transform</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, and <a class="el" href="a06397.html#l00187">NL3D::CSkeletonUser::forceComputeBone()</a>.
+<p>
+<div class="fragment"><pre>00392 {
+00393 <span class="keywordflow">if</span>(boneId &gt;= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>.size()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00394 <span class="comment">// build list of ancestor, then must build</span>
+00395 std::vector&lt;CForceComputeBoneInfo&gt; ancestors;
+00396 <span class="comment">// count the number of ancestors (to avoid unwanted alloc with vector)</span>
+00397 <a class="code" href="a04558.html#a15">uint</a> numAncestors = 1;
+00398 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *currTransform = <span class="keyword">this</span>;
+00399 <span class="keywordflow">for</span>(;;)
+00400 {
+00401 currTransform = currTransform-&gt;_HrcParent ? currTransform-&gt;_HrcParent : currTransform-&gt;_FatherSkeletonModel; <span class="comment">// find father transform (maybe a skeleton or a std transform)</span>
+00402 <span class="keywordflow">if</span> (!currTransform) <span class="keywordflow">break</span>; <span class="comment">// root reached ?</span>
+00403 ++ numAncestors;
+00404 }
+00405 ancestors.reserve(numAncestors);
+00406 <span class="comment">// build list of ancestor</span>
+00407 currTransform = <span class="keyword">this</span>;
+00408 <a class="code" href="a04558.html#a15">uint</a> currStickBone = boneId;
+00409 <span class="keywordflow">for</span>(;;)
+00410 {
+00411 <span class="comment">// if curr transform is a skeleton, animate all bone from stick bone to the root bone</span>
+00412 <span class="keywordflow">if</span> (currTransform-&gt;isSkeleton())
+00413 {
+00414 <span class="keywordflow">if</span> (_ChannelMixer)
+00415 {
+00416 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelb3">CSkeletonModel</a> *skel = static_cast&lt;CSkeletonModel *&gt;(currTransform);
+00417 <a class="code" href="a04199.html#a6">nlassert</a>(boneId &lt; skel-&gt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>.size());
+00418 <a class="code" href="a04199.html#a6">nlassert</a>(currStickBone &lt; skel-&gt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size());
+00419 <a class="code" href="a04558.html#a14">sint</a> currBoneIndex = currStickBone;
+00420 <span class="comment">// force channel mixer to eval for that bone</span>
+00421 <span class="keywordflow">while</span> (currBoneIndex != -1)
+00422 {
+00423 <a class="code" href="a04199.html#a6">nlassert</a>((<a class="code" href="a04558.html#a15">uint</a>) currBoneIndex &lt; skel-&gt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size());
+00424 skel-&gt;Bones[currBoneIndex].forceAnimate(*_ChannelMixer);
+00425 currBoneIndex = skel-&gt;Bones[currBoneIndex].getFatherId();
+00426 }
+00427 }
+00428 }
+00429 <span class="keywordflow">else</span>
+00430 {
+00431 <span class="comment">// update stickBone ID (if father is a skeleton)</span>
+00432 currStickBone = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_12">_FatherBoneId</a>;
+00433 }
+00434 CForceComputeBoneInfo fcbi;
+00435 fcbi.StickBoneID = currStickBone;
+00436 fcbi.Transform = currTransform;
+00437 ancestors.push_back(fcbi);
+00438 currTransform = currTransform-&gt;_HrcParent ? currTransform-&gt;_HrcParent : currTransform-&gt;_FatherSkeletonModel; <span class="comment">// find father transform (maybe a skeleton or a std transform)</span>
+00439 <span class="keywordflow">if</span> (!currTransform) <span class="keywordflow">break</span>; <span class="comment">// root reached ? </span>
+00440 }
+00441 <span class="comment">// bones must be recomputed from father bone to sons, so must traverse bones until root is reached to retrieve correct ordering</span>
+00442 CBone *OrderedBone[<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelw0NL3D_1_1CSkeletonModelw3">MaxNumBones</a>];
+00443 <span class="comment">//</span>
+00444 <span class="keyword">const</span> CMatrix *parentWorldMatrix = &amp;CMatrix::Identity;
+00445 <span class="keywordflow">for</span>(std::vector&lt;CForceComputeBoneInfo&gt;::reverse_iterator it = ancestors.rbegin(); it != ancestors.rend(); ++it)
+00446 {
+00447 <span class="comment">// update world matrix (NB : the call to getmatrix will update the local matrix)</span>
+00448 it-&gt;Transform-&gt;setWorldMatrix(*parentWorldMatrix * it-&gt;Transform-&gt;getMatrix());
+00449 <span class="keywordflow">if</span> (it-&gt;Transform-&gt;isSkeleton())
+00450 {
+00451 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelb3">CSkeletonModel</a> *skel = static_cast&lt;CSkeletonModel *&gt;(it-&gt;Transform);
+00452 <span class="comment">// reorder bones</span>
+00453 <a class="code" href="a04558.html#a15">uint</a> numBones = 0;
+00454 <a class="code" href="a04199.html#a6">nlassert</a>(it-&gt;StickBoneID &lt; skel-&gt;Bones.size());
+00455 <a class="code" href="a04558.html#a14">sint</a> currBoneIndex = it-&gt;StickBoneID;
+00456 <a class="code" href="a04199.html#a6">nlassert</a>(currBoneIndex != -1);
+00457 <span class="keywordflow">do</span>
+00458 {
+00459 <a class="code" href="a04199.html#a6">nlassert</a>(numBones &lt; MaxNumBones);
+00460 <a class="code" href="a04199.html#a6">nlassert</a>((<a class="code" href="a04558.html#a15">uint</a>) currBoneIndex &lt; skel-&gt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size());
+00461 OrderedBone[numBones] = &amp;skel-&gt;Bones[currBoneIndex];
+00462 currBoneIndex = OrderedBone[numBones]-&gt;getFatherId();
+00463 ++ numBones;
+00464 }
+00465 <span class="keywordflow">while</span> (currBoneIndex != -1);
+00466 <span class="keyword">const</span> CMatrix &amp;modelWorldMatrix = it-&gt;Transform-&gt;getWorldMatrix();
+00467 <span class="comment">// recompute bones</span>
+00468 CBone *fatherBone = NULL;
+00469 <span class="keywordflow">while</span> (numBones--)
+00470 {
+00471 OrderedBone[numBones]-&gt;compute(fatherBone, modelWorldMatrix, NULL);
+00472 fatherBone = OrderedBone[numBones];
+00473 }
+00474 parentWorldMatrix = &amp;(OrderedBone[0]-&gt;getWorldMatrix());
+00475 }
+00476 <span class="keywordflow">else</span>
+00477 {
+00478 parentWorldMatrix = &amp;it-&gt;Transform-&gt;getWorldMatrix();
+00479 }
+00480 }
+00481 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00482 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela3" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz934_1" doxytag="NL3D::CSkeletonModel::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"> void NL3D::CSkeletonModel::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> [virtual]</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 from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_5">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l01781">1781</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06370.html#l00135">NL3D::CShadowMap::buildCasterCameraMatrix()</a>, <a class="el" href="a06370.html#l00167">NL3D::CShadowMap::buildProjectionInfos()</a>, <a class="el" href="a06393.html#l01987">computeWorldBBoxForShadow()</a>, <a class="el" href="a06330.html#l00135">NL3D::CRenderTrav::getAuxDriver()</a>, <a class="el" href="a06373.html#l00099">NL3D::CShadowMapManager::getCasterShadowMaterial()</a>, <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a05385.html#l00091">NLMISC::CAABBox::getHalfSize()</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="a06575.html#l00231">NL3D::ITransformable::getPos()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06330.html#l00185">NL3D::CRenderTrav::getShadowMapManager()</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="a06682.html#l00119">NLMISC::CVector::normalize()</a>, <a class="el" href="a06393.html#l02062">renderIntoSkeletonShadowMap()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera60">NL3D::IDriver::setFrustum()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera72">NL3D::IDriver::setupViewMatrix()</a>, <a class="el" href="a06393.html#l01872">updateShadowMap()</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>01782 {
+01783 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_Skeleton_GenerateShadow );
+01784
+01785 <span class="comment">// get the driver for Texture Render</span>
+01786 CScene *scene= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>();
+01787 CRenderTrav &amp;renderTrav= scene-&gt;getRenderTrav();
+01788 IDriver *driver= renderTrav.getAuxDriver();
+01789
+01790 <span class="keywordflow">if</span>(!<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>)
+01791 <span class="keywordflow">return</span>;
+01792
+01793 <span class="comment">// update ShadowMap data if needed.</span>
+01794 <span class="comment">// ****</span>
+01795 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModeld2">updateShadowMap</a>(driver);
+01796
+01797 <span class="comment">// compute the ProjectionMatrix.</span>
+01798 <span class="comment">// ****</span>
+01799
+01800 <span class="comment">// Compute the BBox in World, with bounding Box of Bones, and with BoundingBox of sticked Objects</span>
+01801 <a class="code" href="a02156.html">CAABBox</a> bbWorld;
+01802 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz934_0">computeWorldBBoxForShadow</a>(bbWorld);
+01803
+01804
+01805 <span class="comment">// Here the bbox is defined in world, hence must remove the World Pos.</span>
+01806 CMatrix localPosMatrix;
+01807 localPosMatrix.setPos(-<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().<a class="code" href="a02278.html#NL3D_1_1ITransformablez1083_2">getPos</a>());
+01808
+01809 <span class="comment">// setup cameraMatrix with BBox and Enlarge For 1 pixel</span>
+01810 CMatrix cameraMatrix;
+01811 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>-&gt;buildCasterCameraMatrix(lightDir, localPosMatrix, bbWorld, cameraMatrix);
+01812
+01813
+01814 <span class="comment">// Render.</span>
+01815 <span class="comment">// ****</span>
+01816 <span class="comment">// setup the orhtogonal frustum and viewMatrix to include all the object.</span>
+01817 driver-&gt;setFrustum(0,1,0,1,0,1,<span class="keyword">false</span>);
+01818 driver-&gt;setupViewMatrix(cameraMatrix.inverted());
+01819
+01820 <span class="comment">// render the Skinned meshs, and also the Sticked Objects/Skeletons</span>
+01821 CMaterial &amp;castMat= renderTrav.getShadowMapManager().getCasterShadowMaterial();
+01822 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz934_3">renderIntoSkeletonShadowMap</a>(<span class="keyword">this</span>, castMat);
+01823
+01824 <span class="comment">// Infos.</span>
+01825 <span class="comment">// ****</span>
+01826
+01827 <span class="comment">// Compute the BackPoint: the first point to be shadowed. </span>
+01828 CVector backPoint= bbWorld.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_0">getCenter</a>();
+01829 <span class="comment">// get the 3/4 bottom of the shape</span>
+01830 backPoint.z-= bbWorld.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_1">getHalfSize</a>().z/2;
+01831 <span class="comment">// Use the 3/4 bottom of the BBox minus the light direction in XY.</span>
+01832 CVector ldir= lightDir;
+01833 ldir.z= 0;
+01834 ldir.normalize();
+01835 <span class="comment">// NB: This way seems to works quite well, even if the worldBBox is changing every frame.</span>
+01836 <span class="keywordtype">float</span> lenXY= (CVector(bbWorld.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_1">getHalfSize</a>().x, bbWorld.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_1">getHalfSize</a>().y, 0)).norm();
+01837 backPoint-= ldir*lenXY;
+01838 <span class="comment">// localPos.</span>
+01839 backPoint-= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().getPos();
+01840
+01841 <span class="comment">// Compute LocalProjectionMatrix and other infos from cameraMatrix and backPoint?</span>
+01842 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>-&gt;buildProjectionInfos(cameraMatrix, backPoint, scene);
+01843 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela5" doxytag="NL3D::CSkeletonModel::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_1CSkeletonModelz924_4" doxytag="NL3D::CSkeletonModel::getActiveBoneSkinMatrix" ></a><p>
+<table class="mdTable" 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">NLMISC::CMatrix</a> &amp; NL3D::CSkeletonModel::getActiveBoneSkinMatrix </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>boneId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+if Bones[boneId] is "Computed" (usage/lod), return Bones[boneId].getBoneSkinMatrix() else return parent ones (recurs, but precomputed)
+<p>
+Definition at line <a class="el" href="a06393.html#l00487">487</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00427">_BoneUsage</a>, <a class="el" href="a06394.html#l00098">Bones</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06009.html#l00179">NL3D::computeBoneMatrixes3x4()</a>, and <a class="el" href="a05989.html#l01914">NL3D::CMeshGeom::computeSkinMatrixes()</a>.
+<p>
+<div class="fragment"><pre>00488 {
+00489 <span class="comment">// Get me or first father with MustCompute==true.</span>
+00490 <a class="code" href="a04558.html#a15">uint</a> validBoneId= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[boneId].ValidBoneSkinMatrix;
+00491 <span class="comment">// return his WorldMatrix.</span>
+00492 <span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[validBoneId].getBoneSkinMatrix();
+00493 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela6" doxytag="NL3D::CSkeletonModel::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_1CSkeletonModelz932_0" doxytag="NL3D::CSkeletonModel::getBoneAnimCtrl" ></a><p>
+<table class="mdTable" 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="a03836.html">IAnimCtrl</a> * NL3D::CSkeletonModel::getBoneAnimCtrl </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>boneId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</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="a06393.html#l01764">1764</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">Bones</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00313">NL3D::CSkeletonUser::getBoneAnimCtrl()</a>.
+<p>
+<div class="fragment"><pre>01765 {
+01766 <span class="keywordflow">if</span>(boneId&gt;=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size())
+01767 <span class="keywordflow">return</span> NULL;
+01768
+01769 <span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[boneId]._AnimCtrl;
+01770 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz924_5" doxytag="NL3D::CSkeletonModel::getBoneIdByName" ></a><p>
+<table class="mdTable" 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#a10">sint32</a> NL3D::CSkeletonModel::getBoneIdByName </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>name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return, from skeleton shape, the BoneIdByName. -1 if not here.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00629">629</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06395.html#l00061">NL3D::CSkeletonShape::getBoneIdByName()</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+Referenced by <a class="el" href="a06011.html#l01062">NL3D::CMeshMRMSkinnedGeom::computeBonesId()</a>, <a class="el" href="a06005.html#l02293">NL3D::CMeshMRMGeom::computeBonesId()</a>, <a class="el" href="a05989.html#l01456">NL3D::CMeshGeom::computeBonesId()</a>, and <a class="el" href="a06397.html#l00171">NL3D::CSkeletonUser::getBoneIdByName()</a>.
+<p>
+<div class="fragment"><pre>00630 {
+00631 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModeln1">CSkeletonShape</a> *shp= safe_cast&lt;CSkeletonShape*&gt;((IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+00632 <span class="keywordflow">return</span> shp-&gt;getBoneIdByName(name);
+00633 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelb3" doxytag="NL3D::CSkeletonModel::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">computeCurrentBBox()</a>, <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, and <a class="el" href="a06393.html#l00280">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::CSkeletonModel::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::CSkeletonModel::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_1CVegetableBlendLayerModelz1023_0" doxytag="NL3D::CSkeletonModel::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::CTransform::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, inherited]</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>
+Implements <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_1">NL3D::ITransformable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_1">NL3D::CCamera</a>, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez441_0">NL3D::CMeshBaseInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_2">NL3D::CParticleSystemModel</a>, <a class="el" href="a03357.html#NL3D_1_1CSegRemanencea9">NL3D::CSegRemanence</a>, <a class="el" href="a03721.html#NL3D_1_1CWaterModela10">NL3D::CWaterModel</a>, and <a class="el" href="a03725.html#NL3D_1_1CWaveMakerModela9">NL3D::CWaveMakerModel</a>.
+<p>
+Definition at line <a class="el" href="a06568.html#l00311">311</a> of file <a class="el" href="a06568.html">transform.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00416">nlstop</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00312 {
+00313 <span class="comment">// Cyril: prefer do it here in CTransform, because of CCamera, CLight etc... (which may not need a default value too!!)</span>
+00314
+00315 <span class="comment">// what value ?</span>
+00316 <span class="keywordflow">switch</span> (valueId)
+00317 {
+00318 <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;DefaultPos;
+00319 <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;DefaultRotEuler;
+00320 <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;DefaultRotQuat;
+00321 <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;DefaultScale;
+00322 <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;DefaultPivot;
+00323 }
+00324
+00325 <span class="comment">// No, only ITrnasformable values!</span>
+00326 <a class="code" href="a04199.html#a12">nlstop</a>;
+00327 <span class="comment">// Deriver note: else call BaseClass::getDefaultTrack(valueId);</span>
+00328
+00329 <span class="keywordflow">return</span> NULL;
+00330
+00331 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela10" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz924_6" doxytag="NL3D::CSkeletonModel::getInterpolationDistance" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::getInterpolationDistance </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</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz924_9">setInterpolationDistance()</a>
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00648">648</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00437">_LodInterpMultiplier</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00060">NL3D::CSkeletonUser::getInterpolationDistance()</a>.
+<p>
+<div class="fragment"><pre>00649 {
+00650 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a>==0)
+00651 <span class="keywordflow">return</span> 0.f;
+00652 <span class="keywordflow">else</span>
+00653 <span class="keywordflow">return</span> 1.f / <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a>;
+00654 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_1" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModela11" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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]</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="a02537.html#NL3D_1_1CWaveMakerModela13">NL3D::CTransformShape</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l01722">1722</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">Bones</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, and <a class="el" href="a06393.html#l00374">isBoneComputed()</a>.
+<p>
+<div class="fragment"><pre>01723 {
+01724 <span class="comment">// If the bone 0 is computed (pelvis), then return its worldMatrix</span>
+01725 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz924_8">isBoneComputed</a>(0))
+01726 {
+01727 modelPos= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[0].getWorldMatrix().getPos();
+01728 }
+01729 <span class="keywordflow">else</span>
+01730 {
+01731 <span class="comment">/* Else return the skeleton pos. NB: this seems unusefull since bone 0 not computed means no Skins.</span>
+01732 <span class="comment"> But lighting computation is still done and may use a VisualCollisionEntity.</span>
+01733 <span class="comment"> This system cache some infos according to position. This is why we must return a position </span>
+01734 <span class="comment"> near the skeleton (else cache crash each frame =&gt; slowdown...)</span>
+01735 <span class="comment"> */</span>
+01736 modelPos= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>.getPos();
+01737 }
+01738
+01739 <span class="comment">// Consider Skeletons as not big lightable</span>
+01740 modelRadius= 0;
+01741 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1025_0" doxytag="NL3D::CSkeletonModel::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_1CSkeletonModelz926_2" doxytag="NL3D::CSkeletonModel::getLodCharacterAnimId" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::getLodCharacterAnimId </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called in ClipTrav pass. Used to update the flag _DisplayedAsLodCharacter. return 0 if CLod not enabled. Else return a priority&gt;0 computed from curDistance/LodCharacterDistance return 0 too if the skeleton is not visible or if his ancestorSkeletonModel is not visible. If priority is &gt;1 then the skeleton must be displayed in CLod form
+<p>
+Definition at line <a class="el" href="a06394.html#l00247">247</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a05934.html#l00059">NL3D::CLodCharacterInstance::AnimId</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00214">NL3D::CSkeletonUser::getLodCharacterAnimId()</a>.
+<p>
+<div class="fragment"><pre>00247 {<span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.AnimId;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_3" doxytag="NL3D::CSkeletonModel::getLodCharacterAnimTime" ></a><p>
+<table class="mdTable" 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="a05363.html#a367">TGlobalAnimationTime</a> NL3D::CSkeletonModel::getLodCharacterAnimTime </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called in ClipTrav pass. Used to update the flag _DisplayedAsLodCharacter. return 0 if CLod not enabled. Else return a priority&gt;0 computed from curDistance/LodCharacterDistance return 0 too if the skeleton is not visible or if his ancestorSkeletonModel is not visible. If priority is &gt;1 then the skeleton must be displayed in CLod form
+<p>
+Definition at line <a class="el" href="a06394.html#l00249">249</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a05934.html#l00061">NL3D::CLodCharacterInstance::AnimTime</a>, and <a class="el" href="a05454.html#l00045">NL3D::TGlobalAnimationTime</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00226">NL3D::CSkeletonUser::getLodCharacterAnimTime()</a>.
+<p>
+<div class="fragment"><pre>00249 {<span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.AnimTime;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_4" doxytag="NL3D::CSkeletonModel::getLodCharacterDistance" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::getLodCharacterDistance </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see setLodCharacterDistance. 0 if disabled
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00267">267</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00466">_LodCharacterDistance</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00244">NL3D::CSkeletonUser::getLodCharacterDistance()</a>.
+<p>
+<div class="fragment"><pre>00267 {<span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">_LodCharacterDistance</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_5" doxytag="NL3D::CSkeletonModel::getLodCharacterShape" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::getLodCharacterShape </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see setLodCharacterShape
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00243">243</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a05934.html#l00057">NL3D::CLodCharacterInstance::ShapeId</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00202">NL3D::CSkeletonUser::getLodCharacterShape()</a>.
+<p>
+<div class="fragment"><pre>00243 {<span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_6" doxytag="NL3D::CSkeletonModel::getLodCharacterWrapMode" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::getLodCharacterWrapMode </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called in ClipTrav pass. Used to update the flag _DisplayedAsLodCharacter. return 0 if CLod not enabled. Else return a priority&gt;0 computed from curDistance/LodCharacterDistance return 0 too if the skeleton is not visible or if his ancestorSkeletonModel is not visible. If priority is &gt;1 then the skeleton must be displayed in CLod form
+<p>
+Definition at line <a class="el" href="a06394.html#l00253">253</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, and <a class="el" href="a05934.html#l00063">NL3D::CLodCharacterInstance::WrapMode</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00256">NL3D::CSkeletonUser::getLodCharacterWrapMode()</a>.
+<p>
+<div class="fragment"><pre>00253 {<span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.WrapMode;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela14" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">NL3D::CWaterModel::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::CSkeletonModel::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">NL3D::CWaterModel::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::CSkeletonModel::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::CSkeletonModel::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">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_1CSkeletonModelz924_7" doxytag="NL3D::CSkeletonModel::getNumBoneComputed" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::getNumBoneComputed </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the number of bones currently animated/computed (because of <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_0">bindSkin()</a>/stickObject() / Lod system).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00191">191</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00429">_BoneToCompute</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00191 {<span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a>.size();}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela18" doxytag="NL3D::CSkeletonModel::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_1CSkeletonModelz928_1" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Special version for skins.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1053_1">NL3D::CTransformShape</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l01578">1578</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06060.html#l00082">NL3D::CMRMLevelDetail::getNumTriangles()</a>, and <a class="el" href="a06394.html#l00259">isDisplayedAsLodCharacter()</a>.
+<p>
+<div class="fragment"><pre>01579 {
+01580 <span class="comment">// If the skeleton is displayed as a CLod suppose 0 triangles.</span>
+01581 <span class="keywordflow">if</span>( <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz926_7">isDisplayedAsLodCharacter</a>() )
+01582 <span class="keywordflow">return</span> 0;
+01583 <span class="keywordflow">else</span>
+01584 <span class="comment">// NB: this is an approximation, but this is continious.</span>
+01585 <span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.getNumTriangles(distance);
+01586 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1053_2" doxytag="NL3D::CSkeletonModel::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">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::CSkeletonModel::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::CSkeletonModel::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">NL3D::CWaterModel::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">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06393.html#l00972">computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l00866">computeLodTexture()</a>, <a class="el" href="a06737.html#l01026">NL3D::CWaterModel::computeSimpleClippedPoly()</a>, <a class="el" href="a06393.html#l01852">createShadowMap()</a>, <a class="el" href="a06001.html#l00254">NL3D::CMeshInstance::createShadowMap()</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06393.html#l01781">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">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">renderCLod()</a>, <a class="el" href="a06016.html#l00496">NL3D::CMeshMultiLod::renderCoarseMesh()</a>, <a class="el" href="a06393.html#l02062">renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06393.html#l01885">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">renderSkinList()</a>, <a class="el" href="a06393.html#l01390">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">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">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">NL3D::CWaterModel::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">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">~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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">generateShadowMap()</a>, <a class="el" href="a06737.html#l00117">NL3D::CWaterModel::getHeight()</a>, <a class="el" href="a06393.html#l02062">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(CVector::Null);
+01331 bbox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">setHalfSize</a>(CVector::Null);
+01332 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_7" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz934_2" doxytag="NL3D::CSkeletonModel::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"> <a class="el" href="a03370.html">CShadowMap</a> * NL3D::CSkeletonModel::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> [virtual]</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 from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_8">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l01846">1846</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>.
+<p>
+<div class="fragment"><pre>01847 {
+01848 <span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>;
+01849 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelb4" doxytag="NL3D::CSkeletonModel::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_1CSkeletonModelz938_2" doxytag="NL3D::CSkeletonModel::getSkeletonLightContribution" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::getSkeletonLightContribution </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, private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+recompute _CLodVertexAlpha, ignoring _CLodVertexAlphaDirty
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00458">458</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01295">renderCLod()</a>.
+<p>
+<div class="fragment"><pre>00458 {<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_1CWaveMakerModela22" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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">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::CSkeletonModel::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">computeCLodVertexAlpha()</a>, and <a class="el" href="a06393.html#l01117">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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_1CWaveMakerModela25" doxytag="NL3D::CSkeletonModel::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">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06393.html#l00972">computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06372.html#l00595">NL3D::CShadowMapManager::computeShadowDirection()</a>, <a class="el" href="a06737.html#l01026">NL3D::CWaterModel::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">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06393.html#l01781">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">renderCLod()</a>, <a class="el" href="a06393.html#l02062">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">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">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">NL3D::CWaterModel::traverseRender()</a>, <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>, and <a class="el" href="a06737.html#l01339">NL3D::CWaterModel::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::CSkeletonModel::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">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::CSkeletonModel::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">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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">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::CSkeletonModel::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">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_1CSkeletonModelz922_3" doxytag="NL3D::CSkeletonModel::incBoneUsage" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::incBoneUsage </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>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0">TBoneUsageType</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>boneUsageType</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+increment the refCount of the ith bone. set boneUsageType to UsageNormal if enable Skeleton Bone degradation (skins) Forced usage are for Sticked objects
+<p>
+Definition at line <a class="el" href="a06393.html#l00189">189</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00431">_BoneToComputeDirty</a>, <a class="el" href="a06394.html#l00427">_BoneUsage</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw15">UsageForced</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw16">UsageNormal</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00253">incForcedBoneUsageAndParents()</a>, <a class="el" href="a06011.html#l01254">NL3D::CMeshMRMSkinnedGeom::updateSkeletonUsage()</a>, <a class="el" href="a06005.html#l02535">NL3D::CMeshMRMGeom::updateSkeletonUsage()</a>, and <a class="el" href="a05989.html#l01596">NL3D::CMeshGeom::updateSkeletonUsage()</a>.
+<p>
+<div class="fragment"><pre>00190 {
+00191 <a class="code" href="a04199.html#a6">nlassert</a>(i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>.size());
+00192
+00193 <span class="comment">// Get ptr on according refCount</span>
+00194 <a class="code" href="a04558.html#a7">uint8</a> *usagePtr;
+00195 <span class="keywordflow">if</span>(boneUsageType == <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw16">UsageNormal</a>)
+00196 usagePtr= &amp;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].Usage;
+00197 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(boneUsageType == <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_0NL3D_1_1CSkeletonModelw15">UsageForced</a>)
+00198 usagePtr= &amp;_BoneUsage[i].ForcedUsage;
+00199 <span class="keywordflow">else</span>
+00200 usagePtr= &amp;_BoneUsage[i].CLodForcedUsage;
+00201
+00202 <span class="comment">// If the bone was not used before, must update MustCompute.</span>
+00203 <span class="keywordflow">if</span>(*usagePtr==0)
+00204 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a>= <span class="keyword">true</span>;
+00205
+00206 <span class="comment">// Inc the refCount of the bone.</span>
+00207 <a class="code" href="a04199.html#a6">nlassert</a>(*usagePtr&lt;255);
+00208 (*usagePtr)++;
+00209 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_1" doxytag="NL3D::CSkeletonModel::incForcedBoneUsageAndParents" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::incForcedBoneUsageAndParents </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>i</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>forceCLod</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+increment the refCount of the ith bone and its parents. for stickObjects.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00253">253</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">Bones</a>, <a class="el" href="a06393.html#l00189">incBoneUsage()</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="a06393.html#l00543">stickObjectEx()</a>.
+<p>
+<div class="fragment"><pre>00254 {
+00255 <span class="comment">// inc forced.</span>
+00256 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz922_3">incBoneUsage</a>(i, forceCLod?UsageCLodForced:UsageForced );
+00257
+00258 <span class="comment">// recurs to father</span>
+00259 <a class="code" href="a04558.html#a14">sint</a> fatherId= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].getFatherId();
+00260 <span class="comment">// if not a root bone...</span>
+00261 <span class="keywordflow">if</span>(fatherId&gt;=0)
+00262 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_1">incForcedBoneUsageAndParents</a>(fatherId, forceCLod);
+00263 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_2" doxytag="NL3D::CSkeletonModel::initBoneUsages" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::initBoneUsages </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> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+called by <a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_1">CSkeletonShape::createInstance()</a>. init the vector.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00165">165</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00429">_BoneToCompute</a>, <a class="el" href="a06394.html#l00431">_BoneToComputeDirty</a>, <a class="el" href="a06394.html#l00427">_BoneUsage</a>, <a class="el" href="a06394.html#l00433">_CurLod</a>, <a class="el" href="a06394.html#l00435">_CurLodInterp</a>, <a class="el" href="a06394.html#l00437">_LodInterpMultiplier</a>, <a class="el" href="a06394.html#l00098">Bones</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06395.html#l00154">NL3D::CSkeletonShape::createInstance()</a>.
+<p>
+<div class="fragment"><pre>00166 {
+00167 <span class="comment">// reset all to 0.</span>
+00168 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>.resize(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size());
+00169 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>.size(); i++)
+00170 {
+00171 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].Usage= 0;
+00172 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].ForcedUsage= 0;
+00173 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].CLodForcedUsage= 0;
+00174 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].MustCompute= 0;
+00175 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].ValidBoneSkinMatrix= 0;
+00176 }
+00177 <span class="comment">// reserve space for bone to compute</span>
+00178 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a>.reserve(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size());
+00179
+00180 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a>= <span class="keyword">false</span>;
+00181 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_7">_CurLod</a>= 0;
+00182 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_8">_CurLodInterp</a>= 1.f;
+00183 <span class="comment">// Default is 0.5 meters.</span>
+00184 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a>= 1.f / 0.5f;
+00185 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelb8" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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> [protected, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Build link to traversals.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_0">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l00154">154</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00367">_ItSkeletonInScene</a>, <a class="el" href="a06348.html#l00961">NL3D::CScene::appendSkeletonModelToList()</a>, and <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>.
+<p>
+<div class="fragment"><pre>00155 {
+00156 <span class="comment">// Link this skeleton to the CScene.</span>
+00157 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr2">_ItSkeletonInScene</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;appendSkeletonModelToList(<span class="keyword">this</span>);
+00158
+00159 <span class="comment">// Call base class</span>
+00160 CTransformShape::initModel();
+00161 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_1" doxytag="NL3D::CSkeletonModel::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">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::CSkeletonModel::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_1CSkeletonModelz924_8" doxytag="NL3D::CSkeletonModel::isBoneComputed" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::isBoneComputed </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>boneId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Tell if a bone has been computed in the last frame or not. false if boneId is invalid.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00374">374</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00427">_BoneUsage</a>, <a class="el" href="a06569.html#l00313">NL3D::CTransform::isClipVisible()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01620">computeRenderedBBox()</a>, <a class="el" href="a06393.html#l01722">getLightHotSpotInWorld()</a>, and <a class="el" href="a06397.html#l00178">NL3D::CSkeletonUser::isBoneComputed()</a>.
+<p>
+<div class="fragment"><pre>00375 {
+00376 <span class="keywordflow">if</span>(boneId&gt;=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>.size())
+00377 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00378 <span class="keywordflow">else</span>
+00379 <span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[boneId].MustCompute!=0 &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela28">isClipVisible</a>();
+00380 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela28" doxytag="NL3D::CSkeletonModel::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">computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l01620">computeRenderedBBox()</a>, <a class="el" href="a06573.html#l00204">NL3D::CTransformUser::getLastClippedState()</a>, <a class="el" href="a06393.html#l00374">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::CSkeletonModel::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_1CSkeletonModelz926_7" doxytag="NL3D::CSkeletonModel::isDisplayedAsLodCharacter" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::isDisplayedAsLodCharacter </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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True if the skeleton model and his skins are to be displayed with a <a class="el" href="a02801.html">CLodCharacterShape</a>, instead of the std way This state is modified early during the HRC Traversal. Because Clip traversal need this result.
+<p>
+Definition at line <a class="el" href="a06394.html#l00259">259</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+References <a class="el" href="a06394.html#l00463">_DisplayedAsLodCharacter</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01578">getNumTriangles()</a>, <a class="el" href="a06397.html#l00232">NL3D::CSkeletonUser::isDisplayedAsLodCharacter()</a>, <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, <a class="el" href="a06393.html#l01030">traverseRender()</a>, and <a class="el" href="a06393.html#l00280">updateBoneToCompute()</a>.
+<p>
+<div class="fragment"><pre>00259 {<span class="keywordflow">return</span> <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_5">_DisplayedAsLodCharacter</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_9" doxytag="NL3D::CSkeletonModel::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">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::CSkeletonModel::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">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">renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, and <a class="el" href="a06393.html#l00658">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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::CSkeletonModel::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">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::CSkeletonModel::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">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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::CSkeletonModel::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 CMatrix rollMT;
+00175 rollMT.identity();
+00176 <span class="keywordflow">if</span> (roll!=0.f)
+00177 rollMT.rotateY (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 CMatrix targetMT;
+00191 targetMT.identity();
+00192 targetMT.setRot (i, j, k);
+00193 targetMT.setPos (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.getPos());
+00207 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_7">setRotQuat</a>(targetMT.getRot());
+00208 }
+00209 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_10" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModele5" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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="a06393.html#l00054">54</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00050">NL3D::SkeletonModelId</a>, and <a class="el" href="a06571.html#l00054">NL3D::TransformShapeId</a>.
+<p>
+<div class="fragment"><pre>00055 {
+00056 CScene::registerModel(SkeletonModelId, TransformShapeId, CSkeletonModel::creator);
+00057 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz918_1" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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]</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>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1023_0">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l00061">61</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">Bones</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05931.html#l00111">NL3D::CLodCharacterBuilder::addAnim()</a>.
+<p>
+<div class="fragment"><pre>00062 {
+00063 CTransformShape::registerToChannelMixer(chanMixer, prefix);
+00064
+00065 <span class="comment">// Add any bones.</span>
+00066 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size();i++)
+00067 {
+00068 <span class="comment">// append bonename.</span>
+00069 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].registerToChannelMixer(chanMixer, prefix + Bones[i].getBoneName() + <span class="stringliteral">"."</span>);
+00070 }
+00071
+00072 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz940_0" doxytag="NL3D::CSkeletonModel::renderCLod" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::renderCLod </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> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+render the skeleton as a CLod.<ul>
+<li>update instance Lighting</li><li>render the lod.<ul>
+<li>no op if passTransparent</li></ul>
+</li></ul>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l01295">1295</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a06394.html#l00474">_CLodVertexAlphaDirty</a>, <a class="el" href="a05935.html#l00359">NL3D::CLodCharacterManager::addRenderCharacterKey()</a>, <a class="el" href="a05894.html#l00073">NL3D::CLightContribution::AttFactor</a>, <a class="el" href="a06340.html#l00338">NLMISC::CRGBA::B</a>, <a class="el" href="a05935.html#l00276">NL3D::CLodCharacterManager::beginRender()</a>, <a class="el" href="a06583.html#l00079">NL3D::CTravCameraScene::CamPos</a>, <a class="el" href="a06393.html#l01043">computeCLodVertexAlpha()</a>, <a class="el" href="a05935.html#l00736">NL3D::CLodCharacterManager::endRender()</a>, <a class="el" href="a06340.html#l00336">NLMISC::CRGBA::G</a>, <a class="el" href="a06180.html#l00131">NL3D::CPointLight::getDiffuse()</a>, <a class="el" href="a06330.html#l00133">NL3D::CRenderTrav::getDriver()</a>, <a class="el" href="a06349.html#l00349">NL3D::CScene::getLodCharacterManager()</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="a06180.html#l00116">NL3D::CPointLight::getPosition()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06394.html#l00458">getSkeletonLightContribution()</a>, <a class="el" href="a06348.html#l00871">NL3D::CScene::getSunAmbient()</a>, <a class="el" href="a06348.html#l00875">NL3D::CScene::getSunDiffuse()</a>, <a class="el" href="a06348.html#l00883">NL3D::CScene::getSunDirection()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06330.html#l00145">NL3D::CRenderTrav::isCurrentPassOpaque()</a>, <a class="el" href="a05936.html#l00209">NL3D::CLodCharacterManager::isRendering()</a>, <a class="el" href="a06340.html#l00236">NLMISC::CRGBA::modulateFromuiRGBOnly()</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="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06340.html#l00334">NLMISC::CRGBA::R</a>, <a class="el" href="a05894.html#l00086">NL3D::CLightContribution::SunContribution</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01030">traverseRender()</a>.
+<p>
+<div class="fragment"><pre>01296 {
+01297 CRenderTrav &amp;renderTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav();
+01298 IDriver *drv= renderTrav.getDriver();
+01299 CScene *scene= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>();
+01300
+01301 <span class="comment">// Transparent pass? quit</span>
+01302 <span class="keywordflow">if</span>(!renderTrav.isCurrentPassOpaque())
+01303 <span class="keywordflow">return</span>;
+01304
+01305 <span class="comment">// the lod manager. no op if not here</span>
+01306 CLodCharacterManager *mngr= scene-&gt;getLodCharacterManager();
+01307 <span class="keywordflow">if</span>(!mngr)
+01308 <span class="keywordflow">return</span>;
+01309
+01310 <span class="comment">// Get global lighting on the instance. Suppose SunAmbient only.</span>
+01311 <span class="comment">//=================</span>
+01312 <span class="keyword">const</span> CLightContribution *lightContrib;
+01313
+01314 <span class="comment">// the std case is to take my model lightContribution</span>
+01315 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL)
+01316 lightContrib= &amp;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_2">getSkeletonLightContribution</a>();
+01317 <span class="comment">// but if skinned/sticked (directly or not) to a skeleton, take its.</span>
+01318 <span class="keywordflow">else</span>
+01319 lightContrib= &amp;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>-&gt;getSkeletonLightContribution();
+01320
+01321 <span class="comment">// compute his main light contribution result. Try first with sun</span>
+01322 <a class="code" href="a03337.html">CRGBA</a> mainAmbient= scene-&gt;getSunAmbient();
+01323 <a class="code" href="a03337.html">CRGBA</a> mainDiffuse= scene-&gt;getSunDiffuse();
+01324 <span class="comment">// modulate sun contribution</span>
+01325 mainDiffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_5">modulateFromuiRGBOnly</a>(mainDiffuse, lightContrib-&gt;SunContribution );
+01326 CVector mainLightDir= scene-&gt;getSunDirection();
+01327
+01328
+01329 <span class="comment">/* During night, and in the buildings, it may be better to use one of the other Points lights</span>
+01330 <span class="comment"> Test only with the first pointLight, for faster compute, even if It may fail in some cases.</span>
+01331 <span class="comment"> */</span>
+01332 CPointLight *mainPL= lightContrib-&gt;PointLight[0];
+01333 <span class="keywordflow">if</span>(mainPL)
+01334 {
+01335 <a class="code" href="a03337.html">CRGBA</a> plDiffuse;
+01336 <span class="comment">// get the diffuse of the pointLight, attenuated from distance and importance.</span>
+01337 plDiffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_5">modulateFromuiRGBOnly</a>(mainPL-&gt;getDiffuse(), lightContrib-&gt;AttFactor[0]);
+01338 <span class="comment">// compare the 2 diffuse</span>
+01339 <a class="code" href="a04558.html#a15">uint</a> d0= mainDiffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a> + mainDiffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a> + mainDiffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>;
+01340 <a class="code" href="a04558.html#a15">uint</a> d1= plDiffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a> + plDiffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a> + plDiffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>;
+01341 <span class="comment">// if the pointLight is lighter, take it.</span>
+01342 <span class="keywordflow">if</span>(d1&gt;d0)
+01343 {
+01344 <span class="comment">// leave ambient, but take diffuse and pointLight fake Direction</span>
+01345 mainDiffuse= plDiffuse;
+01346 mainLightDir= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().getPos() - mainPL-&gt;getPosition();
+01347 mainLightDir.normalize();
+01348 }
+01349 }
+01350
+01351
+01352 <span class="comment">// compute colors of the lods.</span>
+01353 <span class="comment">//=================</span>
+01354 <span class="comment">// NB: even if texturing is sufficient, still important for AlphaTest.</span>
+01355
+01356 <span class="comment">// If must recompute alpha because of change of skin added/deleted</span>
+01357 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_4">_CLodVertexAlphaDirty</a>)
+01358 {
+01359 <span class="comment">// recompute vertex alpha</span>
+01360 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_0">computeCLodVertexAlpha</a>(mngr);
+01361 <span class="comment">// set _CLodVertexAlphaDirty to false.</span>
+01362 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_4">_CLodVertexAlphaDirty</a>= <span class="keyword">false</span>;
+01363 }
+01364
+01365 <span class="comment">// render the Lod in the LodManager.</span>
+01366 <span class="comment">//=================</span>
+01367 <span class="comment">// render must have been intialized</span>
+01368 <a class="code" href="a04199.html#a6">nlassert</a>(mngr-&gt;isRendering());
+01369
+01370
+01371 <span class="comment">// add the instance to the manager. </span>
+01372 <span class="keywordflow">if</span>(!mngr-&gt;addRenderCharacterKey(_CLodInstance, <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>(),
+01373 mainAmbient, mainDiffuse, mainLightDir) )
+01374 {
+01375 <span class="comment">// If failed to add it because no more vertex space in the manager, retry.</span>
+01376
+01377 <span class="comment">// close vertexBlock, compile render</span>
+01378 mngr-&gt;endRender();
+01379 <span class="comment">// and restart.</span>
+01380 mngr-&gt;beginRender(drv, renderTrav.CamPos);
+01381
+01382 <span class="comment">// retry. but no-op if refail.</span>
+01383 mngr-&gt;addRenderCharacterKey(_CLodInstance, <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>(),
+01384 mainAmbient, mainDiffuse, mainLightDir);
+01385 }
+01386 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz934_3" doxytag="NL3D::CSkeletonModel::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"> void NL3D::CSkeletonModel::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> [virtual]</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 from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_13">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l02062">2062</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00375">_StickedObjects</a>, <a class="el" href="a06330.html#l00135">NL3D::CRenderTrav::getAuxDriver()</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="a06575.html#l00231">NL3D::ITransformable::getPos()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06569.html#l00306">NL3D::CTransform::isHrcVisible()</a>, <a class="el" href="a06394.html#l00371">ItTransformSet</a>, <a class="el" href="a06569.html#l00527">NL3D::CTransform::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06393.html#l01885">renderShadowSkins()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>, and <a class="el" href="a02434.html#NL3D_1_1IDrivera68">NL3D::IDriver::setupModelMatrix()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01781">generateShadowMap()</a>.
+<p>
+<div class="fragment"><pre>02063 {
+02064 <span class="comment">// If even not visible, no-op</span>
+02065 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela29">isHrcVisible</a>() || !<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>)
+02066 <span class="keywordflow">return</span>;
+02067
+02068 <span class="comment">// render into aux Driver</span>
+02069 IDriver *driver= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav().getAuxDriver();
+02070
+02071 <span class="comment">// **** Render the Skeleton Skins</span>
+02072 <span class="comment">// The model Matrix is special here. It must be the Skeleton World Matrix, minus The Root Skeleton pos.</span>
+02073 CMatrix localPosMatrix;
+02074 localPosMatrix.setRot( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>() );
+02075 <span class="comment">// NB: if this==rootSkeleton, then the final pos will be CVector::Null</span>
+02076 localPosMatrix.setPos( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().<a class="code" href="a02278.html#NL3D_1_1ITransformablez1083_2">getPos</a>() - rootSkeleton-&gt;getWorldMatrix().getPos() );
+02077 driver-&gt;setupModelMatrix(localPosMatrix);
+02078
+02079 <span class="comment">// render the skins.</span>
+02080 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModeld1">renderShadowSkins</a>(castMat);
+02081
+02082 <span class="comment">// **** Render The Sticked Objects.</span>
+02083 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModely0">ItTransformSet</a> it;
+02084 <span class="keywordflow">for</span>(it= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.begin();it!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.end();it++)
+02085 {
+02086 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *stickModel= *it;
+02087 stickModel-&gt;renderIntoSkeletonShadowMap(rootSkeleton, castMat);
+02088 }
+02089 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_3" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModeld1" doxytag="NL3D::CSkeletonModel::renderShadowSkins" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::renderShadowSkins </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="mdname1" valign="top" nowrap> <em>castMat</em> </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="a06393.html#l01885">1885</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00383">_OpaqueSkins</a>, <a class="el" href="a06394.html#l00384">_TransparentSkins</a>, <a class="el" href="a06720.html#l00178">NL3D::CVertexStreamManager::activate()</a>, <a class="el" href="a06330.html#l00135">NL3D::CRenderTrav::getAuxDriver()</a>, <a class="el" href="a06721.html#l00082">NL3D::CVertexStreamManager::getMaxVertices()</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="a06330.html#l00190">NL3D::CRenderTrav::getShadowMeshSkinManager()</a>, <a class="el" href="a06721.html#l00080">NL3D::CVertexStreamManager::getVertexSize()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a06720.html#l00155">NL3D::CVertexStreamManager::lock()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; T, EnableObjectBehavior &gt;::size()</a>, <a class="el" href="a06720.html#l00189">NL3D::CVertexStreamManager::swapVBHard()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a06720.html#l00166">NL3D::CVertexStreamManager::unlock()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l02062">renderIntoSkeletonShadowMap()</a>.
+<p>
+<div class="fragment"><pre>01886 {
+01887 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_Skin_RenderShadow );
+01888
+01889 CRenderTrav &amp;rdrTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav();
+01890 <span class="comment">// Render Shadow in auxiliary driver.</span>
+01891 IDriver *driver= rdrTrav.getAuxDriver();
+01892
+01893 <span class="comment">// if the SkinManager is not possible at all, just rendered the std way</span>
+01894 <span class="keywordflow">if</span>( !rdrTrav.getShadowMeshSkinManager() )
+01895 {
+01896 <span class="comment">// can occurs?????</span>
+01897 <span class="comment">// ABORT!! ... avoid Mesh Shadowing (free shadowMap)? Replace with a dummy Shadow?</span>
+01898 <span class="comment">// For now, no-op... </span>
+01899 }
+01900 <span class="keywordflow">else</span>
+01901 {
+01902 <a class="code" href="a04558.html#a15">uint</a> i;
+01903
+01904 <span class="comment">// get the meshSkinManager</span>
+01905 CVertexStreamManager &amp;meshSkinManager= *rdrTrav.getShadowMeshSkinManager();
+01906
+01907 <span class="comment">// array (rarely allocated) of skins with grouping support</span>
+01908 <span class="keyword">static</span> std::vector&lt;CTransform*&gt; skinsToGroup;
+01909 <span class="keyword">static</span> std::vector&lt;uint&gt; baseVertices;
+01910 skinsToGroup.clear();
+01911 baseVertices.clear();
+01912
+01913 <span class="comment">// get the maxVertices the manager support</span>
+01914 <a class="code" href="a04558.html#a15">uint</a> maxVertices= meshSkinManager.getMaxVertices();
+01915 <a class="code" href="a04558.html#a15">uint</a> vertexSize= meshSkinManager.getVertexSize();
+01916
+01917 <span class="comment">// fill array of skins to group (suppose all support else won't be rendered)</span>
+01918 <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr4">_OpaqueSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1984_3">size</a>();i++)
+01919 {
+01920 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr4">_OpaqueSkins</a>[i]-&gt;supportShadowSkinGrouping())
+01921 skinsToGroup.push_back(_OpaqueSkins[i]);
+01922 }
+01923 <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr9">_TransparentSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1984_3">size</a>();i++)
+01924 {
+01925 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr9">_TransparentSkins</a>[i]-&gt;supportShadowSkinGrouping())
+01926 skinsToGroup.push_back(_TransparentSkins[i]);
+01927 }
+01928
+01929 <span class="comment">// For each skin, have an index which gives the decal of the vertices in the buffer</span>
+01930 baseVertices.resize(skinsToGroup.size());
+01931
+01932 <span class="comment">// while there is skin to render in group</span>
+01933 <a class="code" href="a04558.html#a15">uint</a> skinId= 0;
+01934 <span class="keywordflow">while</span>(skinId&lt;skinsToGroup.size())
+01935 {
+01936 <span class="comment">// space left in the manager</span>
+01937 <a class="code" href="a04558.html#a15">uint</a> remainingVertices= maxVertices;
+01938 <a class="code" href="a04558.html#a15">uint</a> currentBaseVertex= 0;
+01939
+01940 <span class="comment">// First pass, fill The VB.</span>
+01941 <span class="comment">//------------</span>
+01942 <span class="comment">// lock buffer</span>
+01943 <a class="code" href="a04558.html#a7">uint8</a> *vbDest= meshSkinManager.lock();
+01944
+01945 <span class="comment">// For all skins until the buffer is full</span>
+01946 <a class="code" href="a04558.html#a15">uint</a> startSkinId= skinId;
+01947 <span class="keywordflow">while</span>(skinId&lt;skinsToGroup.size())
+01948 {
+01949 <span class="comment">// if success to fill the AGP</span>
+01950 <a class="code" href="a04558.html#a14">sint</a> numVerticesAdded= skinsToGroup[skinId]-&gt;renderShadowSkinGeom(remainingVertices,
+01951 vbDest + vertexSize*currentBaseVertex );
+01952 <span class="comment">// -1 means that this skin can't render because no space left for her. Then stop for this block</span>
+01953 <span class="keywordflow">if</span>(numVerticesAdded==-1)
+01954 <span class="keywordflow">break</span>;
+01955 <span class="comment">// Else ok, get the currentBaseVertex for this skin</span>
+01956 baseVertices[skinId]= currentBaseVertex;
+01957 <span class="comment">// and jump to the next place</span>
+01958 currentBaseVertex+= numVerticesAdded;
+01959 remainingVertices-= numVerticesAdded;
+01960
+01961 <span class="comment">// go to the next skin</span>
+01962 skinId++;
+01963 }
+01964
+01965 <span class="comment">// release buffer. ATI: release only vertices used.</span>
+01966 meshSkinManager.unlock(currentBaseVertex);
+01967
+01968 <span class="comment">// Second pass, render the primitives.</span>
+01969 <span class="comment">//------------</span>
+01970 meshSkinManager.activate();
+01971
+01972 <span class="comment">// Render any primitives</span>
+01973 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=startSkinId;i&lt;skinId;i++)
+01974 {
+01975 <span class="comment">// render the skin in the current buffer</span>
+01976 skinsToGroup[i]-&gt;renderShadowSkinPrimitives(castMat, driver, baseVertices[i]);
+01977 }
+01978
+01979 <span class="comment">// End of this block, swap to the next buffer</span>
+01980 meshSkinManager.swapVBHard();
+01981 }
+01982 }
+01983 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_5" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz940_1" doxytag="NL3D::CSkeletonModel::renderSkinList" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::renderSkinList </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; <a class="el" href="a02316.html">CTransform</a> *, false &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>skinList</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>alphaMRM</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+render a list of skin, no lighting setup etc..., but use where possible a <a class="el" href="a03703.html">CVertexStreamManager</a>
+<p>
+Definition at line <a class="el" href="a06393.html#l01449">1449</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06720.html#l00178">NL3D::CVertexStreamManager::activate()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera10">NL3D::IDriver::endSpecularBatch()</a>, <a class="el" href="a06330.html#l00133">NL3D::CRenderTrav::getDriver()</a>, <a class="el" href="a06721.html#l00082">NL3D::CVertexStreamManager::getMaxVertices()</a>, <a class="el" href="a06330.html#l00182">NL3D::CRenderTrav::getMeshSkinManager()</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="a06721.html#l00080">NL3D::CVertexStreamManager::getVertexSize()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a06720.html#l00155">NL3D::CVertexStreamManager::lock()</a>, <a class="el" href="a06394.html#l00063">NL3D::CSkinSpecularRdrPass::RdrPassIndex</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; T, EnableObjectBehavior &gt;::size()</a>, <a class="el" href="a06394.html#l00061">NL3D::CSkinSpecularRdrPass::SkinIndex</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera76">NL3D::IDriver::startSpecularBatch()</a>, <a class="el" href="a06720.html#l00189">NL3D::CVertexStreamManager::swapVBHard()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a06720.html#l00166">NL3D::CVertexStreamManager::unlock()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01390">renderSkins()</a>.
+<p>
+<div class="fragment"><pre>01450 {
+01451 CRenderTrav &amp;rdrTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav();
+01452
+01453 <span class="comment">// if the SkinManager is not possible at all, just rendered the std way.</span>
+01454 <span class="keywordflow">if</span>( !rdrTrav.getMeshSkinManager() )
+01455 {
+01456 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;skinList.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1984_3">size</a>();i++)
+01457 {
+01458 skinList[i]-&gt;renderSkin(alphaMRM);
+01459 }
+01460 }
+01461 <span class="keywordflow">else</span>
+01462 {
+01463 <span class="comment">// get the meshSkinManager</span>
+01464 CVertexStreamManager &amp;meshSkinManager= *rdrTrav.getMeshSkinManager();
+01465
+01466 <span class="comment">// array (rarely allocated) of skins with grouping support</span>
+01467 <span class="keyword">static</span> std::vector&lt;CTransform*&gt; skinsToGroup;
+01468 <span class="keyword">static</span> std::vector&lt;uint&gt; baseVertices;
+01469 skinsToGroup.clear();
+01470 baseVertices.clear();
+01471
+01472 <span class="comment">// get the maxVertices the manager support</span>
+01473 <a class="code" href="a04558.html#a15">uint</a> maxVertices= meshSkinManager.getMaxVertices();
+01474 <a class="code" href="a04558.html#a15">uint</a> vertexSize= meshSkinManager.getVertexSize();
+01475
+01476 <span class="comment">// render any skins which do not support SkinGrouping, and fill array of skins to group</span>
+01477 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;skinList.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1984_3">size</a>();i++)
+01478 {
+01479 <span class="comment">// If don't support, or if too big to fit in the manager, just renderSkin()</span>
+01480 <span class="keywordflow">if</span>(!skinList[i]-&gt;supportSkinGrouping())
+01481 {
+01482 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_Skin_NotGrouped );
+01483 skinList[i]-&gt;renderSkin(alphaMRM);
+01484 }
+01485 <span class="keywordflow">else</span>
+01486 {
+01487 skinsToGroup.push_back(skinList[i]);
+01488 }
+01489 }
+01490
+01491 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_Skin_Grouped );
+01492
+01493 <span class="comment">// For each skin, have an index which gives the decal of the vertices in the buffer</span>
+01494 baseVertices.resize(skinsToGroup.size());
+01495
+01496 <span class="comment">// while there is skin to render in group</span>
+01497 <a class="code" href="a04558.html#a15">uint</a> skinId= 0;
+01498 <span class="keywordflow">while</span>(skinId&lt;skinsToGroup.size())
+01499 {
+01500 <span class="comment">// space left in the manager</span>
+01501 <a class="code" href="a04558.html#a15">uint</a> remainingVertices= maxVertices;
+01502 <a class="code" href="a04558.html#a15">uint</a> currentBaseVertex= 0;
+01503
+01504
+01505 <span class="comment">// First pass, fill The VB.</span>
+01506 <span class="comment">//------------</span>
+01507 <span class="comment">// lock buffer</span>
+01508 <a class="code" href="a04558.html#a7">uint8</a> *vbDest= meshSkinManager.lock();
+01509
+01510 <span class="comment">// For all skins until the buffer is full</span>
+01511 <a class="code" href="a04558.html#a15">uint</a> startSkinId= skinId;
+01512 <span class="keywordflow">while</span>(skinId&lt;skinsToGroup.size())
+01513 {
+01514 <span class="comment">// if success to fill the AGP</span>
+01515 <a class="code" href="a04558.html#a14">sint</a> numVerticesAdded= skinsToGroup[skinId]-&gt;renderSkinGroupGeom(alphaMRM, remainingVertices,
+01516 vbDest + vertexSize*currentBaseVertex );
+01517 <span class="comment">// -1 means that this skin can't render because no space left for her. Then stop for this block</span>
+01518 <span class="keywordflow">if</span>(numVerticesAdded==-1)
+01519 <span class="keywordflow">break</span>;
+01520 <span class="comment">// Else ok, get the currentBaseVertex for this skin</span>
+01521 baseVertices[skinId]= currentBaseVertex;
+01522 <span class="comment">// and jump to the next place</span>
+01523 currentBaseVertex+= numVerticesAdded;
+01524 remainingVertices-= numVerticesAdded;
+01525
+01526 <span class="comment">// go to the next skin</span>
+01527 skinId++;
+01528 }
+01529
+01530 <span class="comment">// release buffer. ATI: release only vertices used.</span>
+01531 meshSkinManager.unlock(currentBaseVertex);
+01532
+01533 <span class="comment">// Second pass, render the primitives.</span>
+01534 <span class="comment">//------------</span>
+01535 meshSkinManager.activate();
+01536
+01537 <span class="comment">/* Render any primitives that are not specular. Group specular ones into specularRdrPasses.</span>
+01538 <span class="comment"> NB: this speed a lot (specular setup is heavy)!</span>
+01539 <span class="comment"> */</span>
+01540 <span class="keyword">static</span> std::vector&lt;CSkinSpecularRdrPass&gt; specularRdrPasses;
+01541 specularRdrPasses.clear();
+01542 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=startSkinId;i&lt;skinId;i++)
+01543 {
+01544 <span class="comment">// render the skin in the current buffer</span>
+01545 skinsToGroup[i]-&gt;renderSkinGroupPrimitives(baseVertices[i], specularRdrPasses, i);
+01546 }
+01547
+01548 <span class="comment">// If any skin Specular rdrPass to render</span>
+01549 <span class="keywordflow">if</span>(!specularRdrPasses.empty())
+01550 {
+01551 <span class="comment">// Sort by Specular Map. HTimerInfo: take 0.0% time</span>
+01552 sort(specularRdrPasses.begin(), specularRdrPasses.end());
+01553
+01554 <span class="comment">// Batch Specular! HTimerInfo: take 0.2%</span>
+01555 rdrTrav.getDriver()-&gt;startSpecularBatch();
+01556
+01557 <span class="comment">// Render all of them</span>
+01558 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;specularRdrPasses.size();i++)
+01559 {
+01560 CSkinSpecularRdrPass &amp;specRdrPass= specularRdrPasses[i];
+01561 <span class="comment">// render the associated skin in the current buffer</span>
+01562 skinsToGroup[specRdrPass.SkinIndex]-&gt;renderSkinGroupSpecularRdrPass(specRdrPass.RdrPassIndex);
+01563 }
+01564
+01565 <span class="comment">// End Batch Specular! HTimerInfo: take 0.0%</span>
+01566 rdrTrav.getDriver()-&gt;endSpecularBatch();
+01567 }
+01568
+01569
+01570 <span class="comment">// End of this block, swap to the next buffer. HTimerInfo: take 0.0%</span>
+01571 meshSkinManager.swapVBHard();
+01572 }
+01573 }
+01574 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz940_2" doxytag="NL3D::CSkeletonModel::renderSkins" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::renderSkins </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> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+render the skins of the skeleton<ul>
+<li>update instance Lighting, and setup Driver lighting<ul>
+<li>activate skeleton Matrix</li></ul>
+</li><li>render all the skins (according if passOpaque or not)</li></ul>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l01390">1390</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a06394.html#l00383">_OpaqueSkins</a>, <a class="el" href="a06394.html#l00384">_TransparentSkins</a>, <a class="el" href="a06570.html#l00105">NL3D::CTransformShape::changeLightSetup()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera14">NL3D::IDriver::forceNormalize()</a>, <a class="el" href="a06330.html#l00133">NL3D::CRenderTrav::getDriver()</a>, <a class="el" href="a06060.html#l00101">NL3D::CMRMLevelDetail::getLevelDetailFromPolyCount()</a>, <a class="el" href="a06571.html#l00111">NL3D::CTransformShape::getNumTrianglesAfterLoadBalancing()</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#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06330.html#l00145">NL3D::CRenderTrav::isCurrentPassOpaque()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera46">NL3D::IDriver::isForceNormalize()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06393.html#l01449">renderSkinList()</a>, <a class="el" href="a06570.html#l00098">NL3D::CTransformShape::setupCurrentLightContribution()</a>, and <a class="el" href="a02434.html#NL3D_1_1IDrivera68">NL3D::IDriver::setupModelMatrix()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01030">traverseRender()</a>.
+<p>
+<div class="fragment"><pre>01391 {
+01392 <span class="comment">// Render skins according to the pass.</span>
+01393 CRenderTrav &amp;rdrTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getRenderTrav();
+01394 <span class="comment">// get a ptr on the driver</span>
+01395 IDriver *drv= rdrTrav.getDriver();
+01396 <a class="code" href="a04199.html#a6">nlassert</a>(drv);
+01397
+01398
+01399 <span class="comment">// Compute the levelOfDetail</span>
+01400 <span class="keywordtype">float</span> alphaMRM= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.getLevelDetailFromPolyCount(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelz1053_2">getNumTrianglesAfterLoadBalancing</a>());
+01401
+01402 <span class="comment">// force normalisation of normals..</span>
+01403 <span class="keywordtype">bool</span> bkupNorm= drv-&gt;isForceNormalize();
+01404 drv-&gt;forceNormalize(<span class="keyword">true</span>);
+01405
+01406
+01407 <span class="comment">// rdr good pass</span>
+01408 <span class="keywordflow">if</span>(rdrTrav.isCurrentPassOpaque())
+01409 {
+01410 <span class="comment">// Compute in Pass Opaque only the light contribution. </span>
+01411 <span class="comment">// Easier for skeleton: suppose lightable, no local attenuation</span>
+01412
+01413 <span class="comment">// the std case is to take my model lightContribution</span>
+01414 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL)
+01415 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelb6">setupCurrentLightContribution</a>(&amp;_LightContribution, <span class="keyword">false</span>);
+01416 <span class="comment">// but if sticked (directly or not) to a skeleton, take its.</span>
+01417 <span class="keywordflow">else</span>
+01418 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelb6">setupCurrentLightContribution</a>(&amp;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>-&gt;_LightContribution, <span class="keyword">false</span>);
+01419
+01420
+01421 <span class="comment">// Activate Driver setup: light and modelMatrix</span>
+01422 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelz1055_0">changeLightSetup</a>( &amp;rdrTrav );
+01423 rdrTrav.getDriver()-&gt;setupModelMatrix(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>());
+01424
+01425
+01426 <span class="comment">// Render all totaly opaque skins.</span>
+01427 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz940_1">renderSkinList</a>(_OpaqueSkins, alphaMRM);
+01428 }
+01429 <span class="keywordflow">else</span>
+01430 {
+01431 <span class="comment">// NB: must have some transparent skins, since thee skeletonModel is traversed in the transparent pass.</span>
+01432
+01433 <span class="comment">// Activate Driver setup: light and modelMatrix</span>
+01434 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelz1055_0">changeLightSetup</a>( &amp;rdrTrav );
+01435 rdrTrav.getDriver()-&gt;setupModelMatrix(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>());
+01436
+01437
+01438 <span class="comment">// render all opaque/transparent skins</span>
+01439 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz940_1">renderSkinList</a>(_TransparentSkins, alphaMRM);
+01440 }
+01441
+01442
+01443 <span class="comment">// bkup force normalisation.</span>
+01444 drv-&gt;forceNormalize(bkupNorm);
+01445 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz928_2" doxytag="NL3D::CSkeletonModel::resetDefaultMRMDistanceSetup" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::resetDefaultMRMDistanceSetup </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>
+Reset the Default MRM setup: follow MAX skin setup (ie the finer).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l01610">1610</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00380">_DefaultMRMSetup</a>, and <a class="el" href="a06394.html#l00151">dirtSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>01611 {
+01612 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr1">_DefaultMRMSetup</a>= <span class="keyword">true</span>;
+01613
+01614 <span class="comment">// Must use Skins linked to know the MRM setup.</span>
+01615 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz920_2">dirtSkinRenderLists</a>();
+01616 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_5" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">bindSkin()</a>, and <a class="el" href="a06393.html#l00573">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_1CSkeletonModelz932_1" doxytag="NL3D::CSkeletonModel::setBoneAnimCtrl" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::setBoneAnimCtrl </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>boneId</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03836.html">IAnimCtrl</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>ctrl</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set a special ctrl on a bone. see <a class="el" href="a03836.html">IAnimCtrl</a>. NB: once an animCtrl is set to a bone in a skeleton, his bones are always computed each frame. set to NULL if you want to reset this bone AnimCtrl.
+<p>
+Definition at line <a class="el" href="a06393.html#l01745">1745</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a05492.html#l00166">NL3D::CBone::_AnimCtrl</a>, <a class="el" href="a06394.html#l00508">_AnimCtrlUsage</a>, <a class="el" href="a06394.html#l00098">Bones</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00304">NL3D::CSkeletonUser::setBoneAnimCtrl()</a>.
+<p>
+<div class="fragment"><pre>01746 {
+01747 <span class="keywordflow">if</span>(boneId&gt;=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size())
+01748 <span class="keywordflow">return</span>;
+01749
+01750 CBone &amp;bone= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[boneId];
+01751
+01752 <span class="comment">// Update refCount</span>
+01753 <span class="keywordflow">if</span>(ctrl &amp;&amp; !bone._AnimCtrl)
+01754 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz942_0">_AnimCtrlUsage</a>++;
+01755 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!ctrl &amp;&amp; bone._AnimCtrl)
+01756 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz942_0">_AnimCtrlUsage</a>--;
+01757
+01758 <span class="comment">// set</span>
+01759 bone._AnimCtrl= ctrl;
+01760 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela35" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz926_8" doxytag="NL3D::CSkeletonModel::setDisplayLodCharacterFlag" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::setDisplayLodCharacterFlag </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>displayCLod</em> </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>
+Called in ClipTrav pass. setup the flag.
+<p>
+Definition at line <a class="el" href="a06393.html#l01014">1014</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00431">_BoneToComputeDirty</a>, <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a06394.html#l00463">_DisplayedAsLodCharacter</a>, <a class="el" href="a06394.html#l00466">_LodCharacterDistance</a>, and <a class="el" href="a05934.html#l00057">NL3D::CLodCharacterInstance::ShapeId</a>.
+<p>
+Referenced by <a class="el" href="a05555.html#l00457">NL3D::CClipTrav::loadBalanceSkeletonCLod()</a>, and <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>01015 {
+01016 <span class="comment">// if enabled</span>
+01017 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">_LodCharacterDistance</a>&gt;0 &amp;&amp; <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId&gt;=0)
+01018 {
+01019 <span class="comment">// If the flag has changed since last frame, must recompute bone Usage.</span>
+01020 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_5">_DisplayedAsLodCharacter</a> != displayCLod)
+01021 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a>= <span class="keyword">true</span>;
+01022
+01023 <span class="comment">// set new state</span>
+01024 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_5">_DisplayedAsLodCharacter</a>= displayCLod;
+01025 }
+01026 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela37" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz924_9" doxytag="NL3D::CSkeletonModel::setInterpolationDistance" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::setInterpolationDistance </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>dist</em> </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>
+change the Lod Bone interpolation distance (in meters). If 0, interpolation is disabled. The smaller this value is, the more Lod skeleton system will "pop". Default is 0.5 meters.
+<p>
+Definition at line <a class="el" href="a06393.html#l00637">637</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00437">_LodInterpMultiplier</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00051">NL3D::CSkeletonUser::setInterpolationDistance()</a>.
+<p>
+<div class="fragment"><pre>00638 {
+00639 dist= std::max(0.f, dist);
+00640 <span class="comment">// disable interpolation?</span>
+00641 <span class="keywordflow">if</span>(dist==0)
+00642 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a>= 0.f;
+00643 <span class="keywordflow">else</span>
+00644 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a>= 1.f / dist;
+00645 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_0" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz926_9" doxytag="NL3D::CSkeletonModel::setLodCharacterAnimId" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::setLodCharacterAnimId </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>animId</em> </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>
+Change/get the Character Lod anim setup.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00953">953</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a05934.html#l00059">NL3D::CLodCharacterInstance::AnimId</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00208">NL3D::CSkeletonUser::setLodCharacterAnimId()</a>.
+<p>
+<div class="fragment"><pre>00954 {
+00955 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.AnimId= animId;
+00956 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_10" doxytag="NL3D::CSkeletonModel::setLodCharacterAnimTime" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::setLodCharacterAnimTime </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a367">TGlobalAnimationTime</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>time</em> </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>
+Called in ClipTrav pass. Used to update the flag _DisplayedAsLodCharacter. return 0 if CLod not enabled. Else return a priority&gt;0 computed from curDistance/LodCharacterDistance return 0 too if the skeleton is not visible or if his ancestorSkeletonModel is not visible. If priority is &gt;1 then the skeleton must be displayed in CLod form
+<p>
+Definition at line <a class="el" href="a06393.html#l00959">959</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a05934.html#l00061">NL3D::CLodCharacterInstance::AnimTime</a>, and <a class="el" href="a05454.html#l00045">NL3D::TGlobalAnimationTime</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00220">NL3D::CSkeletonUser::setLodCharacterAnimTime()</a>.
+<p>
+<div class="fragment"><pre>00960 {
+00961 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.AnimTime= time;
+00962 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_11" doxytag="NL3D::CSkeletonModel::setLodCharacterDistance" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::setLodCharacterDistance </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>dist</em> </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>
+This is the distance at which the skeleton use a <a class="el" href="a02801.html">CLodCharacterShape</a> to display himself if 0, never display the skeleton as a <a class="el" href="a02801.html">CLodCharacterShape</a>
+<p>
+Definition at line <a class="el" href="a06393.html#l00827">827</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00466">_LodCharacterDistance</a>, and <a class="el" href="a06394.html#l00467">_OOLodCharacterDistance</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00238">NL3D::CSkeletonUser::setLodCharacterDistance()</a>.
+<p>
+<div class="fragment"><pre>00828 {
+00829 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">_LodCharacterDistance</a>= max(dist, 0.f);
+00830 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">_LodCharacterDistance</a>&gt;0)
+00831 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_7">_OOLodCharacterDistance</a>= 1.0f/<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">_LodCharacterDistance</a>;
+00832 <span class="keywordflow">else</span>
+00833 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_7">_OOLodCharacterDistance</a>= 0;
+00834 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_12" doxytag="NL3D::CSkeletonModel::setLodCharacterShape" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::setLodCharacterShape </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>shapeId</em> </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>
+Change the Character Lod shape Id. set -1 if want to disable the feature (default).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00837">837</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, <a class="el" href="a06349.html#l00349">NL3D::CScene::getLodCharacterManager()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05935.html#l00844">NL3D::CLodCharacterManager::initInstance()</a>, <a class="el" href="a05935.html#l00897">NL3D::CLodCharacterManager::releaseInstance()</a>, <a class="el" href="a05934.html#l00057">NL3D::CLodCharacterInstance::ShapeId</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00196">NL3D::CSkeletonUser::setLodCharacterShape()</a>, and <a class="el" href="a06393.html#l00123">~CSkeletonModel()</a>.
+<p>
+<div class="fragment"><pre>00838 {
+00839 <span class="comment">// get a ptr on the scene which owns us, and so on the lodManager.</span>
+00840 CScene *scene= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>();
+00841 CLodCharacterManager *mngr= scene-&gt;getLodCharacterManager();
+00842
+00843 <span class="comment">// if mngr not setuped, noop (lod not possible).</span>
+00844 <span class="keywordflow">if</span>(!mngr)
+00845 <span class="keywordflow">return</span>;
+00846
+00847 <span class="comment">// If a shape was setup, free the instance</span>
+00848 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId&gt;=0)
+00849 {
+00850 mngr-&gt;releaseInstance(_CLodInstance);
+00851 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId= -1;
+00852 }
+00853
+00854 <span class="comment">// assign</span>
+00855 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId= shapeId;
+00856
+00857 <span class="comment">// if a real shape is setuped, alloc an instance</span>
+00858 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.ShapeId&gt;=0)
+00859 {
+00860 mngr-&gt;initInstance(_CLodInstance);
+00861 }
+00862 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz926_13" doxytag="NL3D::CSkeletonModel::setLodCharacterWrapMode" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::setLodCharacterWrapMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>wrapMode</em> </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>
+tells if the animation must loop or clamp.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00965">965</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00470">_CLodInstance</a>, and <a class="el" href="a05934.html#l00063">NL3D::CLodCharacterInstance::WrapMode</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00250">NL3D::CSkeletonUser::setLodCharacterWrapMode()</a>.
+<p>
+<div class="fragment"><pre>00966 {
+00967 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">_CLodInstance</a>.WrapMode= wrapMode;
+00968 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela40" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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">CSkeletonModel()</a>, <a class="el" href="a06688.html#l00051">NL3D::CVegetableBlendLayerModel::CVegetableBlendLayerModel()</a>, <a class="el" href="a06737.html#l00063">NL3D::CWaterModel::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::CSkeletonModel::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">NL3D::CWaterModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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">CSkeletonModel()</a>, <a class="el" href="a06688.html#l00051">NL3D::CVegetableBlendLayerModel::CVegetableBlendLayerModel()</a>, <a class="el" href="a06737.html#l00063">NL3D::CWaterModel::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">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::CSkeletonModel::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">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_1CWaveMakerModela44" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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::CSkeletonModel::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_1CSkeletonModelz920_3" doxytag="NL3D::CSkeletonModel::stickObject" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::stickObject </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="mdname" nowrap> <em>mi</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>boneId</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+parent a <a class="el" href="a02316.html">CTransform</a> to a bone of the skeleton. NB: <a class="el" href="a02316.html#NL3D_1_1CTransformb8">~CTransform()</a> calls <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_1">detachSkeletonSon()</a>. NB: <a class="el" href="a04199.html#a6">nlassert()</a> if there is too many skins/sticked objects on this skeleton (more than 255). NB: an object can't be skinned and sticked at same time :) NB: replaced if already here. NB: mi is made son of skeleton model in Traversals Hrc, and change are made at render() for ClipTrav.
+<p>
+Definition at line <a class="el" href="a06393.html#l00537">537</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06393.html#l00543">stickObjectEx()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06397.html#l00118">NL3D::CSkeletonUser::stickObject()</a>.
+<p>
+<div class="fragment"><pre>00538 {
+00539 <span class="comment">// by default don't force display of "mi" if the skeleton become in CLod state</span>
+00540 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz920_4">stickObjectEx</a>(mi, boneId, <span class="keyword">false</span>);
+00541 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz920_4" doxytag="NL3D::CSkeletonModel::stickObjectEx" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::stickObjectEx </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="mdname" nowrap> <em>mi</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>boneId</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>forceCLod</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+same method as <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_3">stickObject()</a>, but if you set forceCLod as true, then this object will be visible even if the skeleton father is in CLod state (ie displayed with a <a class="el" href="a02801.html">CLodCharacterShape</a>) NB: if "mi" is a skeleton model, forceCLod is considerer true, whatever the value passed in.
+<p>
+Definition at line <a class="el" href="a06393.html#l00543">543</a> of file <a class="el" href="a06393.html">skeleton_model.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#l00746">NL3D::CTransform::_ForceCLodSticked</a>, <a class="el" href="a06394.html#l00375">_StickedObjects</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, <a class="el" href="a06394.html#l00476">dirtLodVertexAlpha()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06393.html#l00253">incForcedBoneUsageAndParents()</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="a06393.html#l00537">stickObject()</a>, and <a class="el" href="a06397.html#l00130">NL3D::CSkeletonUser::stickObjectEx()</a>.
+<p>
+<div class="fragment"><pre>00544 {
+00545 <a class="code" href="a04199.html#a6">nlassert</a>(mi);
+00546
+00547 <span class="comment">// if "mi" is a skeleton, forceCLod must be true, for correct animation purpose</span>
+00548 <span class="keywordflow">if</span>(dynamic_cast&lt;CSkeletonModel*&gt;(mi))
+00549 forceCLod= <span class="keyword">true</span>;
+00550
+00551 <span class="comment">// try to detach this object from any skeleton first (possibly me).</span>
+00552 <span class="keywordflow">if</span>(mi-&gt;_FatherSkeletonModel)
+00553 mi-&gt;_FatherSkeletonModel-&gt;detachSkeletonSon(mi);
+00554
+00555 <span class="comment">// Then Add me.</span>
+00556 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr8">_StickedObjects</a>.insert(mi);
+00557 <span class="comment">// increment the refCount usage of the bone</span>
+00558 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_1">incForcedBoneUsageAndParents</a>(boneId, forceCLod);
+00559
+00560 <span class="comment">// advert transform of its sticked state.</span>
+00561 mi-&gt;_FatherSkeletonModel= <span class="keyword">this</span>;
+00562 mi-&gt;_FatherBoneId= boneId;
+00563 <span class="comment">// advert him if it is "ForceCLod" sticked</span>
+00564 mi-&gt;_ForceCLodSticked= forceCLod;
+00565
+00566 <span class="comment">// link correctly Hrc only. ClipTrav grah updated in Hrc traversal.</span>
+00567 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_3">hrcLinkSon</a>( mi );
+00568
+00569 <span class="comment">// must recompute lod vertex alpha when LodCharacter used</span>
+00570 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz938_1">dirtLodVertexAlpha</a>();
+00571 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela48" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz930_0" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+this do :<ul>
+<li>call <a class="el" href="a02316.html#NL3D_1_1CWaterModelz1017_1">CTransformShape::traverseAnimDetail()</a></li><li>update animated bones.</li></ul>
+
+<p>
+Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaterModelz1017_1">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l00658">658</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00508">_AnimCtrlUsage</a>, <a class="el" href="a06394.html#l00386">_AnimDetailSkins</a>, <a class="el" href="a06394.html#l00429">_BoneToCompute</a>, <a class="el" href="a06394.html#l00431">_BoneToComputeDirty</a>, <a class="el" href="a06394.html#l00433">_CurLod</a>, <a class="el" href="a06394.html#l00435">_CurLodInterp</a>, <a class="el" href="a06394.html#l00437">_LodInterpMultiplier</a>, <a class="el" href="a06394.html#l00419">NL3D::CSkeletonModel::CBoneCompute::Bone</a>, <a class="el" href="a06583.html#l00079">NL3D::CTravCameraScene::CamPos</a>, <a class="el" href="a05587.html#l00115">NLMISC::clamp()</a>, <a class="el" href="a05491.html#l00155">NL3D::CBone::compute()</a>, <a class="el" href="a06396.html#l00056">NL3D::CSkeletonShape::CLod::Distance</a>, <a class="el" href="a06394.html#l00421">NL3D::CSkeletonModel::CBoneCompute::Father</a>, <a class="el" href="a05492.html#l00150">NL3D::CBone::getBoneSkinMatrix()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06396.html#l00119">NL3D::CSkeletonShape::getLod()</a>, <a class="el" href="a06395.html#l00247">NL3D::CSkeletonShape::getLodForDistance()</a>, <a class="el" href="a06396.html#l00120">NL3D::CSkeletonShape::getNumLods()</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="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05491.html#l00233">NL3D::CBone::interpolateBoneSkinMatrix()</a>, <a class="el" href="a06394.html#l00259">isDisplayedAsLodCharacter()</a>, <a class="el" href="a06569.html#l00515">NL3D::CTransform::isGeneratingShadowMap()</a>, <a class="el" href="a06569.html#l00306">NL3D::CTransform::isHrcVisible()</a>, <a class="el" href="a06394.html#l00423">NL3D::CSkeletonModel::CBoneCompute::MustInterpolate</a>, <a class="el" href="a06393.html#l01014">setDisplayLodCharacterFlag()</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; T, EnableObjectBehavior &gt;::size()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a06393.html#l00280">updateBoneToCompute()</a>.
+<p>
+<div class="fragment"><pre>00659 {
+00660 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModeln1">CSkeletonShape</a> *skeShape= ((<a class="code" href="a03399.html#NL3D_1_1CSkeletonModeln1">CSkeletonShape</a>*)(IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>);
+00661
+00662 <span class="comment">/* NB: If "this" skeleton has an AncestorSkeletonModel displayed but "this" skeleton is clipped, </span>
+00663 <span class="comment"> it will be still animDetailed.</span>
+00664 <span class="comment"> So its possible sticked sons will be displayed with correct WorldMatrix (if not themselves clipped).</span>
+00665 <span class="comment"> */</span>
+00666
+00667 <span class="comment">/* If the Root Skeleton Model (ie me or my AncestorSM) is asked to render a ShadowMap, BUT I am</span>
+00668 <span class="comment"> in CLod Form (and visible in HRC else won't be rendered in shadowMap...), then temporarly</span>
+00669 <span class="comment"> Avoid CLod!! To really compute the bones for this frame only.</span>
+00670 <span class="comment"> */</span>
+00671 <span class="keywordtype">bool</span> tempAvoidCLod= <span class="keyword">false</span>;
+00672 <span class="keywordtype">bool</span> genShadow;
+00673 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>)
+00674 genShadow= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>-&gt;isGeneratingShadowMap();
+00675 <span class="keywordflow">else</span>
+00676 genShadow= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_9">isGeneratingShadowMap</a>();
+00677 <span class="comment">// do the test.</span>
+00678 <span class="keywordflow">if</span>(genShadow &amp;&amp; <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz926_7">isDisplayedAsLodCharacter</a>() &amp;&amp; <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela29">isHrcVisible</a>() )
+00679 {
+00680 tempAvoidCLod= <span class="keyword">true</span>;
+00681 <span class="comment">// Disable it just the time of this AnimDetail</span>
+00682 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz926_8">setDisplayLodCharacterFlag</a>(<span class="keyword">false</span>);
+00683 }
+00684
+00685
+00686 <span class="comment">// Update Lod, and animate.</span>
+00687 <span class="comment">//===============</span>
+00688
+00689 <span class="comment">/*</span>
+00690 <span class="comment"> CTransformShape::traverseAnimDetail() is torn in 2 here because </span>
+00691 <span class="comment"> channels may be enabled/disabled by updateBoneToCompute()</span>
+00692 <span class="comment"> */</span>
+00693
+00694 <span class="comment">// First update Skeleton WorldMatrix (case where the skeleton is sticked).</span>
+00695 CTransform::updateWorldMatrixFromFather();
+00696 <span class="comment">// get dist from camera.</span>
+00697 <span class="keywordtype">float</span> dist= (<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().getPos() - <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getClipTrav().CamPos).norm();
+00698 <span class="comment">// Use dist to get current lod to use for this skeleton</span>
+00699 <a class="code" href="a04558.html#a15">uint</a> newLod= skeShape-&gt;getLodForDistance( dist );
+00700 <span class="keywordflow">if</span>(newLod != <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_7">_CurLod</a>)
+00701 {
+00702 <span class="comment">// set new lod to use.</span>
+00703 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_7">_CurLod</a>= newLod;
+00704 <span class="comment">// dirt the skeleton.</span>
+00705 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a>= <span class="keyword">true</span>;
+00706 }
+00707
+00708 <span class="comment">// If needed, let's know which bone has to be computed, and enable / disable (lod) channels in channelMixer.</span>
+00709 <span class="keywordtype">bool</span> forceUpdate= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a>;
+00710 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_3">updateBoneToCompute</a>();
+00711
+00712 <span class="comment">// Animate skeleton.</span>
+00713 CTransformShape::traverseAnimDetailWithoutUpdateWorldMatrix();
+00714
+00715
+00716 <span class="comment">// Prepare Lod Bone interpolation.</span>
+00717 <span class="comment">//===============</span>
+00718
+00719 <span class="keywordtype">float</span> lodBoneInterp;
+00720 <span class="keyword">const</span> CSkeletonShape::CLod *lodNext= NULL;
+00721 <span class="comment">// if a lod exist after current lod, and if lod interpolation enabled</span>
+00722 <span class="keywordflow">if</span>( <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_7">_CurLod</a> &lt; skeShape-&gt;getNumLods()-1 &amp;&amp; <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a>&gt;0 )
+00723 {
+00724 <span class="comment">// get next lod.</span>
+00725 lodNext= &amp;skeShape-&gt;getLod(_CurLod+1);
+00726 <span class="comment">// get interp value to next.</span>
+00727 lodBoneInterp= (lodNext-&gt;Distance - dist) * <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a>;
+00728 <a class="code" href="a05378.html#a374">NLMISC::clamp</a>(lodBoneInterp, 0.f, 1.f);
+00729 <span class="comment">// if still 1, keep cur matrix =&gt; disable interpolation</span>
+00730 <span class="keywordflow">if</span>(lodBoneInterp==1.f)
+00731 lodNext=NULL;
+00732 }
+00733 <span class="comment">// else, no interpolation</span>
+00734 <span class="keywordflow">else</span>
+00735 {
+00736 lodBoneInterp=1.f;
+00737 }
+00738 <span class="comment">// If the interpolation value is different from last one, must update.</span>
+00739 <span class="keywordflow">if</span>(lodBoneInterp != <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_8">_CurLodInterp</a>)
+00740 {
+00741 <span class="comment">// set new one.</span>
+00742 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_8">_CurLodInterp</a>= lodBoneInterp;
+00743 <span class="comment">// must update bone compute.</span>
+00744 forceUpdate= <span class="keyword">true</span>;
+00745 }
+00746
+00747
+00748
+00749 <span class="comment">// Compute bones</span>
+00750 <span class="comment">//===============</span>
+00751
+00752 <span class="comment">// If User AnimCtrl, then must update</span>
+00753 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz942_0">_AnimCtrlUsage</a>&gt;0)
+00754 forceUpdate= <span class="keyword">true</span>;
+00755
+00756 <span class="comment">// test if bones must be updated. either if animation change or if BoneUsage change.</span>
+00757 <span class="keywordflow">if</span>(IAnimatable::isTouched(CSkeletonModel::OwnerBit) || forceUpdate)
+00758 {
+00759 <span class="comment">// Retrieve the WorldMatrix of the current CTransformShape.</span>
+00760 <span class="keyword">const</span> CMatrix &amp;modelWorldMatrix= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>();
+00761
+00762 <span class="comment">// must test / update the hierarchy of Bones.</span>
+00763 <span class="comment">// Since they are orderd in depth-first order, we are sure that parent are computed before sons.</span>
+00764 <a class="code" href="a04558.html#a15">uint</a> numBoneToCompute= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a>.size();
+00765 CSkeletonModel::CBoneCompute *pBoneCompute= numBoneToCompute? &amp;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a>[0] : NULL;
+00766 <span class="comment">// traverse only bones which need to be computed</span>
+00767 <span class="keywordflow">for</span>(;numBoneToCompute&gt;0;numBoneToCompute--, pBoneCompute++)
+00768 {
+00769 <span class="comment">// compute the bone with his father, if any</span>
+00770 pBoneCompute-&gt;Bone-&gt;compute( pBoneCompute-&gt;Father, modelWorldMatrix, <span class="keyword">this</span>);
+00771
+00772 <span class="comment">// Lod interpolation on this bone .. only if interp is enabled now, and if bone wants it</span>
+00773 <span class="keywordflow">if</span>(lodNext &amp;&amp; pBoneCompute-&gt;MustInterpolate)
+00774 {
+00775 <span class="comment">// interpolate with my father matrix.</span>
+00776 <span class="keyword">const</span> CMatrix &amp;fatherMatrix= pBoneCompute-&gt;Father-&gt;getBoneSkinMatrix();
+00777 pBoneCompute-&gt;Bone-&gt;interpolateBoneSkinMatrix(fatherMatrix, lodBoneInterp);
+00778 }
+00779 }
+00780
+00781 IAnimatable::clearFlag(CSkeletonModel::OwnerBit);
+00782 }
+00783
+00784 <span class="comment">// Sticked Objects: </span>
+00785 <span class="comment">// they will update their WorldMatrix after, because of the AnimDetail traverse scheme:</span>
+00786 <span class="comment">// traverse visible Clip models, and if skeleton, traverse Hrc sons.</span>
+00787
+00788
+00789 <span class="comment">// Restore the Initial CLod flag if needed (see above)</span>
+00790 <span class="keywordflow">if</span>(tempAvoidCLod)
+00791 {
+00792 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz926_8">setDisplayLodCharacterFlag</a>(<span class="keyword">true</span>);
+00793 }
+00794
+00795
+00796 <span class="comment">// Update Animated Skins.</span>
+00797 <span class="comment">//===============</span>
+00798 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr0">_AnimDetailSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1984_3">size</a>();i++)
+00799 {
+00800 <span class="comment">// traverse it. NB: updateWorldMatrixFromFather() is called but no-op because isSkinned()</span>
+00801 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr0">_AnimDetailSkins</a>[i]-&gt;traverseAnimDetail();
+00802 }
+00803 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1047_0" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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">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="a02537.html#NL3D_1_1CWaveMakerModelz1057_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::CSkeletonModel::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::CSkeletonModel::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 <a class="code" href="a02156.html">CAABBox</a> 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.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_0">getCenter</a>();
+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::CSkeletonModel::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_1CSkeletonModelz930_1" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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>
+If displayed as a CLod, render it, else render the skins binded to this skeleton
+<p>
+Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1057_3">NL3D::CTransformShape</a>.
+<p>
+Definition at line <a class="el" href="a06393.html#l01030">1030</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a06394.html#l00259">isDisplayedAsLodCharacter()</a>, <a class="el" href="a06393.html#l01295">renderCLod()</a>, and <a class="el" href="a06393.html#l01390">renderSkins()</a>.
+<p>
+<div class="fragment"><pre>01031 {
+01032 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_Skeleton_Render );
+01033
+01034 <span class="comment">// render as CLod, or render Skins.</span>
+01035 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz926_7">isDisplayedAsLodCharacter</a>())
+01036 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz940_0">renderCLod</a>();
+01037 <span class="keywordflow">else</span>
+01038 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz940_2">renderSkins</a>();
+01039 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModela49" doxytag="NL3D::CSkeletonModel::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">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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModelz936_3" doxytag="NL3D::CSkeletonModel::updateBoneToCompute" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::updateBoneToCompute </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> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+According to Usage, ForedUsage and current skeleton Lod, update MustCompute and ValidBoneSkinMatrix.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l00280">280</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00429">_BoneToCompute</a>, <a class="el" href="a06394.html#l00431">_BoneToComputeDirty</a>, <a class="el" href="a06394.html#l00427">_BoneUsage</a>, <a class="el" href="a06394.html#l00433">_CurLod</a>, <a class="el" href="a06394.html#l00437">_LodInterpMultiplier</a>, <a class="el" href="a06396.html#l00058">NL3D::CSkeletonShape::CLod::ActiveBones</a>, <a class="el" href="a06394.html#l00419">NL3D::CSkeletonModel::CBoneCompute::Bone</a>, <a class="el" href="a06394.html#l00098">Bones</a>, <a class="el" href="a06394.html#l00421">NL3D::CSkeletonModel::CBoneCompute::Father</a>, <a class="el" href="a06569.html#l00641">NL3D::CTransform::getChannelMixer()</a>, <a class="el" href="a06396.html#l00119">NL3D::CSkeletonShape::getLod()</a>, <a class="el" href="a06396.html#l00120">NL3D::CSkeletonShape::getNumLods()</a>, <a class="el" href="a06394.html#l00259">isDisplayedAsLodCharacter()</a>, <a class="el" href="a06394.html#l00423">NL3D::CSkeletonModel::CBoneCompute::MustInterpolate</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="a06393.html#l00658">traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00281 {
+00282 <span class="comment">// If already computed, skip</span>
+00283 <span class="keywordflow">if</span>(!<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a>)
+00284 <span class="keywordflow">return</span>;
+00285
+00286 <span class="comment">// get the channelMixer owned by CTransform.</span>
+00287 CChannelMixer *chanMixer= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelb3">getChannelMixer</a>();
+00288
+00289 <span class="comment">// Get Lod infos from skeletonShape</span>
+00290 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModeln1">CSkeletonShape</a> *skeShape= (<a class="code" href="a03399.html#NL3D_1_1CSkeletonModeln1">CSkeletonShape</a>*)(IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>;
+00291 <span class="keyword">const</span> CSkeletonShape::CLod &amp;lod= skeShape-&gt;getLod(_CurLod);
+00292
+00293 <span class="comment">// reset _BoneToCompute</span>
+00294 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a>.clear();
+00295
+00296 <span class="comment">// For all bones</span>
+00297 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>.size(); i++)
+00298 {
+00299 <span class="comment">// If we are in CLod mode</span>
+00300 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz926_7">isDisplayedAsLodCharacter</a>())
+00301 <span class="comment">// don't compute the bone</span>
+00302 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].MustCompute= 0;
+00303 <span class="keywordflow">else</span>
+00304 {
+00305 <span class="comment">// set MustCompute to non 0 if (Usage &amp;&amp; Lod) || ForcedUsage;</span>
+00306 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].MustCompute= (<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].Usage &amp; lod.ActiveBones[i]) | <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].ForcedUsage;
+00307 }
+00308 <span class="comment">// if CLodForcedUsage for the bone, it must be computed, whatever _DisplayedAsLodCharacter state</span>
+00309 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].MustCompute|= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].CLodForcedUsage;
+00310
+00311 <span class="comment">// If the bone must be computed (if !0)</span>
+00312 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].MustCompute)
+00313 {
+00314 <span class="comment">// lodEnable the channels of this bone</span>
+00315 <span class="keywordflow">if</span>(chanMixer)
+00316 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].lodEnableChannels(chanMixer, <span class="keyword">true</span>);
+00317
+00318 <span class="comment">// This bone is computed =&gt; take his valid boneSkinMatrix.</span>
+00319 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].ValidBoneSkinMatrix= i;
+00320
+00321 <span class="comment">// Append to the list to compute.</span>
+00322 <span class="comment">//-------</span>
+00323 CBoneCompute bc;
+00324 bc.Bone= &amp;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i];
+00325 <a class="code" href="a04558.html#a14">sint</a> fatherId= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].getFatherId();
+00326 <span class="comment">// if a root bone...</span>
+00327 <span class="keywordflow">if</span>(fatherId==-1)
+00328 bc.Father= NULL;
+00329 <span class="keywordflow">else</span>
+00330 bc.Father= &amp;Bones[fatherId];
+00331 <span class="comment">// MustInterpolate??</span>
+00332 bc.MustInterpolate= <span class="keyword">false</span>;
+00333 <span class="keyword">const</span> CSkeletonShape::CLod *lodNext= NULL;
+00334 <span class="comment">// if a lod exist after current lod, and if lod interpolation enabled</span>
+00335 <span class="keywordflow">if</span>( <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_7">_CurLod</a> &lt; skeShape-&gt;getNumLods()-1 &amp;&amp; <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">_LodInterpMultiplier</a>&gt;0 )
+00336 {
+00337 <span class="comment">// get next lod.</span>
+00338 lodNext= &amp;skeShape-&gt;getLod(_CurLod+1);
+00339 <span class="comment">// Lod interpolation on this bone ?? only if at next lod, the bone is disabled.</span>
+00340 <span class="comment">// And only if it is not enabed because of a "Forced reason"</span>
+00341 <span class="comment">// Must also have a father, esle can't interpolate.</span>
+00342 <span class="keywordflow">if</span>(lodNext-&gt;ActiveBones[i]==0 &amp;&amp; <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].ForcedUsage==0 &amp;&amp; <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].CLodForcedUsage==0
+00343 &amp;&amp; bc.Father)
+00344 bc.MustInterpolate= <span class="keyword">true</span>;
+00345 }
+00346 <span class="comment">// append</span>
+00347 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">_BoneToCompute</a>.push_back(bc);
+00348 }
+00349 <span class="keywordflow">else</span>
+00350 {
+00351 <span class="comment">// lodDisable the channels of this bone</span>
+00352 <span class="keywordflow">if</span>(chanMixer)
+00353 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].lodEnableChannels(chanMixer, <span class="keyword">false</span>);
+00354
+00355 <span class="comment">// This bone is not computed =&gt; take the valid boneSkinMatrix of his father</span>
+00356 <a class="code" href="a04558.html#a14">sint</a> fatherId= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i].getFatherId();
+00357 <span class="keywordflow">if</span>(fatherId&lt;0)
+00358 <span class="comment">// just take me, even if not computed.</span>
+00359 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].ValidBoneSkinMatrix= i;
+00360 <span class="keywordflow">else</span>
+00361 <span class="comment">// NB: father ValidBoneSkinMatrix already computed because of the hierarchy order of Bones array.</span>
+00362 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[i].ValidBoneSkinMatrix= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">_BoneUsage</a>[fatherId].ValidBoneSkinMatrix;
+00363 }
+00364 }
+00365
+00366 <span class="comment">// For </span>
+00367
+00368 <span class="comment">// computed</span>
+00369 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelz936_5">_BoneToComputeDirty</a>= <span class="keyword">false</span>;
+00370 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_0" doxytag="NL3D::CSkeletonModel::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_1CSkeletonModeld2" doxytag="NL3D::CSkeletonModel::updateShadowMap" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::updateShadowMap </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>driver</em> </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="a06393.html#l01872">1872</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00563">NL3D::CScene::getShadowMapTextureSize()</a>, <a class="el" href="a06371.html#l00110">NL3D::CShadowMap::getTextureSize()</a>, <a class="el" href="a06370.html#l00066">NL3D::CShadowMap::initTexture()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01781">generateShadowMap()</a>.
+<p>
+<div class="fragment"><pre>01873 {
+01874 <a class="code" href="a04199.html#a6">nlassert</a>(_ShadowMap);
+01875
+01876 <span class="comment">// create/update texture</span>
+01877 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>-&gt;getTextureSize()!=<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getShadowMapTextureSize())
+01878 {
+01879 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr5">_ShadowMap</a>-&gt;initTexture(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()-&gt;getShadowMapTextureSize());
+01880 }
+01881 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModela48" doxytag="NL3D::CSkeletonModel::updateSkinRenderLists" ></a><p>
+<table class="mdTable" 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::CSkeletonModel::updateSkinRenderLists </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>
+
+<p>
+Definition at line <a class="el" href="a06393.html#l01117">1117</a> of file <a class="el" href="a06393.html">skeleton_model.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00386">_AnimDetailSkins</a>, <a class="el" href="a06394.html#l00380">_DefaultMRMSetup</a>, <a class="el" href="a06394.html#l00383">_OpaqueSkins</a>, <a class="el" href="a06394.html#l00373">_Skins</a>, <a class="el" href="a06394.html#l00378">_SkinToRenderDirty</a>, <a class="el" href="a06394.html#l00384">_TransparentSkins</a>, <a class="el" href="a06394.html#l00098">Bones</a>, <a class="el" href="a06393.html#l01282">buildDefaultLevelDetail()</a>, <a class="el" href="a06116.html#l00124">NLMISC::CObjectVector&lt; T, EnableObjectBehavior &gt;::clear()</a>, <a class="el" href="a06059.html#l00037">NL3D::CMRMLevelDetail::compileDistanceSetup()</a>, <a class="el" href="a06060.html#l00065">NL3D::CMRMLevelDetail::DistanceCoarsest</a>, <a class="el" href="a06060.html#l00061">NL3D::CMRMLevelDetail::DistanceFinest</a>, <a class="el" href="a06060.html#l00063">NL3D::CMRMLevelDetail::DistanceMiddle</a>, <a class="el" href="a06571.html#l00114">NL3D::CTransformShape::getMRMLevelDetail()</a>, <a class="el" href="a06569.html#l00584">NL3D::CTransform::getSkinBoneSphere()</a>, <a class="el" href="a06569.html#l00578">NL3D::CTransform::getSkinBoneUsage()</a>, <a class="el" href="a06569.html#l00203">NL3D::CTransform::getVisibility()</a>, <a class="el" href="a06569.html#l00440">NL3D::CTransform::isAnimDetailable()</a>, <a class="el" href="a06569.html#l00173">NL3D::CTransform::isOpaque()</a>, <a class="el" href="a06569.html#l00174">NL3D::CTransform::isTransparent()</a>, <a class="el" href="a06394.html#l00371">ItTransformSet</a>, <a class="el" href="a06060.html#l00058">NL3D::CMRMLevelDetail::MaxFaceUsed</a>, <a class="el" href="a06060.html#l00056">NL3D::CMRMLevelDetail::MinFaceUsed</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05505.html#l00049">NLMISC::CBSphere::Radius</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; T, EnableObjectBehavior &gt;::resize()</a>, <a class="el" href="a06568.html#l00240">NL3D::CTransform::setTransparency()</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="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>.
+<p>
+<div class="fragment"><pre>01118 {
+01119 <span class="comment">// If need to update array of skins to compute</span>
+01120 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr7">_SkinToRenderDirty</a>)
+01121 {
+01122 <a class="code" href="a04558.html#a15">uint</a> i;
+01123
+01124 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr7">_SkinToRenderDirty</a>= <span class="keyword">false</span>;
+01125
+01126 <span class="comment">// Reset the LevelDetail.</span>
+01127 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.MinFaceUsed= 0;
+01128 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.MaxFaceUsed= 0;
+01129 <span class="comment">// If must follow default MRM setup from skins.</span>
+01130 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr1">_DefaultMRMSetup</a>)
+01131 {
+01132 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceCoarsest= 0;
+01133 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceMiddle= 0;
+01134 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceFinest= 0;
+01135 }
+01136
+01137 <span class="comment">// reset Bone Sphere of skeleton.</span>
+01138 <span class="keyword">static</span> std::vector&lt;bool&gt; sphereEmpty;
+01139 sphereEmpty.clear();
+01140 sphereEmpty.resize(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size(), <span class="keyword">true</span>);
+01141 <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size();i++)
+01142 {
+01143 <span class="comment">// Default sphere is centered on the bone pos, and has 0 radius.</span>
+01144 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i]._MaxSphere.Center= CVector::Null;
+01145 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[i]._MaxSphere.Radius= 0;
+01146 }
+01147
+01148 <span class="comment">// Parse to count new size of the arrays, and to build MRM info, and bone Max sphere</span>
+01149 <a class="code" href="a04558.html#a15">uint</a> opaqueSize= 0;
+01150 <a class="code" href="a04558.html#a15">uint</a> transparentSize= 0;
+01151 <a class="code" href="a04558.html#a15">uint</a> animDetailSize= 0;
+01152 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModely0">ItTransformSet</a> it;
+01153 <span class="keywordflow">for</span>(it= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.begin();it!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.end();it++)
+01154 {
+01155 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *skin= *it;
+01156
+01157 <span class="comment">// If the skin is hidden, don't add it to any list!</span>
+01158 <span class="keywordflow">if</span>(skin-&gt;getVisibility()==CHrcTrav::Hide)
+01159 <span class="keywordflow">continue</span>;
+01160
+01161 <span class="comment">// if transparent, then must fill in transparent list.</span>
+01162 <span class="keywordflow">if</span>(skin-&gt;isTransparent())
+01163 transparentSize++;
+01164 <span class="comment">// else may fill in opaquelist. NB: for optimisation, don't add in opaqueList </span>
+01165 <span class="comment">// if added to the transperent list (all materials are rendered)</span>
+01166 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(skin-&gt;isOpaque())
+01167 opaqueSize++;
+01168
+01169 <span class="comment">// if animDetailable, then must fill list</span>
+01170 <span class="keywordflow">if</span>(skin-&gt;isAnimDetailable())
+01171 animDetailSize++;
+01172
+01173 <span class="comment">// if the skin support MRM, then must update levelDetal number of faces</span>
+01174 <a class="code" href="a02537.html#NL3D_1_1CTransformShapeb2">CTransformShape</a> *trShape= dynamic_cast&lt;CTransformShape*&gt;(skin);
+01175 <span class="keywordflow">if</span>(trShape)
+01176 {
+01177 <span class="keyword">const</span> CMRMLevelDetail *skinLevelDetail= trShape-&gt;getMRMLevelDetail();
+01178 <span class="keywordflow">if</span>(skinLevelDetail)
+01179 {
+01180 <span class="comment">// Add Faces to the Skeleton level detail</span>
+01181 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.MinFaceUsed+= skinLevelDetail-&gt;MinFaceUsed;
+01182 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.MaxFaceUsed+= skinLevelDetail-&gt;MaxFaceUsed;
+01183 <span class="comment">// MRM Max skin setup.</span>
+01184 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr1">_DefaultMRMSetup</a>)
+01185 {
+01186 <span class="comment">// Get the maximum distance setup (ie the one which degrades the less)</span>
+01187 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceCoarsest= max(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceCoarsest, skinLevelDetail-&gt;DistanceCoarsest);
+01188 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceMiddle= max(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceMiddle, skinLevelDetail-&gt;DistanceMiddle);
+01189 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceFinest= max(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.DistanceFinest, skinLevelDetail-&gt;DistanceFinest);
+01190 }
+01191 }
+01192 }
+01193
+01194 <span class="comment">// Enlarge Bone BBox</span>
+01195 <span class="keyword">const</span> std::vector&lt;sint32&gt; *boneUsage= skin-&gt;getSkinBoneUsage();
+01196 <span class="keyword">const</span> std::vector&lt;NLMISC::CBSphere&gt; *boneSphere= skin-&gt;getSkinBoneSphere();
+01197 <span class="keywordflow">if</span>(boneUsage &amp;&amp; boneSphere)
+01198 {
+01199 <a class="code" href="a04199.html#a6">nlassert</a>(boneUsage-&gt;size()==boneSphere-&gt;size());
+01200 <span class="keywordflow">for</span>(i=0;i&lt;boneUsage-&gt;size();i++)
+01201 {
+01202 <span class="keyword">const</span> <a class="code" href="a02291.html">CBSphere</a> &amp;sphere= (*boneSphere)[i];
+01203 <a class="code" href="a04558.html#a14">sint</a> boneId= (*boneUsage)[i];
+01204 <a class="code" href="a04199.html#a6">nlassert</a>(boneId&lt;(<a class="code" href="a04558.html#a14">sint</a>)<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>.size());
+01205 <span class="comment">// if valid boneId, and sphere not empty (ie not -1 radius)</span>
+01206 <span class="keywordflow">if</span>(boneId&gt;-1 &amp;&amp; sphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo1">Radius</a>&gt;=0)
+01207 {
+01208 <span class="keywordflow">if</span>(sphereEmpty[boneId])
+01209 {
+01210 sphereEmpty[boneId]= <span class="keyword">false</span>;
+01211 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[boneId]._MaxSphere= sphere;
+01212 }
+01213 <span class="keywordflow">else</span>
+01214 {
+01215 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelo0">Bones</a>[boneId]._MaxSphere.setUnion(Bones[boneId]._MaxSphere, sphere);
+01216 }
+01217 }
+01218 }
+01219 }
+01220 }
+01221
+01222 <span class="comment">// MRM Max skin setup.</span>
+01223 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr1">_DefaultMRMSetup</a>)
+01224 {
+01225 <span class="comment">// compile LevelDetail.</span>
+01226 <span class="keywordflow">if</span>(<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.MaxFaceUsed==0)
+01227 <span class="comment">// build a bug-free level detail</span>
+01228 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModeld0">buildDefaultLevelDetail</a>();
+01229 <span class="keywordflow">else</span>
+01230 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr3">_LevelDetail</a>.compileDistanceSetup();
+01231 }
+01232
+01233 <span class="comment">// alloc array.</span>
+01234 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr4">_OpaqueSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_0">clear</a>();
+01235 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr9">_TransparentSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_0">clear</a>();
+01236 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr0">_AnimDetailSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_0">clear</a>();
+01237 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr4">_OpaqueSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_1">resize</a>(opaqueSize);
+01238 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr9">_TransparentSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_1">resize</a>(transparentSize);
+01239 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr0">_AnimDetailSkins</a>.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_1">resize</a>(animDetailSize);
+01240
+01241 <span class="comment">// ReParse, to fill array.</span>
+01242 <a class="code" href="a04558.html#a15">uint</a> opaqueId= 0;
+01243 <a class="code" href="a04558.html#a15">uint</a> transparentId= 0;
+01244 <a class="code" href="a04558.html#a15">uint</a> animDetailId= 0;
+01245 <span class="keywordflow">for</span>(it= <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.begin();it!=<a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr6">_Skins</a>.end();it++)
+01246 {
+01247 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *skin= *it;
+01248
+01249 <span class="comment">// If the skin is hidden, don't add it to any list!</span>
+01250 <span class="keywordflow">if</span>(skin-&gt;getVisibility()==CHrcTrav::Hide)
+01251 <span class="keywordflow">continue</span>;
+01252
+01253 <span class="comment">// if transparent, then must fill in transparent list.</span>
+01254 <span class="keywordflow">if</span>(skin-&gt;isTransparent())
+01255 {
+01256 <a class="code" href="a04199.html#a6">nlassert</a>(transparentId&lt;transparentSize);
+01257 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr9">_TransparentSkins</a>[transparentId++]= skin;
+01258 }
+01259 <span class="comment">// else may fill in opaquelist. NB: for optimisation, don't add in opaqueList </span>
+01260 <span class="comment">// if added to the transperent list (all materials are rendered)</span>
+01261 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(skin-&gt;isOpaque())
+01262 {
+01263 <a class="code" href="a04199.html#a6">nlassert</a>(opaqueId&lt;opaqueSize);
+01264 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr4">_OpaqueSkins</a>[opaqueId++]= skin;
+01265 }
+01266
+01267 <span class="comment">// if animDetailable, then must fill list</span>
+01268 <span class="keywordflow">if</span>(skin-&gt;isAnimDetailable())
+01269 {
+01270 <a class="code" href="a04199.html#a6">nlassert</a>(animDetailId&lt;animDetailSize);
+01271 <a class="code" href="a03399.html#NL3D_1_1CSkeletonModelr0">_AnimDetailSkins</a>[animDetailId++]= skin;
+01272 }
+01273 }
+01274
+01275 <span class="comment">// set the Transparency to the skeleton only if has at least one transparent skin</span>
+01276 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela43">setTransparency</a>( transparentSize&gt;0 );
+01277 }
+01278 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_1" doxytag="NL3D::CSkeletonModel::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> CMatrix *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::CSkeletonModel::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">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> CMatrix &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> CMatrix &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::CSkeletonModel::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::CSkeletonModel::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_1CSkeletonModeln1" doxytag="NL3D::CSkeletonModel::CSkeletonShape" ></a><p>
+<table class="mdTable" 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="a03402.html">CSkeletonShape</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="a06394.html#l00357">357</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_2" doxytag="NL3D::CSkeletonModel::_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_1CSkeletonModelz942_0" doxytag="NL3D::CSkeletonModel::_AnimCtrlUsage" ></a><p>
+<table class="mdTable" 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="a03399.html#NL3D_1_1CSkeletonModelz942_0">NL3D::CSkeletonModel::_AnimCtrlUsage</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="a06394.html#l00508">508</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00075">CSkeletonModel()</a>, <a class="el" href="a06393.html#l01745">setBoneAnimCtrl()</a>, and <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelr0" doxytag="NL3D::CSkeletonModel::_AnimDetailSkins" ></a><p>
+<table class="mdTable" 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="a03000.html">TTransformArray</a> <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr0">NL3D::CSkeletonModel::_AnimDetailSkins</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="a06394.html#l00386">386</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_4" doxytag="NL3D::CSkeletonModel::_BoneToCompute" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt;<a class="el" href="a03400.html">CBoneCompute</a>&gt; <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz936_4">NL3D::CSkeletonModel::_BoneToCompute</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+List of bones to compute.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00429">429</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01987">computeWorldBBoxForShadow()</a>, <a class="el" href="a06394.html#l00191">getNumBoneComputed()</a>, <a class="el" href="a06393.html#l00165">initBoneUsages()</a>, <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l00280">updateBoneToCompute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_5" doxytag="NL3D::CSkeletonModel::_BoneToComputeDirty" ></a><p>
+<table class="mdTable" 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="a03399.html#NL3D_1_1CSkeletonModelz936_5">NL3D::CSkeletonModel::_BoneToComputeDirty</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Flag set if the MRSkeleton lod change, or if a new bone Usage change (only if was 0 or become 0).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00431">431</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00213">decBoneUsage()</a>, <a class="el" href="a06393.html#l00189">incBoneUsage()</a>, <a class="el" href="a06393.html#l00165">initBoneUsages()</a>, <a class="el" href="a06393.html#l01014">setDisplayLodCharacterFlag()</a>, <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l00280">updateBoneToCompute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_6" doxytag="NL3D::CSkeletonModel::_BoneUsage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt;<a class="el" href="a03401.html">CBoneUsage</a>&gt; <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz936_6">NL3D::CSkeletonModel::_BoneUsage</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The list of BoneUsage. Updated by Meshes, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz920_3">stickObject()</a>, and lod changes.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00427">427</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01665">computeCurrentBBox()</a>, <a class="el" href="a06393.html#l00213">decBoneUsage()</a>, <a class="el" href="a06393.html#l00391">forceComputeBone()</a>, <a class="el" href="a06393.html#l00487">getActiveBoneSkinMatrix()</a>, <a class="el" href="a06393.html#l00189">incBoneUsage()</a>, <a class="el" href="a06393.html#l00165">initBoneUsages()</a>, <a class="el" href="a06393.html#l00374">isBoneComputed()</a>, and <a class="el" href="a06393.html#l00280">updateBoneToCompute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1045_0" doxytag="NL3D::CSkeletonModel::_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::CSkeletonModel::_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">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_1CSkeletonModelz938_3" doxytag="NL3D::CSkeletonModel::_CLodInstance" ></a><p>
+<table class="mdTable" 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="a02799.html">CLodCharacterInstance</a> <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz938_3">NL3D::CSkeletonModel::_CLodInstance</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The Lod instance. -1 by default.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00470">470</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01043">computeCLodVertexAlpha()</a>, <a class="el" href="a06393.html#l00972">computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l00866">computeLodTexture()</a>, <a class="el" href="a06394.html#l00247">getLodCharacterAnimId()</a>, <a class="el" href="a06394.html#l00249">getLodCharacterAnimTime()</a>, <a class="el" href="a06394.html#l00243">getLodCharacterShape()</a>, <a class="el" href="a06394.html#l00253">getLodCharacterWrapMode()</a>, <a class="el" href="a06393.html#l01295">renderCLod()</a>, <a class="el" href="a06393.html#l01014">setDisplayLodCharacterFlag()</a>, <a class="el" href="a06393.html#l00953">setLodCharacterAnimId()</a>, <a class="el" href="a06393.html#l00959">setLodCharacterAnimTime()</a>, <a class="el" href="a06393.html#l00837">setLodCharacterShape()</a>, and <a class="el" href="a06393.html#l00965">setLodCharacterWrapMode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz938_4" doxytag="NL3D::CSkeletonModel::_CLodVertexAlphaDirty" ></a><p>
+<table class="mdTable" 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="a03399.html#NL3D_1_1CSkeletonModelz938_4">NL3D::CSkeletonModel::_CLodVertexAlphaDirty</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+dirt when a bindSkin/stickObject/detachSkeletonSon is called
+<p>
+Definition at line <a class="el" href="a06394.html#l00474">474</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00075">CSkeletonModel()</a>, <a class="el" href="a06394.html#l00476">dirtLodVertexAlpha()</a>, and <a class="el" href="a06393.html#l01295">renderCLod()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_7" doxytag="NL3D::CSkeletonModel::_CurLod" ></a><p>
+<table class="mdTable" 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="a03399.html#NL3D_1_1CSkeletonModelz936_7">NL3D::CSkeletonModel::_CurLod</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The current lod activated for this skeleton.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00433">433</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00165">initBoneUsages()</a>, <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l00280">updateBoneToCompute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_8" doxytag="NL3D::CSkeletonModel::_CurLodInterp" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz936_8">NL3D::CSkeletonModel::_CurLodInterp</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The current lod Interpolation Value for this skeleton.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00435">435</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00165">initBoneUsages()</a>, and <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelr1" doxytag="NL3D::CSkeletonModel::_DefaultMRMSetup" ></a><p>
+<table class="mdTable" 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="a03399.html#NL3D_1_1CSkeletonModelr1">NL3D::CSkeletonModel::_DefaultMRMSetup</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="a06394.html#l00380">380</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01589">changeMRMDistanceSetup()</a>, <a class="el" href="a06393.html#l00075">CSkeletonModel()</a>, <a class="el" href="a06393.html#l01610">resetDefaultMRMDistanceSetup()</a>, and <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz938_5" doxytag="NL3D::CSkeletonModel::_DisplayedAsLodCharacter" ></a><p>
+<table class="mdTable" 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="a03399.html#NL3D_1_1CSkeletonModelz938_5">NL3D::CSkeletonModel::_DisplayedAsLodCharacter</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True if the skeleton model and his skins have to be displayed with a <a class="el" href="a02801.html">CLodCharacterShape</a>, instead of the std way This state is modified early during the HRC Traversal. Because Clip traversal need this result.
+<p>
+Definition at line <a class="el" href="a06394.html#l00463">463</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00075">CSkeletonModel()</a>, <a class="el" href="a06394.html#l00259">isDisplayedAsLodCharacter()</a>, and <a class="el" href="a06393.html#l01014">setDisplayLodCharacterFlag()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_4" doxytag="NL3D::CSkeletonModel::_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_1CWaveMakerModelz1032_12" doxytag="NL3D::CSkeletonModel::_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">computeCLodVertexAlpha()</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, <a class="el" href="a06393.html#l00543">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::CSkeletonModel::_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">bindSkin()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, <a class="el" href="a06393.html#l00391">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">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::CSkeletonModel::_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::CSkeletonModel::_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_1CSkeletonModelr2" doxytag="NL3D::CSkeletonModel::_ItSkeletonInScene" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::list&lt;<a class="el" href="a03399.html">CSkeletonModel</a>*&gt;::iterator <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr2">NL3D::CSkeletonModel::_ItSkeletonInScene</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="a06394.html#l00367">367</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00154">initModel()</a>, and <a class="el" href="a06393.html#l00123">~CSkeletonModel()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelr3" doxytag="NL3D::CSkeletonModel::_LevelDetail" ></a><p>
+<table class="mdTable" 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="a02959.html">CMRMLevelDetail</a> <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr3">NL3D::CSkeletonModel::_LevelDetail</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="a06394.html#l00389">389</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_2" doxytag="NL3D::CSkeletonModel::_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">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::CSkeletonModel::_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::CSkeletonModel::_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::CSkeletonModel::_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::CSkeletonModel::_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::CSkeletonModel::_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_1CSkeletonModelz938_6" doxytag="NL3D::CSkeletonModel::_LodCharacterDistance" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz938_6">NL3D::CSkeletonModel::_LodCharacterDistance</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see setLodCharacterDistance
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00466">466</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00972">computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l00075">CSkeletonModel()</a>, <a class="el" href="a06394.html#l00267">getLodCharacterDistance()</a>, <a class="el" href="a06393.html#l01014">setDisplayLodCharacterFlag()</a>, and <a class="el" href="a06393.html#l00827">setLodCharacterDistance()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz936_9" doxytag="NL3D::CSkeletonModel::_LodInterpMultiplier" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz936_9">NL3D::CSkeletonModel::_LodInterpMultiplier</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For lod interpolation. Inverse of distance. If 0, disable interpolation.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00437">437</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00648">getInterpolationDistance()</a>, <a class="el" href="a06393.html#l00165">initBoneUsages()</a>, <a class="el" href="a06393.html#l00637">setInterpolationDistance()</a>, <a class="el" href="a06393.html#l00658">traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l00280">updateBoneToCompute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelz938_7" doxytag="NL3D::CSkeletonModel::_OOLodCharacterDistance" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz938_7">NL3D::CSkeletonModel::_OOLodCharacterDistance</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+recompute _CLodVertexAlpha, ignoring _CLodVertexAlphaDirty
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00467">467</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00972">computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l00075">CSkeletonModel()</a>, and <a class="el" href="a06393.html#l00827">setLodCharacterDistance()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelr4" doxytag="NL3D::CSkeletonModel::_OpaqueSkins" ></a><p>
+<table class="mdTable" 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="a03000.html">TTransformArray</a> <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr4">NL3D::CSkeletonModel::_OpaqueSkins</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="a06394.html#l00383">383</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01885">renderShadowSkins()</a>, <a class="el" href="a06393.html#l01390">renderSkins()</a>, and <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelp0" doxytag="NL3D::CSkeletonModel::_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_1CSkeletonModelr5" doxytag="NL3D::CSkeletonModel::_ShadowMap" ></a><p>
+<table class="mdTable" 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="a03370.html">CShadowMap</a>* <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr5">NL3D::CSkeletonModel::_ShadowMap</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="a06394.html#l00513">513</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelr6" doxytag="NL3D::CSkeletonModel::_Skins" ></a><p>
+<table class="mdTable" 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#NL3D_1_1CSkeletonModely2">TTransformSet</a> <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr6">NL3D::CSkeletonModel::_Skins</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The skins.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00373">373</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00497">bindSkin()</a>, <a class="el" href="a06393.html#l01043">computeCLodVertexAlpha()</a>, <a class="el" href="a06393.html#l00866">computeLodTexture()</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>, and <a class="el" href="a06393.html#l00123">~CSkeletonModel()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelr7" doxytag="NL3D::CSkeletonModel::_SkinToRenderDirty" ></a><p>
+<table class="mdTable" 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="a03399.html#NL3D_1_1CSkeletonModelr7">NL3D::CSkeletonModel::_SkinToRenderDirty</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="a06394.html#l00378">378</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00075">CSkeletonModel()</a>, <a class="el" href="a06394.html#l00151">dirtSkinRenderLists()</a>, and <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelr8" doxytag="NL3D::CSkeletonModel::_StickedObjects" ></a><p>
+<table class="mdTable" 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#NL3D_1_1CSkeletonModely2">TTransformSet</a> <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr8">NL3D::CSkeletonModel::_StickedObjects</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The StickedObjects.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06394.html#l00375">375</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01043">computeCLodVertexAlpha()</a>, <a class="el" href="a06393.html#l01987">computeWorldBBoxForShadow()</a>, <a class="el" href="a06393.html#l00573">detachSkeletonSon()</a>, <a class="el" href="a06393.html#l02062">renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06393.html#l00543">stickObjectEx()</a>, and <a class="el" href="a06393.html#l00123">~CSkeletonModel()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CSkeletonModelr9" doxytag="NL3D::CSkeletonModel::_TransparentSkins" ></a><p>
+<table class="mdTable" 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="a03000.html">TTransformArray</a> <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelr9">NL3D::CSkeletonModel::_TransparentSkins</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="a06394.html#l00384">384</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01885">renderShadowSkins()</a>, <a class="el" href="a06393.html#l01390">renderSkins()</a>, and <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CWaveMakerModelz1045_2" doxytag="NL3D::CSkeletonModel::_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_1CWaveMakerModelz1043_9" doxytag="NL3D::CSkeletonModel::_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::CSkeletonModel::_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::CSkeletonModel::_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="NL3D_1_1CSkeletonModelo0" doxytag="NL3D::CSkeletonModel::Bones" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt;<a class="el" href="a02277.html">CBone</a>&gt; <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelo0">NL3D::CSkeletonModel::Bones</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The list of <a class="el" href="a02277.html">CBone</a>, created from the <a class="el" href="a03402.html">CSkeletonShape</a>. They are odered in depth-first order.
+<p>
+Definition at line <a class="el" href="a06394.html#l00098">98</a> of file <a class="el" href="a06394.html">skeleton_model.h</a>.
+<p>
+Referenced by <a class="el" href="a05931.html#l00199">NL3D::CLodCharacterBuilder::applySkin()</a>, <a class="el" href="a06393.html#l00807">computeAllBones()</a>, <a class="el" href="a06011.html#l01062">NL3D::CMeshMRMSkinnedGeom::computeBonesId()</a>, <a class="el" href="a06005.html#l02293">NL3D::CMeshMRMGeom::computeBonesId()</a>, <a class="el" href="a05989.html#l01456">NL3D::CMeshGeom::computeBonesId()</a>, <a class="el" href="a06393.html#l01043">computeCLodVertexAlpha()</a>, <a class="el" href="a06393.html#l01665">computeCurrentBBox()</a>, <a class="el" href="a06393.html#l01620">computeRenderedBBox()</a>, <a class="el" href="a06395.html#l00154">NL3D::CSkeletonShape::createInstance()</a>, <a class="el" href="a06398.html#l00066">NL3D::CSkeletonUser::CSkeletonUser()</a>, <a class="el" href="a06393.html#l00266">decForcedBoneUsageAndParents()</a>, <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06393.html#l00237">flagBoneAndParents()</a>, <a class="el" href="a06393.html#l00391">forceComputeBone()</a>, <a class="el" href="a06393.html#l00487">getActiveBoneSkinMatrix()</a>, <a class="el" href="a06393.html#l01764">getBoneAnimCtrl()</a>, <a class="el" href="a06483.html#l00219">NL3D::CTargetAnimCtrl::getCurrentLSRotationFromBone()</a>, <a class="el" href="a06393.html#l01722">getLightHotSpotInWorld()</a>, <a class="el" href="a06393.html#l00253">incForcedBoneUsageAndParents()</a>, <a class="el" href="a06393.html#l00165">initBoneUsages()</a>, <a class="el" href="a06393.html#l00061">registerToChannelMixer()</a>, <a class="el" href="a06393.html#l01745">setBoneAnimCtrl()</a>, <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>, <a class="el" href="a06393.html#l00280">updateBoneToCompute()</a>, <a class="el" href="a06011.html#l01254">NL3D::CMeshMRMSkinnedGeom::updateSkeletonUsage()</a>, <a class="el" href="a06005.html#l02535">NL3D::CMeshMRMGeom::updateSkeletonUsage()</a>, <a class="el" href="a05989.html#l01596">NL3D::CMeshGeom::updateSkeletonUsage()</a>, <a class="el" href="a06393.html#l01117">updateSkinRenderLists()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypeo0" doxytag="NL3D::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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::CSkeletonModel::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">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="a06394.html">skeleton_model.h</a><li><a class="el" href="a06393.html">skeleton_model.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 07:46:05 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>