Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 3040

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: iGenMeshAnimationControl Struct Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>iGenMeshAnimationControl Struct Reference<br>
<small>
[<a class="el" href="group__meshplugins.html">Mesh plugins</a>]</small>
</h1><!-- doxytag: class="iGenMeshAnimationControl" --><!-- doxytag: inherits="iBase" -->Implementing this class allows the creation of classes that control animation of vertex, texel, normal, and color data right before it is being used.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="genmesh_8h-source.html">imesh/genmesh.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for iGenMeshAnimationControl:</div>
<div class="dynsection">
<p><center><img src="structiGenMeshAnimationControl__inherit__graph.png" border="0" usemap="#iGenMeshAnimationControl__inherit__map" alt="Inheritance graph"></center>
<map name="iGenMeshAnimationControl__inherit__map">
<area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="76,7,132,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="structiGenMeshAnimationControl-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiGenMeshAnimationControl.html#c17cf7ba6aab0afe221b200d8d3c4a97">AnimatesColors</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if this control animates colors.  <a href="#c17cf7ba6aab0afe221b200d8d3c4a97"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiGenMeshAnimationControl.html#f6949dff00af60d5de29cf5c85d50d36">AnimatesNormals</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if this control animates normals.  <a href="#f6949dff00af60d5de29cf5c85d50d36"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiGenMeshAnimationControl.html#81f57fd67ca742edcfd60e4b6b5f20fd">AnimatesTexels</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if this control animates texels.  <a href="#81f57fd67ca742edcfd60e4b6b5f20fd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiGenMeshAnimationControl.html#b7d6b9182e701eb90d589e695f7d4656">AnimatesVertices</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if this control animates vertices.  <a href="#b7d6b9182e701eb90d589e695f7d4656"></a><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="structiGenMeshAnimationControl.html#ce8f78bfe657d83a549a6fba5b945b9c">Update</a> (<a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a> current)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">General update method.  <a href="#ce8f78bfe657d83a549a6fba5b945b9c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsColor4.html">csColor4</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiGenMeshAnimationControl.html#6def13a0129a701d7ae4faab3832bf3c">UpdateColors</a> (<a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a> current, const <a class="el" href="classcsColor4.html">csColor4</a> *colors, int num_colors, <a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> version_id)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given the factory color data, return the animated data.  <a href="#6def13a0129a701d7ae4faab3832bf3c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiGenMeshAnimationControl.html#d7902ec8aa14ea7e6e0db138f1306b25">UpdateNormals</a> (<a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a> current, const <a class="el" href="classcsVector3.html">csVector3</a> *normals, int num_normals, <a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> version_id)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given the factory normal data, return the animated data.  <a href="#d7902ec8aa14ea7e6e0db138f1306b25"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsVector2.html">csVector2</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiGenMeshAnimationControl.html#88dade98f439749d078ec5c9c639ba07">UpdateTexels</a> (<a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a> current, const <a class="el" href="classcsVector2.html">csVector2</a> *texels, int num_texels, <a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> version_id)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given the factory texel data, return the animated data.  <a href="#88dade98f439749d078ec5c9c639ba07"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiGenMeshAnimationControl.html#fa7b562ab40aa3d756982fb8e1aaea72">UpdateVertices</a> (<a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a> current, const <a class="el" href="classcsVector3.html">csVector3</a> *verts, int num_verts, <a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> version_id)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given the factory vertex data, return the animated data.  <a href="#fa7b562ab40aa3d756982fb8e1aaea72"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Implementing this class allows the creation of classes that control animation of vertex, texel, normal, and color data right before it is being used. 
<p>
This can be used for various special effects. Note then when animating vertex that it is prefered that the bounding box of the object doesn't change too dramatically because this animation is called AFTER visibility culling!<p>
Main creators of instances implementing this interface:<ul>
<li><a class="el" href="structiGenMeshAnimationControlFactory.html#f8279254072b84dc3d6e2ee901472da8" title="Create a new animation control.">iGenMeshAnimationControlFactory::CreateAnimationControl()</a></li></ul>
<p>
Main ways to get pointers to this interface:<ul>
<li><a class="el" href="structiGeneralMeshState.html#9f457ff313594fb0c41c368f1fae0432" title="Get the current animation control for this object.">iGeneralMeshState::GetAnimationControl()</a></li></ul>
<p>
Main users of this interface:<ul>
<li>Genmesh plugin (crystalspace.mesh.object.genmesh) </li></ul>

<p>Definition at line <a class="el" href="genmesh_8h-source.html#l00479">479</a> of file <a class="el" href="genmesh_8h-source.html">genmesh.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="c17cf7ba6aab0afe221b200d8d3c4a97"></a><!-- doxytag: member="iGenMeshAnimationControl::AnimatesColors" ref="c17cf7ba6aab0afe221b200d8d3c4a97" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iGenMeshAnimationControl::AnimatesColors           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if this control animates colors. 
<p>

</div>
</div><p>
<a class="anchor" name="f6949dff00af60d5de29cf5c85d50d36"></a><!-- doxytag: member="iGenMeshAnimationControl::AnimatesNormals" ref="f6949dff00af60d5de29cf5c85d50d36" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iGenMeshAnimationControl::AnimatesNormals           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if this control animates normals. 
<p>

