aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02278.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a02278.html')
-rw-r--r--docs/doxygen/nel/a02278.html2755
1 files changed, 2755 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02278.html b/docs/doxygen/nel/a02278.html
new file mode 100644
index 00000000..0598cdbf
--- /dev/null
+++ b/docs/doxygen/nel/a02278.html
@@ -0,0 +1,2755 @@
+<!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::ITransformable 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::ITransformable Class Reference</h1><code>#include &lt;<a class="el" href="a06575.html">transformable.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NL3D::ITransformable:
+<p><center><img src="a02278.png" usemap="#NL3D::ITransformable_map" border="0" alt=""></center>
+<map name="NL3D::ITransformable_map">
+<area href="a02197.html" alt="NL3D::IAnimatable" shape="rect" coords="113,0,329,24">
+<area href="a02277.html" alt="NL3D::CBone" shape="rect" coords="0,112,216,136">
+<area href="a02316.html" alt="NL3D::CTransform" shape="rect" coords="226,112,442,136">
+<area href="a02315.html" alt="NL3D::CCamera" shape="rect" coords="452,168,668,192">
+<area href="a02362.html" alt="NL3D::CCluster" shape="rect" coords="452,224,668,248">
+<area href="a02713.html" alt="NL3D::CLandscapeModel" shape="rect" coords="452,280,668,304">
+<area href="a03093.html" alt="NL3D::CPointLightModel" shape="rect" coords="452,336,668,360">
+<area href="a03287.html" alt="NL3D::CQuadGridClipManager" shape="rect" coords="452,392,668,416">
+<area href="a03340.html" alt="NL3D::CRootModel" shape="rect" coords="452,448,668,472">
+<area href="a02537.html" alt="NL3D::CTransformShape" shape="rect" coords="452,504,668,528">
+<area href="a03672.html" alt="NL3D::CVegetableBlendLayerModel" shape="rect" coords="452,560,668,584">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Something which can be transformed in 3D space / animated. By default Transformmode is RotQuat. <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="a06575.html#l00054">54</a> of file <a class="el" href="a06575.html">transformable.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Herited from IAnimatable</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">TAnimValues</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2">OwnerBit</a> = IAnimatable::AnimValueLast,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0">AnimValueLast</a>
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Added values. <a href="#NL3D_1_1ITransformablez1087_0">More...</a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03542.html">ITrack</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_1">getDefaultTrack</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From <a class="el" href="a02197.html">IAnimatable</a>. Deriver must implement this. <a href="#NL3D_1_1ITransformablez1087_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03835.html">IAnimatedValue</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_2">getValue</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From <a class="el" href="a02197.html">IAnimatable</a>. <a href="#NL3D_1_1ITransformablez1087_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_3">getValueName</a> (<a class="el" href="a04558.html#a15">uint</a> valueId) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From <a class="el" href="a02197.html">IAnimatable</a>. <a href="#NL3D_1_1ITransformablez1087_3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_4">registerToChannelMixer</a> (<a class="el" href="a02335.html">CChannelMixer</a> *chanMixer, const std::string &amp;prefix)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From <a class="el" href="a02197.html">IAnimatable</a>. Deriver must implement this (channels may be detail-ed or not). <a href="#NL3D_1_1ITransformablez1087_4"></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="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>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>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>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea3">ITransformable</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. By default, RotQuat mode. <a href="#NL3D_1_1ITransformablea3"></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="a02278.html#NL3D_1_1ITransformablea4">~ITransformable</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 colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a> (<a class="el" href="a02335.html">CChannelMixer</a> *chanMixer, <a class="el" href="a04558.html#a15">uint</a> valueId, <a class="el" href="a04558.html#a15">uint</a> ownerValueId, const std::string &amp;prefix, bool detail)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02197.html#NL3D_1_1ITransformableb1">clearFlag</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method clear a bit in the bitset. <a href="#NL3D_1_1ITransformableb1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="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 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="a02278.html#NL3D_1_1ITransformabled0">clearTransformFlags</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="a02278.html#NL3D_1_1ITransformabled1">needCompute</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells if the matrix needs to be computed, ie, if data are modified. <a href="#NL3D_1_1ITransformabled1"></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="a02278.html#NL3D_1_1ITransformabled2">updateMatrix</a> () const </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="a02851.html">CMatrix</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler1">_LocalMatrixDate</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler2">_Mode</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02201.html">CAnimatedValueVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler3">_Pivot</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02201.html">CAnimatedValueVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler4">_Pos</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02201.html">CAnimatedValueVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler5">_RotEuler</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02851.html#NLMISC_1_1CMatrixw0">CMatrix::TRotOrder</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler6">_RotOrder</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02201.html">CAnimatedValueQuat</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler7">_RotQuat</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02201.html">CAnimatedValueVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformabler8">_Scale</a></td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_0" doxytag="NL3D::ITransformable::TAnimValues" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">NL3D::ITransformable::TAnimValues</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Added values.
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2" doxytag="OwnerBit" ></a>OwnerBit</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4" doxytag="PosValue" ></a>PosValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6" doxytag="RotEulerValue" ></a>RotEulerValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8" doxytag="RotQuatValue" ></a>RotQuatValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9" doxytag="ScaleValue" ></a>ScaleValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3" doxytag="PivotValue" ></a>PivotValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0" doxytag="AnimValueLast" ></a>AnimValueLast</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Reimplemented from <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_0">NL3D::IAnimatable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_0">NL3D::CCamera</a>, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0">NL3D::CMeshBaseInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_0">NL3D::CParticleSystemModel</a>, <a class="el" href="a03357.html#NL3D_1_1CSegRemanencew10">NL3D::CSegRemanence</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz918_0">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06575.html#l00280">280</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+<div class="fragment"><pre>00281 {
+00282 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2">OwnerBit</a>= IAnimatable::AnimValueLast,
+00283 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>,
+00284 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>,
+00285 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>,
+00286 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>,
+00287 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>,
+00288 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0">AnimValueLast</a>
+00289 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablew11" doxytag="NL3D::ITransformable::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>
+ </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">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_1ITransformablea3" doxytag="NL3D::ITransformable::ITransformable" ></a><p>
+<table class="mdTable" 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::ITransformable::ITransformable </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>
+Constructor. By default, RotQuat mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00037">37</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a06575.html#l00318">_LocalMatrixDate</a>, <a class="el" href="a06575.html#l00325">_Pivot</a>, <a class="el" href="a06575.html#l00322">_RotEuler</a>, <a class="el" href="a06575.html#l00323">_RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00038 {
+00039 <span class="comment">// Set number of animated values.</span>
+00040 IAnimatable::resize (AnimValueLast);
+00041
+00042 <span class="comment">// Deriver note: just copy this line in each ctor.</span>
+00043
+00044 <span class="comment">// Init default values.</span>
+00045 <a class="code" href="a02278.html#NL3D_1_1ITransformabler2">_Mode</a>= <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>;
+00046 <span class="comment">// matrix init to identity.</span>
+00047 <a class="code" href="a02278.html#NL3D_1_1ITransformabler4">_Pos</a>.Value= CVector::Null;
+00048 <a class="code" href="a02278.html#NL3D_1_1ITransformabler5">_RotEuler</a>.Value= CVector::Null;
+00049 <a class="code" href="a02278.html#NL3D_1_1ITransformabler7">_RotQuat</a>.Value= CQuat::Identity;
+00050 <a class="code" href="a02278.html#NL3D_1_1ITransformabler8">_Scale</a>.Value= CVector(1,1,1);
+00051 <a class="code" href="a02278.html#NL3D_1_1ITransformabler3">_Pivot</a>.Value= CVector::Null;
+00052
+00053 <a class="code" href="a02278.html#NL3D_1_1ITransformabler1">_LocalMatrixDate</a>= 0;
+00054 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea4" doxytag="NL3D::ITransformable::~ITransformable" ></a><p>
+<table class="mdTable" 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 NL3D::ITransformable::~<a class="el" href="a02278.html">ITransformable</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> [inline, virtual]</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="a06575.html#l00072">72</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+<div class="fragment"><pre>00072 {}
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1ITransformableb0" doxytag="NL3D::ITransformable::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="a02278.html#NL3D_1_1ITransformablez1087_1">getDefaultTrack</a>(valueId), valueId, ownerValueId, detail);
+00041 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformableb1" doxytag="NL3D::ITransformable::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">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_1ITransformabled0" doxytag="NL3D::ITransformable::clearTransformFlags" ></a><p>
+<table class="mdTable" 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::clearTransformFlags </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> [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="a06574.html#l00124">124</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a05434.html#l00233">NL3D::IAnimatable::clearFlag()</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>, and <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00141">updateMatrix()</a>.
+<p>
+<div class="fragment"><pre>00125 {
+00126 <a class="code" href="a02278.html#NL3D_1_1ITransformablea3">ITransformable</a> *self= const_cast&lt;ITransformable*&gt;(<span class="keyword">this</span>);
+00127
+00128 <span class="comment">// clear my falgs.</span>
+00129 self-&gt;clearFlag(PosValue);
+00130 self-&gt;clearFlag(RotEulerValue);
+00131 self-&gt;clearFlag(RotQuatValue);
+00132 self-&gt;clearFlag(ScaleValue);
+00133 self-&gt;clearFlag(PivotValue);
+00134
+00135 <span class="comment">// We are OK!</span>
+00136 self-&gt;clearFlag(OwnerBit);
+00137 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea0" doxytag="NL3D::ITransformable::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]</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">_LocalMatrixDate</a>, <a class="el" href="a06575.html#l00334">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;<a class="code" href="a02278.html#NL3D_1_1ITransformabler1">_LocalMatrixDate</a> || <a class="code" href="a02278.html#NL3D_1_1ITransformabled1">needCompute</a>();
+00085 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_1" doxytag="NL3D::ITransformable::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"> virtual <a class="el" href="a03542.html">ITrack</a>* NL3D::ITransformable::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> [pure virtual]</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>. Deriver must implement this.
+<p>
+
+<p>
+Implements <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_1">NL3D::IAnimatable</a>.
+<p>
+Implemented in <a class="el" href="a02277.html#NL3D_1_1CBonez39_0">NL3D::CBone</a>, <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="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1023_0">NL3D::CTransform</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>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea1" doxytag="NL3D::ITransformable::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]</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">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="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea2" doxytag="NL3D::ITransformable::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]</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">_LocalMatrixDate</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a06574.html#l00141">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> <a class="code" href="a02278.html#NL3D_1_1ITransformabler1">_LocalMatrixDate</a>;
+00094 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_0" doxytag="NL3D::ITransformable::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]</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">_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <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>, 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> <a class="code" href="a02278.html#NL3D_1_1ITransformabler3">_Pivot</a>.Value;
+00259 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_1" doxytag="NL3D::ITransformable::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]</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">_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <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>, 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= <a class="code" href="a02278.html#NL3D_1_1ITransformabler3">_Pivot</a>.Value;
+00228 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee0" doxytag="NL3D::ITransformable::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]</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">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::ITransformable::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]</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">RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06737.html#l00117">NL3D::CWaterModel::getHeight()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, and <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00232 {
+00233 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00234 <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformabler4">_Pos</a>.Value;
+00235 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_3" doxytag="NL3D::ITransformable::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]</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">RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">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= <a class="code" href="a02278.html#NL3D_1_1ITransformabler4">_Pos</a>.Value;
+00204 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee1" doxytag="NL3D::ITransformable::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]</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">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_1ITransformablez1083_4" doxytag="NL3D::ITransformable::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]</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">_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">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> <a class="code" href="a02278.html#NL3D_1_1ITransformabler5">_RotEuler</a>.Value;
+00241 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_5" doxytag="NL3D::ITransformable::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]</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">_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">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= <a class="code" href="a02278.html#NL3D_1_1ITransformabler5">_RotEuler</a>.Value;
+00210 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee2" doxytag="NL3D::ITransformable::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]</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">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::ITransformable::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]</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">_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> <a class="code" href="a02278.html#NL3D_1_1ITransformabler6">_RotOrder</a>;
+00197 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_7" doxytag="NL3D::ITransformable::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]</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">_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">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> <a class="code" href="a02278.html#NL3D_1_1ITransformabler7">_RotQuat</a>.Value;
+00247 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_8" doxytag="NL3D::ITransformable::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]</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">_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">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= <a class="code" href="a02278.html#NL3D_1_1ITransformabler7">_RotQuat</a>.Value;
+00216 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee3" doxytag="NL3D::ITransformable::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]</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">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::ITransformable::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]</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">RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">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> <a class="code" href="a02278.html#NL3D_1_1ITransformabler8">_Scale</a>.Value;
+00253 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_10" doxytag="NL3D::ITransformable::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]</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">RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">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= <a class="code" href="a02278.html#NL3D_1_1ITransformabler8">_Scale</a>.Value;
+00222 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee4" doxytag="NL3D::ITransformable::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]</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">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_1ITransformablez1083_11" doxytag="NL3D::ITransformable::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]</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">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> <a class="code" href="a02278.html#NL3D_1_1ITransformabler2">_Mode</a>;
+00192 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_2" doxytag="NL3D::ITransformable::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]</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">_Pivot</a>, <a class="el" href="a06575.html#l00322">_RotEuler</a>, <a class="el" href="a06575.html#l00323">_RotQuat</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">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;<a class="code" href="a02278.html#NL3D_1_1ITransformabler4">_Pos</a>;
+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;<a class="code" href="a02278.html#NL3D_1_1ITransformabler5">_RotEuler</a>;
+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;<a class="code" href="a02278.html#NL3D_1_1ITransformabler7">_RotQuat</a>;
+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;<a class="code" href="a02278.html#NL3D_1_1ITransformabler8">_Scale</a>;
+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;<a class="code" href="a02278.html#NL3D_1_1ITransformabler3">_Pivot</a>;
+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::ITransformable::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]</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">getPivotValueName()</a>, <a class="el" href="a06574.html#l00097">getPosValueName()</a>, <a class="el" href="a06574.html#l00102">getRotEulerValueName()</a>, <a class="el" href="a06574.html#l00107">getRotQuatValueName()</a>, <a class="el" href="a06574.html#l00112">getScaleValueName()</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">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_1ITransformablez5_0" doxytag="NL3D::ITransformable::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">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_1ITransformablez1085_0" doxytag="NL3D::ITransformable::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"></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">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">RotQuat</a>, <a class="el" href="a06575.html#l00174">setMatrix()</a>, <a class="el" href="a06575.html#l00162">setPivot()</a>, <a class="el" href="a06575.html#l00114">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">setRotQuat()</a>, and <a class="el" href="a06575.html#l00145">setScale()</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00206">NL3D::CTransformableUser::lookAt()</a>, and <a class="el" href="a05530.html#l00164">NL3D::CCamera::update()</a>.
+<p>
+<div class="fragment"><pre>00170 {
+00171 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat || _Mode==DirectMatrix);
+00172
+00173 <span class="comment">// Roll matrix</span>
+00174 <a class="code" href="a02851.html">CMatrix</a> rollMT;
+00175 rollMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+00176 <span class="keywordflow">if</span> (roll!=0.f)
+00177 rollMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_3">rotateY</a> (roll);
+00178
+00179 <span class="comment">// Make the target base</span>
+00180 CVector j=target;
+00181 j-=eye;
+00182 j.normalize();
+00183 CVector i=j^CVector (0,0,1.f);
+00184 CVector k=i^j;
+00185 k.normalize();
+00186 i=j^k;
+00187 i.normalize();
+00188
+00189 <span class="comment">// Make the target matrix</span>
+00190 <a class="code" href="a02851.html">CMatrix</a> targetMT;
+00191 targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+00192 targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a> (i, j, k);
+00193 targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_4">setPos</a> (eye);
+00194
+00195 <span class="comment">// Compose matrix</span>
+00196 targetMT*=rollMT;
+00197
+00198 <span class="comment">// Set the matrix</span>
+00199 <span class="keywordflow">if</span>(<a class="code" href="a02278.html#NL3D_1_1ITransformabler2">_Mode</a>==<a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>)
+00200 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_0">setMatrix</a> (targetMT);
+00201 <span class="keywordflow">else</span>
+00202 {
+00203 <span class="comment">// transfrom to quaternion mode.</span>
+00204 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(1,1,1));
+00205 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_2">setPivot</a>(CVector::Null);
+00206 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_4">setPos</a>(targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>());
+00207 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_7">setRotQuat</a>(targetMT.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_11">getRot</a>());
+00208 }
+00209 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabled1" doxytag="NL3D::ITransformable::needCompute" ></a><p>
+<table class="mdTable" 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::needCompute </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, private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Tells if the matrix needs to be computed, ie, if data are modified.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00334">334</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>, and <a class="el" href="a05434.html#l00184">NL3D::IAnimatable::isTouched()</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00082">compareMatrixDate()</a>, and <a class="el" href="a06574.html#l00141">updateMatrix()</a>.
+<p>
+<div class="fragment"><pre>00335 {
+00336 <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformabler2">_Mode</a>!=<a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a> &amp;&amp; <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_0">isTouched</a>(OwnerBit);
+00337 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_4" doxytag="NL3D::ITransformable::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"> virtual void NL3D::ITransformable::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> [pure virtual]</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>. Deriver must implement this (channels may be detail-ed or not).
+<p>
+
+<p>
+Implements <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_4">NL3D::IAnimatable</a>.
+<p>
+Implemented in <a class="el" href="a02277.html#NL3D_1_1CBonez39_1">NL3D::CBone</a>, <a class="el" href="a02315.html#NL3D_1_1CCameraz48_4">NL3D::CCamera</a>, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_1">NL3D::CMeshBaseInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_6">NL3D::CParticleSystemModel</a>, <a class="el" href="a03357.html#NL3D_1_1CSegRemanencea34">NL3D::CSegRemanence</a>, <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz918_1">NL3D::CSkeletonModel</a>, and <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1023_0">NL3D::CTransform</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez5_1" doxytag="NL3D::ITransformable::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_1ITransformablez5_2" doxytag="NL3D::ITransformable::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::ITransformable::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_1ITransformablez1081_0" doxytag="NL3D::ITransformable::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]</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">_LocalMatrixDate</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00169">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="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a>= mat;
+00178 <span class="comment">// The matrix has changed.</span>
+00179 <a class="code" href="a02278.html#NL3D_1_1ITransformabler1">_LocalMatrixDate</a>++;
+00180 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_1" doxytag="NL3D::ITransformable::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]</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">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::ITransformable::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]</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">_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>, <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="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">lookAt()</a>, <a class="el" href="a06577.html#l00132">NL3D::CTransformableUser::setPivot()</a>, and <a class="el" href="a06575.html#l00169">setPivot()</a>.
+<p>
+<div class="fragment"><pre>00163 {
+00164 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00165 <a class="code" href="a02278.html#NL3D_1_1ITransformabler3">_Pivot</a>.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::ITransformable::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]</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">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::ITransformable::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]</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">PosValue</a>, <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="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">lookAt()</a>, <a class="el" href="a06577.html#l00097">NL3D::CTransformableUser::setPos()</a>, <a class="el" href="a06575.html#l00121">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 <a class="code" href="a02278.html#NL3D_1_1ITransformabler4">_Pos</a>.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::ITransformable::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]</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">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::ITransformable::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]</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">_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">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">setRotEuler()</a>.
+<p>
+<div class="fragment"><pre>00127 {
+00128 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler);
+00129 <a class="code" href="a02278.html#NL3D_1_1ITransformabler5">_RotEuler</a>.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::ITransformable::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]</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">_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">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">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 <a class="code" href="a02278.html#NL3D_1_1ITransformabler7">_RotQuat</a>.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::ITransformable::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]</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">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::ITransformable::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]</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">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::ITransformable::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]</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">RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">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">lookAt()</a>, <a class="el" href="a06577.html#l00128">NL3D::CTransformableUser::setScale()</a>, and <a class="el" href="a06575.html#l00152">setScale()</a>.
+<p>
+<div class="fragment"><pre>00146 {
+00147 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00148 <a class="code" href="a02278.html#NL3D_1_1ITransformabler8">_Scale</a>.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::ITransformable::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]</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">_RotOrder</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">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 <a class="code" href="a02278.html#NL3D_1_1ITransformabler2">_Mode</a>= mode;
+00103 <a class="code" href="a02278.html#NL3D_1_1ITransformabler6">_RotOrder</a>= 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_1ITransformablez5_3" doxytag="NL3D::ITransformable::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">setPivot()</a>, <a class="el" href="a06575.html#l00114">setPos()</a>, <a class="el" href="a05531.html#l00147">NL3D::CCamera::setRoll()</a>, <a class="el" href="a06575.html#l00126">setRotEuler()</a>, <a class="el" href="a06575.html#l00138">setRotQuat()</a>, <a class="el" href="a06575.html#l00145">setScale()</a>, <a class="el" href="a05531.html#l00135">NL3D::CCamera::setTargetPos()</a>, <a class="el" href="a06575.html#l00100">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_1ITransformabled2" doxytag="NL3D::ITransformable::updateMatrix" ></a><p>
+<table class="mdTable" 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::updateMatrix </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> [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="a06574.html#l00141">141</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a06575.html#l00318">_LocalMatrixDate</a>, <a class="el" href="a06575.html#l00325">_Pivot</a>, <a class="el" href="a06575.html#l00322">_RotEuler</a>, <a class="el" href="a06575.html#l00317">_RotOrder</a>, <a class="el" href="a06575.html#l00323">_RotQuat</a>, <a class="el" href="a06574.html#l00124">clearTransformFlags()</a>, <a class="el" href="a05972.html#l00200">NLMISC::CMatrix::identity()</a>, <a class="el" href="a06575.html#l00334">needCompute()</a>, <a class="el" href="a05972.html#l00618">NLMISC::CMatrix::rotate()</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">RotEuler</a>, <a class="el" href="a05972.html#l00644">NLMISC::CMatrix::scale()</a>, <a class="el" href="a05972.html#l00470">NLMISC::CMatrix::translate()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00076">getMatrix()</a>, and <a class="el" href="a06575.html#l00090">getMatrixDate()</a>.
+<p>
+<div class="fragment"><pre>00142 {
+00143 <span class="comment">// should we update?</span>
+00144 <span class="keywordflow">if</span>(<a class="code" href="a02278.html#NL3D_1_1ITransformabled1">needCompute</a>())
+00145 {
+00146 <a class="code" href="a02278.html#NL3D_1_1ITransformabled0">clearTransformFlags</a>();
+00147 <span class="comment">// update scale date (so sons are informed of change).</span>
+00148 <a class="code" href="a02278.html#NL3D_1_1ITransformabler1">_LocalMatrixDate</a>++;
+00149
+00150 <span class="comment">// update the matrix.</span>
+00151 <a class="code" href="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+00152
+00153 <span class="comment">// father scale will be herited.</span>
+00154 <span class="comment">// T*P</span>
+00155 <a class="code" href="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_7">translate</a>(<a class="code" href="a02278.html#NL3D_1_1ITransformabler4">_Pos</a>.Value+<a class="code" href="a02278.html#NL3D_1_1ITransformabler3">_Pivot</a>.Value);
+00156
+00157 <span class="comment">// R*S*P-1.</span>
+00158 <span class="keywordflow">if</span>(<a class="code" href="a02278.html#NL3D_1_1ITransformabler2">_Mode</a>==<a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">RotEuler</a>)
+00159 <a class="code" href="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_1">rotate</a>(<a class="code" href="a02278.html#NL3D_1_1ITransformabler5">_RotEuler</a>.Value, _RotOrder);
+00160 <span class="keywordflow">else</span>
+00161 <a class="code" href="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_1">rotate</a>(<a class="code" href="a02278.html#NL3D_1_1ITransformabler7">_RotQuat</a>.Value);
+00162 <a class="code" href="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_6">scale</a>(<a class="code" href="a02278.html#NL3D_1_1ITransformabler8">_Scale</a>.Value);
+00163 <a class="code" href="a02278.html#NL3D_1_1ITransformabler0">_LocalMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_7">translate</a>(-<a class="code" href="a02278.html#NL3D_1_1ITransformabler3">_Pivot</a>.Value);
+00164 }
+00165 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1ITransformabler0" doxytag="NL3D::ITransformable::_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="a02278.html#NL3D_1_1ITransformabler0">NL3D::ITransformable::_LocalMatrix</a><code> [mutable, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">NL3D::CTransform</a>.
+<p>
+Definition at line <a class="el" href="a06575.html#l00315">315</a> of file <a class="el" href="a06575.html">transformable.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabler1" doxytag="NL3D::ITransformable::_LocalMatrixDate" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a13">uint64</a> <a class="el" href="a02278.html#NL3D_1_1ITransformabler1">NL3D::ITransformable::_LocalMatrixDate</a><code> [mutable, 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="a06575.html#l00318">318</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00082">compareMatrixDate()</a>, <a class="el" href="a06575.html#l00090">getMatrixDate()</a>, <a class="el" href="a06574.html#l00037">ITransformable()</a>, <a class="el" href="a06575.html#l00174">setMatrix()</a>, and <a class="el" href="a06574.html#l00141">updateMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabler2" doxytag="NL3D::ITransformable::_Mode" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a02278.html#NL3D_1_1ITransformabler2">NL3D::ITransformable::_Mode</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="a06575.html#l00316">316</a> of file <a class="el" href="a06575.html">transformable.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabler3" doxytag="NL3D::ITransformable::_Pivot" ></a><p>
+<table class="mdTable" 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="a02201.html">CAnimatedValueVector</a> <a class="el" href="a02278.html#NL3D_1_1ITransformabler3">NL3D::ITransformable::_Pivot</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="a06575.html#l00325">325</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00224">getPivot()</a>, <a class="el" href="a06574.html#l00058">getValue()</a>, <a class="el" href="a06574.html#l00037">ITransformable()</a>, <a class="el" href="a06575.html#l00162">setPivot()</a>, and <a class="el" href="a06574.html#l00141">updateMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabler4" doxytag="NL3D::ITransformable::_Pos" ></a><p>
+<table class="mdTable" 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="a02201.html">CAnimatedValueVector</a> <a class="el" href="a02278.html#NL3D_1_1ITransformabler4">NL3D::ITransformable::_Pos</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="a06575.html#l00321">321</a> of file <a class="el" href="a06575.html">transformable.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabler5" doxytag="NL3D::ITransformable::_RotEuler" ></a><p>
+<table class="mdTable" 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="a02201.html">CAnimatedValueVector</a> <a class="el" href="a02278.html#NL3D_1_1ITransformabler5">NL3D::ITransformable::_RotEuler</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="a06575.html#l00322">322</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00206">getRotEuler()</a>, <a class="el" href="a06574.html#l00058">getValue()</a>, <a class="el" href="a06574.html#l00037">ITransformable()</a>, <a class="el" href="a06575.html#l00126">setRotEuler()</a>, and <a class="el" href="a06574.html#l00141">updateMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabler6" doxytag="NL3D::ITransformable::_RotOrder" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a02278.html#NL3D_1_1ITransformabler6">NL3D::ITransformable::_RotOrder</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="a06575.html#l00317">317</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00194">getRotOrder()</a>, <a class="el" href="a06575.html#l00100">setTransformMode()</a>, and <a class="el" href="a06574.html#l00141">updateMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabler7" doxytag="NL3D::ITransformable::_RotQuat" ></a><p>
+<table class="mdTable" 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="a02201.html">CAnimatedValueQuat</a> <a class="el" href="a02278.html#NL3D_1_1ITransformabler7">NL3D::ITransformable::_RotQuat</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="a06575.html#l00323">323</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00212">getRotQuat()</a>, <a class="el" href="a06574.html#l00058">getValue()</a>, <a class="el" href="a06574.html#l00037">ITransformable()</a>, <a class="el" href="a06575.html#l00138">setRotQuat()</a>, and <a class="el" href="a06574.html#l00141">updateMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformabler8" doxytag="NL3D::ITransformable::_Scale" ></a><p>
+<table class="mdTable" 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="a02201.html">CAnimatedValueVector</a> <a class="el" href="a02278.html#NL3D_1_1ITransformabler8">NL3D::ITransformable::_Scale</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="a06575.html#l00324">324</a> of file <a class="el" href="a06575.html">transformable.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06575.html">transformable.h</a><li><a class="el" href="a06574.html">transformable.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 08:41:17 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>