diff options
Diffstat (limited to 'docs/doxygen/nel/a02890.html')
-rw-r--r-- | docs/doxygen/nel/a02890.html | 1082 |
1 files changed, 1082 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02890.html b/docs/doxygen/nel/a02890.html new file mode 100644 index 00000000..3eb09714 --- /dev/null +++ b/docs/doxygen/nel/a02890.html @@ -0,0 +1,1082 @@ +<!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::CMeshMorpher 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::CMeshMorpher Class Reference</h1><code>#include <<a class="el" href="a06004.html">mesh_morpher.h</a>></code> +<p> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Utility to blend shapes <dl compact><dt><b>Author:</b></dt><dd>Matthieu 'TrapII' Besson <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="a06004.html#l00066">66</a> of file <a class="el" href="a06004.html">mesh_morpher.h</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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphera0">CMeshMorpher</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphera1">init</a> (<a class="el" href="a03692.html">CVertexBuffer</a> *vbOri, <a class="el" href="a03692.html">CVertexBuffer</a> *vbDst, <a class="el" href="a03694.html">IVertexBufferHard</a> *vbDstHrd, bool hasTgSpace)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphera2">initSkinned</a> (<a class="el" href="a03692.html">CVertexBuffer</a> *vbOri, <a class="el" href="a03692.html">CVertexBuffer</a> *vbDst, <a class="el" href="a03694.html">IVertexBufferHard</a> *vbDstHrd, bool hasTgSpace, std::vector< <a class="el" href="a03128.html">CVector</a> > *vVertices, std::vector< <a class="el" href="a03128.html">CVector</a> > *vNormals, std::vector< <a class="el" href="a03128.html">CVector</a> > *vTgSpace, bool bSkinApplied)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphera3">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f) throw (NLMISC::EStream)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphera4">update</a> (std::vector< <a class="el" href="a02200.html">CAnimatedMorph</a> > *pBSFactor)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphera5">updateRawSkin</a> (<a class="el" href="a03692.html">CVertexBuffer</a> *vbOri, const <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< <a class="el" href="a03308.html">CRawSkinVertex</a> *, false > &vertexRemap, std::vector< <a class="el" href="a02200.html">CAnimatedMorph</a> > *pBSFactor)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphera6">updateSkinned</a> (std::vector< <a class="el" href="a02200.html">CAnimatedMorph</a> > *pBSFactor)</td></tr> + +<tr><td colspan=2><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02273.html">CBlendShape</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a></td></tr> + +<tr><td colspan=2><br><h2>Private Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3">TState</a> { <a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1">OriginalAll</a> = 0, +<a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2">OriginalVBDst</a>, +<a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a> + }</td></tr> + +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a04558.html#a7">uint8</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03128.html">CVector</a> > * </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr1">_Normals</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr2">_SkinApplied</a>: 1</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03128.html">CVector</a> > * </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr3">_TgSpace</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr4">_UseTgSpace</a>: 1</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03692.html">CVertexBuffer</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03694.html">IVertexBufferHard</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03692.html">CVertexBuffer</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03128.html">CVector</a> > * </td><td class="memItemRight" valign=bottom><a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr8">_Vertices</a></td></tr> + +</table> +<hr><h2>Member Enumeration Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshMorphery3" doxytag="NL3D::CMeshMorpher::TState" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> enum <a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3">NL3D::CMeshMorpher::TState</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +<dl compact><dt><b>Enumeration values: </b></dt><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1" doxytag="OriginalAll" ></a>OriginalAll</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2" doxytag="OriginalVBDst" ></a>OriginalVBDst</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0" doxytag="Modified" ></a>Modified</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="a06004.html#l00068">68</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +<div class="fragment"><pre>00069 { +00070 <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1">OriginalAll</a>=0, <span class="comment">// The vertex is the same as original into VBDst and VBHard</span> +00071 <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2">OriginalVBDst</a>, <span class="comment">// The vertex is the same as original into VBDst</span> +00072 <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>, <span class="comment">// Vertex modified</span> +00073 } <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3">TState</a>; +</pre></div> </td> + </tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshMorphera0" doxytag="NL3D::CMeshMorpher::CMeshMorpher" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> NL3D::CMeshMorpher::CMeshMorpher </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06003.html#l00060">60</a> of file <a class="el" href="a06003.html">mesh_morpher.cpp</a>. +<p> +References <a class="el" href="a06004.html#l00112">_SkinApplied</a>, <a class="el" href="a06004.html#l00109">_TgSpace</a>, <a class="el" href="a06004.html#l00104">_VBDst</a>, <a class="el" href="a06004.html#l00105">_VBDstHrd</a>, <a class="el" href="a06004.html#l00103">_VBOri</a>, and <a class="el" href="a06004.html#l00107">_Vertices</a>. +<p> +<div class="fragment"><pre>00061 { +00062 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a> = NULL; +00063 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a> = NULL; +00064 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a> = NULL; +00065 +00066 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr8">_Vertices</a> = NULL; +00067 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr1">_Normals</a> = NULL; +00068 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr3">_TgSpace</a>= NULL; +00069 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr2">_SkinApplied</a>= <span class="keyword">false</span>; +00070 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshMorphera1" doxytag="NL3D::CMeshMorpher::init" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMorpher::init </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03692.html">CVertexBuffer</a> * </td> + <td class="mdname" nowrap> <em>vbOri</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03692.html">CVertexBuffer</a> * </td> + <td class="mdname" nowrap> <em>vbDst</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03694.html">IVertexBufferHard</a> * </td> + <td class="mdname" nowrap> <em>vbDstHrd</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>hasTgSpace</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06003.html#l00073">73</a> of file <a class="el" href="a06003.html">mesh_morpher.cpp</a>. +<p> +References <a class="el" href="a06004.html#l00113">_UseTgSpace</a>, <a class="el" href="a06004.html#l00104">_VBDst</a>, <a class="el" href="a06004.html#l00105">_VBDstHrd</a>, and <a class="el" href="a06004.html#l00103">_VBOri</a>. +<p> +Referenced by <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, and <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>. +<p> +<div class="fragment"><pre>00074 { +00075 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a> = vbOri; +00076 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a> = vbDst; +00077 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a> = vbDstHrd; +00078 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr4">_UseTgSpace</a> = hasTgSpace; +00079 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorphera2" doxytag="NL3D::CMeshMorpher::initSkinned" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMorpher::initSkinned </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03692.html">CVertexBuffer</a> * </td> + <td class="mdname" nowrap> <em>vbOri</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03692.html">CVertexBuffer</a> * </td> + <td class="mdname" nowrap> <em>vbDst</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03694.html">IVertexBufferHard</a> * </td> + <td class="mdname" nowrap> <em>vbDstHrd</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>hasTgSpace</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a03128.html">CVector</a> > * </td> + <td class="mdname" nowrap> <em>vVertices</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a03128.html">CVector</a> > * </td> + <td class="mdname" nowrap> <em>vNormals</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a03128.html">CVector</a> > * </td> + <td class="mdname" nowrap> <em>vTgSpace</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>bSkinApplied</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06003.html#l00082">82</a> of file <a class="el" href="a06003.html">mesh_morpher.cpp</a>. +<p> +References <a class="el" href="a06004.html#l00112">_SkinApplied</a>, <a class="el" href="a06004.html#l00109">_TgSpace</a>, <a class="el" href="a06004.html#l00113">_UseTgSpace</a>, <a class="el" href="a06004.html#l00104">_VBDst</a>, <a class="el" href="a06004.html#l00105">_VBDstHrd</a>, <a class="el" href="a06004.html#l00103">_VBOri</a>, and <a class="el" href="a06004.html#l00107">_Vertices</a>. +<p> +Referenced by <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, and <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>. +<p> +<div class="fragment"><pre>00090 { +00091 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a> = vbOri; +00092 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a> = vbDst; +00093 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a> = vbDstHrd; +00094 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr4">_UseTgSpace</a> = hasTgSpace; +00095 +00096 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr8">_Vertices</a> = vVertices; +00097 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr1">_Normals</a> = vNormals; +00098 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr3">_TgSpace</a> = vTgSpace; +00099 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr2">_SkinApplied</a> = bSkinApplied; +00100 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorphera3" doxytag="NL3D::CMeshMorpher::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"> void NL3D::CMeshMorpher::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>)</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="a06003.html#l00386">386</a> of file <a class="el" href="a06003.html">mesh_morpher.cpp</a>. +<p> +<div class="fragment"><pre>00387 { +00388 (<span class="keywordtype">void</span>)f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (0); +00389 +00390 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (BlendShapes); +00391 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorphera4" doxytag="NL3D::CMeshMorpher::update" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMorpher::update </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a02200.html">CAnimatedMorph</a> > * </td> + <td class="mdname1" valign="top" nowrap> <em>pBSFactor</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06003.html#l00103">103</a> of file <a class="el" href="a06003.html">mesh_morpher.cpp</a>. +<p> +References <a class="el" href="a06004.html#l00113">_UseTgSpace</a>, <a class="el" href="a06004.html#l00104">_VBDst</a>, <a class="el" href="a06004.html#l00105">_VBDstHrd</a>, <a class="el" href="a06004.html#l00103">_VBOri</a>, <a class="el" href="a06340.html#l00661">NLMISC::CRGBAF::A</a>, <a class="el" href="a06340.html#l00659">NLMISC::CRGBAF::B</a>, <a class="el" href="a05587.html#l00115">NLMISC::clamp()</a>, <a class="el" href="a06004.html#l00052">NL3D::CBlendShape::deltaCol</a>, <a class="el" href="a06004.html#l00049">NL3D::CBlendShape::deltaNorm</a>, <a class="el" href="a06004.html#l00048">NL3D::CBlendShape::deltaPos</a>, <a class="el" href="a06004.html#l00050">NL3D::CBlendShape::deltaTgSpace</a>, <a class="el" href="a06004.html#l00051">NL3D::CBlendShape::deltaUV</a>, <a class="el" href="a06340.html#l00657">NLMISC::CRGBAF::G</a>, <a class="el" href="a06710.html#l00465">NL3D::CVertexBuffer::getColorPointer()</a>, <a class="el" href="a06710.html#l00449">NL3D::CVertexBuffer::getNormalCoordPointer()</a>, <a class="el" href="a06710.html#l00976">NL3D::CVertexBuffer::getNumTexCoordUsed()</a>, <a class="el" href="a06711.html#l00453">NL3D::CVertexBuffer::getNumVertices()</a>, <a class="el" href="a06710.html#l00497">NL3D::CVertexBuffer::getTexCoordPointer()</a>, <a class="el" href="a06710.html#l00438">NL3D::CVertexBuffer::getVertexCoordPointer()</a>, <a class="el" href="a06711.html#l00319">NL3D::CVertexBuffer::getVertexFormat()</a>, <a class="el" href="a06711.html#l00473">NL3D::CVertexBuffer::getVertexSize()</a>, <a class="el" href="a03694.html#NL3D_1_1IVertexBufferHardGLz1154_0">NL3D::IVertexBufferHard::lock()</a>, <a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1">OriginalAll</a>, <a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2">OriginalVBDst</a>, <a class="el" href="a06340.html#l00655">NLMISC::CRGBAF::R</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a03694.html#NL3D_1_1IVertexBufferHardGLz1154_3">NL3D::IVertexBufferHard::unlock()</a>, and <a class="el" href="a06004.html#l00054">NL3D::CBlendShape::VertRefs</a>. +<p> +Referenced by <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, and <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>. +<p> +<div class="fragment"><pre>00104 { +00105 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00106 +00107 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a> == NULL) +00108 <span class="keywordflow">return</span>; +00109 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>.size() == 0) +00110 <span class="keywordflow">return</span>; +00111 +00112 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getNumVertices() != <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getNumVertices()) +00113 { <span class="comment">// Because the original vertex buffer is not initialized by default</span> +00114 <span class="comment">// we must init it here (if there are some blendshapes)</span> +00115 *<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a> = *<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>; +00116 } +00117 +00118 <span class="comment">// Does the flags are reserved ?</span> +00119 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.size() != <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getNumVertices()) +00120 { +00121 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.resize (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getNumVertices()); +00122 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.size(); ++i) +00123 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>; <span class="comment">// Modified to update all</span> +00124 } +00125 +00126 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getVertexFormat() == <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexFormat()); +00127 +00128 <span class="comment">// Cleaning with original vertex buffer</span> +00129 <a class="code" href="a04558.html#a11">uint32</a> VBVertexSize = <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getVertexSize(); +00130 <a class="code" href="a04558.html#a7">uint8</a> *pOri = (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getVertexCoordPointer (); +00131 <a class="code" href="a04558.html#a7">uint8</a> *pDst = (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexCoordPointer (); +00132 +00133 <span class="keywordflow">for</span> (i= 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.size(); ++i) +00134 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] >= <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>) +00135 { +00136 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2">OriginalVBDst</a>; +00137 +00138 <span class="keywordflow">for</span>(j = 0; j < VBVertexSize; ++j) +00139 pDst[j+i*VBVertexSize] = pOri[j+i*VBVertexSize]; +00140 } +00141 +00142 <a class="code" href="a04558.html#a15">uint</a> tgSpaceStage = 0; +00143 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr4">_UseTgSpace</a>) +00144 { +00145 tgSpaceStage = <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getNumTexCoordUsed() - 1; +00146 } +00147 +00148 <span class="comment">// Blending with blendshape</span> +00149 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>.size(); ++i) +00150 { +00151 CBlendShape &rBS = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>[i]; +00152 <span class="keywordtype">float</span> rFactor = pBSFactor->operator[](i).getFactor()/100.0f; +00153 +00154 <span class="comment">// todo hulud check it works</span> +00155 <span class="comment">// if (rFactor > 0.0f)</span> +00156 <span class="keywordflow">if</span> (rFactor != 0.0f) +00157 <span class="keywordflow">for</span> (j = 0; j < rBS.VertRefs.size(); ++j) +00158 { +00159 <a class="code" href="a04558.html#a11">uint32</a> vp = rBS.VertRefs[j]; +00160 +00161 <span class="comment">// Modify Pos/Norm/TgSpace.</span> +00162 <span class="comment">//------------</span> +00163 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexFormat() & CVertexBuffer::PositionFlag) +00164 <span class="keywordflow">if</span> (rBS.deltaPos.size() > 0) +00165 { +00166 CVector *pV = (CVector*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexCoordPointer (vp); +00167 *pV += rBS.deltaPos[j] * rFactor; +00168 } +00169 +00170 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexFormat() & CVertexBuffer::NormalFlag) +00171 <span class="keywordflow">if</span> (rBS.deltaNorm.size() > 0) +00172 { +00173 CVector *pV = (CVector*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getNormalCoordPointer (vp); +00174 *pV += rBS.deltaNorm[j] * rFactor; +00175 } +00176 +00177 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr4">_UseTgSpace</a>) +00178 <span class="keywordflow">if</span> (rBS.deltaTgSpace.size() > 0) +00179 { +00180 CVector *pV = (CVector*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getTexCoordPointer (vp, tgSpaceStage); +00181 *pV += rBS.deltaTgSpace[j] * rFactor; +00182 } +00183 +00184 <span class="comment">// Modify UV0 / Color</span> +00185 <span class="comment">//------------</span> +00186 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexFormat() & CVertexBuffer::TexCoord0Flag) +00187 <span class="keywordflow">if</span> (rBS.deltaUV.size() > 0) +00188 { +00189 CUV *pUV = (CUV*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getTexCoordPointer (vp); +00190 *pUV += rBS.deltaUV[j] * rFactor; +00191 } +00192 +00193 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexFormat() & CVertexBuffer::PrimaryColorFlag) +00194 <span class="keywordflow">if</span> (rBS.deltaCol.size() > 0) +00195 { +00196 <a class="code" href="a03337.html">CRGBA</a> *pRGBA = (<a class="code" href="a03337.html">CRGBA</a>*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getColorPointer (vp); +00197 <a class="code" href="a03338.html">CRGBAF</a> rgbf(*pRGBA); +00198 rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo3">R</a> += rBS.deltaCol[j].R * rFactor; +00199 rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo2">G</a> += rBS.deltaCol[j].G * rFactor; +00200 rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo1">B</a> += rBS.deltaCol[j].B * rFactor; +00201 rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo0">A</a> += rBS.deltaCol[j].A * rFactor; +00202 <a class="code" href="a05378.html#a374">clamp</a>(rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo3">R</a>, 0.0f, 1.0f); +00203 <a class="code" href="a05378.html#a374">clamp</a>(rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo2">G</a>, 0.0f, 1.0f); +00204 <a class="code" href="a05378.html#a374">clamp</a>(rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo1">B</a>, 0.0f, 1.0f); +00205 <a class="code" href="a05378.html#a374">clamp</a>(rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo0">A</a>, 0.0f, 1.0f); +00206 *pRGBA = rgbf; +00207 } +00208 +00209 <span class="comment">// Modified</span> +00210 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[vp] = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>; +00211 } +00212 } +00213 +00214 <span class="comment">// Copying to hardware vertex buffer if some</span> +00215 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a> != NULL) +00216 { +00217 <a class="code" href="a04558.html#a7">uint8</a> *pDstHrd = (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a>->lock(); +00218 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.size(); ++i) +00219 { +00220 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] != <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1">OriginalAll</a>) <span class="comment">// Not OriginalAll ?</span> +00221 { +00222 <span class="keywordflow">for</span>(j = 0; j < VBVertexSize; ++j) +00223 pDstHrd[j+i*VBVertexSize] = pDst[j+i*VBVertexSize]; +00224 } +00225 <span class="comment">// if this vertex is original in the VBDst</span> +00226 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] == <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2">OriginalVBDst</a>) +00227 <span class="comment">// then it is now copied into the VBHard</span> +00228 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1">OriginalAll</a>; +00229 } +00230 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a>->unlock(); +00231 } +00232 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorphera5" doxytag="NL3D::CMeshMorpher::updateRawSkin" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMorpher::updateRawSkin </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03692.html">CVertexBuffer</a> * </td> + <td class="mdname" nowrap> <em>vbOri</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< <a class="el" href="a03308.html">CRawSkinVertex</a> *, false > & </td> + <td class="mdname" nowrap> <em>vertexRemap</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a02200.html">CAnimatedMorph</a> > * </td> + <td class="mdname" nowrap> <em>pBSFactor</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06003.html#l00399">399</a> of file <a class="el" href="a06003.html">mesh_morpher.cpp</a>. +<p> +References <a class="el" href="a06004.html#l00049">NL3D::CBlendShape::deltaNorm</a>, <a class="el" href="a06004.html#l00048">NL3D::CBlendShape::deltaPos</a>, <a class="el" href="a06004.html#l00051">NL3D::CBlendShape::deltaUV</a>, <a class="el" href="a06711.html#l00338">NL3D::CVertexBuffer::getNormalOff()</a>, <a class="el" href="a06711.html#l00453">NL3D::CVertexBuffer::getNumVertices()</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< T, EnableObjectBehavior >::getPtr()</a>, <a class="el" href="a06711.html#l00339">NL3D::CVertexBuffer::getTexCoordOff()</a>, <a class="el" href="a06710.html#l00438">NL3D::CVertexBuffer::getVertexCoordPointer()</a>, <a class="el" href="a06711.html#l00319">NL3D::CVertexBuffer::getVertexFormat()</a>, <a class="el" href="a06711.html#l00473">NL3D::CVertexBuffer::getVertexSize()</a>, <a class="el" href="a06003.html#l00395">NL3D_RAWSKIN_NORMAL_OFF</a>, <a class="el" href="a06003.html#l00396">NL3D_RAWSKIN_UV_OFF</a>, <a class="el" href="a06003.html#l00397">NL3D_RAWSKIN_VERTEX_SIZE</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06314.html#l00049">NL3D::CRawSkinVertex::Normal</a>, <a class="el" href="a06314.html#l00048">NL3D::CRawSkinVertex::Pos</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a06314.html#l00050">NL3D::CRawSkinVertex::UV</a>, and <a class="el" href="a06004.html#l00054">NL3D::CBlendShape::VertRefs</a>. +<p> +Referenced by <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>. +<p> +<div class="fragment"><pre>00402 { +00403 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00404 +00405 <span class="keywordflow">if</span> (vbOri == NULL) +00406 <span class="keywordflow">return</span>; +00407 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>.size() == 0) +00408 <span class="keywordflow">return</span>; +00409 +00410 <a class="code" href="a04199.html#a6">nlassert</a>(vbOri->getVertexFormat() == (CVertexBuffer::PositionFlag | CVertexBuffer::NormalFlag |CVertexBuffer::TexCoord0Flag) ); +00411 <a class="code" href="a04199.html#a6">nlassert</a>(NL3D_RAWSKIN_VERTEX_SIZE == vbOri->getVertexSize()); +00412 <a class="code" href="a04199.html#a6">nlassert</a>(NL3D_RAWSKIN_NORMAL_OFF == vbOri->getNormalOff()); +00413 <a class="code" href="a04199.html#a6">nlassert</a>(NL3D_RAWSKIN_UV_OFF == vbOri->getTexCoordOff(0)); +00414 +00415 <span class="comment">// Cleaning with original vertex buffer</span> +00416 <a class="code" href="a04558.html#a7">uint8</a> *pOri = (<a class="code" href="a04558.html#a7">uint8</a>*)vbOri->getVertexCoordPointer (); +00417 CRawSkinVertex **vRemap= vertexRemap.<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1984_1">getPtr</a>(); +00418 <a class="code" href="a04558.html#a15">uint</a> numVertices= vbOri->getNumVertices(); +00419 +00420 <span class="comment">// Update only the vertices of this lod</span> +00421 <span class="keywordflow">for</span> (i= 0; i < numVertices; ++i) +00422 { +00423 <span class="keywordflow">if</span>(*vRemap) +00424 { +00425 (*vRemap)->Pos= *(CVector*)(pOri); +00426 (*vRemap)->Normal= *(CVector*)(pOri + <a class="code" href="a04580.html#a0">NL3D_RAWSKIN_NORMAL_OFF</a>); +00427 (*vRemap)->UV= *(CUV*)(pOri + <a class="code" href="a04580.html#a1">NL3D_RAWSKIN_UV_OFF</a>); +00428 } +00429 pOri+= <a class="code" href="a04580.html#a2">NL3D_RAWSKIN_VERTEX_SIZE</a>; +00430 vRemap++; +00431 } +00432 +00433 <span class="comment">// Blending with blendshape</span> +00434 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>.size(); ++i) +00435 { +00436 CBlendShape &rBS = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>[i]; +00437 <span class="keywordtype">float</span> rFactor = pBSFactor->operator[](i).getFactor(); +00438 +00439 <span class="keywordflow">if</span> (rFactor != 0.0f) +00440 { +00441 rFactor*= 0.01f; +00442 <a class="code" href="a04558.html#a11">uint32</a> numVertices= rBS.VertRefs.size(); +00443 <span class="comment">// don't know why, but cases happen where deltaNorm not empty while deltaPos is </span> +00444 <span class="keywordtype">bool</span> hasPos= rBS.deltaPos.size()>0; +00445 <span class="keywordtype">bool</span> hasNorm= rBS.deltaNorm.size()>0; +00446 <span class="keywordtype">bool</span> hasUV= rBS.deltaUV.size()>0; +00447 <span class="keywordflow">for</span> (j = 0; j < numVertices; ++j) +00448 { +00449 <span class="comment">// Get the vertex Index in the VBufferFinal</span> +00450 <a class="code" href="a04558.html#a15">uint</a> vid= rBS.VertRefs[j]; +00451 <span class="comment">// Then get the RawSkin vertex to modify </span> +00452 CRawSkinVertex *rsVert= vertexRemap[vid]; +00453 +00454 <span class="comment">// If exist in this Lod RawSkin, apply</span> +00455 <span class="keywordflow">if</span>(rsVert) +00456 { +00457 <span class="keywordflow">if</span>(hasPos) +00458 rsVert->Pos+= rBS.deltaPos[j] * rFactor; +00459 <span class="keywordflow">if</span>(hasNorm) +00460 rsVert->Normal+= rBS.deltaNorm[j] * rFactor; +00461 <span class="keywordflow">if</span>(hasUV) +00462 rsVert->UV+= rBS.deltaUV[j] * rFactor; +00463 } +00464 } +00465 } +00466 +00467 } +00468 +00469 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorphera6" doxytag="NL3D::CMeshMorpher::updateSkinned" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMorpher::updateSkinned </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a02200.html">CAnimatedMorph</a> > * </td> + <td class="mdname1" valign="top" nowrap> <em>pBSFactor</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06003.html#l00236">236</a> of file <a class="el" href="a06003.html">mesh_morpher.cpp</a>. +<p> +References <a class="el" href="a06004.html#l00112">_SkinApplied</a>, <a class="el" href="a06004.html#l00109">_TgSpace</a>, <a class="el" href="a06004.html#l00113">_UseTgSpace</a>, <a class="el" href="a06004.html#l00104">_VBDst</a>, <a class="el" href="a06004.html#l00105">_VBDstHrd</a>, <a class="el" href="a06004.html#l00103">_VBOri</a>, <a class="el" href="a06004.html#l00107">_Vertices</a>, <a class="el" href="a06340.html#l00661">NLMISC::CRGBAF::A</a>, <a class="el" href="a06340.html#l00659">NLMISC::CRGBAF::B</a>, <a class="el" href="a05587.html#l00115">NLMISC::clamp()</a>, <a class="el" href="a06004.html#l00052">NL3D::CBlendShape::deltaCol</a>, <a class="el" href="a06004.html#l00049">NL3D::CBlendShape::deltaNorm</a>, <a class="el" href="a06004.html#l00048">NL3D::CBlendShape::deltaPos</a>, <a class="el" href="a06004.html#l00050">NL3D::CBlendShape::deltaTgSpace</a>, <a class="el" href="a06004.html#l00051">NL3D::CBlendShape::deltaUV</a>, <a class="el" href="a06340.html#l00657">NLMISC::CRGBAF::G</a>, <a class="el" href="a06710.html#l00465">NL3D::CVertexBuffer::getColorPointer()</a>, <a class="el" href="a06710.html#l00976">NL3D::CVertexBuffer::getNumTexCoordUsed()</a>, <a class="el" href="a06711.html#l00453">NL3D::CVertexBuffer::getNumVertices()</a>, <a class="el" href="a06711.html#l00339">NL3D::CVertexBuffer::getTexCoordOff()</a>, <a class="el" href="a06710.html#l00497">NL3D::CVertexBuffer::getTexCoordPointer()</a>, <a class="el" href="a06710.html#l00438">NL3D::CVertexBuffer::getVertexCoordPointer()</a>, <a class="el" href="a06711.html#l00319">NL3D::CVertexBuffer::getVertexFormat()</a>, <a class="el" href="a06711.html#l00473">NL3D::CVertexBuffer::getVertexSize()</a>, <a class="el" href="a03694.html#NL3D_1_1IVertexBufferHardGLz1154_0">NL3D::IVertexBufferHard::lock()</a>, <a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1">OriginalAll</a>, <a class="el" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2">OriginalVBDst</a>, <a class="el" href="a06340.html#l00655">NLMISC::CRGBAF::R</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a03694.html#NL3D_1_1IVertexBufferHardGLz1154_3">NL3D::IVertexBufferHard::unlock()</a>, and <a class="el" href="a06004.html#l00054">NL3D::CBlendShape::VertRefs</a>. +<p> +Referenced by <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, and <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>. +<p> +<div class="fragment"><pre>00237 { +00238 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00239 +00240 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a> == NULL) +00241 <span class="keywordflow">return</span>; +00242 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>.size() == 0) +00243 <span class="keywordflow">return</span>; +00244 +00245 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getNumVertices() != <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getNumVertices()) +00246 { <span class="comment">// Because the original vertex buffer is not initialized by default</span> +00247 <span class="comment">// we must init it here (if there are some blendshapes)</span> +00248 *<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a> = *<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>; +00249 } +00250 +00251 <span class="comment">// Does the flags are reserved ?</span> +00252 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.size() != <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getNumVertices()) +00253 { +00254 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.resize (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getNumVertices()); +00255 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.size(); ++i) +00256 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>; <span class="comment">// Modified to update all</span> +00257 } +00258 +00259 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getVertexFormat() == <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexFormat()); +00260 +00261 <a class="code" href="a04558.html#a15">uint</a> tgSpaceStage; +00262 <a class="code" href="a04558.html#a15">uint</a> tgSpaceOff = 0; +00263 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr4">_UseTgSpace</a> && <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr3">_TgSpace</a>) +00264 { +00265 tgSpaceStage = <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getNumTexCoordUsed() - 1; +00266 tgSpaceOff = <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getTexCoordOff(tgSpaceStage); +00267 } +00268 +00269 <span class="comment">// Cleaning with original vertex buffer</span> +00270 <a class="code" href="a04558.html#a11">uint32</a> VBVertexSize = <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getVertexSize(); +00271 <a class="code" href="a04558.html#a7">uint8</a> *pOri = (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr7">_VBOri</a>->getVertexCoordPointer (); +00272 <a class="code" href="a04558.html#a7">uint8</a> *pDst = (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexCoordPointer (); +00273 +00274 <span class="keywordflow">for</span> (i= 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.size(); ++i) +00275 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] >= <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>) +00276 { +00277 <span class="keywordflow">for</span>(j = 0; j < VBVertexSize; ++j) +00278 pDst[j+i*VBVertexSize] = pOri[j+i*VBVertexSize]; +00279 +00280 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr8">_Vertices</a> != NULL) +00281 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr8">_Vertices</a>->operator[](i) = ((CVector*)(pOri+i*VBVertexSize))[0]; +00282 +00283 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr1">_Normals</a> != NULL) +00284 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr1">_Normals</a>->operator[](i) = ((CVector*)(pOri+i*VBVertexSize))[1]; +00285 +00286 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr3">_TgSpace</a> != NULL) +00287 (*_TgSpace)[i] = * (CVector*)(pOri + i * VBVertexSize + tgSpaceOff); +00288 +00289 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2">OriginalVBDst</a>; +00290 } +00291 +00292 <span class="comment">// Blending with blendshape</span> +00293 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>.size(); ++i) +00294 { +00295 CBlendShape &rBS = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphero0">BlendShapes</a>[i]; +00296 <span class="keywordtype">float</span> rFactor = pBSFactor->operator[](i).getFactor()/100.0f; +00297 +00298 <span class="keywordflow">if</span> (rFactor != 0.0f) +00299 <span class="keywordflow">for</span> (j = 0; j < rBS.VertRefs.size(); ++j) +00300 { +00301 <a class="code" href="a04558.html#a11">uint32</a> vp = rBS.VertRefs[j]; +00302 +00303 <span class="comment">// Modify Pos/Norm/TgSpace.</span> +00304 <span class="comment">//------------</span> +00305 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr8">_Vertices</a> != NULL) +00306 <span class="keywordflow">if</span> (rBS.deltaPos.size() > 0) +00307 { +00308 CVector *pV = &(<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr8">_Vertices</a>->operator[](vp)); +00309 *pV += rBS.deltaPos[j] * rFactor; +00310 } +00311 +00312 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr1">_Normals</a> != NULL) +00313 <span class="keywordflow">if</span> (rBS.deltaNorm.size() > 0) +00314 { +00315 CVector *pV = &(<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr1">_Normals</a>->operator[](vp)); +00316 *pV += rBS.deltaNorm[j] * rFactor; +00317 } +00318 +00319 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr4">_UseTgSpace</a> && <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr3">_TgSpace</a> != NULL) +00320 <span class="keywordflow">if</span> (rBS.deltaTgSpace.size() > 0) +00321 { +00322 CVector *pV = &((*_TgSpace)[vp]); +00323 *pV += rBS.deltaTgSpace[j] * rFactor; +00324 } +00325 +00326 <span class="comment">// Modify UV0 / Color</span> +00327 <span class="comment">//------------</span> +00328 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexFormat() & CVertexBuffer::TexCoord0Flag) +00329 <span class="keywordflow">if</span> (rBS.deltaUV.size() > 0) +00330 { +00331 CUV *pUV = (CUV*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getTexCoordPointer (vp); +00332 *pUV += rBS.deltaUV[j] * rFactor; +00333 } +00334 +00335 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getVertexFormat() & CVertexBuffer::PrimaryColorFlag) +00336 <span class="keywordflow">if</span> (rBS.deltaCol.size() > 0) +00337 { +00338 <a class="code" href="a03337.html">CRGBA</a> *pRGBA = (<a class="code" href="a03337.html">CRGBA</a>*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr5">_VBDst</a>->getColorPointer (vp); +00339 <a class="code" href="a03338.html">CRGBAF</a> rgbf(*pRGBA); +00340 rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo3">R</a> += rBS.deltaCol[j].R * rFactor; +00341 rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo2">G</a> += rBS.deltaCol[j].G * rFactor; +00342 rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo1">B</a> += rBS.deltaCol[j].B * rFactor; +00343 rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo0">A</a> += rBS.deltaCol[j].A * rFactor; +00344 <a class="code" href="a05378.html#a374">clamp</a>(rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo3">R</a>, 0.0f, 1.0f); +00345 <a class="code" href="a05378.html#a374">clamp</a>(rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo2">G</a>, 0.0f, 1.0f); +00346 <a class="code" href="a05378.html#a374">clamp</a>(rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo1">B</a>, 0.0f, 1.0f); +00347 <a class="code" href="a05378.html#a374">clamp</a>(rgbf.<a class="code" href="a03338.html#NLMISC_1_1CRGBAFo0">A</a>, 0.0f, 1.0f); +00348 *pRGBA = rgbf; +00349 } +00350 +00351 <span class="comment">// Modified</span> +00352 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[vp] = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery0">Modified</a>; +00353 } +00354 } +00355 +00356 <span class="comment">// Do some transfert to the VBHard if exist.</span> +00357 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a> != NULL) +00358 { +00359 <span class="comment">// lock.</span> +00360 <a class="code" href="a04558.html#a7">uint8</a> *pDstHrd = (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a>->lock(); +00361 +00362 <span class="comment">// If the skin is applied we have nothing to do </span> +00363 <span class="comment">// Because the skinning will transfert ALL the vertices of interest</span> +00364 <span class="keywordflow">if</span> (!<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr2">_SkinApplied</a>) +00365 { +00366 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>.size(); ++i) +00367 { +00368 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] != <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1">OriginalAll</a>) <span class="comment">// Not OriginalAll ?</span> +00369 { +00370 <span class="comment">// We must write the whole vertex because the skinning may not copy </span> +00371 <span class="comment">// vertex and normal changes into VBHard</span> +00372 <span class="keywordflow">for</span>(j = 0; j < VBVertexSize; ++j) +00373 pDstHrd[j+i*VBVertexSize] = pDst[j+i*VBVertexSize]; +00374 } +00375 <span class="keywordflow">if</span> (<a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] == <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery2">OriginalVBDst</a>) <span class="comment">// OriginalVBDst ?</span> +00376 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr0">_Flags</a>[i] = <a class="code" href="a02890.html#NL3D_1_1CMeshMorphery3NL3D_1_1CMeshMorphery1">OriginalAll</a>; <span class="comment">// So OriginalAll !</span> +00377 } +00378 } +00379 +00380 <span class="comment">// unlock.</span> +00381 <a class="code" href="a02890.html#NL3D_1_1CMeshMorpherr6">_VBDstHrd</a>->unlock(); +00382 } +00383 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshMorpherr0" doxytag="NL3D::CMeshMorpher::_Flags" ></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"> std::vector<<a class="el" href="a04558.html#a7">uint8</a>> <a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr0">NL3D::CMeshMorpher::_Flags</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="a06004.html#l00115">115</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorpherr1" doxytag="NL3D::CMeshMorpher::_Normals" ></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"> std::vector<<a class="el" href="a03128.html">CVector</a>>* <a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr1">NL3D::CMeshMorpher::_Normals</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="a06004.html#l00108">108</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorpherr2" doxytag="NL3D::CMeshMorpher::_SkinApplied" ></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="a02890.html#NL3D_1_1CMeshMorpherr2">NL3D::CMeshMorpher::_SkinApplied</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="a06004.html#l00112">112</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +Referenced by <a class="el" href="a06003.html#l00060">CMeshMorpher()</a>, <a class="el" href="a06003.html#l00082">initSkinned()</a>, and <a class="el" href="a06003.html#l00236">updateSkinned()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorpherr3" doxytag="NL3D::CMeshMorpher::_TgSpace" ></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"> std::vector<<a class="el" href="a03128.html">CVector</a>>* <a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr3">NL3D::CMeshMorpher::_TgSpace</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="a06004.html#l00109">109</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +Referenced by <a class="el" href="a06003.html#l00060">CMeshMorpher()</a>, <a class="el" href="a06003.html#l00082">initSkinned()</a>, and <a class="el" href="a06003.html#l00236">updateSkinned()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorpherr4" doxytag="NL3D::CMeshMorpher::_UseTgSpace" ></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="a02890.html#NL3D_1_1CMeshMorpherr4">NL3D::CMeshMorpher::_UseTgSpace</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="a06004.html#l00113">113</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +Referenced by <a class="el" href="a06003.html#l00073">init()</a>, <a class="el" href="a06003.html#l00082">initSkinned()</a>, <a class="el" href="a06003.html#l00103">update()</a>, and <a class="el" href="a06003.html#l00236">updateSkinned()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorpherr5" doxytag="NL3D::CMeshMorpher::_VBDst" ></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="a03692.html">CVertexBuffer</a>* <a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr5">NL3D::CMeshMorpher::_VBDst</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="a06004.html#l00104">104</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +Referenced by <a class="el" href="a06003.html#l00060">CMeshMorpher()</a>, <a class="el" href="a06003.html#l00073">init()</a>, <a class="el" href="a06003.html#l00082">initSkinned()</a>, <a class="el" href="a06003.html#l00103">update()</a>, and <a class="el" href="a06003.html#l00236">updateSkinned()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorpherr6" doxytag="NL3D::CMeshMorpher::_VBDstHrd" ></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="a03694.html">IVertexBufferHard</a>* <a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr6">NL3D::CMeshMorpher::_VBDstHrd</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="a06004.html#l00105">105</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +Referenced by <a class="el" href="a06003.html#l00060">CMeshMorpher()</a>, <a class="el" href="a06003.html#l00073">init()</a>, <a class="el" href="a06003.html#l00082">initSkinned()</a>, <a class="el" href="a06003.html#l00103">update()</a>, and <a class="el" href="a06003.html#l00236">updateSkinned()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorpherr7" doxytag="NL3D::CMeshMorpher::_VBOri" ></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="a03692.html">CVertexBuffer</a>* <a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr7">NL3D::CMeshMorpher::_VBOri</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="a06004.html#l00103">103</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +Referenced by <a class="el" href="a06003.html#l00060">CMeshMorpher()</a>, <a class="el" href="a06003.html#l00073">init()</a>, <a class="el" href="a06003.html#l00082">initSkinned()</a>, <a class="el" href="a06003.html#l00103">update()</a>, and <a class="el" href="a06003.html#l00236">updateSkinned()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorpherr8" doxytag="NL3D::CMeshMorpher::_Vertices" ></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"> std::vector<<a class="el" href="a03128.html">CVector</a>>* <a class="el" href="a02890.html#NL3D_1_1CMeshMorpherr8">NL3D::CMeshMorpher::_Vertices</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="a06004.html#l00107">107</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +Referenced by <a class="el" href="a06003.html#l00060">CMeshMorpher()</a>, <a class="el" href="a06003.html#l00082">initSkinned()</a>, and <a class="el" href="a06003.html#l00236">updateSkinned()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMorphero0" doxytag="NL3D::CMeshMorpher::BlendShapes" ></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"> std::vector<<a class="el" href="a02273.html">CBlendShape</a>> <a class="el" href="a02890.html#NL3D_1_1CMeshMorphero0">NL3D::CMeshMorpher::BlendShapes</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06004.html#l00077">77</a> of file <a class="el" href="a06004.html">mesh_morpher.h</a>. +<p> +Referenced by <a class="el" href="a06005.html#l00246">NL3D::CMeshMRMGeom::build()</a>, <a class="el" href="a05989.html#l00172">NL3D::CMeshGeom::build()</a>, <a class="el" href="a06005.html#l02554">NL3D::CMeshMRMGeom::compileRunTime()</a>, <a class="el" href="a05989.html#l01062">NL3D::CMeshGeom::compileRunTime()</a>, <a class="el" href="a06006.html#l00222">NL3D::CMeshMRMGeom::getNbBlendShapes()</a>, <a class="el" href="a05990.html#l00419">NL3D::CMeshGeom::getNbBlendShapes()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>, <a class="el" href="a05989.html#l00449">NL3D::CMeshGeom::setBlendShapes()</a>, <a class="el" href="a06005.html#l03060">NL3D::CMeshMRMGeom::updateRawSkinNormal()</a>, <a class="el" href="a06005.html#l02224">NL3D::CMeshMRMGeom::updateVertexBufferHard()</a>, and <a class="el" href="a05989.html#l00523">NL3D::CMeshGeom::updateVertexBufferHard()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a06004.html">mesh_morpher.h</a><li><a class="el" href="a06003.html">mesh_morpher.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:52:43 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> |