</div>
</div><p>
<a class="anchor" name="81f57fd67ca742edcfd60e4b6b5f20fd"></a><!-- doxytag: member="iGenMeshAnimationControl::AnimatesTexels" ref="81f57fd67ca742edcfd60e4b6b5f20fd" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iGenMeshAnimationControl::AnimatesTexels           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if this control animates texels. 
<p>

</div>
</div><p>
<a class="anchor" name="b7d6b9182e701eb90d589e695f7d4656"></a><!-- doxytag: member="iGenMeshAnimationControl::AnimatesVertices" ref="b7d6b9182e701eb90d589e695f7d4656" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iGenMeshAnimationControl::AnimatesVertices           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if this control animates vertices. 
<p>

</div>
</div><p>
<a class="anchor" name="ce8f78bfe657d83a549a6fba5b945b9c"></a><!-- doxytag: member="iGenMeshAnimationControl::Update" ref="ce8f78bfe657d83a549a6fba5b945b9c" args="(csTicks current)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iGenMeshAnimationControl::Update           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a>&nbsp;</td>
          <td class="paramname"> <em>current</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
General update method. 
<p>

</div>
</div><p>
<a class="anchor" name="6def13a0129a701d7ae4faab3832bf3c"></a><!-- doxytag: member="iGenMeshAnimationControl::UpdateColors" ref="6def13a0129a701d7ae4faab3832bf3c" args="(csTicks current, const csColor4 *colors, int num_colors, uint32 version_id)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsColor4.html">csColor4</a>* iGenMeshAnimationControl::UpdateColors           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a>&nbsp;</td>
          <td class="paramname"> <em>current</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsColor4.html">csColor4</a> *&nbsp;</td>
          <td class="paramname"> <em>colors</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>num_colors</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a>&nbsp;</td>
          <td class="paramname"> <em>version_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given the factory color data, return the animated data. 
<p>
If this control doesn't animate colors then it will return the source array unchanged. The 'version_id' is a number that changes whenever the input array changes. The animation control can use this to optimize the animation calculation by caching the animated version of the array and returning that one. <dl class="remark" compact><dt><b>Remarks:</b></dt><dd><em>colors</em> may be 0. In this case all color values should be assumed to be (0, 0, 0, 1). </dd></dl>

</div>
</div><p>
<a class="anchor" name="d7902ec8aa14ea7e6e0db138f1306b25"></a><!-- doxytag: member="iGenMeshAnimationControl::UpdateNormals" ref="d7902ec8aa14ea7e6e0db138f1306b25" args="(csTicks current, const csVector3 *normals, int num_normals, uint32 version_id)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsVector3.html">csVector3</a>* iGenMeshAnimationControl::UpdateNormals           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a>&nbsp;</td>
          <td class="paramname"> <em>current</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td>
          <td class="paramname"> <em>normals</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>num_normals</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a>&nbsp;</td>
          <td class="paramname"> <em>version_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given the factory normal data, return the animated data. 
<p>
If this control doesn't animate normals then it will return the source array unchanged. The 'version_id' is a number that changes whenever the input array changes. The animation control can use this to optimize the animation calculation by caching the animated version of the array and returning that one. 
</div>
</div><p>
<a class="anchor" name="88dade98f439749d078ec5c9c639ba07"></a><!-- doxytag: member="iGenMeshAnimationControl::UpdateTexels" ref="88dade98f439749d078ec5c9c639ba07" args="(csTicks current, const csVector2 *texels, int num_texels, uint32 version_id)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsVector2.html">csVector2</a>* iGenMeshAnimationControl::UpdateTexels           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a>&nbsp;</td>
          <td class="paramname"> <em>current</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> *&nbsp;</td>
          <td class="paramname"> <em>texels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>num_texels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a>&nbsp;</td>
          <td class="paramname"> <em>version_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given the factory texel data, return the animated data. 
<p>
If this control doesn't animate texels then it will return the source array unchanged. The 'version_id' is a number that changes whenever the input array changes. The animation control can use this to optimize the animation calculation by caching the animated version of the array and returning that one. 
</div>
</div><p>
<a class="anchor" name="fa7b562ab40aa3d756982fb8e1aaea72"></a><!-- doxytag: member="iGenMeshAnimationControl::UpdateVertices" ref="fa7b562ab40aa3d756982fb8e1aaea72" args="(csTicks current, const csVector3 *verts, int num_verts, uint32 version_id)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsVector3.html">csVector3</a>* iGenMeshAnimationControl::UpdateVertices           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a>&nbsp;</td>
          <td class="paramname"> <em>current</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td>
          <td class="paramname"> <em>verts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>num_verts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a>&nbsp;</td>
          <td class="paramname"> <em>version_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given the factory vertex data, return the animated data. 
<p>
If this control doesn't animate vertices then it will return the source array unchanged. The 'version_id' is a number that changes whenever the input array changes. The animation control can use this to optimize the animation calculation by caching the animated version of the array and returning that one. 
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>imesh/<a class="el" href="genmesh_8h-source.html">genmesh.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>