aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02277.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02277.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a02277.html')
-rw-r--r--docs/doxygen/nel/a02277.html3237
1 files changed, 3237 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02277.html b/docs/doxygen/nel/a02277.html
new file mode 100644
index 00000000..acbc59b7
--- /dev/null
+++ b/docs/doxygen/nel/a02277.html
@@ -0,0 +1,3237 @@
+<!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::CBone 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::CBone Class Reference</h1><code>#include &lt;<a class="el" href="a05492.html">bone.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NL3D::CBone:
+<p><center><img src="a02277.png" usemap="#NL3D::CBone_map" border="0" alt=""></center>
+<map name="NL3D::CBone_map">
+<area href="a02278.html" alt="NL3D::ITransformable" shape="rect" coords="0,56,134,80">
+<area href="a02197.html" alt="NL3D::IAnimatable" shape="rect" coords="0,0,134,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This is a bone, for skeleton animation, with information for result WorldMatrix. <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="a05492.html#l00096">96</a> of file <a class="el" href="a05492.html">bone.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Herited from IAnimatable</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">TAnimValues</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2">OwnerBit</a> = IAnimatable::AnimValueLast,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>,
+<a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0">AnimValueLast</a>
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Added values. <a href="#NL3D_1_1ITransformablez1087_0">More...</a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03835.html">IAnimatedValue</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_2">getValue</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From <a class="el" href="a02197.html">IAnimatable</a>. <a href="#NL3D_1_1ITransformablez1087_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_3">getValueName</a> (<a class="el" href="a04558.html#a15">uint</a> valueId) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From <a class="el" href="a02197.html">IAnimatable</a>. <a href="#NL3D_1_1ITransformablez1087_3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>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>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea0">CBone</a> (<a class="el" href="a02279.html">CBoneBase</a> *boneBase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea0">compareMatrixDate</a> (<a class="el" href="a04558.html#a13">uint64</a> callerDate) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea2">compute</a> (<a class="el" href="a02277.html">CBone</a> *parent, const <a class="el" href="a02851.html">CMatrix</a> &amp;rootMatrix, <a class="el" href="a03399.html">CSkeletonModel</a> *skeletonForAnimCtrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea3">forceAnimate</a> (<a class="el" href="a02335.html">CChannelMixer</a> &amp;chanMixer)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02279.html">CBoneBase</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea4">getBoneBase</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">retrieve the boneBase <a href="#NL3D_1_1CBonea4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const std::string &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea5">getBoneName</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">retrieve the boneName from BoneBase. <a href="#NL3D_1_1CBonea5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea6">getBoneSkinMatrix</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">retrieve the BoneSkinMatrix computed in <a class="el" href="a02277.html#NL3D_1_1CBonea2">compute()</a>. <a href="#NL3D_1_1CBonea6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea7">getFatherId</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">retrieve the fatherId from BoneBase. <a href="#NL3D_1_1CBonea7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea8">getLocalSkeletonMatrix</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">retrieve the matrix local to the skeleton, computed in <a class="el" href="a02277.html#NL3D_1_1CBonea2">compute()</a>. <a href="#NL3D_1_1CBonea8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="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>const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea11">getWorldMatrix</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">retrieve the WorldMatrix computed in <a class="el" href="a02277.html#NL3D_1_1CBonea2">compute()</a>. <a href="#NL3D_1_1CBonea11"></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="a02277.html#NL3D_1_1CBonea12">interpolateBoneSkinMatrix</a> (const <a class="el" href="a02851.html">CMatrix</a> &amp;otherMatrix, float interp)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea13">lodEnableChannels</a> (<a class="el" href="a02335.html">CChannelMixer</a> *chanMixer, bool enable)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">enable the channels (lodEnable) associated to this bone in the channelMixer. <a href="#NL3D_1_1CBonea13"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Herited from ITransformable</div></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="a02277.html#NL3D_1_1CBonez39_0">getDefaultTrack</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">retrive the default trak from skeleton shape. <a href="#NL3D_1_1CBonez39_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonez39_1">registerToChannelMixer</a> (<a class="el" href="a02335.html">CChannelMixer</a> *chanMixer, const std::string &amp;prefix)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">register the <a class="el" href="a02278.html">ITransformable</a> channels as detailled channels. <a href="#NL3D_1_1CBonez39_1"></a><br><br></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>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03836.html">IAnimCtrl</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoneo0">_AnimCtrl</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02291.html">NLMISC::CBSphere</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoneo1">_MaxSphere</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 Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt; <a class="el" href="a02279.html">CBoneBase</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02851.html">CMatrix</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner1">_BoneSkinMatrix</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02851.html">CMatrix</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner2">_LocalSkeletonMatrix</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner3">_PivotChannelId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner4">_PosChannelId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner5">_RotEulerChannelId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner6">_RotQuatChannelId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner7">_ScaleChannelId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02851.html">CMatrix</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBoner8">_WorldMatrix</a></td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_0" doxytag="NL3D::CBone::TAnimValues" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">NL3D::ITransformable::TAnimValues</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Added values.
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2" doxytag="OwnerBit" ></a>OwnerBit</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4" doxytag="PosValue" ></a>PosValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6" doxytag="RotEulerValue" ></a>RotEulerValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8" doxytag="RotQuatValue" ></a>RotQuatValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9" doxytag="ScaleValue" ></a>ScaleValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3" doxytag="PivotValue" ></a>PivotValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0" doxytag="AnimValueLast" ></a>AnimValueLast</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Reimplemented from <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_0">NL3D::IAnimatable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_0">NL3D::CCamera</a>, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0">NL3D::CMeshBaseInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_0">NL3D::CParticleSystemModel</a>, <a class="el" href="a03357.html#NL3D_1_1CSegRemanencew10">NL3D::CSegRemanence</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz918_0">NL3D::CSkeletonModel</a>.
+<p>
+Definition at line <a class="el" href="a06575.html#l00280">280</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+<div class="fragment"><pre>00281 {
+00282 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew2">OwnerBit</a>= IAnimatable::AnimValueLast,
+00283 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>,
+00284 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>,
+00285 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>,
+00286 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>,
+00287 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>,
+00288 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0">AnimValueLast</a>
+00289 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablew11" doxytag="NL3D::CBone::TTransformMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02278.html#NL3D_1_1ITransformablew11">NL3D::ITransformable::TTransformMode</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1" doxytag="DirectMatrix" ></a>DirectMatrix</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5" doxytag="RotEuler" ></a>RotEuler</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7" doxytag="RotQuat" ></a>RotQuat</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10" doxytag="TransformModeCount" ></a>TransformModeCount</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00058">58</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+Referenced by <a class="el" href="a06575.html#l00189">NL3D::ITransformable::getTransformMode()</a>.
+<p>
+<div class="fragment"><pre>00059 {
+00060 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>=0, <span class="comment">// DirectMatrixMode.</span>
+00061 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">RotEuler</a>, <span class="comment">// Matrix is computed from sperated composantes, with euler rotation.</span>
+00062 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>, <span class="comment">// Matrix is computed from sperated composantes, with quat rotation (default).</span>
+00063
+00064 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10">TransformModeCount</a>
+00065 };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CBonea0" doxytag="NL3D::CBone::CBone" ></a><p>
+<table class="mdTable" 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::CBone::CBone </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02279.html">CBoneBase</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>boneBase</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor. build a bone from a CBoneBase*. By defautl, a bone is in RotQuat transform mode. This ctor:<ul>
+<li>store a RefPtr on the bonebase (for getDefaultTracks() method). the refptr is just for nlassert.</li><li>copy the bonebase default track value into Animated Values Pos/Rot etc....</li></ul>
+
+<p>
+Definition at line <a class="el" href="a05491.html#l00093">93</a> of file <a class="el" href="a05491.html">bone.cpp</a>.
+<p>
+References <a class="el" href="a05492.html#l00166">_AnimCtrl</a>, <a class="el" href="a05492.html#l00173">_BoneBase</a>, <a class="el" href="a05492.html#l00187">_PivotChannelId</a>, <a class="el" href="a05492.html#l00183">_PosChannelId</a>, <a class="el" href="a05492.html#l00184">_RotEulerChannelId</a>, <a class="el" href="a05492.html#l00185">_RotQuatChannelId</a>, <a class="el" href="a05492.html#l00186">_ScaleChannelId</a>, <a class="el" href="a05442.html#l00279">NL3D::CAnimatedValueQuat</a>, <a class="el" href="a05442.html#l00277">NL3D::CAnimatedValueVector</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+<div class="fragment"><pre>00094 {
+00095 <a class="code" href="a04199.html#a6">nlassert</a>(boneBase);
+00096 <a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>= boneBase;
+00097
+00098 <span class="comment">// IAnimatable.</span>
+00099 IAnimatable::resize(AnimValueLast);
+00100
+00101 ITransformable::setTransformMode(ITransformable::RotQuat);
+00102 ITransformable::setPos( ((CAnimatedValueVector&amp;)<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultPos.getValue()).Value );
+00103 ITransformable::setRotQuat( ((CAnimatedValueQuat&amp;)<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultRotQuat.getValue()).Value );
+00104 ITransformable::setScale( ((CAnimatedValueVector&amp;)<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultScale.getValue()).Value );
+00105 ITransformable::setPivot( ((CAnimatedValueVector&amp;)<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultPivot.getValue()).Value );
+00106
+00107 <span class="comment">// By default, the bone is not binded to a channelMixer.</span>
+00108 <a class="code" href="a02277.html#NL3D_1_1CBoner4">_PosChannelId</a>= -1;
+00109 <a class="code" href="a02277.html#NL3D_1_1CBoner5">_RotEulerChannelId</a>= -1;
+00110 <a class="code" href="a02277.html#NL3D_1_1CBoner6">_RotQuatChannelId</a>= -1;
+00111 <a class="code" href="a02277.html#NL3D_1_1CBoner7">_ScaleChannelId</a>= -1;
+00112 <a class="code" href="a02277.html#NL3D_1_1CBoner3">_PivotChannelId</a>= -1;
+00113
+00114 <span class="comment">// No animCtrl by default</span>
+00115 <a class="code" href="a02277.html#NL3D_1_1CBoneo0">_AnimCtrl</a>= NULL;
+00116 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1ITransformableb0" doxytag="NL3D::CBone::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">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="a02277.html#NL3D_1_1CBonez39_0">getDefaultTrack</a>(valueId), valueId, ownerValueId, detail);
+00041 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformableb1" doxytag="NL3D::CBone::clearFlag" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::IAnimatable::clearFlag </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This method clear a bit in the bitset.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00233">233</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05434.html#l00206">NL3D::IAnimatable::_BitSet</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00124">NL3D::ITransformable::clearTransformFlags()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, and <a class="el" href="a05437.html#l00197">NL3D::CAnimatedMaterial::update()</a>.
+<p>
+<div class="fragment"><pre>00234 {
+00235 _BitSet&amp;= ~(1&lt;&lt;valueId);
+00236 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea0" doxytag="NL3D::CBone::compareMatrixDate" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::ITransformable::compareMatrixDate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>callerDate</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Tells if the LocalMatrix is newer than what caller except. This return true either if the matrix components (pos/rot etc...) are touched, or if matrix is newer than caller date.
+<p>
+Definition at line <a class="el" href="a06575.html#l00082">82</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a06575.html#l00334">NL3D::ITransformable::needCompute()</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01339">NL3D::CWaterModel::updateDiffuseMapMatrix()</a>.
+<p>
+<div class="fragment"><pre>00083 {
+00084 <span class="keywordflow">return</span> callerDate&lt;_LocalMatrixDate || <a class="code" href="a02278.html#NL3D_1_1ITransformabled1">needCompute</a>();
+00085 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea2" doxytag="NL3D::CBone::compute" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CBone::compute </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02277.html">CBone</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>parent</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>rootMatrix</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03399.html">CSkeletonModel</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>skeletonForAnimCtrl</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Compute the LocalSkeletonMatrix, the WorldMatrix, and the BoneSkinMatrix (for skinning). NB: the result localSkeletonMatrix depends on BoneBase::UnheritScale. <br>
+ NB: the result worldMatrix depends on BoneBase::UnheritScale. <br>
+ NB: the result boneSkinMatrix depends on BoneBase::InvBindPos. <br>
+ <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>parent</em>&nbsp;</td><td>the parent of this bone (maybe NULL if root). his WorldMatrix is used, so it should be computed before. </td></tr>
+ <tr><td valign=top><em>rootMatrix</em>&nbsp;</td><td>is used as father worldmatrix if parent==NULL. Usefull for computing WorldMatrix. </td></tr>
+ <tr><td valign=top><em>skeletonForAnimCtrl</em>&nbsp;</td><td>if NULL, no AnimCtrl is performed, else skeletonForAnimCtrl-&gt;getWorldMAtrix() should be == to rootMatrix</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05491.html#l00155">155</a> of file <a class="el" href="a05491.html">bone.cpp</a>.
+<p>
+References <a class="el" href="a05492.html#l00166">_AnimCtrl</a>, <a class="el" href="a05492.html#l00173">_BoneBase</a>, <a class="el" href="a05492.html#l00180">_BoneSkinMatrix</a>, <a class="el" href="a05492.html#l00176">_LocalSkeletonMatrix</a>, <a class="el" href="a05492.html#l00178">_WorldMatrix</a>, <a class="el" href="a03836.html#NL3D_1_1IAnimCtrla0">NL3D::IAnimCtrl::execute()</a>, <a class="el" href="a06575.html#l00076">NL3D::ITransformable::getMatrix()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06575.html#l00218">NL3D::ITransformable::getScale()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05972.html#l00702">NLMISC::CMatrix::setMulMatrixNoProj()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a05972.html#l01471">NLMISC::CMatrix::setScale()</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>, and <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00156 {
+00157 <span class="comment">// compute is called typically 800 time per frame.</span>
+00158 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00159 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>(_BoneBase);
+00160 <span class="preprocessor">#endif</span>
+00161 <span class="preprocessor"></span>
+00162 <span class="comment">// get/compute our local matrix</span>
+00163 <span class="keyword">const</span> CMatrix &amp;localMatrix= <a class="code" href="a02278.html#NL3D_1_1ITransformablea1">getMatrix</a>();
+00164
+00165 <span class="comment">// Compute LocalSkeletonMatrix.</span>
+00166 <span class="comment">// Root case?</span>
+00167 <span class="keywordflow">if</span>(!parent)
+00168 {
+00169 <a class="code" href="a02277.html#NL3D_1_1CBoner2">_LocalSkeletonMatrix</a>= localMatrix;
+00170 }
+00171 <span class="comment">// Else, son case, take world matrix from parent.</span>
+00172 <span class="keywordflow">else</span>
+00173 {
+00174 <span class="comment">// UnheritScale case.</span>
+00175 <span class="keywordflow">if</span>(<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;UnheritScale)
+00176 {
+00177 CMatrix invScaleComp;
+00178 CVector fatherScale;
+00179 CVector trans;
+00180
+00181 <span class="comment">/* Optim note:</span>
+00182 <span class="comment"> the scale is rarely ==1, so don't optimize case where it may be.</span>
+00183 <span class="comment"> */</span>
+00184
+00185 <span class="comment">// retrieve our translation</span>
+00186 localMatrix.getPos(trans);
+00187 <span class="comment">// retrieve scale from our father.</span>
+00188 parent-&gt;getScale(fatherScale);
+00189 <span class="comment">// inverse this scale.</span>
+00190 fatherScale.x= 1.0f / fatherScale.x;
+00191 fatherScale.y= 1.0f / fatherScale.y;
+00192 fatherScale.z= 1.0f / fatherScale.z;
+00193
+00194 <span class="comment">// Compute InverseScale compensation:</span>
+00195 <span class="comment">// with UnheritScale, formula per bone should be T*Sf-1*P*R*S*P-1.</span>
+00196 <span class="comment">// But getMatrix() return T*P*R*S*P-1.</span>
+00197 <span class="comment">// So we must compute T*Sf-1*T-1, in order to get wanted result.</span>
+00198 invScaleComp.setScale(fatherScale);
+00199 <span class="comment">// Faster compute of the translation part: just "trans + fatherScale MUL -trans" where MUL is comp mul</span>
+00200 trans.x-= fatherScale.x * trans.x;
+00201 trans.y-= fatherScale.y * trans.y;
+00202 trans.z-= fatherScale.z * trans.z;
+00203 invScaleComp.setPos(trans);
+00204
+00205
+00206 <span class="comment">// And finally, we got ParentWM * T*Sf-1*P*R*S*P-1.</span>
+00207 <span class="comment">// Do: _LocalSkeletonMatrix= parent-&gt;_LocalSkeletonMatrix * invScaleComp * localMatrix</span>
+00208 <span class="keyword">static</span> CMatrix tmp;
+00209 tmp.setMulMatrixNoProj( parent-&gt;_LocalSkeletonMatrix, invScaleComp );
+00210 <a class="code" href="a02277.html#NL3D_1_1CBoner2">_LocalSkeletonMatrix</a>.setMulMatrixNoProj( tmp, localMatrix );
+00211 }
+00212 <span class="comment">// Normal case.</span>
+00213 <span class="keywordflow">else</span>
+00214 {
+00215 <span class="comment">// Do: _LocalSkeletonMatrix= parent-&gt;_LocalSkeletonMatrix * localMatrix</span>
+00216 <a class="code" href="a02277.html#NL3D_1_1CBoner2">_LocalSkeletonMatrix</a>.setMulMatrixNoProj( parent-&gt;_LocalSkeletonMatrix, localMatrix );
+00217 }
+00218 }
+00219
+00220 <span class="comment">// Compute WorldMatrix. Do: _WorldMatrix= rootMatrix * _LocalSkeletonMatrix</span>
+00221 <a class="code" href="a02277.html#NL3D_1_1CBoner8">_WorldMatrix</a>.setMulMatrixNoProj( rootMatrix, _LocalSkeletonMatrix );
+00222
+00223 <span class="comment">// Compute BoneSkinMatrix. Do: _BoneSkinMatrix= _LocalSkeletonMatrix * _BoneBase-&gt;InvBindPos</span>
+00224 <a class="code" href="a02277.html#NL3D_1_1CBoner1">_BoneSkinMatrix</a>.setMulMatrixNoProj( _LocalSkeletonMatrix, <a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;InvBindPos );
+00225
+00226 <span class="comment">// When compute is done, do extra user ctrl?</span>
+00227 <span class="keywordflow">if</span>(<a class="code" href="a02277.html#NL3D_1_1CBoneo0">_AnimCtrl</a> &amp;&amp; skeletonForAnimCtrl)
+00228 <a class="code" href="a02277.html#NL3D_1_1CBoneo0">_AnimCtrl</a>-&gt;execute(skeletonForAnimCtrl, <span class="keyword">this</span>);
+00229 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea3" doxytag="NL3D::CBone::forceAnimate" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CBone::forceAnimate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>chanMixer</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>
+Force to eval the animation of that bone Useful when a bone position is needed, and if the father skeleton has been clipped (and thus not detail-animated) <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>chanMixer</em>&nbsp;</td><td>the channel mixer to which that bone has been registered</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05492.html#l00194">194</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+References <a class="el" href="a05492.html#l00187">_PivotChannelId</a>, <a class="el" href="a05492.html#l00183">_PosChannelId</a>, <a class="el" href="a05492.html#l00184">_RotEulerChannelId</a>, <a class="el" href="a05492.html#l00185">_RotQuatChannelId</a>, <a class="el" href="a05492.html#l00186">_ScaleChannelId</a>, <a class="el" href="a05543.html#l00255">NL3D::CChannelMixer::evalChannels()</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+<div class="fragment"><pre>00195 {
+00196 <a class="code" href="a04558.html#a14">sint</a> ids[] =
+00197 {
+00198 <a class="code" href="a02277.html#NL3D_1_1CBoner4">_PosChannelId</a>,
+00199 <a class="code" href="a02277.html#NL3D_1_1CBoner5">_RotEulerChannelId</a>,
+00200 <a class="code" href="a02277.html#NL3D_1_1CBoner6">_RotQuatChannelId</a>,
+00201 <a class="code" href="a02277.html#NL3D_1_1CBoner7">_ScaleChannelId</a>,
+00202 <a class="code" href="a02277.html#NL3D_1_1CBoner3">_PivotChannelId</a>
+00203 };
+00204 chanMixer.evalChannels(ids, <span class="keyword">sizeof</span>(ids) / <span class="keyword">sizeof</span>(ids[0]));
+00205 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea4" doxytag="NL3D::CBone::getBoneBase" ></a><p>
+<table class="mdTable" 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="a02279.html">CBoneBase</a>&amp; NL3D::CBone::getBoneBase </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>
+retrieve the boneBase
+<p>
+
+<p>
+Definition at line <a class="el" href="a05492.html#l00114">114</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+References <a class="el" href="a05492.html#l00173">_BoneBase</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, and <a class="el" href="a06483.html#l00219">NL3D::CTargetAnimCtrl::getCurrentLSRotationFromBone()</a>.
+<p>
+<div class="fragment"><pre>00114 {<a class="code" href="a04199.html#a6">nlassert</a>(_BoneBase); <span class="keywordflow">return</span> *<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea5" doxytag="NL3D::CBone::getBoneName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const std::string&amp; NL3D::CBone::getBoneName </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>
+retrieve the boneName from BoneBase.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05492.html#l00110">110</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+References <a class="el" href="a05492.html#l00173">_BoneBase</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+<div class="fragment"><pre>00110 {<a class="code" href="a04199.html#a6">nlassert</a>(_BoneBase); <span class="keywordflow">return</span> <a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;Name;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea6" doxytag="NL3D::CBone::getBoneSkinMatrix" ></a><p>
+<table class="mdTable" 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::CBone::getBoneSkinMatrix </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>
+retrieve the BoneSkinMatrix computed in <a class="el" href="a02277.html#NL3D_1_1CBonea2">compute()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05492.html#l00150">150</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+References <a class="el" href="a05492.html#l00180">_BoneSkinMatrix</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00150 {<span class="keywordflow">return</span> <a class="code" href="a02277.html#NL3D_1_1CBoner1">_BoneSkinMatrix</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonez39_0" doxytag="NL3D::CBone::getDefaultTrack" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03542.html">ITrack</a> * NL3D::CBone::getDefaultTrack </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+retrive the default trak from skeleton shape.
+<p>
+
+<p>
+Implements <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_1">NL3D::ITransformable</a>.
+<p>
+Definition at line <a class="el" href="a05491.html#l00119">119</a> of file <a class="el" href="a05491.html">bone.cpp</a>.
+<p>
+References <a class="el" href="a05492.html#l00173">_BoneBase</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00120 {
+00121 <a class="code" href="a04199.html#a6">nlassert</a>(_BoneBase);
+00122
+00123 <span class="comment">// what value ?</span>
+00124 <span class="keywordflow">switch</span> (valueId)
+00125 {
+00126 <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="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultPos;
+00127 <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="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultRotEuler;
+00128 <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="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultRotQuat;
+00129 <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="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultScale;
+00130 <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="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;DefaultPivot;
+00131 }
+00132
+00133 <span class="comment">// No, only ITrnasformable values!</span>
+00134 <a class="code" href="a04199.html#a12">nlstop</a>;
+00135 <span class="comment">// Deriver note: else call BaseClass::getDefaultTrack(valueId);</span>
+00136
+00137 <span class="keywordflow">return</span> NULL;
+00138 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea7" doxytag="NL3D::CBone::getFatherId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a10">sint32</a> NL3D::CBone::getFatherId </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>
+retrieve the fatherId from BoneBase.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05492.html#l00112">112</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+References <a class="el" href="a05492.html#l00173">_BoneBase</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, and <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>.
+<p>
+<div class="fragment"><pre>00112 {<a class="code" href="a04199.html#a6">nlassert</a>(_BoneBase); <span class="keywordflow">return</span> <a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>-&gt;FatherId;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea8" doxytag="NL3D::CBone::getLocalSkeletonMatrix" ></a><p>
+<table class="mdTable" 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::CBone::getLocalSkeletonMatrix </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>
+retrieve the matrix local to the skeleton, computed in <a class="el" href="a02277.html#NL3D_1_1CBonea2">compute()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05492.html#l00144">144</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+References <a class="el" href="a05492.html#l00176">_LocalSkeletonMatrix</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, and <a class="el" href="a06483.html#l00219">NL3D::CTargetAnimCtrl::getCurrentLSRotationFromBone()</a>.
+<p>
+<div class="fragment"><pre>00144 {<span class="keywordflow">return</span> <a class="code" href="a02277.html#NL3D_1_1CBoner2">_LocalSkeletonMatrix</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea1" doxytag="NL3D::CBone::getMatrix" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">CMatrix</a>&amp; NL3D::ITransformable::getMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the matrix, compute her if necessary (work in all modes).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00076">76</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06574.html#l00141">NL3D::ITransformable::updateMatrix()</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a05530.html#l00243">NL3D::CCamera::buildCameraPyramid()</a>, <a class="el" href="a05491.html#l00155">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> _LocalMatrix;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablea2" doxytag="NL3D::CBone::getMatrixDate" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a13">uint64</a> NL3D::ITransformable::getMatrixDate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the last date of computed matrix. <a class="el" href="a02278.html#NL3D_1_1ITransformabled2">updateMatrix()</a> if necessary.
+<p>
+Definition at line <a class="el" href="a06575.html#l00090">90</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a06574.html#l00141">NL3D::ITransformable::updateMatrix()</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01339">NL3D::CWaterModel::updateDiffuseMapMatrix()</a>.
+<p>
+<div class="fragment"><pre>00091 {
+00092 <a class="code" href="a02278.html#NL3D_1_1ITransformabled2">updateMatrix</a>();
+00093 <span class="keywordflow">return</span> _LocalMatrixDate;
+00094 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_0" doxytag="NL3D::CBone::getPivot" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> NL3D::ITransformable::getPivot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00255">255</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00256 {
+00257 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00258 <span class="keywordflow">return</span> _Pivot.Value;
+00259 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_1" doxytag="NL3D::CBone::getPivot" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::getPivot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pivot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00224">224</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00169">NL3D::CTransformableUser::getPivot()</a>.
+<p>
+<div class="fragment"><pre>00225 {
+00226 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00227 pivot= _Pivot.Value;
+00228 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee0" doxytag="NL3D::CBone::getPivotValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getPivotValueName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00117">117</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00118 {
+00119 <span class="keywordflow">return</span> <span class="stringliteral">"pivot"</span>;
+00120 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_2" doxytag="NL3D::CBone::getPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> NL3D::ITransformable::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00231">231</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06737.html#l00117">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> _Pos.Value;
+00235 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_3" doxytag="NL3D::CBone::getPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00200">200</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00149">NL3D::CTransformableUser::getPos()</a>, <a class="el" href="a06350.html#l01105">NL3D::CInstanceGroup::getPos()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>.
+<p>
+<div class="fragment"><pre>00201 {
+00202 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00203 pos= _Pos.Value;
+00204 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee1" doxytag="NL3D::CBone::getPosValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getPosValueName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00097">97</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00098 {
+00099 <span class="keywordflow">return</span> <span class="stringliteral">"pos"</span>;
+00100 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_4" doxytag="NL3D::CBone::getRotEuler" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> NL3D::ITransformable::getRotEuler </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotEuler mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00237">237</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00238 {
+00239 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler);
+00240 <span class="keywordflow">return</span> _RotEuler.Value;
+00241 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_5" doxytag="NL3D::CBone::getRotEuler" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::getRotEuler </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotEuler mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00206">206</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00154">NL3D::CTransformableUser::getRotEuler()</a>.
+<p>
+<div class="fragment"><pre>00207 {
+00208 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler);
+00209 rot= _RotEuler.Value;
+00210 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee2" doxytag="NL3D::CBone::getRotEulerValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getRotEulerValueName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00102">102</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00103 {
+00104 <span class="keywordflow">return</span> <span class="stringliteral">"roteuler"</span>;
+00105 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_6" doxytag="NL3D::CBone::getRotOrder" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02851.html#NLMISC_1_1CMatrixw0">CMatrix::TRotOrder</a> NL3D::ITransformable::getRotOrder </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the current rotorder (information vlaid only when RotEuler mode).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00194">194</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00317">NL3D::ITransformable::_RotOrder</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00143">NL3D::CTransformableUser::getRotOrder()</a>.
+<p>
+<div class="fragment"><pre>00195 {
+00196 <span class="keywordflow">return</span> _RotOrder;
+00197 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_7" doxytag="NL3D::CBone::getRotQuat" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03296.html">CQuat</a> NL3D::ITransformable::getRotQuat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotQuat mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00243">243</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00244 {
+00245 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat);
+00246 <span class="keywordflow">return</span> _RotQuat.Value;
+00247 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_8" doxytag="NL3D::CBone::getRotQuat" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::getRotQuat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03296.html">CQuat</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>quat</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotQuat mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00212">212</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00159">NL3D::CTransformableUser::getRotQuat()</a>, and <a class="el" href="a06350.html#l01114">NL3D::CInstanceGroup::getRotQuat()</a>.
+<p>
+<div class="fragment"><pre>00213 {
+00214 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat);
+00215 quat= _RotQuat.Value;
+00216 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee3" doxytag="NL3D::CBone::getRotQuatValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getRotQuatValueName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00107">107</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00108 {
+00109 <span class="keywordflow">return</span> <span class="stringliteral">"rotquat"</span>;
+00110 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_9" doxytag="NL3D::CBone::getScale" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> NL3D::ITransformable::getScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00249">249</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+<div class="fragment"><pre>00250 {
+00251 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00252 <span class="keywordflow">return</span> _Scale.Value;
+00253 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_10" doxytag="NL3D::CBone::getScale" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::getScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>scale</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00218">218</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00155">compute()</a>, and <a class="el" href="a06577.html#l00164">NL3D::CTransformableUser::getScale()</a>.
+<p>
+<div class="fragment"><pre>00219 {
+00220 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00221 scale= _Scale.Value;
+00222 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablee4" doxytag="NL3D::CBone::getScaleValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getScaleValueName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00112">112</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>.
+<p>
+<div class="fragment"><pre>00113 {
+00114 <span class="keywordflow">return</span> <span class="stringliteral">"scale"</span>;
+00115 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1083_11" doxytag="NL3D::CBone::getTransformMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a> NL3D::ITransformable::getTransformMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the current transform mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00189">189</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00058">NL3D::ITransformable::TTransformMode</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, and <a class="el" href="a06577.html#l00138">NL3D::CTransformableUser::getTransformMode()</a>.
+<p>
+<div class="fragment"><pre>00190 {
+00191 <span class="keywordflow">return</span> _Mode;
+00192 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_2" doxytag="NL3D::CBone::getValue" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03835.html">IAnimatedValue</a> * NL3D::ITransformable::getValue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+From <a class="el" href="a02197.html">IAnimatable</a>.
+<p>
+
+<p>
+Implements <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_2">NL3D::IAnimatable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_2">NL3D::CCamera</a>, and <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_3">NL3D::CParticleSystemModel</a>.
+<p>
+Definition at line <a class="el" href="a06574.html#l00058">58</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00059 {
+00060 <span class="comment">// what value ?</span>
+00061 <span class="keywordflow">switch</span> (valueId)
+00062 {
+00063 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>: <span class="keywordflow">return</span> &amp;_Pos;
+00064 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>: <span class="keywordflow">return</span> &amp;_RotEuler;
+00065 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>: <span class="keywordflow">return</span> &amp;_RotQuat;
+00066 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>: <span class="keywordflow">return</span> &amp;_Scale;
+00067 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>: <span class="keywordflow">return</span> &amp;_Pivot;
+00068 }
+00069
+00070 <span class="comment">// No, only ITrnasformable values!</span>
+00071 <a class="code" href="a04199.html#a12">nlstop</a>;
+00072 <span class="comment">// Deriver note: else call BaseClass::getValue(valueId);</span>
+00073
+00074 <span class="keywordflow">return</span> NULL;
+00075 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1087_3" doxytag="NL3D::CBone::getValueName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NL3D::ITransformable::getValueName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+From <a class="el" href="a02197.html">IAnimatable</a>.
+<p>
+
+<p>
+Implements <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_3">NL3D::IAnimatable</a>.
+<p>
+Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_3">NL3D::CCamera</a>, and <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_4">NL3D::CParticleSystemModel</a>.
+<p>
+Definition at line <a class="el" href="a06574.html#l00077">77</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a06574.html#l00117">NL3D::ITransformable::getPivotValueName()</a>, <a class="el" href="a06574.html#l00097">NL3D::ITransformable::getPosValueName()</a>, <a class="el" href="a06574.html#l00102">NL3D::ITransformable::getRotEulerValueName()</a>, <a class="el" href="a06574.html#l00107">NL3D::ITransformable::getRotQuatValueName()</a>, <a class="el" href="a06574.html#l00112">NL3D::ITransformable::getScaleValueName()</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00078 {
+00079 <span class="comment">// what value ?</span>
+00080 <span class="keywordflow">switch</span> (valueId)
+00081 {
+00082 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee1">getPosValueName</a> ();
+00083 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee2">getRotEulerValueName</a>();
+00084 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee3">getRotQuatValueName</a>();
+00085 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee4">getScaleValueName</a>();
+00086 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee0">getPivotValueName</a>();
+00087 }
+00088
+00089 <span class="comment">// No, only ITrnasformable values!</span>
+00090 <a class="code" href="a04199.html#a12">nlstop</a>;
+00091 <span class="comment">// Deriver note: else call BaseClass::getValueName(valueId);</span>
+00092
+00093 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00094 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea11" doxytag="NL3D::CBone::getWorldMatrix" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">CMatrix</a>&amp; NL3D::CBone::getWorldMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+retrieve the WorldMatrix computed in <a class="el" href="a02277.html#NL3D_1_1CBonea2">compute()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05492.html#l00147">147</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+References <a class="el" href="a05492.html#l00178">_WorldMatrix</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01987">NL3D::CSkeletonModel::computeWorldBBoxForShadow()</a>, <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, and <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>.
+<p>
+<div class="fragment"><pre>00147 {<span class="keywordflow">return</span> <a class="code" href="a02277.html#NL3D_1_1CBoner8">_WorldMatrix</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea12" doxytag="NL3D::CBone::interpolateBoneSkinMatrix" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CBone::interpolateBoneSkinMatrix </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="mdname" nowrap> <em>otherMatrix</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>interp</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Interpolate the current result of _BoneSkinMatrix fith otherMatrix. when interp==0.f, _BoneSkinMatrix= otherMatrix. NB: the interpolation is made on per-vector basis =&gt; bad matrix interpolation.
+<p>
+Definition at line <a class="el" href="a05491.html#l00233">233</a> of file <a class="el" href="a05491.html">bone.cpp</a>.
+<p>
+References <a class="el" href="a05492.html#l00180">_BoneSkinMatrix</a>, <a class="el" href="a05972.html#l00419">NLMISC::CMatrix::getI()</a>, <a class="el" href="a05972.html#l00427">NLMISC::CMatrix::getJ()</a>, <a class="el" href="a05972.html#l00435">NLMISC::CMatrix::getK()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, and <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00234 {
+00235 CMatrix &amp;curMatrix= <a class="code" href="a02277.html#NL3D_1_1CBoner1">_BoneSkinMatrix</a>;
+00236
+00237 <span class="comment">// interpolate rot/scale. Just interpolate basis vectors</span>
+00238 CVector fatherI= otherMatrix.getI();
+00239 CVector curI= curMatrix.getI();
+00240 curI= fatherI*(1-interp) + curI*interp;
+00241 CVector fatherJ= otherMatrix.getJ();
+00242 CVector curJ= curMatrix.getJ();
+00243 curJ= fatherJ*(1-interp) + curJ*interp;
+00244 CVector fatherK= otherMatrix.getK();
+00245 CVector curK= curMatrix.getK();
+00246 curK= fatherK*(1-interp) + curK*interp;
+00247 <span class="comment">// replace rotation</span>
+00248 curMatrix.setRot(curI, curJ, curK);
+00249
+00250 <span class="comment">// interpolate pos</span>
+00251 CVector fatherPos= otherMatrix.getPos();
+00252 CVector curPos= curMatrix.getPos();
+00253 curPos= fatherPos*(1-interp) + curPos*interp;
+00254 curMatrix.setPos(curPos);
+00255 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez5_0" doxytag="NL3D::CBone::isTouched" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::IAnimatable::isTouched </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return non 0 int if the value as been touched else 0.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>valueId</em>&nbsp;</td><td>is the animated value ID in the object we want to test the touch flag. or it may be an OwnerBit.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00184">184</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05434.html#l00206">NL3D::IAnimatable::_BitSet</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06575.html#l00334">NL3D::ITransformable::needCompute()</a>, <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, and <a class="el" href="a05437.html#l00197">NL3D::CAnimatedMaterial::update()</a>.
+<p>
+<div class="fragment"><pre>00185 {
+00186 <span class="keywordflow">return</span> _BitSet&amp;(1&lt;&lt;valueId);
+00187 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonea13" doxytag="NL3D::CBone::lodEnableChannels" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CBone::lodEnableChannels </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>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>enable</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+enable the channels (lodEnable) associated to this bone in the channelMixer.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05491.html#l00259">259</a> of file <a class="el" href="a05491.html">bone.cpp</a>.
+<p>
+References <a class="el" href="a05492.html#l00187">_PivotChannelId</a>, <a class="el" href="a05492.html#l00183">_PosChannelId</a>, <a class="el" href="a05492.html#l00184">_RotEulerChannelId</a>, <a class="el" href="a05492.html#l00185">_RotQuatChannelId</a>, <a class="el" href="a05492.html#l00186">_ScaleChannelId</a>, <a class="el" href="a05543.html#l00418">NL3D::CChannelMixer::lodEnableChannel()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+<div class="fragment"><pre>00260 {
+00261 <a class="code" href="a04199.html#a6">nlassert</a>(chanMixer);
+00262
+00263 <span class="comment">// Lod Enable channels if they are correclty registered to the channelMixer.</span>
+00264 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner4">_PosChannelId</a>&gt;=0 )
+00265 chanMixer-&gt;lodEnableChannel(_PosChannelId, enable);
+00266 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner5">_RotEulerChannelId</a>&gt;=0 )
+00267 chanMixer-&gt;lodEnableChannel(_RotEulerChannelId, enable);
+00268 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner6">_RotQuatChannelId</a>&gt;=0 )
+00269 chanMixer-&gt;lodEnableChannel(_RotQuatChannelId, enable);
+00270 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner7">_ScaleChannelId</a>&gt;=0 )
+00271 chanMixer-&gt;lodEnableChannel(_ScaleChannelId, enable);
+00272 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner3">_PivotChannelId</a>&gt;=0 )
+00273 chanMixer-&gt;lodEnableChannel(_PivotChannelId, enable);
+00274
+00275 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1085_0" doxytag="NL3D::CBone::lookAt" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::lookAt </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>eye</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>target</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>roll</em> = 0.f</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup Matrix by the lookAt method. Work only in DirectMatrix mode and RotQuat mode (not euler...).<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>eye</em>&nbsp;</td><td>is the coordinate of the object. </td></tr>
+ <tr><td valign=top><em>target</em>&nbsp;</td><td>is the point the object look at. </td></tr>
+ <tr><td valign=top><em>roll</em>&nbsp;</td><td>is the roll angle in radian along the object's Y axis.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06574.html#l00169">169</a> of file <a class="el" href="a06574.html">transformable.cpp</a>.
+<p>
+References <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">NL3D::ITransformable::DirectMatrix</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a05972.html#l00353">NLMISC::CMatrix::getRot()</a>, <a class="el" href="a05972.html#l00200">NLMISC::CMatrix::identity()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06682.html#l00119">NLMISC::CVector::normalize()</a>, <a class="el" href="a05972.html#l00538">NLMISC::CMatrix::rotateY()</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a06575.html#l00174">NL3D::ITransformable::setMatrix()</a>, <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</a>, <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>, <a class="el" href="a06575.html#l00138">NL3D::ITransformable::setRotQuat()</a>, and <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00206">NL3D::CTransformableUser::lookAt()</a>, and <a class="el" href="a05530.html#l00164">NL3D::CCamera::update()</a>.
+<p>
+<div class="fragment"><pre>00170 {
+00171 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat || _Mode==DirectMatrix);
+00172
+00173 <span class="comment">// Roll matrix</span>
+00174 CMatrix rollMT;
+00175 rollMT.identity();
+00176 <span class="keywordflow">if</span> (roll!=0.f)
+00177 rollMT.rotateY (roll);
+00178
+00179 <span class="comment">// Make the target base</span>
+00180 CVector j=target;
+00181 j-=eye;
+00182 j.normalize();
+00183 CVector i=j^CVector (0,0,1.f);
+00184 CVector k=i^j;
+00185 k.normalize();
+00186 i=j^k;
+00187 i.normalize();
+00188
+00189 <span class="comment">// Make the target matrix</span>
+00190 CMatrix targetMT;
+00191 targetMT.identity();
+00192 targetMT.setRot (i, j, k);
+00193 targetMT.setPos (eye);
+00194
+00195 <span class="comment">// Compose matrix</span>
+00196 targetMT*=rollMT;
+00197
+00198 <span class="comment">// Set the matrix</span>
+00199 <span class="keywordflow">if</span>(_Mode==<a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>)
+00200 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_0">setMatrix</a> (targetMT);
+00201 <span class="keywordflow">else</span>
+00202 {
+00203 <span class="comment">// transfrom to quaternion mode.</span>
+00204 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(1,1,1));
+00205 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_2">setPivot</a>(CVector::Null);
+00206 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_4">setPos</a>(targetMT.getPos());
+00207 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_7">setRotQuat</a>(targetMT.getRot());
+00208 }
+00209 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBonez39_1" doxytag="NL3D::CBone::registerToChannelMixer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CBone::registerToChannelMixer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>chanMixer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>prefix</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+register the <a class="el" href="a02278.html">ITransformable</a> channels as detailled channels.
+<p>
+
+<p>
+Implements <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_4">NL3D::ITransformable</a>.
+<p>
+Definition at line <a class="el" href="a05491.html#l00141">141</a> of file <a class="el" href="a05491.html">bone.cpp</a>.
+<p>
+References <a class="el" href="a05492.html#l00187">_PivotChannelId</a>, <a class="el" href="a05492.html#l00183">_PosChannelId</a>, <a class="el" href="a05492.html#l00184">_RotEulerChannelId</a>, <a class="el" href="a05492.html#l00185">_RotQuatChannelId</a>, <a class="el" href="a05492.html#l00186">_ScaleChannelId</a>, and <a class="el" href="a05433.html#l00037">NL3D::IAnimatable::addValue()</a>.
+<p>
+<div class="fragment"><pre>00142 {
+00143 <span class="comment">// For CBone, channels are detailled.</span>
+00144 <span class="comment">// Bkup each channelId (for disable).</span>
+00145 <a class="code" href="a02277.html#NL3D_1_1CBoner4">_PosChannelId</a>= <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, PosValue, OwnerBit, prefix, <span class="keyword">true</span>);
+00146 <a class="code" href="a02277.html#NL3D_1_1CBoner5">_RotEulerChannelId</a>= <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, RotEulerValue, OwnerBit, prefix, <span class="keyword">true</span>);
+00147 <a class="code" href="a02277.html#NL3D_1_1CBoner6">_RotQuatChannelId</a>= <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, RotQuatValue, OwnerBit, prefix, <span class="keyword">true</span>);
+00148 <a class="code" href="a02277.html#NL3D_1_1CBoner7">_ScaleChannelId</a>= <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, ScaleValue, OwnerBit, prefix, <span class="keyword">true</span>);
+00149 <a class="code" href="a02277.html#NL3D_1_1CBoner3">_PivotChannelId</a>= <a class="code" href="a02197.html#NL3D_1_1ITransformableb0">addValue</a>(chanMixer, PivotValue, OwnerBit, prefix, <span class="keyword">true</span>);
+00150
+00151 <span class="comment">// Deriver note: if necessary, call BaseClass::registerToChannelMixer(chanMixer, prefix);</span>
+00152 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez5_1" doxytag="NL3D::CBone::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::CBone::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::CBone::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::CBone::setMatrix" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mat</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in DirecTMatrix mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00174">174</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">NL3D::ITransformable::DirectMatrix</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, and <a class="el" href="a06577.html#l00076">NL3D::CTransformableUser::setMatrix()</a>.
+<p>
+<div class="fragment"><pre>00175 {
+00176 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==DirectMatrix);
+00177 _LocalMatrix= mat;
+00178 <span class="comment">// The matrix has changed.</span>
+00179 _LocalMatrixDate++;
+00180 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_1" doxytag="NL3D::CBone::setPivot" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setPivot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>z</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00169">169</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</a>, <a class="el" href="a05646.html#l00236">x</a>, <a class="el" href="a05646.html#l00236">y</a>, and <a class="el" href="a05646.html#l00236">z</a>.
+<p>
+<div class="fragment"><pre>00170 {
+00171 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_2">setPivot</a>(CVector(x, y, z));
+00172 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_2" doxytag="NL3D::CBone::setPivot" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setPivot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pivot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00162">162</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00132">NL3D::CTransformableUser::setPivot()</a>, and <a class="el" href="a06575.html#l00169">NL3D::ITransformable::setPivot()</a>.
+<p>
+<div class="fragment"><pre>00163 {
+00164 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00165 _Pivot.Value= pivot;
+00166 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PivotValue, OwnerBit);
+00167 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_3" doxytag="NL3D::CBone::setPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>z</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00121">121</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>, <a class="el" href="a05646.html#l00236">x</a>, <a class="el" href="a05646.html#l00236">y</a>, and <a class="el" href="a05646.html#l00236">z</a>.
+<p>
+<div class="fragment"><pre>00122 {
+00123 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_4">setPos</a>(CVector(x,y,z));
+00124 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_4" doxytag="NL3D::CBone::setPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00114">114</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a05530.html#l00196">NL3D::CCamera::build()</a>, <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00097">NL3D::CTransformableUser::setPos()</a>, <a class="el" href="a06575.html#l00121">NL3D::ITransformable::setPos()</a>, <a class="el" href="a06350.html#l01090">NL3D::CInstanceGroup::setPos()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>.
+<p>
+<div class="fragment"><pre>00115 {
+00116 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00117 _Pos.Value= pos;
+00118 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PosValue, OwnerBit);
+00119 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_5" doxytag="NL3D::CBone::setRotEuler" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setRotEuler </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>rotX</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>rotY</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>rotZ</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotEuler mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00133">133</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00126">NL3D::ITransformable::setRotEuler()</a>.
+<p>
+<div class="fragment"><pre>00134 {
+00135 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_6">setRotEuler</a>(CVector(rotX, rotY, rotZ));
+00136 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_6" doxytag="NL3D::CBone::setRotEuler" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setRotEuler </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rot</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotEuler mode(nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00126">126</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06577.html#l00102">NL3D::CTransformableUser::setRotEuler()</a>, and <a class="el" href="a06575.html#l00133">NL3D::ITransformable::setRotEuler()</a>.
+<p>
+<div class="fragment"><pre>00127 {
+00128 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler);
+00129 _RotEuler.Value= rot;
+00130 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(RotEulerValue, OwnerBit);
+00131 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_7" doxytag="NL3D::CBone::setRotQuat" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setRotQuat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03296.html">CQuat</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>quat</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in RotQuat mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00138">138</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00107">NL3D::CTransformableUser::setRotQuat()</a>, and <a class="el" href="a06350.html#l01098">NL3D::CInstanceGroup::setRotQuat()</a>.
+<p>
+<div class="fragment"><pre>00139 {
+00140 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat);
+00141 _RotQuat.Value= quat;
+00142 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(RotQuatValue, OwnerBit);
+00143 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_8" doxytag="NL3D::CBone::setScale" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>scale</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00157">157</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>.
+<p>
+<div class="fragment"><pre>00158 {
+00159 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(scale, scale, scale));
+00160 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_9" doxytag="NL3D::CBone::setScale" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>scaleX</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>scaleY</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>scaleZ</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00152">152</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>.
+<p>
+<div class="fragment"><pre>00153 {
+00154 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(scaleX, scaleY, scaleZ));
+00155 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1081_10" doxytag="NL3D::CBone::setScale" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setScale </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>scale</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Work only in Rot* mode (nlassert).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00145">145</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable&lt; T &gt;::Value</a>.
+<p>
+Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00128">NL3D::CTransformableUser::setScale()</a>, and <a class="el" href="a06575.html#l00152">NL3D::ITransformable::setScale()</a>.
+<p>
+<div class="fragment"><pre>00146 {
+00147 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat);
+00148 _Scale.Value= scale;
+00149 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(ScaleValue, OwnerBit);
+00150 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez1079_0" doxytag="NL3D::CBone::setTransformMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::ITransformable::setTransformMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02851.html#NLMISC_1_1CMatrixw0">CMatrix::TRotOrder</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>ro</em> = CMatrix::ZXY</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Change the transform mode. Components or matrix are not reseted.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06575.html#l00100">100</a> of file <a class="el" href="a06575.html">transformable.h</a>.
+<p>
+References <a class="el" href="a06575.html#l00317">NL3D::ITransformable::_RotOrder</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, and <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>.
+<p>
+Referenced by <a class="el" href="a05530.html#l00196">NL3D::CCamera::build()</a>, <a class="el" href="a05531.html#l00125">NL3D::CCamera::enableTargetAnimation()</a>, <a class="el" href="a06250.html#l00225">NL3D::CPSMesh::newElement()</a>, <a class="el" href="a06577.html#l00092">NL3D::CTransformableUser::setTransformMode()</a>, and <a class="el" href="a06250.html#l00295">NL3D::CPSMesh::updatePos()</a>.
+<p>
+<div class="fragment"><pre>00101 {
+00102 _Mode= mode;
+00103 _RotOrder= ro;
+00104 <span class="comment">// just for information.</span>
+00105 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PosValue, OwnerBit);
+00106 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITransformablez5_3" doxytag="NL3D::CBone::touch" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::IAnimatable::touch </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>valueId</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>ownerValueId</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Touch a value because it has been modified.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>valueId</em>&nbsp;</td><td>is the animated value ID in the object we want to touch. </td></tr>
+ <tr><td valign=top><em>ownerValueId</em>&nbsp;</td><td>is the bit of the <a class="el" href="a02197.html">IAnimatable</a> part which owns this animated value.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05434.html#l00168">168</a> of file <a class="el" href="a05434.html">animatable.h</a>.
+<p>
+References <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, <a class="el" href="a05434.html#l00239">NL3D::IAnimatable::setFlag()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05543.html#l00154">NL3D::CChannelMixer::eval()</a>, <a class="el" href="a05543.html#l00083">NL3D::CChannelMixer::evalSingleChannel()</a>, <a class="el" href="a06148.html#l00249">NL3D::CParticleSystemModel::reallocRsc()</a>, <a class="el" href="a05543.html#l00621">NL3D::CChannelMixer::refreshList()</a>, <a class="el" href="a05531.html#l00154">NL3D::CCamera::setFov()</a>, <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</a>, <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>, <a class="el" href="a05531.html#l00147">NL3D::CCamera::setRoll()</a>, <a class="el" href="a06575.html#l00126">NL3D::ITransformable::setRotEuler()</a>, <a class="el" href="a06575.html#l00138">NL3D::ITransformable::setRotQuat()</a>, <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>, <a class="el" href="a05531.html#l00135">NL3D::CCamera::setTargetPos()</a>, <a class="el" href="a06575.html#l00100">NL3D::ITransformable::setTransformMode()</a>, and <a class="el" href="a06144.html#l00100">NL3D::CParticleSystemInstanceUser::setUserParam()</a>.
+<p>
+<div class="fragment"><pre>00169 {
+00170 <span class="comment">// Set the bit</span>
+00171 <a class="code" href="a02197.html#NL3D_1_1ITransformableb2">setFlag</a>(valueId);
+00172 <span class="comment">// Set the owner bit</span>
+00173 <a class="code" href="a02197.html#NL3D_1_1ITransformableb2">setFlag</a>(ownerValueId);
+00174
+00175 <span class="comment">// propagate the touch to the fathers.</span>
+00176 <a class="code" href="a02197.html#NL3D_1_1IAnimatabled0">propagateTouch</a>();
+00177 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CBoneo0" doxytag="NL3D::CBone::_AnimCtrl" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03836.html">IAnimCtrl</a>* <a class="el" href="a02277.html#NL3D_1_1CBoneo0">NL3D::CBone::_AnimCtrl</a>
+ </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="a05492.html#l00166">166</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00093">CBone()</a>, <a class="el" href="a05491.html#l00155">compute()</a>, and <a class="el" href="a06393.html#l01745">NL3D::CSkeletonModel::setBoneAnimCtrl()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner0" doxytag="NL3D::CBone::_BoneBase" ></a><p>
+<table class="mdTable" 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="a03321.html">NLMISC::CRefPtr</a>&lt;<a class="el" href="a02279.html">CBoneBase</a>&gt; <a class="el" href="a02277.html#NL3D_1_1CBoner0">NL3D::CBone::_BoneBase</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="a05492.html#l00173">173</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00093">CBone()</a>, <a class="el" href="a05491.html#l00155">compute()</a>, <a class="el" href="a05492.html#l00114">getBoneBase()</a>, <a class="el" href="a05492.html#l00110">getBoneName()</a>, <a class="el" href="a05491.html#l00119">getDefaultTrack()</a>, and <a class="el" href="a05492.html#l00112">getFatherId()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner1" doxytag="NL3D::CBone::_BoneSkinMatrix" ></a><p>
+<table class="mdTable" 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="a02277.html#NL3D_1_1CBoner1">NL3D::CBone::_BoneSkinMatrix</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="a05492.html#l00180">180</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00155">compute()</a>, <a class="el" href="a05492.html#l00150">getBoneSkinMatrix()</a>, and <a class="el" href="a05491.html#l00233">interpolateBoneSkinMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner2" doxytag="NL3D::CBone::_LocalSkeletonMatrix" ></a><p>
+<table class="mdTable" 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="a02277.html#NL3D_1_1CBoner2">NL3D::CBone::_LocalSkeletonMatrix</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="a05492.html#l00176">176</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00155">compute()</a>, and <a class="el" href="a05492.html#l00144">getLocalSkeletonMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoneo1" doxytag="NL3D::CBone::_MaxSphere" ></a><p>
+<table class="mdTable" 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="a02291.html">NLMISC::CBSphere</a> <a class="el" href="a02277.html#NL3D_1_1CBoneo1">NL3D::CBone::_MaxSphere</a>
+ </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="a05492.html#l00169">169</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01987">NL3D::CSkeletonModel::computeWorldBBoxForShadow()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner3" doxytag="NL3D::CBone::_PivotChannelId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02277.html#NL3D_1_1CBoner3">NL3D::CBone::_PivotChannelId</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="a05492.html#l00187">187</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00093">CBone()</a>, <a class="el" href="a05492.html#l00194">forceAnimate()</a>, <a class="el" href="a05491.html#l00259">lodEnableChannels()</a>, and <a class="el" href="a05491.html#l00141">registerToChannelMixer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner4" doxytag="NL3D::CBone::_PosChannelId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02277.html#NL3D_1_1CBoner4">NL3D::CBone::_PosChannelId</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="a05492.html#l00183">183</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00093">CBone()</a>, <a class="el" href="a05492.html#l00194">forceAnimate()</a>, <a class="el" href="a05491.html#l00259">lodEnableChannels()</a>, and <a class="el" href="a05491.html#l00141">registerToChannelMixer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner5" doxytag="NL3D::CBone::_RotEulerChannelId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02277.html#NL3D_1_1CBoner5">NL3D::CBone::_RotEulerChannelId</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="a05492.html#l00184">184</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00093">CBone()</a>, <a class="el" href="a05492.html#l00194">forceAnimate()</a>, <a class="el" href="a05491.html#l00259">lodEnableChannels()</a>, and <a class="el" href="a05491.html#l00141">registerToChannelMixer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner6" doxytag="NL3D::CBone::_RotQuatChannelId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02277.html#NL3D_1_1CBoner6">NL3D::CBone::_RotQuatChannelId</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="a05492.html#l00185">185</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00093">CBone()</a>, <a class="el" href="a05492.html#l00194">forceAnimate()</a>, <a class="el" href="a05491.html#l00259">lodEnableChannels()</a>, and <a class="el" href="a05491.html#l00141">registerToChannelMixer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner7" doxytag="NL3D::CBone::_ScaleChannelId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02277.html#NL3D_1_1CBoner7">NL3D::CBone::_ScaleChannelId</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="a05492.html#l00186">186</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00093">CBone()</a>, <a class="el" href="a05492.html#l00194">forceAnimate()</a>, <a class="el" href="a05491.html#l00259">lodEnableChannels()</a>, and <a class="el" href="a05491.html#l00141">registerToChannelMixer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CBoner8" doxytag="NL3D::CBone::_WorldMatrix" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02851.html">CMatrix</a> <a class="el" href="a02277.html#NL3D_1_1CBoner8">NL3D::CBone::_WorldMatrix</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="a05492.html#l00178">178</a> of file <a class="el" href="a05492.html">bone.h</a>.
+<p>
+Referenced by <a class="el" href="a05491.html#l00155">compute()</a>, and <a class="el" href="a05492.html#l00147">getWorldMatrix()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05492.html">bone.h</a><li><a class="el" href="a05491.html">bone.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:44:38 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>