Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 807a538c0f4abf81467b8a86879881d9 > files > 1468

OpenSceneGraph-devel-2.8.4-2.fc14.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>OpenSceneGraph: osgAnimation::TransformVertexFunctor Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenSceneGraph&#160;<span id="projectnumber">2.8.4</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a01629.html">osgAnimation</a>      </li>
      <li class="navelem"><a class="el" href="a00926.html">TransformVertexFunctor</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">osgAnimation::TransformVertexFunctor Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="osgAnimation::TransformVertexFunctor" -->
<p>This class manage format for software skinning it used the technic on this paper <a href="http://www.intel.com/cd/ids/developer/asmo-na/eng/172124.htm">http://www.intel.com/cd/ids/developer/asmo-na/eng/172124.htm</a> The idea is to prepare the data to do only v' = M x v with M a combined matrix as below M = Mbone1 * w1 + Mbone2 * w2 + ...  
 <a href="a00926.html#details">More...</a></p>

<p><a href="a02274.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html">BoneWeight</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01037.html">UniqBoneSetVertexSet</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00460.html">osg::Matrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00926.html#a80e1a8a78629a6a0837f31039024596c">MatrixType</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00062.html">osgAnimation::Bone</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00926.html#ab5fd8903f45b75ee2f37190d7076d7cf">BoneType</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Bone::BoneMap&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00926.html#a057236ec8e55d0710061ef3f8902aa7b">BoneMap</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="a00065.html">BoneWeight</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00926.html#a53ee895fc7481ac9633a64cce446a6d2">BoneWeightList</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00926.html#ab6fb99b0affc1bbd46ccb372d7f118a5">VertexList</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00926.html#aa165ec9da708b8791c57169449906a29">init</a> (const <a class="el" href="a00926.html#a057236ec8e55d0710061ef3f8902aa7b">BoneMap</a> &amp;map, const <a class="el" href="a01082.html#ad1852a97ac255569d49ac37123bd89dd">osgAnimation::VertexInfluenceSet::UniqVertexSetToBoneSetList</a> &amp;influence)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class V &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00926.html#a04bdfde26bb68f6e8e5d8d344c3232cf">compute</a> (const V *src, V *dst)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class V &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00926.html#a4c50979c12c8527727445e655219a2e3">compute</a> (const <a class="el" href="a00460.html">MatrixType</a> &amp;transform, const <a class="el" href="a00460.html">MatrixType</a> &amp;invTransform, const V *src, V *dst)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class V &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00926.html#ab89f7898773204d23fbfc7ed82e02249">computeNormal</a> (const <a class="el" href="a00460.html">MatrixType</a> &amp;transform, const <a class="el" href="a00460.html">MatrixType</a> &amp;invTransform, const V *src, V *dst)</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="a01037.html">UniqBoneSetVertexSet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00926.html#af7f1f5c17efb460c6116c334f7016b5e">_boneSetVertexSet</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This class manage format for software skinning it used the technic on this paper <a href="http://www.intel.com/cd/ids/developer/asmo-na/eng/172124.htm">http://www.intel.com/cd/ids/developer/asmo-na/eng/172124.htm</a> The idea is to prepare the data to do only v' = M x v with M a combined matrix as below M = Mbone1 * w1 + Mbone2 * w2 + ... </p>
<p>a M matrix is uniq for a set of vertex then to fully compute the skinned mesh you have to iterate on each <a class="el" href="a01037.html">UniqBoneSetVertexSet</a> </p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a057236ec8e55d0710061ef3f8902aa7b"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::BoneMap" ref="a057236ec8e55d0710061ef3f8902aa7b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Bone::BoneMap <a class="el" href="a00926.html#a057236ec8e55d0710061ef3f8902aa7b">osgAnimation::TransformVertexFunctor::BoneMap</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab5fd8903f45b75ee2f37190d7076d7cf"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::BoneType" ref="ab5fd8903f45b75ee2f37190d7076d7cf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="a00062.html">osgAnimation::Bone</a> <a class="el" href="a00062.html">osgAnimation::TransformVertexFunctor::BoneType</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a53ee895fc7481ac9633a64cce446a6d2"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::BoneWeightList" ref="a53ee895fc7481ac9633a64cce446a6d2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="a00065.html">BoneWeight</a>&gt; <a class="el" href="a00926.html#a53ee895fc7481ac9633a64cce446a6d2">osgAnimation::TransformVertexFunctor::BoneWeightList</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a80e1a8a78629a6a0837f31039024596c"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::MatrixType" ref="a80e1a8a78629a6a0837f31039024596c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="a00460.html">osg::Matrix</a> <a class="el" href="a00460.html">osgAnimation::TransformVertexFunctor::MatrixType</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab6fb99b0affc1bbd46ccb372d7f118a5"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::VertexList" ref="ab6fb99b0affc1bbd46ccb372d7f118a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;int&gt; <a class="el" href="a00926.html#ab6fb99b0affc1bbd46ccb372d7f118a5">osgAnimation::TransformVertexFunctor::VertexList</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a04bdfde26bb68f6e8e5d8d344c3232cf"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::compute" ref="a04bdfde26bb68f6e8e5d8d344c3232cf" args="(const V *src, V *dst)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class V &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void osgAnimation::TransformVertexFunctor::compute </td>
          <td>(</td>
          <td class="paramtype">const V *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">V *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>References <a class="el" href="a00926.html#af7f1f5c17efb460c6116c334f7016b5e">_boneSetVertexSet</a>, <a class="el" href="a01037.html#ad81f1ceca69b211aa670c39da28eabc6">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::computeMatrixForVertexSet()</a>, <a class="el" href="a01037.html#aaf0ce61a8fbc0eadb27cb9091ca158e0">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::getMatrix()</a>, and <a class="el" href="a01037.html#ac7e46834d1be49bfbd7fa0dce1bf4861">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::getVertexes()</a>.</p>

</div>
</div>
<a class="anchor" id="a4c50979c12c8527727445e655219a2e3"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::compute" ref="a4c50979c12c8527727445e655219a2e3" args="(const MatrixType &amp;transform, const MatrixType &amp;invTransform, const V *src, V *dst)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class V &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void osgAnimation::TransformVertexFunctor::compute </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00460.html">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>transform</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00460.html">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>invTransform</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const V *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">V *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>References <a class="el" href="a00926.html#af7f1f5c17efb460c6116c334f7016b5e">_boneSetVertexSet</a>, <a class="el" href="a01037.html#ad81f1ceca69b211aa670c39da28eabc6">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::computeMatrixForVertexSet()</a>, <a class="el" href="a01037.html#aaf0ce61a8fbc0eadb27cb9091ca158e0">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::getMatrix()</a>, and <a class="el" href="a01037.html#ac7e46834d1be49bfbd7fa0dce1bf4861">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::getVertexes()</a>.</p>

</div>
</div>
<a class="anchor" id="ab89f7898773204d23fbfc7ed82e02249"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::computeNormal" ref="ab89f7898773204d23fbfc7ed82e02249" args="(const MatrixType &amp;transform, const MatrixType &amp;invTransform, const V *src, V *dst)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class V &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void osgAnimation::TransformVertexFunctor::computeNormal </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00460.html">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>transform</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00460.html">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>invTransform</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const V *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">V *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>References <a class="el" href="a00926.html#af7f1f5c17efb460c6116c334f7016b5e">_boneSetVertexSet</a>, <a class="el" href="a01037.html#ad81f1ceca69b211aa670c39da28eabc6">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::computeMatrixForVertexSet()</a>, <a class="el" href="a01037.html#aaf0ce61a8fbc0eadb27cb9091ca158e0">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::getMatrix()</a>, <a class="el" href="a01037.html#ac7e46834d1be49bfbd7fa0dce1bf4861">osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::getVertexes()</a>, and <a class="el" href="a00460.html#a1e247296eda958a72cc66ca4ee781b42">osg::Matrixd::transform3x3()</a>.</p>

</div>
</div>
<a class="anchor" id="aa165ec9da708b8791c57169449906a29"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::init" ref="aa165ec9da708b8791c57169449906a29" args="(const BoneMap &amp;map, const osgAnimation::VertexInfluenceSet::UniqVertexSetToBoneSetList &amp;influence)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osgAnimation::TransformVertexFunctor::init </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00926.html#a057236ec8e55d0710061ef3f8902aa7b">BoneMap</a> &amp;&#160;</td>
          <td class="paramname"><em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a01082.html#ad1852a97ac255569d49ac37123bd89dd">osgAnimation::VertexInfluenceSet::UniqVertexSetToBoneSetList</a> &amp;&#160;</td>
          <td class="paramname"><em>influence</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>References <a class="el" href="a00926.html#af7f1f5c17efb460c6116c334f7016b5e">_boneSetVertexSet</a>, <a class="el" href="a01038.html#abb48f6bf6a4849f80e42d10a179ffb10">osgAnimation::VertexInfluenceSet::UniqVertexSetToBoneSet::getBones()</a>, <a class="el" href="a01038.html#ac27eb14cc7847c9b24eab2fc9ba9214f">osgAnimation::VertexInfluenceSet::UniqVertexSetToBoneSet::getVertexes()</a>, <a class="el" href="a01628.html#a9d7b8fb9d25855a45e4507f8449ab596">osg::notify()</a>, and <a class="el" href="a01628.html#a32e50146c0f96ef6dc821cbc3c0e41d3a1bc96fe6de8f81f8dfdd779e2b8f2c08">osg::WARN</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="af7f1f5c17efb460c6116c334f7016b5e"></a><!-- doxytag: member="osgAnimation::TransformVertexFunctor::_boneSetVertexSet" ref="af7f1f5c17efb460c6116c334f7016b5e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="a01037.html">UniqBoneSetVertexSet</a>&gt; <a class="el" href="a00926.html#af7f1f5c17efb460c6116c334f7016b5e">osgAnimation::TransformVertexFunctor::_boneSetVertexSet</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="a00926.html#a04bdfde26bb68f6e8e5d8d344c3232cf">compute()</a>, <a class="el" href="a00926.html#ab89f7898773204d23fbfc7ed82e02249">computeNormal()</a>, and <a class="el" href="a00926.html#aa165ec9da708b8791c57169449906a29">init()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>osgAnimation/<a class="el" href="a01338.html">Skinning</a></li>
</ul>
</div>
<hr>
<table border="0"><tr><td>
  <img src="osg32-32.png" alt="osg logo" />
</td><td>
  <address><small>Generated at Tue May 31 2011 04:19:35 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a>
by <a href="http://www.doxygen.org">doxygen</a> 1.7.4.</small></address>
<!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph -->
</td></tr></table>
</body>
</html>