<!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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> <h1>NL3D::CBone Class Reference</h1><code>#include <<a class="el" href="a05492.html">bone.h</a>></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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">TAnimValues</a> { <br> <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> <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"> </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> * </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"> </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 * </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"> </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 </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> </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 </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 </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> &rootMatrix, <a class="el" href="a03399.html">CSkeletonModel</a> *skeletonForAnimCtrl)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>void </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> &chanMixer)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02279.html">CBoneBase</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea4">getBoneBase</a> () const </td></tr> <tr><td class="mdescLeft"> </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 & </td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea5">getBoneName</a> () const </td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea6">getBoneSkinMatrix</a> () const </td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea7">getFatherId</a> () const </td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea8">getLocalSkeletonMatrix</a> () const </td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea1">getMatrix</a> () const </td></tr> <tr><td class="mdescLeft"> </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> </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> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02277.html#NL3D_1_1CBonea11">getWorldMatrix</a> () const </td></tr> <tr><td class="mdescLeft"> </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 </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> &otherMatrix, float interp)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>void </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"> </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> * </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"> </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 </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 &prefix)</td></tr> <tr><td class="mdescLeft"> </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 * </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 * </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 * </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 * </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 * </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> * </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> </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> </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 &prefix, bool detail)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>void </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"> </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 </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"> </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>< <a class="el" href="a02279.html">CBoneBase</a> > </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4" doxytag="PosValue" ></a>PosValue</em> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6" doxytag="RotEulerValue" ></a>RotEulerValue</em> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8" doxytag="RotQuatValue" ></a>RotQuatValue</em> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9" doxytag="ScaleValue" ></a>ScaleValue</em> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3" doxytag="PivotValue" ></a>PivotValue</em> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew0" doxytag="AnimValueLast" ></a>AnimValueLast</em> </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> </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> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5" doxytag="RotEuler" ></a>RotEuler</em> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7" doxytag="RotQuat" ></a>RotQuat</em> </td><td> </td></tr> <tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10" doxytag="TransformModeCount" ></a>TransformModeCount</em> </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 & 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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a02279.html">CBoneBase</a> * </td> <td class="mdname1" valign="top" nowrap> <em>boneBase</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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&)<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->DefaultPos.getValue()).Value ); 00103 ITransformable::setRotQuat( ((CAnimatedValueQuat&)<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->DefaultRotQuat.getValue()).Value ); 00104 ITransformable::setScale( ((CAnimatedValueVector&)<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->DefaultScale.getValue()).Value ); 00105 ITransformable::setPivot( ((CAnimatedValueVector&)<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> * </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> </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> </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 & </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 </td> <td class="mdname" nowrap> <em>detail</em></td> </tr> <tr> <td></td> <td class="md">) </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> </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->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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td> <td class="md" valign="top"> ) </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> </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&= ~(1<<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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a> </td> <td class="mdname1" valign="top" nowrap> <em>callerDate</em> </td> <td class="md" valign="top"> ) </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> </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<_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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a02277.html">CBone</a> * </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> & </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> * </td> <td class="mdname" nowrap> <em>skeletonForAnimCtrl</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </td><td>is used as father worldmatrix if parent==NULL. Usefull for computing WorldMatrix. </td></tr> <tr><td valign=top><em>skeletonForAnimCtrl</em> </td><td>if NULL, no AnimCtrl is performed, else skeletonForAnimCtrl->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 &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>->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->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->_LocalSkeletonMatrix * invScaleComp * localMatrix</span> 00208 <span class="keyword">static</span> CMatrix tmp; 00209 tmp.setMulMatrixNoProj( parent->_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->_LocalSkeletonMatrix * localMatrix</span> 00216 <a class="code" href="a02277.html#NL3D_1_1CBoner2">_LocalSkeletonMatrix</a>.setMulMatrixNoProj( parent->_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->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>->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> && skeletonForAnimCtrl) 00228 <a class="code" href="a02277.html#NL3D_1_1CBoneo0">_AnimCtrl</a>->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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> & </td> <td class="mdname1" valign="top" nowrap> <em>chanMixer</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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>& NL3D::CBone::getBoneBase </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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& NL3D::CBone::getBoneName </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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>->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>& NL3D::CBone::getBoneSkinMatrix </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> &<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->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> &<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->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> &<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->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> &<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->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> &<a class="code" href="a02277.html#NL3D_1_1CBoner0">_BoneBase</a>->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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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>->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>& NL3D::CBone::getLocalSkeletonMatrix </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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>& NL3D::ITransformable::getMatrix </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </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> </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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </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> </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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> <td class="mdname1" valign="top" nowrap> <em>pivot</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [static, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> <td class="mdname1" valign="top" nowrap> <em>pos</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [static, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> <td class="mdname1" valign="top" nowrap> <em>rot</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [static, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a03296.html">CQuat</a> & </td> <td class="mdname1" valign="top" nowrap> <em>quat</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [static, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> <td class="mdname1" valign="top" nowrap> <em>scale</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [static, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> &_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> &_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> &_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> &_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> &_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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td> <td class="md" valign="top"> ) </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> </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>& NL3D::CBone::getWorldMatrix </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> & </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 </td> <td class="mdname" nowrap> <em>interp</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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 => 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 &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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td> <td class="md" valign="top"> ) </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> </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> </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&(1<<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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> * </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 </td> <td class="mdname" nowrap> <em>enable</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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>>=0 ) 00265 chanMixer->lodEnableChannel(_PosChannelId, enable); 00266 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner5">_RotEulerChannelId</a>>=0 ) 00267 chanMixer->lodEnableChannel(_RotEulerChannelId, enable); 00268 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner6">_RotQuatChannelId</a>>=0 ) 00269 chanMixer->lodEnableChannel(_RotQuatChannelId, enable); 00270 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner7">_ScaleChannelId</a>>=0 ) 00271 chanMixer->lodEnableChannel(_ScaleChannelId, enable); 00272 <span class="keywordflow">if</span>( <a class="code" href="a02277.html#NL3D_1_1CBoner3">_PivotChannelId</a>>=0 ) 00273 chanMixer->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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </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> & </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 </td> <td class="mdname" nowrap> <em>roll</em> = 0.f</td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td>is the coordinate of the object. </td></tr> <tr><td valign=top><em>target</em> </td><td>is the point the object look at. </td></tr> <tr><td valign=top><em>roll</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> * </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 & </td> <td class="mdname" nowrap> <em>prefix</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> <td class="mdname1" valign="top" nowrap> <em>count</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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<=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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a02197.html">IAnimatable</a> * </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> </td> <td class="mdname" nowrap> <em>fatherOwnerBit</em></td> </tr> <tr> <td></td> <td class="md">) </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> </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> </td><td>the father we must inform of our update. </td></tr> <tr><td valign=top><em>fatherOwnerBit</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> <td class="mdname1" valign="top" nowrap> <em>valueId</em> </td> <td class="md" valign="top"> ) </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> </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<<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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> & </td> <td class="mdname1" valign="top" nowrap> <em>mat</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">float </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 </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 </td> <td class="mdname" nowrap> <em>z</em></td> </tr> <tr> <td></td> <td class="md">) </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> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> <td class="mdname1" valign="top" nowrap> <em>pivot</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top">float </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 </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 </td> <td class="mdname" nowrap> <em>z</em></td> </tr> <tr> <td></td> <td class="md">) </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> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> <td class="mdname1" valign="top" nowrap> <em>pos</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top">float </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 </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 </td> <td class="mdname" nowrap> <em>rotZ</em></td> </tr> <tr> <td></td> <td class="md">) </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> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> <td class="mdname1" valign="top" nowrap> <em>rot</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a03296.html">CQuat</a> & </td> <td class="mdname1" valign="top" nowrap> <em>quat</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top">float </td> <td class="mdname1" valign="top" nowrap> <em>scale</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">float </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 </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 </td> <td class="mdname" nowrap> <em>scaleZ</em></td> </tr> <tr> <td></td> <td class="md">) </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> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> <td class="mdname1" valign="top" nowrap> <em>scale</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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< T >::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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a> </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> </td> <td class="mdname" nowrap> <em>ro</em> = CMatrix::ZXY</td> </tr> <tr> <td></td> <td class="md">) </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </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> </td> <td class="mdname" nowrap> <em>ownerValueId</em></td> </tr> <tr> <td></td> <td class="md">) </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> </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> </td><td>is the animated value ID in the object we want to touch. </td></tr> <tr><td valign=top><em>ownerValueId</em> </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> </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><<a class="el" href="a02279.html">CBoneBase</a>> <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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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>