diff options
Diffstat (limited to 'docs/doxygen/nel/a03573.html')
-rw-r--r-- | docs/doxygen/nel/a03573.html | 1785 |
1 files changed, 1785 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03573.html b/docs/doxygen/nel/a03573.html new file mode 100644 index 00000000..573edc20 --- /dev/null +++ b/docs/doxygen/nel/a03573.html @@ -0,0 +1,1785 @@ +<!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::CTrackKeyFramerLinear< CKeyQuat, CQuat > 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::CTrackKeyFramerLinear< CKeyQuat, CQuat > Class Reference</h1><code>#include <<a class="el" href="a06559.html">track_keyframer.h</a>></code> +<p> +<p>Inheritance diagram for NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >: +<p><center><img src="a03573.png" usemap="#NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >_map" border="0" alt=""></center> +<map name="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >_map"> +<area href="a03554.html" alt="NL3D::ITrackKeyFramer< CKeyQuat >" shape="rect" coords="327,168,644,192"> +<area href="a03542.html" alt="NL3D::ITrack" shape="rect" coords="163,112,480,136"> +<area href="a03555.html" alt="NL3D::UTrackKeyframer" shape="rect" coords="490,112,807,136"> +<area href="a02867.html" alt="NLMISC::IStreamable" shape="rect" coords="0,56,317,80"> +<area href="a03881.html" alt="NL3D::UTrack" shape="rect" coords="327,56,644,80"> +<area href="a02540.html" alt="NLMISC::IClassable" shape="rect" coords="0,0,317,24"> +<area href="a03577.html" alt="NL3D::CTrackKeyFramerLinearQuat" shape="rect" coords="327,280,644,304"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Quaternions special implementation for linear keyframer.<p> +<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="a06559.html#l00565">565</a> of file <a class="el" href="a06559.html">track_keyframer.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>typedef std::map< <a class="el" href="a05363.html#a366">TAnimationTime</a>,<br> + <a class="el" href="a02695.html">CKeyQuat</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerw0">TMapTimeCKey</a></td></tr> + +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03555.html#NL3D_1_1UTrackKeyframera0">addBezierFloatKey</a> (const UKeyBezierFloat &key)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fail if not A Float Bezier Keyframer. <a href="#NL3D_1_1UTrackKeyframera0"></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="a03554.html#NL3D_1_1ITrackKeyFramera1">addKey</a> (const <a class="el" href="a02695.html">CKeyQuat</a> &key, <a class="el" href="a05363.html#a366">TAnimationTime</a> time)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03555.html#NL3D_1_1UTrackKeyframera1">addLinearFloatKey</a> (const UKeyLinearFloat &key)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fail if not A Float Linear Keyframer. <a href="#NL3D_1_1UTrackKeyframera1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03555.html#NL3D_1_1UTrackKeyframera2">addTCBFloatKey</a> (const UKeyTCBFloat &key)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fail if not A Float TCB Keyframer. <a href="#NL3D_1_1UTrackKeyframera2"></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="a03554.html#NL3D_1_1ITrackKeyFramera4">eval</a> (const <a class="el" href="a05363.html#a366">TAnimationTime</a> &inDate)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">From <a class="el" href="a03542.html">ITrack</a>. <a href="#NL3D_1_1ITrackKeyFramera4"></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="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata5">evalKey</a> (const <a class="el" href="a02695.html">CKeyQuat</a> *previous, const <a class="el" href="a02695.html">CKeyQuat</a> *next, <a class="el" href="a05363.html#a366">TAnimationTime</a> datePrevious, <a class="el" href="a05363.html#a366">TAnimationTime</a> dateNext, <a class="el" href="a05363.html#a366">TAnimationTime</a> date)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">From <a class="el" href="a03554.html">ITrackKeyFramer</a>. <a href="#NL3D_1_1CTrackKeyFramerLinearQuata5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a05363.html#a366">TAnimationTime</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera5">getBeginTime</a> () const</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02540.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6">getClassName</a> ()=0</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a05363.html#a366">TAnimationTime</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera7">getEndTime</a> () const</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera8">getKeysInRange</a> (<a class="el" href="a05363.html#a366">TAnimationTime</a> t1, <a class="el" href="a05363.html#a366">TAnimationTime</a> t2, std::vector< <a class="el" href="a05363.html#a366">TAnimationTime</a> > &result)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera9">getLoopMode</a> () const</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get LoopMode. From <a class="el" href="a03542.html">ITrack</a> <a href="#NL3D_1_1ITrackKeyFramera9"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a366">TAnimationTime</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera10">getRangeDelta</a> () const</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">rangeDelta is (length of effective Range) - (length of LastKey-FirstKey). NB: if RangeLock, rangeDelta==0. <a href="#NL3D_1_1ITrackKeyFramera10"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a03835.html">IAnimatedValue</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata12">getValue</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">From <a class="el" href="a03542.html">ITrack</a>. <a href="#NL3D_1_1CTrackKeyFramerLinearQuata12"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera12">isRangeLocked</a> () const</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">return true if Range is locked to first/last key. use getBeginTime and getEndTime to get the effective begin/end range times... <a href="#NL3D_1_1ITrackKeyFramera12"></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="a03554.html#NL3D_1_1ITrackKeyFramera14">lockRange</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">range is computed from frist and last key time (default). <a href="#NL3D_1_1ITrackKeyFramera14"></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="a03554.html#NL3D_1_1ITrackKeyFramera15">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f) throw (NLMISC::EStream)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serial the template. <a href="#NL3D_1_1ITrackKeyFramera15"></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="a03554.html#NL3D_1_1ITrackKeyFramera16">setLoopMode</a> (bool loop)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">set LoopMode. 2 mode only: "constant" (<=>false), and "loop" (<=> true). same mode for in and out... <a href="#NL3D_1_1ITrackKeyFramera16"></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="a03554.html#NL3D_1_1ITrackKeyFramera17">unlockRange</a> (<a class="el" href="a05363.html#a366">TAnimationTime</a> begin, <a class="el" href="a05363.html#a366">TAnimationTime</a> end)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">set an explicit animation range. (see <a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera5">getBeginTime()</a> / setEndTime() ). <a href="#NL3D_1_1ITrackKeyFramera17"></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><a class="el" href="a03555.html">UTrackKeyframer</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03555.html#NL3D_1_1UTrackKeyframere0">createBezierFloatTrack</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03555.html">UTrackKeyframer</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03555.html#NL3D_1_1UTrackKeyframere1">createLinearFloatTrack</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03555.html">UTrackKeyframer</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03555.html#NL3D_1_1UTrackKeyframere2">createTCBFloatTrack</a> ()</td></tr> + +<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerb0">compile</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerb2">getCompiledRangeDelta</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">This is for Deriver <a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerb0">compile()</a>, because _RangeDelta (<a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera10">getRangeDelta()</a>) is himself computed in <a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerb0">compile()</a>. <a href="#NL3D_1_1ITrackKeyFramerb2"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerw0">TMapTimeCKey</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a></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="a02201.html">CAnimatedValueBlendable</a>< <a class="el" href="a03296.html">CQuat</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a03573.html#NL3D_1_1CTrackKeyFramerLinear_3_01CKeyQuat_00_01CQuat_01_4r0">_Value</a></td></tr> + +</table> +<hr><h2>Member Typedef Documentation</h2> +<a class="anchor" name="NL3D_1_1ITrackKeyFramerw0" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::TMapTimeCKey" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> typedef std::map<<a class="el" href="a05363.html#a366">TAnimationTime</a>, <a class="el" href="a02695.html">CKeyQuat</a> > <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::<a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerw0">TMapTimeCKey</a><code> [inherited]</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="a06559.html#l00065">65</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1UTrackKeyframera0" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::addBezierFloatKey" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::UTrackKeyframer::addBezierFloatKey </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03949.html">UKeyBezierFloat</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>key</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Fail if not A Float Bezier Keyframer. +<p> + +<p> +Reimplemented in <a class="el" href="a03558.html#NL3D_1_1CTrackKeyFramerBezierFloata0">NL3D::CTrackKeyFramerBezierFloat</a>. +<p> +Definition at line <a class="el" href="a06633.html#l00220">220</a> of file <a class="el" href="a06633.html">u_track.h</a>. +<p> +<div class="fragment"><pre>00220 {<span class="keywordflow">return</span> <span class="keyword">false</span>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera1" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::addKey" ></a><p> +<table class="mdTable" 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 <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::addKey </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02695.html">CKeyQuat</a> & </td> + <td class="mdname" nowrap> <em>key</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>time</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> +Add a key in the keyframer.<p> +The key passed is duplicated in the track.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>key</em> </td><td>is the key value to add in the keyframer. </td></tr> + <tr><td valign=top><em>time</em> </td><td>is the time of the key to add in the keyframer.</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a06559.html#l00090">90</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00091 { +00092 <span class="comment">// Insert the key in the map</span> +00093 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.insert (TMapTimeCKey::value_type (time, key)); +00094 +00095 <span class="comment">// must precalc at next eval.</span> +00096 _Dirty= <span class="keyword">true</span>; +00097 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1UTrackKeyframera1" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::addLinearFloatKey" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::UTrackKeyframer::addLinearFloatKey </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03950.html">UKeyLinearFloat</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>key</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Fail if not A Float Linear Keyframer. +<p> + +<p> +Reimplemented in <a class="el" href="a03575.html#NL3D_1_1CTrackKeyFramerLinearFloata2">NL3D::CTrackKeyFramerLinearFloat</a>. +<p> +Definition at line <a class="el" href="a06633.html#l00218">218</a> of file <a class="el" href="a06633.html">u_track.h</a>. +<p> +<div class="fragment"><pre>00218 {<span class="keywordflow">return</span> <span class="keyword">false</span>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1UTrackKeyframera2" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::addTCBFloatKey" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::UTrackKeyframer::addTCBFloatKey </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03951.html">UKeyTCBFloat</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>key</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Fail if not A Float TCB Keyframer. +<p> + +<p> +Reimplemented in <a class="el" href="a03584.html#NL3D_1_1CTrackKeyFramerTCBFloata3">NL3D::CTrackKeyFramerTCBFloat</a>. +<p> +Definition at line <a class="el" href="a06633.html#l00222">222</a> of file <a class="el" href="a06633.html">u_track.h</a>. +<p> +<div class="fragment"><pre>00222 {<span class="keywordflow">return</span> <span class="keyword">false</span>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramerb0" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::compile" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::compile </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, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Precalc keyframe runtime infos for interpolation (OODTime...). All keys should be processed. This is called by eval when necessary. Deriver should call <a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerb0">ITrackKeyFramer::compile()</a> first, to compile basic Key runtime info. +<p> +Definition at line <a class="el" href="a06559.html#l00302">302</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00303 { +00304 <span class="keywordtype">float</span> timeFirstKey; +00305 <span class="keywordtype">float</span> timeLastKey; +00306 +00307 <span class="comment">// Compute time of first/last key.</span> +00308 <span class="keywordflow">if</span>( !<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.empty() ) +00309 { +00310 <span class="keyword">typename</span> TMapTimeCKey::const_iterator ite; +00311 +00312 <span class="comment">// Get first key</span> +00313 ite=<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.begin (); +00314 timeFirstKey= ite->first; +00315 +00316 <span class="comment">// Get last key</span> +00317 ite=<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.end (); +00318 ite--; +00319 timeLastKey= ite->first; +00320 } +00321 <span class="keywordflow">else</span> +00322 { +00323 timeFirstKey= 0.0f; +00324 timeLastKey= 0.0f; +00325 } +00326 +00327 +00328 <span class="comment">// Compute RangeBegin / RangeEnd. (if not user provided).</span> +00329 <span class="keywordflow">if</span>(_RangeLock) +00330 { +00331 _RangeBegin= timeFirstKey; +00332 _RangeEnd= timeLastKey; +00333 } +00334 +00335 +00336 <span class="comment">// Compute _RangeDelta.</span> +00337 <span class="keywordflow">if</span>(_RangeLock) +00338 { +00339 _RangeDelta= 0; +00340 } +00341 <span class="keywordflow">else</span> +00342 { +00343 _RangeDelta= (_RangeEnd - _RangeBegin) - (timeLastKey - timeFirstKey); +00344 } +00345 +00346 <span class="comment">// Misc range.</span> +00347 _TotalRange= _RangeEnd - _RangeBegin; +00348 <span class="keywordflow">if</span>(_TotalRange>0.0f) +00349 _OOTotalRange= 1.0f/_TotalRange; +00350 <span class="comment">// start of loop / ned.</span> +00351 _LoopStart= timeFirstKey; +00352 _LoopEnd= timeFirstKey + _TotalRange; +00353 +00354 +00355 <span class="comment">// After _RangeDelta computed, compute OO delta times.</span> +00356 <span class="keyword">typename</span> TMapTimeCKey::iterator it= <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.begin(); +00357 <span class="keywordflow">for</span>(;it!=<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.end();it++) +00358 { +00359 <span class="keyword">typename</span> TMapTimeCKey::iterator next= it; +00360 next++; +00361 <span class="keywordflow">if</span>(next!=<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.end()) +00362 it->second.OODeltaTime= 1.0f/(next->first - it->first); +00363 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(_RangeDelta>0.0f) +00364 <span class="comment">// after last key, must slerp to first key.</span> +00365 it->second.OODeltaTime= 1.0f/_RangeDelta; +00366 <span class="keywordflow">else</span> +00367 it->second.OODeltaTime= 0.0f; +00368 } +00369 +00370 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1UTrackKeyframere0" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::createBezierFloatTrack" ></a><p> +<table class="mdTable" 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="a03555.html">UTrackKeyframer</a> * NL3D::UTrackKeyframer::createBezierFloatTrack </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="a06558.html#l00087">87</a> of file <a class="el" href="a06558.html">track_keyframer.cpp</a>. +<p> +<div class="fragment"><pre>00088 { +00089 <span class="keywordflow">return</span> <span class="keyword">new</span> CTrackKeyFramerBezierFloat; +00090 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1UTrackKeyframere1" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::createLinearFloatTrack" ></a><p> +<table class="mdTable" 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="a03555.html">UTrackKeyframer</a> * NL3D::UTrackKeyframer::createLinearFloatTrack </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="a06558.html#l00083">83</a> of file <a class="el" href="a06558.html">track_keyframer.cpp</a>. +<p> +<div class="fragment"><pre>00084 { +00085 <span class="keywordflow">return</span> <span class="keyword">new</span> CTrackKeyFramerLinearFloat; +00086 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1UTrackKeyframere2" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::createTCBFloatTrack" ></a><p> +<table class="mdTable" 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="a03555.html">UTrackKeyframer</a> * NL3D::UTrackKeyframer::createTCBFloatTrack </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="a06558.html#l00091">91</a> of file <a class="el" href="a06558.html">track_keyframer.cpp</a>. +<p> +<div class="fragment"><pre>00092 { +00093 <span class="keywordflow">return</span> <span class="keyword">new</span> CTrackKeyFramerTCBFloat; +00094 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera4" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::eval" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::eval </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a05363.html#a366">TAnimationTime</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>inDate</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, 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="a03542.html">ITrack</a>. +<p> + +<p> +Implements <a class="el" href="a03542.html#NL3D_1_1ITracka0">NL3D::ITrack</a>. +<p> +Definition at line <a class="el" href="a06559.html#l00137">137</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00138 { +00139 <span class="keywordtype">float</span> date= inDate; +00140 <span class="keyword">const</span> CKeyT *previous=NULL; +00141 <span class="keyword">const</span> CKeyT *next=NULL; +00142 <a class="code" href="a05363.html#a366">TAnimationTime</a> datePrevious = 0; +00143 <a class="code" href="a05363.html#a366">TAnimationTime</a> dateNext = 0; +00144 +00145 <span class="comment">// must precalc ??</span> +00146 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerd0">testAndClean</a>(); +00147 +00148 <span class="comment">// No keys?</span> +00149 <span class="keywordflow">if</span>(<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.empty()) +00150 <span class="keywordflow">return</span>; +00151 +00152 +00153 <span class="comment">// Loop gestion.</span> +00154 <span class="keywordflow">if</span>(_LoopMode && <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.size()>1 ) +00155 { +00156 <a class="code" href="a04199.html#a6">nlassert</a>(_LoopEnd > _LoopStart); +00157 +00158 <span class="comment">// force us to be in interval [_LoopStart, _LoopEnd[.</span> +00159 <span class="keywordflow">if</span>( date<_LoopStart || date>=_LoopEnd ) +00160 { +00161 <span class="keywordtype">double</span> d= (date-_LoopStart)*_OOTotalRange; +00162 +00163 <span class="comment">// floor(d) is the truncated number of loops.</span> +00164 d= date- floor(d)*_TotalRange; +00165 date= (<span class="keywordtype">float</span>)d; +00166 +00167 <span class="comment">// For precision problems, ensure correct range.</span> +00168 <span class="keywordflow">if</span>(date<_LoopStart || date >= _LoopEnd) +00169 date= _LoopStart; +00170 } +00171 } +00172 +00173 +00174 <span class="comment">// Return upper key</span> +00175 <span class="keyword">typename</span> TMapTimeCKey::iterator ite=<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.upper_bound (date); +00176 +00177 <span class="comment">// First next ?</span> +00178 <span class="keywordflow">if</span> (ite!=<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.end()) +00179 { +00180 <span class="comment">// Next</span> +00181 next= &(ite->second); +00182 dateNext=ite->first; +00183 } +00184 <span class="comment">// loop mgt.</span> +00185 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (_LoopMode && <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.size()>1 ) +00186 { +00187 <span class="comment">// loop to first!!</span> +00188 next= &(<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.begin()->second); +00189 <span class="comment">// must slerp from last to first, </span> +00190 dateNext= _LoopEnd; +00191 } +00192 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!_LoopMode && <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.size()>=1 ) +00193 { +00194 <span class="comment">// clamp to the last</span> +00195 <span class="keyword">typename</span> TMapTimeCKey::iterator iteLast= ite; +00196 iteLast--; +00197 next= &(iteLast->second); +00198 } +00199 +00200 +00201 <span class="comment">// First previous ?</span> +00202 <span class="keywordflow">if</span> ((!<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.empty())&&(ite!=<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.begin())) +00203 { +00204 <span class="keywordflow">if</span> (ite!=<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.end()) +00205 { +00206 <span class="comment">// Previous</span> +00207 ite--; +00208 previous= &(ite->second); +00209 datePrevious=ite->first; +00210 } +00211 } +00212 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!<a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a>.empty()) +00213 { +00214 <span class="comment">// Clamp at beginTime</span> +00215 next= &(ite->second); +00216 dateNext=ite->first; +00217 } +00218 +00219 <span class="comment">// Call evalutation fonction</span> +00220 <a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata5">evalKey</a> (previous, next, datePrevious, dateNext, date); +00221 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTrackKeyFramerLinearQuata5" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::evalKey" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void <a class="el" href="a03572.html">NL3D::CTrackKeyFramerLinear</a>< <a class="el" href="a02695.html">CKeyQuat</a>, <a class="el" href="a03296.html">CQuat</a> >::evalKey </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02695.html">CKeyQuat</a> * </td> + <td class="mdname" nowrap> <em>previous</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02695.html">CKeyQuat</a> * </td> + <td class="mdname" nowrap> <em>next</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>datePrevious</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>dateNext</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>date</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +From <a class="el" href="a03554.html">ITrackKeyFramer</a>. +<p> + +<p> +Implements <a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerb1">NL3D::ITrackKeyFramer< CKeyQuat ></a>. +<p> +Definition at line <a class="el" href="a06559.html#l00576">576</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +References <a class="el" href="a05587.html#l00115">NLMISC::clamp()</a>, <a class="el" href="a05858.html#l00076">NL3D::CKey< T >::OODeltaTime</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05858.html#l00069">NL3D::CKey< T >::Value</a>. +<p> +<div class="fragment"><pre>00579 { +00580 <span class="keywordflow">if</span>(previous && next) +00581 { +00582 <span class="comment">// slerp from previous to cur.</span> +00583 date-= datePrevious; +00584 date*= previous->OODeltaTime; +00585 <a class="code" href="a05378.html#a374">NLMISC::clamp</a>(date, 0,1); +00586 <a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinear_3_01CKeyQuat_00_01CQuat_01_4r0">_Value</a>.Value= CQuat::slerp(previous->Value, next->Value, date); +00587 } +00588 <span class="keywordflow">else</span> +00589 { +00590 <span class="keywordflow">if</span> (previous) +00591 <a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinear_3_01CKeyQuat_00_01CQuat_01_4r0">_Value</a>.Value=previous->Value; +00592 <span class="keywordflow">else</span> +00593 <span class="keywordflow">if</span> (next) +00594 <a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinear_3_01CKeyQuat_00_01CQuat_01_4r0">_Value</a>.Value=next->Value; +00595 } +00596 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera5" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::getBeginTime" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a05363.html#a366">TAnimationTime</a> <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::getBeginTime </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, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the begin time of the track +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1572_0">NL3D::UTrack</a>. +<p> +Definition at line <a class="el" href="a06559.html#l00224">224</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00225 { +00226 <span class="comment">// must precalc ??</span> +00227 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerd0">testAndClean</a>(); +00228 +00229 <span class="keywordflow">return</span> _RangeBegin; +00230 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::getClassName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual std::string NLMISC::IClassable::getClassName </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> [pure virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implemented in <a class="el" href="a02995.html#NLAIAGENT_1_1CNumericIndexz1699_0">NLAIAGENT::CNumericIndex</a>, <a class="el" href="a02145.html#NLAIAGENT_1_1VectorTypez1764_0">NLAIC::IPointerGestion</a>, <a class="el" href="a02650.html#NLAIC_1_1CIdentTypez1766_0">NLAIC::CIdentType</a>, and <a class="el" href="a02241.html#CAutomataDescz1896_0">CAutomataDesc</a>. +<p> +Referenced by <a class="el" href="a05549.html#l00091">NLMISC::CClassRegistry::checkObject()</a>, and <a class="el" href="a06525.html#l00039">NL3D::GetTextureSize()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramerb2" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::getCompiledRangeDelta" ></a><p> +<table class="mdTable" 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="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::getCompiledRangeDelta </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, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +This is for Deriver <a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerb0">compile()</a>, because _RangeDelta (<a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera10">getRangeDelta()</a>) is himself computed in <a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerb0">compile()</a>. +<p> + +<p> +Definition at line <a class="el" href="a06559.html#l00291">291</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00292 { +00293 <span class="keywordflow">return</span> _RangeDelta; +00294 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera7" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::getEndTime" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a05363.html#a366">TAnimationTime</a> <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::getEndTime </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, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the end time of the track +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1572_1">NL3D::UTrack</a>. +<p> +Definition at line <a class="el" href="a06559.html#l00231">231</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00232 { +00233 <span class="comment">// must precalc ??</span> +00234 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerd0">testAndClean</a>(); +00235 +00236 <span class="keywordflow">return</span> _RangeEnd; +00237 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera8" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::getKeysInRange" ></a><p> +<table class="mdTable" 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 <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::getKeysInRange </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>t1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>t2</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a05363.html#a366">TAnimationTime</a> > & </td> + <td class="mdname" nowrap> <em>result</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><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="a03555.html">UTrackKeyframer</a>, retrieve the keys that are in the given range [t1, t2] of the track <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>result</em> </td><td>a vector that will be cleared, and filled with the date ofthe keys</td></tr> + </table> +</dl> + +<p> +Implements <a class="el" href="a03555.html#NL3D_1_1UTrackKeyframera3">NL3D::UTrackKeyframer</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera9" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::getLoopMode" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::getLoopMode </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, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get LoopMode. From <a class="el" href="a03542.html">ITrack</a> +<p> + +<p> +Implements <a class="el" href="a03542.html#NL3D_1_1ITracka2">NL3D::ITrack</a>. +<p> +Definition at line <a class="el" href="a06559.html#l00133">133</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00133 {<span class="keywordflow">return</span> _LoopMode;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera10" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::getRangeDelta" ></a><p> +<table class="mdTable" 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="a05363.html#a366">TAnimationTime</a> <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::getRangeDelta </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> +rangeDelta is (length of effective Range) - (length of LastKey-FirstKey). NB: if RangeLock, rangeDelta==0. +<p> + +<p> +Definition at line <a class="el" href="a06559.html#l00120">120</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00121 { +00122 <span class="comment">// update track.</span> +00123 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramerd0">testAndClean</a>(); +00124 +00125 <span class="keywordflow">return</span> _RangeDelta; +00126 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTrackKeyFramerLinearQuata12" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::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"> virtual const <a class="el" href="a03835.html">IAnimatedValue</a>& <a class="el" href="a03572.html">NL3D::CTrackKeyFramerLinear</a>< <a class="el" href="a02695.html">CKeyQuat</a>, <a class="el" href="a03296.html">CQuat</a> >::getValue </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, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +From <a class="el" href="a03542.html">ITrack</a>. +<p> + +<p> +Implements <a class="el" href="a03542.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a11">NL3D::ITrack</a>. +<p> +Definition at line <a class="el" href="a06559.html#l00570">570</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00571 { +00572 <span class="keywordflow">return</span> <a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinear_3_01CKeyQuat_00_01CQuat_01_4r0">_Value</a>; +00573 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4z996_0" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::interpolate" ></a><p> +<table class="mdTable" 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::ITrack::interpolate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>time</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool & </td> + <td class="mdname" nowrap> <em>res</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Interplation a bool value. You should be sure that the track you use to interpolate your value is a bool track! An assertion will be raised in debug if the type is wrong.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>time</em> </td><td>is the time you want the evaluate the value. If time higher than the time gived by getEndTime (), the value returned is the interpolation value at getEndTime (). If time smaller than the time gived by getBeginTime (), the value returned is the interpolation value at getBeginTime (). </td></tr> + <tr><td valign=top><em>res</em> </td><td>is the reference on the value to get the result. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if interplation is successful. false if the type asked is wrong.</dd></dl> + +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1574_0">NL3D::UTrack</a>. +<p> +Definition at line <a class="el" href="a06555.html#l00202">202</a> of file <a class="el" href="a06555.html">track.cpp</a>. +<p> +References <a class="el" href="a05442.html#l00274">NL3D::CAnimatedValueBool</a>, <a class="el" href="a03542.html#NL3D_1_1ITracka0">NL3D::ITrack::eval()</a>, <a class="el" href="a03542.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a11">NL3D::ITrack::getValue()</a>, <a class="el" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00203 { +00204 <a class="code" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>; +00205 +00206 <span class="comment">// Evaluate it </span> +00207 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramera4">eval</a> (time); +00208 +00209 <span class="comment">// Get a pointer on the value</span> +00210 <span class="keyword">const</span> <a class="code" href="a05363.html#a0">CAnimatedValueBool</a> *<a class="code" href="a04223.html#a658">value</a>=dynamic_cast<const CAnimatedValueBool*>(&<a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata12">getValue</a> ()); +00211 +00212 <span class="comment">// Type is good ?</span> +00213 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a658">value</a>) +00214 { +00215 <span class="comment">// Ok, return the value</span> +00216 <a class="code" href="a04223.html#a643">res</a>=<a class="code" href="a04223.html#a658">value</a>->Value; +00217 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00218 } +00219 <span class="keywordflow">else</span> +00220 <span class="comment">// No, return false</span> +00221 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00222 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4z996_1" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::interpolate" ></a><p> +<table class="mdTable" 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::ITrack::interpolate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>time</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::string & </td> + <td class="mdname" nowrap> <em>res</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Interplation a string value. You should be sure that the track you use to interpolate your value is a string track! An assertion will be raised in debug if the type is wrong.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>time</em> </td><td>is the time you want the evaluate the value. If time higher than the time gived by getEndTime (), the value returned is the interpolation value at getEndTime (). If time smaller than the time gived by getBeginTime (), the value returned is the interpolation value at getBeginTime (). </td></tr> + <tr><td valign=top><em>res</em> </td><td>is the reference on the value to get the result. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if interplation is successful. false if the type asked is wrong.</dd></dl> + +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1574_1">NL3D::UTrack</a>. +<p> +Definition at line <a class="el" href="a06555.html#l00178">178</a> of file <a class="el" href="a06555.html">track.cpp</a>. +<p> +References <a class="el" href="a05442.html#l00278">NL3D::CAnimatedValueString</a>, <a class="el" href="a03542.html#NL3D_1_1ITracka0">NL3D::ITrack::eval()</a>, <a class="el" href="a03542.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a11">NL3D::ITrack::getValue()</a>, <a class="el" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00179 { +00180 <a class="code" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>; +00181 +00182 <span class="comment">// Evaluate it </span> +00183 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramera4">eval</a> (time); +00184 +00185 <span class="comment">// Get a pointer on the value</span> +00186 <span class="keyword">const</span> <a class="code" href="a05363.html#a4">CAnimatedValueString</a> *<a class="code" href="a04223.html#a658">value</a>=dynamic_cast<const CAnimatedValueString*>(&<a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata12">getValue</a> ()); +00187 +00188 <span class="comment">// Type is good ?</span> +00189 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a658">value</a>) +00190 { +00191 <span class="comment">// Ok, return the value</span> +00192 <a class="code" href="a04223.html#a643">res</a>=<a class="code" href="a04223.html#a658">value</a>->Value; +00193 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00194 } +00195 <span class="keywordflow">else</span> +00196 <span class="comment">// No, return false</span> +00197 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00198 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4z996_2" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::interpolate" ></a><p> +<table class="mdTable" 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::ITrack::interpolate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>time</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03296.html">NLMISC::CQuat</a> & </td> + <td class="mdname" nowrap> <em>res</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Interplation a CQuat value. You should be sure that the track you use to interpolate your value is a CQuat track! An assertion will be raised in debug if the type is wrong.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>time</em> </td><td>is the time you want the evaluate the value. If time higher than the time gived by getEndTime (), the value returned is the interpolation value at getEndTime (). If time smaller than the time gived by getBeginTime (), the value returned is the interpolation value at getBeginTime (). </td></tr> + <tr><td valign=top><em>res</em> </td><td>is the reference on the value to get the result. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if interplation is successful. false if the type asked is wrong.</dd></dl> + +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1574_2">NL3D::UTrack</a>. +<p> +Definition at line <a class="el" href="a06555.html#l00154">154</a> of file <a class="el" href="a06555.html">track.cpp</a>. +<p> +References <a class="el" href="a05442.html#l00279">NL3D::CAnimatedValueQuat</a>, <a class="el" href="a03542.html#NL3D_1_1ITracka0">NL3D::ITrack::eval()</a>, <a class="el" href="a03542.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a11">NL3D::ITrack::getValue()</a>, <a class="el" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00155 { +00156 <a class="code" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>; +00157 +00158 <span class="comment">// Evaluate it </span> +00159 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramera4">eval</a> (time); +00160 +00161 <span class="comment">// Get a pointer on the value</span> +00162 <span class="keyword">const</span> <a class="code" href="a05363.html#a5">CAnimatedValueQuat</a> *<a class="code" href="a04223.html#a658">value</a>=dynamic_cast<const CAnimatedValueQuat*>(&<a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata12">getValue</a> ()); +00163 +00164 <span class="comment">// Type is good ?</span> +00165 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a658">value</a>) +00166 { +00167 <span class="comment">// Ok, return the value</span> +00168 <a class="code" href="a04223.html#a643">res</a>=<a class="code" href="a04223.html#a658">value</a>->Value; +00169 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00170 } +00171 <span class="keywordflow">else</span> +00172 <span class="comment">// No, return false</span> +00173 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00174 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4z996_3" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::interpolate" ></a><p> +<table class="mdTable" 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::ITrack::interpolate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>time</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>res</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Interplation a CVector value. You should be sure that the track you use to interpolate your value is a CVector track! An assertion will be raised in debug if the type is wrong.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>time</em> </td><td>is the time you want the evaluate the value. If time higher than the time gived by getEndTime (), the value returned is the interpolation value at getEndTime (). If time smaller than the time gived by getBeginTime (), the value returned is the interpolation value at getBeginTime (). </td></tr> + <tr><td valign=top><em>res</em> </td><td>is the reference on the value to get the result. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if interplation is successful. false if the type asked is wrong.</dd></dl> + +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1574_3">NL3D::UTrack</a>. +<p> +Definition at line <a class="el" href="a06555.html#l00130">130</a> of file <a class="el" href="a06555.html">track.cpp</a>. +<p> +References <a class="el" href="a05442.html#l00277">NL3D::CAnimatedValueVector</a>, <a class="el" href="a03542.html#NL3D_1_1ITracka0">NL3D::ITrack::eval()</a>, <a class="el" href="a03542.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a11">NL3D::ITrack::getValue()</a>, <a class="el" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00131 { +00132 <a class="code" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>; +00133 +00134 <span class="comment">// Evaluate it </span> +00135 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramera4">eval</a> (time); +00136 +00137 <span class="comment">// Get a pointer on the value</span> +00138 <span class="keyword">const</span> <a class="code" href="a05363.html#a3">CAnimatedValueVector</a> *<a class="code" href="a04223.html#a658">value</a>=dynamic_cast<const CAnimatedValueVector*>(&<a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata12">getValue</a> ()); +00139 +00140 <span class="comment">// Type is good ?</span> +00141 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a658">value</a>) +00142 { +00143 <span class="comment">// Ok, return the value</span> +00144 <a class="code" href="a04223.html#a643">res</a>=<a class="code" href="a04223.html#a658">value</a>->Value; +00145 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00146 } +00147 <span class="keywordflow">else</span> +00148 <span class="comment">// No, return false</span> +00149 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00150 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4z996_4" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::interpolate" ></a><p> +<table class="mdTable" 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::ITrack::interpolate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>time</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> & </td> + <td class="mdname" nowrap> <em>res</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Interplation a CRGBA value. You should be sure that the track you use to interpolate your value is an CRGBA track! An assertion will be raised in debug if the type is wrong.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>time</em> </td><td>is the time you want the evaluate the value. If time higher than the time gived by getEndTime (), the value returned is the interpolation value at getEndTime (). If time smaller than the time gived by getBeginTime (), the value returned is the interpolation value at getBeginTime (). </td></tr> + <tr><td valign=top><em>res</em> </td><td>is the reference on the value to get the result. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if interplation is successful. false if the type asked is wrong.</dd></dl> + +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1574_4">NL3D::UTrack</a>. +<p> +Definition at line <a class="el" href="a06555.html#l00106">106</a> of file <a class="el" href="a06555.html">track.cpp</a>. +<p> +References <a class="el" href="a05442.html#l00280">NL3D::CAnimatedValueRGBA</a>, <a class="el" href="a03542.html#NL3D_1_1ITracka0">NL3D::ITrack::eval()</a>, <a class="el" href="a03542.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a11">NL3D::ITrack::getValue()</a>, <a class="el" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00107 { +00108 <a class="code" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>; +00109 +00110 <span class="comment">// Evaluate it </span> +00111 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramera4">eval</a> (time); +00112 +00113 <span class="comment">// Get a pointer on the value</span> +00114 <span class="keyword">const</span> <a class="code" href="a05363.html#a6">CAnimatedValueRGBA</a> *<a class="code" href="a04223.html#a658">value</a>=dynamic_cast<const CAnimatedValueRGBA*>(&<a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata12">getValue</a> ()); +00115 +00116 <span class="comment">// Type is good ?</span> +00117 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a658">value</a>) +00118 { +00119 <span class="comment">// Ok, return the value</span> +00120 <a class="code" href="a04223.html#a643">res</a>=<a class="code" href="a04223.html#a658">value</a>->Value; +00121 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00122 } +00123 <span class="keywordflow">else</span> +00124 <span class="comment">// No, return false</span> +00125 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00126 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4z996_5" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::interpolate" ></a><p> +<table class="mdTable" 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::ITrack::interpolate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>time</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a10">sint32</a> & </td> + <td class="mdname" nowrap> <em>res</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Interplation an integer value. You should be sure that the track you use to interpolate your value is an integer track! An assertion will be raised in debug if the type is wrong.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>time</em> </td><td>is the time you want the evaluate the value. If time higher than the time gived by getEndTime (), the value returned is the interpolation value at getEndTime (). If time smaller than the time gived by getBeginTime (), the value returned is the interpolation value at getBeginTime (). </td></tr> + <tr><td valign=top><em>res</em> </td><td>is the reference on the value to get the result. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if interplation is successful. false if the type asked is wrong.</dd></dl> + +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1574_5">NL3D::UTrack</a>. +<p> +Definition at line <a class="el" href="a06555.html#l00082">82</a> of file <a class="el" href="a06555.html">track.cpp</a>. +<p> +References <a class="el" href="a05442.html#l00275">NL3D::CAnimatedValueInt</a>, <a class="el" href="a03542.html#NL3D_1_1ITracka0">NL3D::ITrack::eval()</a>, <a class="el" href="a03542.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a11">NL3D::ITrack::getValue()</a>, <a class="el" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00083 { +00084 <a class="code" href="a05132.html#a0">NL3D_HAUTO_UTRACK_INTERPOLATE</a>; +00085 +00086 <span class="comment">// Evaluate it </span> +00087 <a class="code" href="a03554.html#NL3D_1_1ITrackKeyFramera4">eval</a> (time); +00088 +00089 <span class="comment">// Get a pointer on the value</span> +00090 <span class="keyword">const</span> <a class="code" href="a05363.html#a1">CAnimatedValueInt</a> *<a class="code" href="a04223.html#a658">value</a>=dynamic_cast<const CAnimatedValueInt*>(&<a class="code" href="a03573.html#NL3D_1_1CTrackKeyFramerLinearQuata12">getValue</a> ()); +00091 +00092 <span class="comment">// Type is good ?</span> +00093 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a658">value</a>) +00094 { +00095 <span class="comment">// Ok, return the value</span> +00096 <a class="code" href="a04223.html#a643">res</a>=<a class="code" href="a04223.html#a658">value</a>->Value; +00097 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00098 } +00099 <span class="keywordflow">else</span> +00100 <span class="comment">// No, return false</span> +00101 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00102 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4z996_6" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::interpolate" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::ITrack::interpolate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>time</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float & </td> + <td class="mdname" nowrap> <em>res</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Interplation a float value. You should be sure that the track you use to interpolate your value is a float track! An assertion will be raised in debug if the type is wrong.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>time</em> </td><td>is the time you want the evaluate the value. If time higher than the time gived by getEndTime (), the value returned is the interpolation value at getEndTime (). If time smaller than the time gived by getBeginTime (), the value returned is the interpolation value at getBeginTime (). </td></tr> + <tr><td valign=top><em>res</em> </td><td>is the reference on the value to get the result. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if interplation is successful. false if the type asked is wrong.</dd></dl> + +<p> +Implements <a class="el" href="a03881.html#NL3D_1_1UTrackz1574_6">NL3D::UTrack</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera12" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::isRangeLocked" ></a><p> +<table class="mdTable" 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="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::isRangeLocked </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 true if Range is locked to first/last key. use getBeginTime and getEndTime to get the effective begin/end range times... +<p> + +<p> +Definition at line <a class="el" href="a06559.html#l00116">116</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00116 {<span class="keywordflow">return</span> _RangeLock;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera14" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::lockRange" ></a><p> +<table class="mdTable" 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 <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::lockRange </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> +range is computed from frist and last key time (default). +<p> + +<p> +Definition at line <a class="el" href="a06559.html#l00109">109</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00110 { +00111 _RangeLock= <span class="keyword">true</span>; +00112 _Dirty= <span class="keyword">true</span>; +00113 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera15" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> throw (<a class="el" href="a03781.html">NLMISC::EStream</a>)<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Serial the template. +<p> + +<p> +Implements <a class="el" href="a02867.html#NL3D_1_1ITrackDefaulta6">NLMISC::IStreamable</a>. +<p> +Definition at line <a class="el" href="a06559.html#l00241">241</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00242 { +00243 <span class="comment">// Serial version</span> +00244 (<span class="keywordtype">void</span>)f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (0); +00245 +00246 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_MapKey); +00247 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_RangeLock, _RangeBegin, _RangeEnd); +00248 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_LoopMode); +00249 +00250 <span class="keywordflow">if</span>(f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00251 _Dirty= <span class="keyword">true</span>; +00252 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera16" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::setLoopMode" ></a><p> +<table class="mdTable" 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 <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::setLoopMode </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>loop</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> +set LoopMode. 2 mode only: "constant" (<=>false), and "loop" (<=> true). same mode for in and out... +<p> + +<p> +Definition at line <a class="el" href="a06559.html#l00130">130</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00130 {_LoopMode= loop; _Dirty= <span class="keyword">true</span>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramera17" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::unlockRange" ></a><p> +<table class="mdTable" 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 <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::unlockRange </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>begin</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>end</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> +set an explicit animation range. (see <a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramera5">getBeginTime()</a> / setEndTime() ). +<p> + +<p> +Definition at line <a class="el" href="a06559.html#l00100">100</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. +<p> +<div class="fragment"><pre>00101 { +00102 _RangeLock= <span class="keyword">false</span>; +00103 _RangeBegin= begin; +00104 _RangeEnd= end; +00105 _Dirty= <span class="keyword">true</span>; +00106 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NL3D_1_1ITrackKeyFramerp0" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::_MapKey" ></a><p> +<table class="mdTable" 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="a03554.html#NL3D_1_1ITrackKeyFramerw0">TMapTimeCKey</a> <a class="el" href="a03554.html">NL3D::ITrackKeyFramer</a>< <a class="el" href="a02695.html">CKeyQuat</a> >::<a class="el" href="a03554.html#NL3D_1_1ITrackKeyFramerp0">_MapKey</a><code> [protected, inherited]</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="a06559.html#l00287">287</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTrackKeyFramerLinear_3_01CKeyQuat_00_01CQuat_01_4r0" doxytag="NL3D::CTrackKeyFramerLinear< CKeyQuat, CQuat >::_Value" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02201.html">CAnimatedValueBlendable</a><<a class="el" href="a03296.html">CQuat</a>> <a class="el" href="a03572.html">NL3D::CTrackKeyFramerLinear</a>< <a class="el" href="a02695.html">CKeyQuat</a>, <a class="el" href="a03296.html">CQuat</a> >::<a class="el" href="a03573.html#NL3D_1_1CTrackKeyFramerLinear_3_01CKeyQuat_00_01CQuat_01_4r0">_Value</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="a06559.html#l00599">599</a> of file <a class="el" href="a06559.html">track_keyframer.h</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="a06559.html">track_keyframer.h</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 08:10:45 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> |