<!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>