diff options
Diffstat (limited to 'docs/doxygen/nel/a03402.html')
-rw-r--r-- | docs/doxygen/nel/a03402.html | 1389 |
1 files changed, 1389 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03402.html b/docs/doxygen/nel/a03402.html new file mode 100644 index 00000000..022032c9 --- /dev/null +++ b/docs/doxygen/nel/a03402.html @@ -0,0 +1,1389 @@ +<!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::CSkeletonShape 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::CSkeletonShape Class Reference</h1><code>#include <<a class="el" href="a06396.html">skeleton_shape.h</a>></code> +<p> +<p>Inheritance diagram for NL3D::CSkeletonShape: +<p><center><img src="a03402.png" usemap="#NL3D::CSkeletonShape_map" border="0" alt=""></center> +<map name="NL3D::CSkeletonShape_map"> +<area href="a02539.html" alt="NL3D::IShape" shape="rect" coords="76,112,219,136"> +<area href="a02209.html" alt="NLMISC::CRefCount" shape="rect" coords="0,56,143,80"> +<area href="a02867.html" alt="NLMISC::IStreamable" shape="rect" coords="153,56,296,80"> +<area href="a02540.html" alt="NLMISC::IClassable" shape="rect" coords="153,0,296,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +a definition of a skeleton. can be instanciated into a <a class="el" href="a03399.html">CSkeletonModel</a>. <dl compact><dt><b>Author:</b></dt><dd>Lionel Berenguier <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a06396.html#l00048">48</a> of file <a class="el" href="a06396.html">skeleton_shape.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>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapea0">build</a> (const std::vector< <a class="el" href="a02279.html">CBoneBase</a> > &bones)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapea1">CSkeletonShape</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#NL3D_1_1CSkeletonShapea1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapea2">getBoneIdByName</a> (const std::string &name) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the id of a bone, from it's name. -1 if not present. <a href="#NL3D_1_1CSkeletonShapea2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02540.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6">getClassName</a> ()=0</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02539.html#NL3D_1_1IShapea5">getDistMax</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03403.html">CLod</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapea5">getLod</a> (<a class="el" href="a04558.html#a15">uint</a> lod) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get lod information. <a href="#NL3D_1_1CSkeletonShapea5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapea6">getLodForDistance</a> (float dist) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">retrieve the lod to use for a given distance (log(n)). <a href="#NL3D_1_1CSkeletonShapea6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapea7">getNumLods</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a14">sint</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypea8">getRefCount</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02539.html#NL3D_1_1IShapea8">profileSceneRender</a> (<a class="el" href="a03325.html">CRenderTrav</a> *rdrTrav, <a class="el" href="a02537.html">CTransformShape</a> *trans, bool opaquePass)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapea10">retrieve</a> (std::vector< <a class="el" href="a02279.html">CBoneBase</a> > &bones) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02539.html#NL3D_1_1IShapea11">setDistMax</a> (float distMax)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">From IShape</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_0">clip</a> (const std::vector< <a class="el" href="a03082.html">CPlane</a> > &pyramid, const <a class="el" href="a02851.html">CMatrix</a> &worldMatrix)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">clip this skeleton. <a href="#NL3D_1_1CSkeletonShapez944_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02537.html">CTransformShape</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_1">createInstance</a> (<a class="el" href="a03348.html">CScene</a> &scene)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <a class="el" href="a03399.html">CSkeletonModel</a>, which contains bones. <a href="#NL3D_1_1CSkeletonShapez944_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_2">flushTextures</a> (<a class="el" href="a02434.html">IDriver</a> &driver, <a class="el" href="a04558.html#a15">uint</a> selectedTexture)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">flush textures used by this shape. <a href="#NL3D_1_1CSkeletonShapez944_2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_3">getAABBox</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &bbox) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_4">getNumTriangles</a> (float distance)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get an approximation of the number of triangles this instance will render for a fixed distance. <a href="#NL3D_1_1CSkeletonShapez944_4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_5">NLMISC_DECLARE_CLASS</a> (<a class="el" href="a03402.html">CSkeletonShape</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">clip this skeleton. <a href="#NL3D_1_1CSkeletonShapez944_5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_6">render</a> (<a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a02537.html">CTransformShape</a> *trans, bool opaquePass)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_6">render()</a> this skeletonshape in a driver (no-op) <a href="#NL3D_1_1CSkeletonShapez944_6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_7">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f) throw (NLMISC::EStream)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">serial this skeletonshape. <a href="#NL3D_1_1CSkeletonShapez944_7"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">crefs</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo * </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">pinfo</a></td></tr> + +<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NullPtrInfo</a></td></tr> + +<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02539.html#NL3D_1_1IShapep0">_DistMax</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Default to -1. <a href="#NL3D_1_1IShapep0"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02156.html">NLMISC::CAABBox</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShaper0">_BBox</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::map< std::string, <a class="el" href="a04558.html#a11">uint32</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShaper1">_BoneMap</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02279.html">CBoneBase</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03403.html">CLod</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a></td></tr> + +<tr><td colspan=2><br><h2>Friends</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypen0">CPtrInfo</a></td></tr> + +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NL3D_1_1CSkeletonShapea1" doxytag="NL3D::CSkeletonShape::CSkeletonShape" ></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::CSkeletonShape::CSkeletonShape </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> +Constructor. +<p> + +<p> +Definition at line <a class="el" href="a06395.html#l00051">51</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00066">NLMISC::CAABBox::setCenter()</a>, and <a class="el" href="a05385.html#l00069">NLMISC::CAABBox::setSize()</a>. +<p> +<div class="fragment"><pre>00052 { +00053 <span class="comment">// By default for now....</span> +00054 <span class="comment">// Temp. Have a huge BBox, so clip badly. </span> +00055 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper0">_BBox</a>.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(CVector(0,0,1.5)); +00056 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper0">_BBox</a>.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_4">setSize</a>(CVector(3,3,3)); +00057 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CSkeletonShapea0" doxytag="NL3D::CSkeletonShape::build" ></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::CSkeletonShape::build </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::vector< <a class="el" href="a02279.html">CBoneBase</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>bones</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> +Build a skeletonShape, replacing old. WARNING: bones must be organized in Depth-first order (this is not checked). Bone.LodDisableDistance are minimized such sons have always a distance <= father distance. +<p> +Definition at line <a class="el" href="a06395.html#l00072">72</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +References <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00073 { +00074 <a class="code" href="a04558.html#a15">uint</a> i; +00075 +00076 <span class="comment">// copy bones.</span> +00077 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>= bones; +00078 +00079 <span class="comment">// for all bones</span> +00080 <span class="keywordflow">for</span>(i=0;i<<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>.size();i++) +00081 { +00082 <span class="comment">// build the map.</span> +00083 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper1">_BoneMap</a>[<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>[i].Name]= i; +00084 <span class="comment">// validate distances.</span> +00085 _Bones[i].LodDisableDistance= max(0.f, _Bones[i].LodDisableDistance); +00086 +00087 <span class="comment">// get fahter dist.</span> +00088 <a class="code" href="a04558.html#a10">sint32</a> fatherId= _Bones[i].FatherId; +00089 <span class="comment">// if father exist and is not "always enabled"</span> +00090 <span class="keywordflow">if</span>(fatherId>=0 && _Bones[fatherId].LodDisableDistance!=0) +00091 { +00092 <span class="keywordtype">float</span> fatherDist= _Bones[fatherId].LodDisableDistance; +00093 <span class="comment">// I must disable me at least before my father (never after).</span> +00094 <span class="keywordflow">if</span>(_Bones[i].LodDisableDistance==0) +00095 _Bones[i].LodDisableDistance= fatherDist; +00096 <span class="keywordflow">else</span> +00097 _Bones[i].LodDisableDistance= <a class="code" href="a04061.html#a0">min</a>(_Bones[i].LodDisableDistance, fatherDist); +00098 } +00099 } +00100 +00101 <span class="comment">// build Lod Information.</span> +00102 <span class="comment">//==============</span> +00103 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>.clear(); +00104 +00105 <span class="comment">// build all distances used.</span> +00106 set<float> distSet; +00107 <span class="keywordflow">for</span>(i=0;i<<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>.size();i++) +00108 { +00109 <span class="keywordtype">float</span> dist= <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>[i].LodDisableDistance; +00110 <span class="comment">// if lod enabled for this bone, add a new distance, or do nothing</span> +00111 <span class="keywordflow">if</span>(dist>0) +00112 distSet.insert(dist); +00113 } +00114 +00115 <span class="comment">// create a lod for each distance used + 1 (the "dist==0" distance).</span> +00116 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>.resize(distSet.size() + 1); +00117 <span class="comment">// create the default lod: all bones activated.</span> +00118 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[0].Distance=0; +00119 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[0].ActiveBones.resize(<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>.size(), 0xFF); +00120 +00121 <span class="comment">// For each lods not 0th.</span> +00122 set<float>::iterator it= distSet.begin(); +00123 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> j=1; j<<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>.size(); j++, it++) +00124 { +00125 <span class="keywordtype">float</span> lodDist= *it; +00126 <span class="comment">// set the distance of activation</span> +00127 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[j].Distance= lodDist; +00128 <span class="comment">// resize and default to all enabled.</span> +00129 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[j].ActiveBones.resize(<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>.size(), 0xFF); +00130 +00131 <span class="comment">// Search what lod are to be disabled at this distance.</span> +00132 <span class="keywordflow">for</span>(i=0;i<<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>.size();i++) +00133 { +00134 <span class="keywordtype">float</span> dist= <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>[i].LodDisableDistance; +00135 <span class="comment">// if the dist of the lod is greater (or equal) to the disableDist of the bone, </span> +00136 <span class="comment">// and if the bone is not "always enabled", disable the bone</span> +00137 <span class="keywordflow">if</span>(lodDist>=dist && dist!=0 ) +00138 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[j].ActiveBones[i]= 0; +00139 } +00140 +00141 } +00142 +00143 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapez944_0" doxytag="NL3D::CSkeletonShape::clip" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CSkeletonShape::clip </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::vector< <a class="el" href="a03082.html">CPlane</a> > & </td> + <td class="mdname" nowrap> <em>pyramid</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02851.html">CMatrix</a> & </td> + <td class="mdname" nowrap> <em>worldMatrix</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +clip this skeleton. +<p> + +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapea0">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06395.html#l00216">216</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +References <a class="el" href="a05504.html#l00088">NLMISC::CBSphere::applyTransform()</a>, <a class="el" href="a05505.html#l00048">NLMISC::CBSphere::Center</a>, <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a05385.html#l00096">NLMISC::CAABBox::getRadius()</a>, <a class="el" href="a05505.html#l00049">NLMISC::CBSphere::Radius</a>, and <a class="el" href="a05981.html#l00104">sint</a>. +<p> +<div class="fragment"><pre>00217 { +00218 <span class="comment">// Speed Clip: clip just the sphere.</span> +00219 <a class="code" href="a02291.html">CBSphere</a> localSphere(<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper0">_BBox</a>.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_0">getCenter</a>(), <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper0">_BBox</a>.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_6">getRadius</a>()); +00220 <a class="code" href="a02291.html">CBSphere</a> worldSphere; +00221 +00222 <span class="comment">// transform the sphere in WorldMatrix (with nearly good scale info).</span> +00223 localSphere.<a class="code" href="a02291.html#NLMISC_1_1CBSpherez1929_0">applyTransform</a>(worldMatrix, worldSphere); +00224 +00225 <span class="comment">// if out of only plane, entirely out.</span> +00226 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i<(<a class="code" href="a04558.html#a14">sint</a>)pyramid.size();i++) +00227 { +00228 <span class="comment">// We are sure that pyramid has normalized plane normals.</span> +00229 <span class="comment">// if SpherMax OUT return false.</span> +00230 <span class="keywordtype">float</span> d= pyramid[i]*worldSphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo0">Center</a>; +00231 <span class="keywordflow">if</span>(d>worldSphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo1">Radius</a>) +00232 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00233 } +00234 +00235 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00236 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapez944_1" doxytag="NL3D::CSkeletonShape::createInstance" ></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="a02537.html">CTransformShape</a> * NL3D::CSkeletonShape::createInstance </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>scene</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Create a <a class="el" href="a03399.html">CSkeletonModel</a>, which contains bones. +<p> + +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapea1">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06395.html#l00154">154</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +References <a class="el" href="a06394.html#l00098">NL3D::CSkeletonModel::Bones</a>, <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>, <a class="el" href="a06393.html#l00165">NL3D::CSkeletonModel::initBoneUsages()</a>, <a class="el" href="a06568.html#l00522">NL3D::CTransform::setLoadBalancingGroup()</a>, <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>, and <a class="el" href="a05981.html#l00104">sint</a>. +<p> +<div class="fragment"><pre>00155 { +00156 <span class="comment">// Create a CSkeletonModel, an instance of a mesh.</span> +00157 <span class="comment">//===============================================</span> +00158 CSkeletonModel *sm= (CSkeletonModel*)scene.createModel(NL3D::SkeletonModelId); +00159 sm->Shape= <span class="keyword">this</span>; +00160 +00161 <span class="comment">// setup bones.</span> +00162 <span class="comment">//=================</span> +00163 sm->Bones.reserve(<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>.size()); +00164 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i<(<a class="code" href="a04558.html#a14">sint</a>)<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>.size();i++) +00165 { +00166 <span class="comment">// Append a new bone.</span> +00167 sm->Bones.push_back( CBone(&_Bones[i]) ); +00168 +00169 <span class="comment">// Must set the Animatable father of the bone (the skeleton model!).</span> +00170 sm->Bones[i].setFather(sm, CSkeletonModel::OwnerBit); +00171 } +00172 +00173 <span class="comment">// Must create and init skeleton bone usage to 0.</span> +00174 sm->initBoneUsages(); +00175 +00176 <span class="comment">// For skinning: setup skeleton in Skin LoadBalancing group</span> +00177 sm->setLoadBalancingGroup(<span class="stringliteral">"Skin"</span>); +00178 +00179 <span class="keywordflow">return</span> sm; +00180 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapez944_2" doxytag="NL3D::CSkeletonShape::flushTextures" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NL3D::CSkeletonShape::flushTextures </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> & </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>selectedTexture</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +flush textures used by this shape. +<p> + +<p> +Implements <a class="el" href="a02539.html#NL3D_1_1IShapea2">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06396.html#l00110">110</a> of file <a class="el" href="a06396.html">skeleton_shape.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00110 {}; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapez944_3" doxytag="NL3D::CSkeletonShape::getAABBox" ></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::CSkeletonShape::getAABBox </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02156.html">NLMISC::CAABBox</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>bbox</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return the bounding box of the shape. Default is to return Null bbox. +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapea3">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06395.html#l00240">240</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +<div class="fragment"><pre>00241 { +00242 bbox= <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper0">_BBox</a>; +00243 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapea2" doxytag="NL3D::CSkeletonShape::getBoneIdByName" ></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="a04558.html#a10">sint32</a> NL3D::CSkeletonShape::getBoneIdByName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the id of a bone, from it's name. -1 if not present. +<p> + +<p> +Definition at line <a class="el" href="a06395.html#l00061">61</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00099">sint32</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00629">NL3D::CSkeletonModel::getBoneIdByName()</a>. +<p> +<div class="fragment"><pre>00062 { +00063 std::map<std::string, uint32>::const_iterator it= <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper1">_BoneMap</a>.find(name); +00064 <span class="keywordflow">if</span>(it==<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper1">_BoneMap</a>.end()) +00065 <span class="keywordflow">return</span> -1; +00066 <span class="keywordflow">else</span> +00067 <span class="keywordflow">return</span> it->second; +00068 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6" doxytag="NL3D::CSkeletonShape::getClassName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual std::string NLMISC::IClassable::getClassName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [pure virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implemented in <a class="el" href="a02995.html#NLAIAGENT_1_1CNumericIndexz1699_0">NLAIAGENT::CNumericIndex</a>, <a class="el" href="a02145.html#NLAIAGENT_1_1VectorTypez1764_0">NLAIC::IPointerGestion</a>, <a class="el" href="a02650.html#NLAIC_1_1CIdentTypez1766_0">NLAIC::CIdentType</a>, and <a class="el" href="a02241.html#CAutomataDescz1896_0">CAutomataDesc</a>. +<p> +Referenced by <a class="el" href="a05549.html#l00091">NLMISC::CClassRegistry::checkObject()</a>, and <a class="el" href="a06525.html#l00039">NL3D::GetTextureSize()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapea5" doxytag="NL3D::CSkeletonShape::getDistMax" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float NL3D::IShape::getDistMax </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return the DistMax where the shape is no more displayed. Default is to return -1, meaning DistMax = infinite. +<p> +Definition at line <a class="el" href="a06377.html#l00112">112</a> of file <a class="el" href="a06377.html">shape.h</a>. +<p> +<div class="fragment"><pre>00112 {<span class="keywordflow">return</span> <a class="code" href="a02539.html#NL3D_1_1IShapep0">_DistMax</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapea5" doxytag="NL3D::CSkeletonShape::getLod" ></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"> const <a class="el" href="a03403.html">CLod</a>& NL3D::CSkeletonShape::getLod </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>lod</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get lod information. +<p> + +<p> +Definition at line <a class="el" href="a06396.html#l00119">119</a> of file <a class="el" href="a06396.html">skeleton_shape.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l00280">NL3D::CSkeletonModel::updateBoneToCompute()</a>. +<p> +<div class="fragment"><pre>00119 {<span class="keywordflow">return</span> <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[lod];} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapea6" doxytag="NL3D::CSkeletonShape::getLodForDistance" ></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="a04558.html#a15">uint</a> NL3D::CSkeletonShape::getLodForDistance </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>dist</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +retrieve the lod to use for a given distance (log(n)). +<p> + +<p> +Definition at line <a class="el" href="a06395.html#l00247">247</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>. +<p> +<div class="fragment"><pre>00248 { +00249 <a class="code" href="a04558.html#a15">uint</a> start=0; +00250 <a class="code" href="a04558.html#a15">uint</a> end= <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>.size(); +00251 <span class="comment">// find lower_bound by dichotomy</span> +00252 <span class="keywordflow">while</span>(end-1>start) +00253 { +00254 <a class="code" href="a04558.html#a15">uint</a> pivot= (end+start)/2; +00255 <span class="comment">// return the lower_bound, ie return first start with _Lods[pivot].Distance<=dist</span> +00256 <span class="keywordflow">if</span>(<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[pivot].Distance <= dist) +00257 start= pivot; +00258 <span class="keywordflow">else</span> +00259 end= pivot; +00260 } +00261 +00262 <span class="keywordflow">return</span> start; +00263 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapea7" doxytag="NL3D::CSkeletonShape::getNumLods" ></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="a04558.html#a15">uint</a> NL3D::CSkeletonShape::getNumLods </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06396.html#l00120">120</a> of file <a class="el" href="a06396.html">skeleton_shape.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l00280">NL3D::CSkeletonModel::updateBoneToCompute()</a>. +<p> +<div class="fragment"><pre>00120 {<span class="keywordflow">return</span> <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>.size();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapez944_4" doxytag="NL3D::CSkeletonShape::getNumTriangles" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float NL3D::CSkeletonShape::getNumTriangles </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>distance</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get an approximation of the number of triangles this instance will render for a fixed distance. +<p> + +<p> +Implements <a class="el" href="a02539.html#NL3D_1_1IShapez900_0">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06395.html#l00208">208</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +<div class="fragment"><pre>00209 { +00210 <span class="comment">// No polygons</span> +00211 <span class="keywordflow">return</span> 0; +00212 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypea8" doxytag="NL3D::CSkeletonShape::getRefCount" ></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"> const <a class="el" href="a04558.html#a14">sint</a>& NLMISC::CRefCount::getRefCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00070">70</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. +<p> +References <a class="el" href="a06402.html#l00079">NLMISC::CRefCount::crefs</a>, and <a class="el" href="a05981.html#l00104">sint</a>. +<p> +<div class="fragment"><pre>00071 { +00072 <span class="keywordflow">return</span> <a class="code" href="a02209.html#NLGEORGES_1_1UTypeo0">crefs</a>; +00073 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapez944_5" doxytag="NL3D::CSkeletonShape::NLMISC_DECLARE_CLASS" ></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::CSkeletonShape::NLMISC_DECLARE_CLASS </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03402.html">CSkeletonShape</a> </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> +clip this skeleton. +<p> + </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapea8" doxytag="NL3D::CSkeletonShape::profileSceneRender" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NL3D::IShape::profileSceneRender </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03325.html">CRenderTrav</a> * </td> + <td class="mdname" nowrap> <em>rdrTrav</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02537.html">CTransformShape</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>opaquePass</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Profiling. Called in RenderPass if Current Frame profiled. No-Op by default Informations must be added in rdrTrav->Scene +<p> +Reimplemented in <a class="el" href="a02857.html#NL3D_1_1CMeshz405_5">NL3D::CMesh</a>, <a class="el" href="a02891.html#NL3D_1_1CMeshMRMz493_5">NL3D::CMeshMRM</a>, <a class="el" href="a02900.html#NL3D_1_1CMeshMRMSkinnedz525_5">NL3D::CMeshMRMSkinned</a>, and <a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_4">NL3D::CMeshMultiLod</a>. +<p> +Definition at line <a class="el" href="a06377.html#l00123">123</a> of file <a class="el" href="a06377.html">shape.h</a>. +<p> +<div class="fragment"><pre>00123 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapez944_6" doxytag="NL3D::CSkeletonShape::render" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NL3D::CSkeletonShape::render </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02537.html">CTransformShape</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>opaquePass</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +<a class="el" href="a03402.html#NL3D_1_1CSkeletonShapez944_6">render()</a> this skeletonshape in a driver (no-op) +<p> + +<p> +Implements <a class="el" href="a02539.html#NL3D_1_1IShapea9">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06396.html#l00094">94</a> of file <a class="el" href="a06396.html">skeleton_shape.h</a>. +<p> +<div class="fragment"><pre>00095 { +00096 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapea10" doxytag="NL3D::CSkeletonShape::retrieve" ></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::CSkeletonShape::retrieve </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a02279.html">CBoneBase</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>bones</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Retrieve Bones Information. +<p> +Definition at line <a class="el" href="a06395.html#l00147">147</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +<div class="fragment"><pre>00148 { +00149 bones= <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>; +00150 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShapez944_7" doxytag="NL3D::CSkeletonShape::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::CSkeletonShape::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> throw (<a class="el" href="a03781.html">NLMISC::EStream</a>)<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +serial this skeletonshape. +<p> + +<p> +Implements <a class="el" href="a02867.html#NL3D_1_1ITrackDefaulta6">NLMISC::IStreamable</a>. +<p> +Definition at line <a class="el" href="a06395.html#l00183">183</a> of file <a class="el" href="a06395.html">skeleton_shape.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00104">sint</a>. +<p> +<div class="fragment"><pre>00184 { +00185 <span class="comment">/*</span> +00186 <span class="comment"> Version 1:</span> +00187 <span class="comment"> - _Lods.</span> +00188 <span class="comment"> */</span> +00189 <a class="code" href="a04558.html#a14">sint</a> ver= f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a>(1); +00190 +00191 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_Bones); +00192 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_BoneMap); +00193 +00194 <span class="keywordflow">if</span>(ver>=1) +00195 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_Lods); +00196 <span class="keywordflow">else</span> +00197 { +00198 <span class="comment">// create a skeleton shape with bones activated all the time</span> +00199 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>.resize(1); +00200 <span class="comment">// create the default lod: all bones activated.</span> +00201 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[0].Distance=0; +00202 <a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper3">_Lods</a>[0].ActiveBones.resize(<a class="code" href="a03402.html#NL3D_1_1CSkeletonShaper2">_Bones</a>.size(), 0xFF); +00203 } +00204 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapea11" doxytag="NL3D::CSkeletonShape::setDistMax" ></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::IShape::setDistMax </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>distMax</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +setup the DistMax where the shape is no more displayed. Take effect only for the next created instances. setting <0 means -1 and so means DistMax = infinite. +<p> +Definition at line <a class="el" href="a06376.html#l00066">66</a> of file <a class="el" href="a06376.html">shape.cpp</a>. +<p> +Referenced by <a class="el" href="a05714.html#l00039">NL3D::CFlareShape::CFlareShape()</a>. +<p> +<div class="fragment"><pre>00067 { +00068 <a class="code" href="a02539.html#NL3D_1_1IShapep0">_DistMax</a>= distMax; +00069 <span class="comment">// normalize infinite setup.</span> +00070 <span class="keywordflow">if</span>(distMax<0) +00071 <a class="code" href="a02539.html#NL3D_1_1IShapep0">_DistMax</a>= -1; +00072 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapez904_0" doxytag="NL3D::CSkeletonShape::supportMeshBlockRendering" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a02879.html">IMeshGeom</a>* NL3D::IShape::supportMeshBlockRendering </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02537.html">CTransformShape</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float & </td> + <td class="mdname" nowrap> <em>polygonCount</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return !NULL if this shape can support MeshBlock rendering for a special instance. NB: Mesh Block render cannot occurs if the Mesh is Skinned/MeshMorphed. NB: Mesh Block render can occurs only in Opaque pass NB: Mesh block render can occurs only for <a class="el" href="a02858.html">CMeshBase</a> meshes. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>trans</em> </td><td>the instance to take into account (meshMultiLod may return NULL in blend transition). </td></tr> + <tr><td valign=top><em>polygonCount</em> </td><td>the number of polygons to render for the meshGeom returned </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the meshgeom to render per block if OK, else NULL (default)</dd></dl> + +<p> +Reimplemented in <a class="el" href="a02857.html#NL3D_1_1CMeshz409_0">NL3D::CMesh</a>, <a class="el" href="a02891.html#NL3D_1_1CMeshMRMz497_0">NL3D::CMeshMRM</a>, <a class="el" href="a02900.html#NL3D_1_1CMeshMRMSkinnedz529_0">NL3D::CMeshMRMSkinned</a>, and <a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz539_0">NL3D::CMeshMultiLod</a>. +<p> +Definition at line <a class="el" href="a06377.html#l00158">158</a> of file <a class="el" href="a06377.html">shape.h</a>. +<p> +<div class="fragment"><pre>00158 {<span class="keywordflow">return</span> NULL;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapez902_0" doxytag="NL3D::CSkeletonShape::useLightingLocalAttenuation" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::IShape::useLightingLocalAttenuation </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +tells if the shape wants LocalAttenuation for RealTime lighting. Default is false +<p> +Reimplemented in <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLoda14">NL3D::CMeshBase</a>. +<p> +Definition at line <a class="el" href="a06377.html#l00142">142</a> of file <a class="el" href="a06377.html">shape.h</a>. +<p> +<div class="fragment"><pre>00142 {<span class="keywordflow">return</span> <span class="keyword">false</span>;} +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NLGEORGES_1_1UTypen0" doxytag="NL3D::CSkeletonShape::CPtrInfo" ></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"> friend struct CPtrInfo<code> [friend, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00067">67</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NL3D_1_1CSkeletonShaper0" doxytag="NL3D::CSkeletonShape::_BBox" ></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="a02156.html">NLMISC::CAABBox</a> <a class="el" href="a03402.html#NL3D_1_1CSkeletonShaper0">NL3D::CSkeletonShape::_BBox</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="a06396.html#l00126">126</a> of file <a class="el" href="a06396.html">skeleton_shape.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShaper1" doxytag="NL3D::CSkeletonShape::_BoneMap" ></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::map<std::string, <a class="el" href="a04558.html#a11">uint32</a>> <a class="el" href="a03402.html#NL3D_1_1CSkeletonShaper1">NL3D::CSkeletonShape::_BoneMap</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="a06396.html#l00125">125</a> of file <a class="el" href="a06396.html">skeleton_shape.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShaper2" doxytag="NL3D::CSkeletonShape::_Bones" ></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="a02279.html">CBoneBase</a>> <a class="el" href="a03402.html#NL3D_1_1CSkeletonShaper2">NL3D::CSkeletonShape::_Bones</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="a06396.html#l00124">124</a> of file <a class="el" href="a06396.html">skeleton_shape.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapep0" doxytag="NL3D::CSkeletonShape::_DistMax" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float <a class="el" href="a02539.html#NL3D_1_1IShapep0">NL3D::IShape::_DistMax</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Default to -1. +<p> + +<p> +Definition at line <a class="el" href="a06377.html#l00165">165</a> of file <a class="el" href="a06377.html">shape.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CSkeletonShaper3" doxytag="NL3D::CSkeletonShape::_Lods" ></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="a03403.html">CLod</a>> <a class="el" href="a03402.html#NL3D_1_1CSkeletonShaper3">NL3D::CSkeletonShape::_Lods</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="a06396.html#l00128">128</a> of file <a class="el" href="a06396.html">skeleton_shape.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypeo0" doxytag="NL3D::CSkeletonShape::crefs" ></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="a04558.html#a14">sint</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">NLMISC::CRefCount::crefs</a><code> [mutable, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00079">79</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. +<p> +Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, <a class="el" href="a06402.html#l00070">NLMISC::CRefCount::getRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypes0" doxytag="NL3D::CSkeletonShape::NullPtrInfo" ></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="a03320.html">CRefCount::CPtrInfo</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NLMISC::CRefCount::NullPtrInfo</a><code> [static, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypeo1" doxytag="NL3D::CSkeletonShape::pinfo" ></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"> CPtrInfo* <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">NLMISC::CRefCount::pinfo</a><code> [mutable, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00080">80</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. +<p> +Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a06396.html">skeleton_shape.h</a><li><a class="el" href="a06395.html">skeleton_shape.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 07:46:19 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> |