aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03468.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a03468.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a03468.html')
-rw-r--r--docs/doxygen/nel/a03468.html774
1 files changed, 774 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03468.html b/docs/doxygen/nel/a03468.html
new file mode 100644
index 00000000..b90b9c74
--- /dev/null
+++ b/docs/doxygen/nel/a03468.html
@@ -0,0 +1,774 @@
+<!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::CTargetAnimCtrl class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NL3D::CTargetAnimCtrl Class Reference</h1><code>#include &lt;<a class="el" href="a06484.html">target_anim_ctrl.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NL3D::CTargetAnimCtrl:
+<p><center><img src="a03468.png" usemap="#NL3D::CTargetAnimCtrl_map" border="0" alt=""></center>
+<map name="NL3D::CTargetAnimCtrl_map">
+<area href="a03836.html" alt="NL3D::IAnimCtrl" shape="rect" coords="0,0,143,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+AnimCtrl used to constraint a bone to follow a target, either given by Position or Direction. Typical use for Head control Use TargetMode is better than computing Direction from Previous rendered Bone WorldMatrix (one frame late). The ctrl support AngleBlocking, and MaxBoneAngularSpeed (avoid strange head pop). The Bone must be in RotQuat mode, else the ctrl does nothing. <dl compact><dt><b>Author:</b></dt><dd>Lionel Berenguier <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2003 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00048">48</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3">TMode</a> { <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw2">TargetMode</a> = 0,
+<a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw0">DirectionMode</a>,
+<a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw1">NumMode</a>
+ }</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrla0">CTargetAnimCtrl</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NL3D_1_1CTargetAnimCtrla0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrla1">execute</a> (<a class="el" href="a03399.html">CSkeletonModel</a> *model, <a class="el" href="a02277.html">CBone</a> *bone)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called at compute() time. <a href="#NL3D_1_1CTargetAnimCtrla1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrla2">~CTargetAnimCtrl</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="a03468.html#NL3D_1_1CTargetAnimCtrlw3">TMode</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlo0">Mode</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Target controled or direction controled. Default to DirectionMode. <a href="#NL3D_1_1CTargetAnimCtrlo0"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Target and Direction specific</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03296.html">CQuat</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_0">CurrentWorldDirection</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For DirectionMode, the WorldRotation to apply to the bone. NB: modified in <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrla1">execute()</a> if TargetMode. <a href="#NL3D_1_1CTargetAnimCtrlz1364_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_1">EyePos</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For TargetMode only, the Pos of eyes relative to the bone controlled. Default to (0,0,0). <a href="#NL3D_1_1CTargetAnimCtrlz1364_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_2">WorldTarget</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For TargetMode, the world Position of the target. <a href="#NL3D_1_1CTargetAnimCtrlz1364_2"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Common</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03296.html">CQuat</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_0">DefaultWorldDirection</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This give The World Orientation when the Mesh is in bind Pos (default to "LookBack"). <a href="#NL3D_1_1CTargetAnimCtrlz1366_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_2">MaxAngle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The Maximum angle of rotation that can be performed between the Default Direction and Current Direction. Default to Pi/3. <a href="#NL3D_1_1CTargetAnimCtrlz1366_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_3">MaxAngularVelocity</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The Maximum Angular Velocity the ctrl can perform. Default to 2*Pi per second. <a href="#NL3D_1_1CTargetAnimCtrlz1366_3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03296.html">CQuat</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrld0">getCurrentLSRotationFromBone</a> (<a class="el" href="a03399.html">CSkeletonModel</a> *model, <a class="el" href="a02277.html">CBone</a> *bone)</td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlr0">_EnableToDisableTransition</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlr1">_LastEnabled</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This tells that a Enable/Disable transition is in progress. <a href="#NL3D_1_1CTargetAnimCtrlr1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03296.html">CQuat</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlr2">_LastLSRotation</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The last rotation computed (in LocalSkeleton Space). Used to smooth transition. <a href="#NL3D_1_1CTargetAnimCtrlr2"></a><br><br></td></tr>
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlw3" doxytag="NL3D::CTargetAnimCtrl::TMode" ></a><p>
+<table class="mdTable" 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="a03468.html#NL3D_1_1CTargetAnimCtrlw3">NL3D::CTargetAnimCtrl::TMode</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw2" doxytag="TargetMode" ></a>TargetMode</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw0" doxytag="DirectionMode" ></a>DirectionMode</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw1" doxytag="NumMode" ></a>NumMode</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00052">52</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+<div class="fragment"><pre>00052 {<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw2">TargetMode</a>=0, <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw0">DirectionMode</a>, <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw1">NumMode</a>};
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrla0" doxytag="NL3D::CTargetAnimCtrl::CTargetAnimCtrl" ></a><p>
+<table class="mdTable" 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::CTargetAnimCtrl::CTargetAnimCtrl </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06483.html#l00040">40</a> of file <a class="el" href="a06483.html">target_anim_ctrl.cpp</a>.
+<p>
+References <a class="el" href="a06484.html#l00099">_EnableToDisableTransition</a>, <a class="el" href="a06484.html#l00098">_LastEnabled</a>, <a class="el" href="a06484.html#l00075">DefaultWorldDirection</a>, <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw0">DirectionMode</a>, <a class="el" href="a06484.html#l00073">Enabled</a>, <a class="el" href="a06484.html#l00063">EyePos</a>, <a class="el" href="a06484.html#l00077">MaxAngle</a>, <a class="el" href="a06484.html#l00079">MaxAngularVelocity</a>, <a class="el" href="a06484.html#l00056">Mode</a>, <a class="el" href="a05587.html#l00079">NLMISC::Pi</a>, <a class="el" href="a06308.html#l00095">NLMISC::CQuatT&lt; float &gt;::set()</a>, and <a class="el" href="a06484.html#l00061">WorldTarget</a>.
+<p>
+<div class="fragment"><pre>00041 {
+00042 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlo0">Mode</a>= <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw0">DirectionMode</a>;
+00043 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_2">WorldTarget</a>= CVector::Null;
+00044 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_1">EyePos</a>= CVector::Null;
+00045 <span class="comment">// Default Direction to "LookBack".</span>
+00046 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_0">DefaultWorldDirection</a>.set(0,0,1,0);
+00047 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_2">MaxAngle</a>= (<span class="keywordtype">float</span>)<a class="code" href="a05378.html#a44">Pi</a>/3;
+00048 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_3">MaxAngularVelocity</a>= (<span class="keywordtype">float</span>)(2*<a class="code" href="a05378.html#a44">Pi</a>);
+00049 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a>= <span class="keyword">true</span>;
+00050 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr0">_EnableToDisableTransition</a>= <span class="keyword">false</span>;
+00051 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr1">_LastEnabled</a>= <span class="keyword">true</span>;
+00052 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrla2" doxytag="NL3D::CTargetAnimCtrl::~CTargetAnimCtrl" ></a><p>
+<table class="mdTable" 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::CTargetAnimCtrl::~<a class="el" href="a03468.html">CTargetAnimCtrl</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06483.html#l00056">56</a> of file <a class="el" href="a06483.html">target_anim_ctrl.cpp</a>.
+<p>
+<div class="fragment"><pre>00057 {
+00058 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrla1" doxytag="NL3D::CTargetAnimCtrl::execute" ></a><p>
+<table class="mdTable" 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::CTargetAnimCtrl::execute </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03399.html">CSkeletonModel</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>model</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02277.html">CBone</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>bone</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called at compute() time.
+<p>
+
+<p>
+Implements <a class="el" href="a03836.html#NL3D_1_1IAnimCtrla0">NL3D::IAnimCtrl</a>.
+<p>
+Definition at line <a class="el" href="a06483.html#l00062">62</a> of file <a class="el" href="a06483.html">target_anim_ctrl.cpp</a>.
+<p>
+References <a class="el" href="a06484.html#l00099">_EnableToDisableTransition</a>, <a class="el" href="a06484.html#l00098">_LastEnabled</a>, <a class="el" href="a06484.html#l00095">_LastLSRotation</a>, <a class="el" href="a06308.html#l00053">NLMISC::CAngleAxis::Angle</a>, <a class="el" href="a06394.html#l00098">NL3D::CSkeletonModel::Bones</a>, <a class="el" href="a05587.html#l00115">NLMISC::clamp()</a>, <a class="el" href="a05491.html#l00155">NL3D::CBone::compute()</a>, <a class="el" href="a06308.html#l00139">NLMISC::CQuatT&lt; float &gt;::conjugate()</a>, <a class="el" href="a06484.html#l00065">CurrentWorldDirection</a>, <a class="el" href="a06484.html#l00075">DefaultWorldDirection</a>, <a class="el" href="a06484.html#l00073">Enabled</a>, <a class="el" href="a06484.html#l00063">EyePos</a>, <a class="el" href="a06308.html#l00148">NLMISC::CQuatT&lt; float &gt;::getAngle()</a>, <a class="el" href="a06308.html#l00150">NLMISC::CQuatT&lt; float &gt;::getAngleAxis()</a>, <a class="el" href="a05492.html#l00114">NL3D::CBone::getBoneBase()</a>, <a class="el" href="a06483.html#l00219">getCurrentLSRotationFromBone()</a>, <a class="el" href="a06349.html#l00274">NL3D::CScene::getEllapsedTime()</a>, <a class="el" href="a05492.html#l00112">NL3D::CBone::getFatherId()</a>, <a class="el" href="a05492.html#l00144">NL3D::CBone::getLocalSkeletonMatrix()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05972.html#l00353">NLMISC::CMatrix::getRot()</a>, <a class="el" href="a06575.html#l00189">NL3D::ITransformable::getTransformMode()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05492.html#l00147">NL3D::CBone::getWorldMatrix()</a>, <a class="el" href="a05492.html#l00060">NL3D::CBoneBase::InvBindPos</a>, <a class="el" href="a03297.html#NLMISC_1_1CQuatTz2012_2">NLMISC::CQuatT&lt; float &gt;::makeClosest()</a>, <a class="el" href="a06484.html#l00077">MaxAngle</a>, <a class="el" href="a06484.html#l00079">MaxAngularVelocity</a>, <a class="el" href="a06484.html#l00056">Mode</a>, <a class="el" href="a05972.html#l01170">NLMISC::CMatrix::normalize()</a>, <a class="el" href="a06682.html#l00125">NLMISC::CVector::normed()</a>, <a class="el" href="a03297.html#NLMISC_1_1CQuatTz2010_4">NLMISC::CQuatT&lt; float &gt;::setAngleAxis()</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="a06484.html#l00061">WorldTarget</a>.
+<p>
+<div class="fragment"><pre>00063 {
+00064 <span class="comment">// no op if req not met</span>
+00065 <span class="keywordflow">if</span>(!bone || !model || bone-&gt;getTransformMode()!=ITransformable::RotQuat)
+00066 <span class="keywordflow">return</span>;
+00067
+00068 <span class="comment">// If the user changed the Enabled state, must do a transition.</span>
+00069 <span class="keywordflow">if</span>(<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr1">_LastEnabled</a>!=<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a>)
+00070 {
+00071 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr1">_LastEnabled</a>= <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a>;
+00072 <span class="comment">// if re-enable the control while completely disabled before</span>
+00073 <span class="keywordflow">if</span>(Enabled &amp;&amp; !<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr0">_EnableToDisableTransition</a>)
+00074 {
+00075 <span class="comment">// set the LastLSRotation so that it match the current anim ones.</span>
+00076 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr2">_LastLSRotation</a>= <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrld0">getCurrentLSRotationFromBone</a>(model, bone);
+00077 }
+00078 <span class="comment">// if disable the ctrl, then do a transition first</span>
+00079 <span class="keywordflow">if</span>(!Enabled)
+00080 {
+00081 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr0">_EnableToDisableTransition</a>= <span class="keyword">true</span>;
+00082 }
+00083 }
+00084
+00085 <span class="comment">// If not enabled, and not in transition, no op.</span>
+00086 <span class="keywordflow">if</span>( !<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a> &amp;&amp; !<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr0">_EnableToDisableTransition</a>)
+00087 <span class="keywordflow">return</span>;
+00088
+00089 <span class="comment">// If Target mode, compute CurrentWorldDirection</span>
+00090 <span class="comment">// ***********</span>
+00091 <span class="comment">// NB: does need to compute direction if disabled (even if in transition)</span>
+00092 <span class="keywordflow">if</span>(<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlo0">Mode</a>==<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3NL3D_1_1CTargetAnimCtrlw2">TargetMode</a> &amp;&amp; <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a>)
+00093 {
+00094 <span class="comment">// get the eye pos in world.</span>
+00095 CVector worldEye= bone-&gt;getWorldMatrix()*<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_1">EyePos</a>;
+00096 <span class="comment">// get the world dir</span>
+00097 CVector worldDir= (<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_2">WorldTarget</a> - worldEye).normed();
+00098 <span class="comment">// get the associated quat</span>
+00099 CMatrix mat;
+00100 mat.setRot(CVector::I, worldDir, CVector::K);
+00101 mat.normalize(CMatrix::YZX);
+00102 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_0">CurrentWorldDirection</a>= mat.getRot();
+00103 }
+00104
+00105
+00106 <span class="comment">// compute rotation to apply In LocalSkeleton Space</span>
+00107 <span class="comment">// ***********</span>
+00108 CQuat currentLSRotation;
+00109
+00110 <span class="comment">/* Get the Skeleton default WorldMatrix (bind pos). used later</span>
+00111 <span class="comment"> TRICK: to get the default Skeleton WorldMatrix, get it from Bone[0] (ie "Bip01")</span>
+00112 <span class="comment"> We cannot use the Default Pos/Rot of the skeleton model because of export bug (not exported...)</span>
+00113 <span class="comment"> So, since Bip01 as no Local Rot (yes, its true, exporter report all Bip01 rots on Skeleton), </span>
+00114 <span class="comment"> we are sure that Bip01 BindPos is the default Skeleton World Matrix.</span>
+00115 <span class="comment"> */</span>
+00116 CQuat rootInvBP= model-&gt;Bones[0].getBoneBase().InvBindPos.getRot();
+00117
+00118 <span class="comment">// If ctrl not enabled, take the LSRotation from the animation</span>
+00119 <span class="keywordflow">if</span>(!<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a>)
+00120 {
+00121 currentLSRotation= <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrld0">getCurrentLSRotationFromBone</a>(model, bone);
+00122 }
+00123 <span class="keywordflow">else</span>
+00124 {
+00125 <span class="comment">// Get the wanted direction in LocalSkeleton Space. </span>
+00126 CQuat currentLSDirection;
+00127
+00128 <span class="comment">// Get the current wanted WorldDirection into LocalSkeleton space (hence using current skeleton WorldMatrix).</span>
+00129 CMatrix toLSSpace= model-&gt;getWorldMatrix();
+00130 currentLSDirection= toLSSpace.getRot().conjugate() * <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_0">CurrentWorldDirection</a>;
+00131
+00132 <span class="comment">// Get the default WorldDirection into LocalSkeleton space (hence using default skeleton WorldMatrix).</span>
+00133 CQuat defaultLSDirection= rootInvBP * <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_0">DefaultWorldDirection</a>;
+00134
+00135 <span class="comment">/* get the rotation to apply to the bone when it is in bind Pos. If this quat is identity, </span>
+00136 <span class="comment"> then the bone will be in default (or bind) pos.</span>
+00137 <span class="comment"> It is in essence the "rotation to apply to defaultDirection in LS space, in order to get </span>
+00138 <span class="comment"> the wanted current direction in LS space".</span>
+00139 <span class="comment"> The makeClosest() is here just to ensure that the resulting angle&lt;Pi (for clamp direction later)</span>
+00140 <span class="comment"> */</span>
+00141 currentLSDirection.makeClosest(defaultLSDirection);
+00142 currentLSRotation= currentLSDirection * defaultLSDirection.conjugate();
+00143 }
+00144
+00145
+00146 <span class="comment">// Clamp direction, and smooth direction changes.</span>
+00147 <span class="comment">// ***********</span>
+00148 <span class="comment">// if not enabled, then LSRotation comes from the animation =&gt; do not clamp</span>
+00149 <span class="keywordflow">if</span>(<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a>)
+00150 {
+00151 <span class="comment">// to AngleAxis.</span>
+00152 <a class="code" href="a02195.html">CAngleAxis</a> angleAxis= currentLSRotation.getAngleAxis();
+00153 <span class="comment">// Clamp the angle</span>
+00154 <a class="code" href="a05378.html#a374">clamp</a>(angleAxis.<a class="code" href="a02195.html#NLMISC_1_1CAngleAxiso0">Angle</a>, -MaxAngle, MaxAngle);
+00155 <span class="comment">// back To Quat.</span>
+00156 currentLSRotation.setAngleAxis(angleAxis);
+00157 }
+00158
+00159 <span class="comment">// get the dt of the scene.</span>
+00160 CScene *scene= model-&gt;getOwnerScene();
+00161 <span class="keywordtype">float</span> sceneDt= scene-&gt;getEllapsedTime();
+00162 <span class="keywordtype">float</span> maxDeltaAngle= <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_3">MaxAngularVelocity</a>*sceneDt;
+00163 <span class="comment">// get the quat that change from LastRotation to CurrentRotation</span>
+00164 CQuat rotMod= <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr2">_LastLSRotation</a>.conjugate() * currentLSRotation;
+00165 <span class="comment">// compute how many rotation we are allowed to do.</span>
+00166 <span class="keywordtype">float</span> rotModAngle= (<span class="keywordtype">float</span>)fabs(rotMod.getAngle());
+00167 <span class="keywordtype">bool</span> rotSpeedClamped= <span class="keyword">false</span>;
+00168 <span class="keywordflow">if</span>(rotModAngle)
+00169 {
+00170 <span class="keywordtype">float</span> factor= (<span class="keywordtype">float</span>)fabs(maxDeltaAngle) / rotModAngle;
+00171 <span class="comment">// If cannot do all the rotation this frame</span>
+00172 <span class="keywordflow">if</span>(factor&lt;1)
+00173 {
+00174 <span class="comment">// then slerp between last and current rotation</span>
+00175 currentLSRotation.makeClosest(_LastLSRotation);
+00176 currentLSRotation= CQuat::slerp(_LastLSRotation, currentLSRotation, factor);
+00177 rotSpeedClamped= <span class="keyword">true</span>;
+00178 }
+00179 }
+00180
+00181 <span class="comment">// if the rotation has not been clamped for speed consideration, and if !Enabed, it's mean we have ended </span>
+00182 <span class="comment">// the transition =&gt; no more compute next time</span>
+00183 <span class="keywordflow">if</span>(!<a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">Enabled</a> &amp;&amp; !rotSpeedClamped)
+00184 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr0">_EnableToDisableTransition</a>= <span class="keyword">false</span>;
+00185
+00186 <span class="comment">// bkup last rotation</span>
+00187 <a class="code" href="a03468.html#NL3D_1_1CTargetAnimCtrlr2">_LastLSRotation</a>= currentLSRotation;
+00188
+00189 <span class="comment">// Apply the weighted Rotation to the bone</span>
+00190 <span class="comment">// ***********</span>
+00191 <span class="comment">// Get the bone Bind Pos in LocalSkeleton space (hence using Default Skeleton WorldMatrix)</span>
+00192 CQuat boneBindPosInWorld= bone-&gt;getBoneBase().InvBindPos.getRot().conjugate();
+00193 CQuat boneBindPosInLS= rootInvBP * boneBindPosInWorld;
+00194 <span class="comment">// rotate it to match our wanted direction.</span>
+00195 boneBindPosInLS= currentLSRotation * boneBindPosInLS;
+00196
+00197 <span class="comment">// get it in bone local space.</span>
+00198 <span class="comment">// get the Bone Parent LocalSkeletonMatrix</span>
+00199 CBone *boneParent= bone-&gt;getFatherId()==-1? NULL : &amp;model-&gt;Bones[bone-&gt;getFatherId()];
+00200 CQuat currentLocalQuat;
+00201 <span class="keywordflow">if</span>(!boneParent)
+00202 currentLocalQuat= boneBindPosInLS;
+00203 <span class="keywordflow">else</span>
+00204 {
+00205 <span class="comment">// compute the rotation to apply, in local space</span>
+00206 CQuat qp= boneParent-&gt;getLocalSkeletonMatrix().getRot();
+00207 currentLocalQuat= qp.conjugate() * boneBindPosInLS;
+00208 }
+00209
+00210 <span class="comment">// set the new LocalRotQuat</span>
+00211 bone-&gt;setRotQuat(currentLocalQuat);
+00212 <span class="comment">// and recompute the bone (but without AnimCtrl of course :) )</span>
+00213 bone-&gt;compute(boneParent, model-&gt;getWorldMatrix(), NULL);
+00214
+00215 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrld0" doxytag="NL3D::CTargetAnimCtrl::getCurrentLSRotationFromBone" ></a><p>
+<table class="mdTable" 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::CTargetAnimCtrl::getCurrentLSRotationFromBone </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03399.html">CSkeletonModel</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>model</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02277.html">CBone</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>bone</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06483.html#l00219">219</a> of file <a class="el" href="a06483.html">target_anim_ctrl.cpp</a>.
+<p>
+References <a class="el" href="a06394.html#l00098">NL3D::CSkeletonModel::Bones</a>, <a class="el" href="a06308.html#l00139">NLMISC::CQuatT&lt; float &gt;::conjugate()</a>, <a class="el" href="a05492.html#l00114">NL3D::CBone::getBoneBase()</a>, <a class="el" href="a05492.html#l00144">NL3D::CBone::getLocalSkeletonMatrix()</a>, <a class="el" href="a05972.html#l00353">NLMISC::CMatrix::getRot()</a>, <a class="el" href="a05492.html#l00060">NL3D::CBoneBase::InvBindPos</a>, and <a class="el" href="a03297.html#NLMISC_1_1CQuatTz2012_2">NLMISC::CQuatT&lt; float &gt;::makeClosest()</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">execute()</a>.
+<p>
+<div class="fragment"><pre>00220 {
+00221 <span class="comment">// get the current rotation matrix (qmat) of this bone, in LS space</span>
+00222 CQuat currentLSRot= bone-&gt;getLocalSkeletonMatrix().getRot();
+00223
+00224 <span class="comment">// get the default bindPos (qb) rotation of this bone, in LS space.</span>
+00225 CQuat boneBindPosInWorld= bone-&gt;getBoneBase().InvBindPos.getRot().conjugate();
+00226 CQuat rootInvBP= model-&gt;Bones[0].getBoneBase().InvBindPos.getRot();
+00227 CQuat boneBindPosInLS= rootInvBP * boneBindPosInWorld;
+00228
+00229 <span class="comment">// The rotation (qrot) is computed such that qmat= qrot * qb</span>
+00230 currentLSRot.makeClosest(boneBindPosInLS);
+00231 <span class="keywordflow">return</span> currentLSRot * boneBindPosInLS.conjugate();
+00232 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlr0" doxytag="NL3D::CTargetAnimCtrl::_EnableToDisableTransition" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlr0">NL3D::CTargetAnimCtrl::_EnableToDisableTransition</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00099">99</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlr1" doxytag="NL3D::CTargetAnimCtrl::_LastEnabled" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlr1">NL3D::CTargetAnimCtrl::_LastEnabled</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This tells that a Enable/Disable transition is in progress.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00098">98</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlr2" doxytag="NL3D::CTargetAnimCtrl::_LastLSRotation" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlr2">NL3D::CTargetAnimCtrl::_LastLSRotation</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The last rotation computed (in LocalSkeleton Space). Used to smooth transition.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00095">95</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlz1364_0" doxytag="NL3D::CTargetAnimCtrl::CurrentWorldDirection" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_0">NL3D::CTargetAnimCtrl::CurrentWorldDirection</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For DirectionMode, the WorldRotation to apply to the bone. NB: modified in <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrla1">execute()</a> if TargetMode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00065">65</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlz1366_0" doxytag="NL3D::CTargetAnimCtrl::DefaultWorldDirection" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_0">NL3D::CTargetAnimCtrl::DefaultWorldDirection</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This give The World Orientation when the Mesh is in bind Pos (default to "LookBack").
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00075">75</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlz1366_1" doxytag="NL3D::CTargetAnimCtrl::Enabled" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_1">NL3D::CTargetAnimCtrl::Enabled</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This enable or disable the ctrl. When disabled or enabled, the ctrl ensure that the movement does not "pop", respecting MaxAngularVelocity. Default to true.
+<p>
+Definition at line <a class="el" href="a06484.html#l00073">73</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlz1364_1" doxytag="NL3D::CTargetAnimCtrl::EyePos" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_1">NL3D::CTargetAnimCtrl::EyePos</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For TargetMode only, the Pos of eyes relative to the bone controlled. Default to (0,0,0).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00063">63</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlz1366_2" doxytag="NL3D::CTargetAnimCtrl::MaxAngle" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_2">NL3D::CTargetAnimCtrl::MaxAngle</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The Maximum angle of rotation that can be performed between the Default Direction and Current Direction. Default to Pi/3.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00077">77</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlz1366_3" doxytag="NL3D::CTargetAnimCtrl::MaxAngularVelocity" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1366_3">NL3D::CTargetAnimCtrl::MaxAngularVelocity</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The Maximum Angular Velocity the ctrl can perform. Default to 2*Pi per second.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00079">79</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlo0" doxytag="NL3D::CTargetAnimCtrl::Mode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlw3">TMode</a> <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlo0">NL3D::CTargetAnimCtrl::Mode</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Target controled or direction controled. Default to DirectionMode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00056">56</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CTargetAnimCtrlz1364_2" doxytag="NL3D::CTargetAnimCtrl::WorldTarget" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a03468.html#NL3D_1_1CTargetAnimCtrlz1364_2">NL3D::CTargetAnimCtrl::WorldTarget</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For TargetMode, the world Position of the target.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06484.html#l00061">61</a> of file <a class="el" href="a06484.html">target_anim_ctrl.h</a>.
+<p>
+Referenced by <a class="el" href="a06483.html#l00040">CTargetAnimCtrl()</a>, and <a class="el" href="a06483.html#l00062">execute()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06484.html">target_anim_ctrl.h</a><li><a class="el" href="a06483.html">target_anim_ctrl.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 07:47:42 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>