diff options
author | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
commit | 0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch) | |
tree | 2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02888.html | |
download | nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip |
Initial commit
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a02888.html | 11330 |
1 files changed, 11330 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02888.html b/docs/doxygen/nel/a02888.html new file mode 100644 index 00000000..81b3d09f --- /dev/null +++ b/docs/doxygen/nel/a02888.html @@ -0,0 +1,11330 @@ +<!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::CMeshInstance 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::CMeshInstance Class Reference</h1><code>#include <<a class="el" href="a06002.html">mesh_instance.h</a>></code> +<p> +<p>Inheritance diagram for NL3D::CMeshInstance: +<p><center><img src="a02888.png" usemap="#NL3D::CMeshInstance_map" border="0" alt=""></center> +<map name="NL3D::CMeshInstance_map"> +<area href="a02873.html" alt="NL3D::CMeshBaseInstance" shape="rect" coords="87,224,252,248"> +<area href="a02537.html" alt="NL3D::CTransformShape" shape="rect" coords="87,168,252,192"> +<area href="a02316.html" alt="NL3D::CTransform" shape="rect" coords="87,112,252,136"> +<area href="a02209.html" alt="NLMISC::CRefCount" shape="rect" coords="0,56,165,80"> +<area href="a02278.html" alt="NL3D::ITransformable" shape="rect" coords="175,56,340,80"> +<area href="a02197.html" alt="NL3D::IAnimatable" shape="rect" coords="175,0,340,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +An instance of <a class="el" href="a02857.html">CMesh</a>. no special traverse, since same functionnality as <a class="el" href="a02873.html">CMeshBaseInstance</a>. NB: <a class="el" href="a02888.html">CMeshInstance</a> support shadowMap casting ONLY for an easy Demo / Test. No Lod mgt, and No good shadow clip. <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="a06002.html#l00057">57</a> of file <a class="el" href="a06002.html">mesh_instance.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>IAnimatable Interface (registering only IAnimatable sons).</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0">TAnimValues</a> { <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0NL3D_1_1CMeshMultiLodInstancew4">OwnerBit</a> = CTransformShape::AnimValueLast, +<a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0NL3D_1_1CMeshMultiLodInstancew1">AnimValueLast</a> + }</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Added values. <a href="#NL3D_1_1CMeshMultiLodInstancez437_0">More...</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="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_1">registerToChannelMixer</a> (<a class="el" href="a02335.html">CChannelMixer</a> *chanMixer, const std::string &prefix)</td></tr> + +<tr><td colspan=2><br><h2>Skinning Behavior.</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const std::vector<<br> + <a class="el" href="a02291.html">NLMISC::CBSphere</a> > * </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_0">getSkinBoneSphere</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a14">sint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_3">renderShadowSkinGeom</a> (<a class="el" href="a04558.html#a15">uint</a> remainingVertices, <a class="el" href="a04558.html#a7">uint8</a> *vbDest)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_4">renderShadowSkinPrimitives</a> (<a class="el" href="a02839.html">CMaterial</a> &castMat, <a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a04558.html#a15">uint</a> baseVertex)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a14">sint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_6">renderSkinGroupGeom</a> (float alphaMRM, <a class="el" href="a04558.html#a15">uint</a> remainingVertices, <a class="el" href="a04558.html#a7">uint8</a> *dest)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_7">renderSkinGroupPrimitives</a> (<a class="el" href="a04558.html#a15">uint</a> baseVertex, std::vector< <a class="el" href="a03407.html">CSkinSpecularRdrPass</a> > &specularRdrPasses, <a class="el" href="a04558.html#a15">uint</a> skinIndex)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_8">renderSkinGroupSpecularRdrPass</a> (<a class="el" href="a04558.html#a15">uint</a> rdrPass)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Render a specific specular renderPass returned by renderSkinGroupPrimitives. <a href="#NL3D_1_1CWaveMakerModelz1032_8"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_10">supportShadowSkinGrouping</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Special Skinning For ShadowMapping. <a href="#NL3D_1_1CWaveMakerModelz1032_10"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_11">supportSkinGrouping</a> () const </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="a02316.html#NL3D_1_1CWaveMakerModelz1032_12">_FatherBoneId</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html">CSkeletonModel</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a></td></tr> + +<tr><td colspan=2><br><h2>[NOHEADER]</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_0">isNeedUpdateFrozenStaticLightSetup</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">non-zero if the object has a FrozenStaticLightSetup not correclty updated. <a href="#NL3D_1_1CWaveMakerModelz1033_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_1">isNeedUpdateLighting</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">non-zero if the object needs to updatelighting. <a href="#NL3D_1_1CWaveMakerModelz1033_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02744.html">CLightContribution</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The contribution of all lights. This enlarge the struct only of approx 15%. <a href="#NL3D_1_1CWaveMakerModelz1033_2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02749.html">CLightingManager::CQGItLightedModel</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">_LightedModelIt</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">each transform may be in a quadGird of lighted models (see <a class="el" href="a02747.html">CLightingManager</a>) <a href="#NL3D_1_1CWaveMakerModelz1033_3"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Hrc Traversal</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_0">updateClipTravForAncestorSkeleton</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_1">updateWorld</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Update the world state according to the parent world state and the local states. <a href="#NL3D_1_1CWaveMakerModelz1043_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html">CSkeletonModel</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_4">_DontUnfreezeChildren</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a12">sint64</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_6">_LocalDate</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02851.html">CMatrix</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Hrc IN variables. <a href="#NL3D_1_1CWaveMakerModelz1043_7"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02639.html#NL3D_1_1CHrcTravw3">CHrcTrav::TVisibility</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_8">_LocalVis</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a12">sint64</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02851.html">CMatrix</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Hrc OUT variables. <a href="#NL3D_1_1CWaveMakerModelz1043_10"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a></td></tr> + +<tr><td colspan=2><br><h2>Public Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a> { <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a> = 0, +<a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">RotEuler</a>, +<a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>, +<a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10">TransformModeCount</a> + }</td></tr> + +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela0">canStartStop</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Test if there is a start/stop caps in the objects (some fxs such as remanence). <a href="#NL3D_1_1CWaveMakerModela0"></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="a02873.html#NL3D_1_1CMeshInstancea1">changeMRMDistanceSetup</a> (float distanceFinest, float distanceMiddle, float distanceCoarsest)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea0">compareMatrixDate</a> (<a class="el" href="a04558.html#a13">uint64</a> callerDate) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela3">freeze</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">freezeHRC</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela5">getAABBox</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &bbox) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03399.html">CSkeletonModel</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela6">getAncestorSkeletonModel</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela7">getChannelMixerOwnerShip</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02671.html">CInstanceGroup</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela8">getClusterSystem</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela10">getDistMax</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela11">getForceClipRoot</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02744.html">CLightContribution</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela12">getLightContribution</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela13">getLightHotSpotInWorld</a> (<a class="el" href="a03128.html">CVector</a> &modelPos, float &modelRadius) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">CMatrix</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea1">getMatrix</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the matrix, compute her if necessary (work in all modes). <a href="#NL3D_1_1ITransformablea1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablea2">getMatrixDate</a> () const </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="a02316.html#NL3D_1_1CWaveMakerModela19">getOrderingLayer</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the ordering layer. <a href="#NL3D_1_1CWaveMakerModela19"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03348.html">CScene</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the scene which has created us <a href="#NL3D_1_1CWaveMakerModela20"></a><br><br></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><a class="el" href="a03399.html">CSkeletonModel</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela22">getSkeletonModel</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the skeleton model. Returnr NULL in normal mode. <a href="#NL3D_1_1CWaveMakerModela22"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela23">getUserClipping</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the user clipping state. <a href="#NL3D_1_1CWaveMakerModela23"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02639.html#NL3D_1_1CHrcTravw3">CHrcTrav::TVisibility</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela24">getVisibility</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the local visibility state. <a href="#NL3D_1_1CWaveMakerModela24"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">CMatrix</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela26">heritVisibility</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">herit the visibility from his father. (default behavior). <a href="#NL3D_1_1CWaveMakerModela26"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela27">hide</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Hide the object and his sons. <a href="#NL3D_1_1CWaveMakerModela27"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancea27">initAnimatedLightIndex</a> (const <a class="el" href="a03348.html">CScene</a> &scene)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela28">isClipVisible</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela29">isHrcVisible</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela30">isLinkToQuadCluster</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">true if the model is linked to a quadCluster <a href="#NL3D_1_1CWaveMakerModela30"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela31">isOpaque</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela32">isQuadGridClipEnabled</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela33">isStarted</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela34">isTransparent</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancea36">selectTextureSet</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela35">setChannelMixerOwnerShip</a> (bool enable=true)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela36">setClusterSystem</a> (<a class="el" href="a02671.html">CInstanceGroup</a> *pCS)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela37">setDistMax</a> (float distMax)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela38">setDontUnfreezeChildren</a> (bool val)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela39">setForceClipRoot</a> (bool forceClipRoot)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela40">setLogicInfo</a> (<a class="el" href="a03863.html">ILogicInfo</a> *logicInfo)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela41">setOpacity</a> (bool <a class="el" href="a04223.html#a576">v</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela42">setOrderingLayer</a> (<a class="el" href="a04558.html#a15">uint</a> layer)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela43">setTransparency</a> (bool <a class="el" href="a04223.html#a576">v</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela44">setUserClipping</a> (bool enable)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela45">setWorldMatrix</a> (const <a class="el" href="a02851.html">CMatrix</a> &mat)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela46">show</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Show the objet and his sons. <a href="#NL3D_1_1CWaveMakerModela46"></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="a02537.html#NL3D_1_1CWaveMakerModela47">start</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela48">stop</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela49">unfreezeHRC</a> ()</td></tr> + +<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const char * </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee0">getPivotValueName</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const char * </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee1">getPosValueName</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const char * </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee2">getRotEulerValueName</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const char * </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee3">getRotQuatValueName</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const char * </td><td class="memItemRight" valign=bottom><a class="el" href="a02278.html#NL3D_1_1ITransformablee4">getScaleValueName</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancee5">registerBasic</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Call at the begining of the program, to register the model. <a href="#NL3D_1_1CMeshInstancee5"></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>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo2">_VPWindTreePhase</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="a02917.html">CMeshVPWindTree</a> instance specific part. <a href="#NL3D_1_1CMeshMultiLodInstanceo2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02229.html">CAsyncTextureBlock</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a></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>std::vector< <a class="el" href="a02839.html">CMaterial</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</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 class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03408.html">CSmartPtr</a>< <a class="el" href="a02539.html">IShape</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The shape, the object instancied. <a href="#NL3D_1_1CWaveMakerModelo2"></a><br><br></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 Member Functions</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="a02197.html#NL3D_1_1ITransformableb0">addValue</a> (<a class="el" href="a02335.html">CChannelMixer</a> *chanMixer, <a class="el" href="a04558.html#a15">uint</a> valueId, <a class="el" href="a04558.html#a15">uint</a> ownerValueId, const std::string &prefix, bool detail)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02197.html#NL3D_1_1ITransformableb1">clearFlag</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">This method clear a bit in the bitset. <a href="#NL3D_1_1ITransformableb1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstanceb2">CMeshInstance</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#NL3D_1_1CMeshInstanceb2"></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="a02888.html#NL3D_1_1CMeshInstanceb3">createShadowMap</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstanceb4">deleteShadowMap</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">To implement for ShadowCaster support. typically free the shadowMap. <a href="#NL3D_1_1CMeshInstanceb4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelb2">forceCompute</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02335.html">CChannelMixer</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelb3">getChannelMixer</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelb4">getShowWhenLODSticked</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Test if obj must be displayed when sticked to an object displayed as a LOD (example: sword in hand of a character displayed as a LOD state). <a href="#NL3D_1_1CWaveMakerModelb4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstanceb8">initRenderFilterType</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02197.html#NL3D_1_1ITransformableb2">setFlag</a> (<a class="el" href="a04558.html#a15">uint</a> valueId)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">This method set a bit in the bitset. <a href="#NL3D_1_1ITransformableb2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelb6">setupCurrentLightContribution</a> (<a class="el" href="a02744.html">CLightContribution</a> *lightContrib, bool useLocalAtt)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelb7">unlinkFromQuadCluster</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">special feature for <a class="el" href="a03287.html">CQuadGridClipManager</a>. remove from it. <a href="#NL3D_1_1CWaveMakerModelb7"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstanceb12">~CMeshInstance</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#NL3D_1_1CMeshInstanceb12"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">ShadowMap Behavior.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_0">computeWorldBBoxForShadow</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &worldBB)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_1">generateShadowMap</a> (const <a class="el" href="a03128.html">CVector</a> &lightDir)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03370.html">CShadowMap</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_2">getShadowMap</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_3">renderIntoSkeletonShadowMap</a> (<a class="el" href="a03399.html">CSkeletonModel</a> *rootSkeleton, <a class="el" href="a02839.html">CMaterial</a> &castMat)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">Skinning Behavior.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const std::vector<<br> + <a class="el" href="a04558.html#a10">sint32</a> > * </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancez461_0">getSkinBoneUsage</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called for lod character coloring. <a href="#NL3D_1_1CMeshInstancez461_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancez461_1">isSkinnable</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">I can be skinned if the mesh is. <a href="#NL3D_1_1CMeshInstancez461_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="a02888.html#NL3D_1_1CMeshInstancez461_2">renderSkin</a> (float alphaMRM)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation of the renderSkin. <a href="#NL3D_1_1CMeshInstancez461_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="a02888.html#NL3D_1_1CMeshInstancez461_3">setApplySkin</a> (bool state)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Call when the skin is applied on the skeleton. <a href="#NL3D_1_1CMeshInstancez461_3"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Special Traverse Feature.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancez463_0">traverseRender</a> ()</td></tr> + +<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelp0">_RenderFilterType</a></td></tr> + +<tr><td colspan=2><br><h2>Private 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="a02888.html#NL3D_1_1CMeshInstanced0">updateShadowMap</a> (<a class="el" href="a02434.html">IDriver</a> *driver)</td></tr> + +<tr><td colspan=2><br><h2>Static Private Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02316.html">CTransform</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstanceh0">creator</a> ()</td></tr> + +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02889.html">CShadowGeom</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03370.html">CShadowMap</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a></td></tr> + +<tr><td colspan=2><br><h2>Friends</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>class </td><td class="memItemRight" valign=bottom><a class="el" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a></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>Member Enumeration Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez437_0" doxytag="NL3D::CMeshInstance::TAnimValues" ></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="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0">NL3D::CMeshBaseInstance::TAnimValues</a><code> [inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Added values. +<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_1CMeshMultiLodInstancez437_0NL3D_1_1CMeshMultiLodInstancew4" doxytag="OwnerBit" ></a>OwnerBit</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez437_0NL3D_1_1CMeshMultiLodInstancew1" doxytag="AnimValueLast" ></a>AnimValueLast</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Reimplemented from <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0">NL3D::ITransformable</a>. +<p> +Definition at line <a class="el" href="a05994.html#l00087">87</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +<div class="fragment"><pre>00088 { +00089 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0NL3D_1_1CMeshMultiLodInstancew4">OwnerBit</a>= CTransformShape::AnimValueLast, +00090 +00091 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez437_0NL3D_1_1CMeshMultiLodInstancew1">AnimValueLast</a>, +00092 }; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablew11" doxytag="NL3D::CMeshInstance::TTransformMode" ></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="a02278.html#NL3D_1_1ITransformablew11">NL3D::ITransformable::TTransformMode</a><code> [inherited]</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_1ITransformablew11NL3D_1_1ITransformablew1" doxytag="DirectMatrix" ></a>DirectMatrix</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5" doxytag="RotEuler" ></a>RotEuler</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7" doxytag="RotQuat" ></a>RotQuat</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10" doxytag="TransformModeCount" ></a>TransformModeCount</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="a06575.html#l00058">58</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +Referenced by <a class="el" href="a06575.html#l00189">NL3D::ITransformable::getTransformMode()</a>. +<p> +<div class="fragment"><pre>00059 { +00060 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>=0, <span class="comment">// DirectMatrixMode.</span> +00061 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">RotEuler</a>, <span class="comment">// Matrix is computed from sperated composantes, with euler rotation.</span> +00062 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">RotQuat</a>, <span class="comment">// Matrix is computed from sperated composantes, with quat rotation (default).</span> +00063 +00064 <a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew10">TransformModeCount</a> +00065 }; +</pre></div> </td> + </tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshInstanceb2" doxytag="NL3D::CMeshInstance::CMeshInstance" ></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::CMeshInstance::CMeshInstance </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> [protected]</code></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="a06001.html#l00042">42</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06002.html#l00121">_ShadowGeom</a>, and <a class="el" href="a06002.html#l00112">_ShadowMap</a>. +<p> +<div class="fragment"><pre>00043 { +00044 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>= NULL; +00045 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>= NULL; +00046 +00047 <span class="comment">// LoadBalancing is not usefull for Mesh, because meshs cannot be reduced in faces.</span> +00048 <span class="comment">// Override CTransformShape state.</span> +00049 CTransform::setIsLoadbalancable(<span class="keyword">false</span>); +00050 +00051 <span class="comment">// Mesh support shadow map casting only</span> +00052 CTransform::setIsShadowMapCaster(<span class="keyword">true</span>); +00053 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstanceb12" doxytag="NL3D::CMeshInstance::~CMeshInstance" ></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::CMeshInstance::~<a class="el" href="a02888.html">CMeshInstance</a> </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> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Destructor. +<p> + +<p> +Definition at line <a class="el" href="a06001.html#l00056">56</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06001.html#l00240">deleteShadowMap()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>00057 { +00058 <span class="comment">// Auto detach me from skeleton. Must do it here, not in ~CTransform().</span> +00059 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>) +00060 { +00061 <span class="comment">// detach me from the skeleton.</span> +00062 <span class="comment">// hrc and clip hierarchy is modified.</span> +00063 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->detachSkeletonSon(<span class="keyword">this</span>); +00064 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel==NULL); +00065 } +00066 +00067 <span class="comment">// delete the shadowMap</span> +00068 <a class="code" href="a02888.html#NL3D_1_1CMeshInstanceb4">deleteShadowMap</a>(); +00069 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1ITransformableb0" doxytag="NL3D::CMeshInstance::addValue" ></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> NL3D::IAnimatable::addValue </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> * </td> + <td class="mdname" nowrap> <em>chanMixer</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>valueId</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>ownerValueId</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::string & </td> + <td class="mdname" nowrap> <em>prefix</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>detail</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +This is a tool function which add a given value to a channel. <dl compact><dt><b>Returns:</b></dt><dd>-1 if the track was not found in the animationSet, else it return the channelId as if returned by CAnimationSet::getChannelIdByName(channelName).</dd></dl> + +<p> +Definition at line <a class="el" href="a05433.html#l00037">37</a> of file <a class="el" href="a05433.html">animatable.cpp</a>. +<p> +References <a class="el" href="a05543.html#l00306">NL3D::CChannelMixer::addChannel()</a>, <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_1">NL3D::IAnimatable::getDefaultTrack()</a>, <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_2">NL3D::IAnimatable::getValue()</a>, <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_3">NL3D::IAnimatable::getValueName()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>, <a class="el" href="a06148.html#l00470">NL3D::CParticleSystemModel::registerToChannelMixer()</a>, <a class="el" href="a05530.html#l00151">NL3D::CCamera::registerToChannelMixer()</a>, <a class="el" href="a05491.html#l00141">NL3D::CBone::registerToChannelMixer()</a>, <a class="el" href="a05439.html#l00102">NL3D::CAnimatedMorph::registerToChannelMixer()</a>, <a class="el" href="a05437.html#l00376">NL3D::CAnimatedMaterial::registerToChannelMixer()</a>, and <a class="el" href="a05435.html#l00139">NL3D::CAnimatedLightmap::registerToChannelMixer()</a>. +<p> +<div class="fragment"><pre>00038 { +00039 <a class="code" href="a04199.html#a6">nlassert</a>(chanMixer); +00040 <span class="keywordflow">return</span> chanMixer->addChannel(prefix+<a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_3">getValueName</a>(valueId), <span class="keyword">this</span>, <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_2">getValue</a>(valueId), <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez441_0">getDefaultTrack</a>(valueId), valueId, ownerValueId, detail); +00041 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_0" doxytag="NL3D::CMeshInstance::canCastShadowMap" ></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::CTransform::canCastShadowMap </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> +true if the instance cast shadow. By default false +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00470">470</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy10">NL3D::CTransform::IsFinalShadowMapCaster</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l01335">NL3D::CTransform::enableCastShadowMap()</a>, <a class="el" href="a06569.html#l00514">NL3D::CTransform::setGeneratingShadowMap()</a>, and <a class="el" href="a06001.html#l00330">traverseRender()</a>. +<p> +<div class="fragment"><pre>00470 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsFinalShadowMapCaster)!=0;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_1" doxytag="NL3D::CMeshInstance::canReceiveShadowMap" ></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::CTransform::canReceiveShadowMap </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> +true if the instance receive shadow. By default false +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00477">477</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy11">NL3D::CTransform::IsFinalShadowMapReceiver</a>. +<p> +Referenced by <a class="el" href="a05874.html#l00554">NL3D::CLandscapeUser::canReceiveShadowMap()</a>, and <a class="el" href="a05870.html#l00257">NL3D::CLandscapeModel::traverseRender()</a>. +<p> +<div class="fragment"><pre>00477 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsFinalShadowMapReceiver)!=0;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela0" doxytag="NL3D::CMeshInstance::canStartStop" ></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::CTransformShape::canStartStop </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Test if there is a start/stop caps in the objects (some fxs such as remanence). +<p> + +<p> +Reimplemented in <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez886_0">NL3D::CSegRemanence</a>. +<p> +Definition at line <a class="el" href="a06571.html#l00126">126</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a05829.html#l00105">NL3D::CInstanceUser::canStartStop()</a>. +<p> +<div class="fragment"><pre>00126 { <span class="keywordflow">return</span> <span class="keyword">false</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1055_0" doxytag="NL3D::CMeshInstance::changeLightSetup" ></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::CTransformShape::changeLightSetup </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03325.html">CRenderTrav</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>rdrTrav</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 lighting for this instance into driver. The <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1057_3">traverseRender()</a>. +<p> + +<p> +Definition at line <a class="el" href="a06570.html#l00105">105</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a06571.html#l00182">NL3D::CTransformShape::_CurrentLightContribution</a>, <a class="el" href="a06571.html#l00184">NL3D::CTransformShape::_CurrentUseLocalAttenuation</a>, and <a class="el" href="a06329.html#l00409">NL3D::CRenderTrav::changeLightSetup()</a>. +<p> +Referenced by <a class="el" href="a06005.html#l02738">NL3D::CMeshMRMGeom::activeInstance()</a>, <a class="el" href="a05989.html#l02058">NL3D::CMeshGeom::activeInstance()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, and <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>. +<p> +<div class="fragment"><pre>00106 { +00107 <span class="comment">// setup the instance lighting.</span> +00108 rdrTrav->changeLightSetup(_CurrentLightContribution, _CurrentUseLocalAttenuation); +00109 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancea1" doxytag="NL3D::CMeshInstance::changeMRMDistanceSetup" ></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::CMeshBaseInstance::changeMRMDistanceSetup </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>distanceFinest</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>distanceMiddle</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>distanceCoarsest</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> +Change MRM Distance setup. Only for mesh which support MRM. NB MeshMultiLod apply it only on Lod0. NB: This apply to the shape direclty!! ie All instances using same shape will be affected NB: no-op if distanceFinest<0, distanceMiddle<=distanceFinest or if distanceCoarsest<=distanceMiddle. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>distanceFinest</em> </td><td>The MRM has its max faces when dist<=distanceFinest. </td></tr> + <tr><td valign=top><em>distanceMiddle</em> </td><td>The MRM has 50% of its faces at dist==distanceMiddle. </td></tr> + <tr><td valign=top><em>distanceCoarsest</em> </td><td>The MRM has faces/Divisor (ie near 0) when dist>=distanceCoarsest.</td></tr> + </table> +</dl> + +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez501_0">NL3D::CMeshMRMInstance</a>, <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez533_0">NL3D::CMeshMRMSkinnedInstance</a>, and <a class="el" href="a02914.html#NL3D_1_1CMeshMultiLodInstancea1">NL3D::CMeshMultiLodInstance</a>. +<p> +Definition at line <a class="el" href="a05994.html#l00142">142</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +<div class="fragment"><pre>00142 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformableb1" doxytag="NL3D::CMeshInstance::clearFlag" ></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::IAnimatable::clearFlag </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>valueId</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +This method clear a bit in the bitset. +<p> + +<p> +Definition at line <a class="el" href="a05434.html#l00233">233</a> of file <a class="el" href="a05434.html">animatable.h</a>. +<p> +References <a class="el" href="a05434.html#l00206">NL3D::IAnimatable::_BitSet</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00124">NL3D::ITransformable::clearTransformFlags()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, and <a class="el" href="a05437.html#l00197">NL3D::CAnimatedMaterial::update()</a>. +<p> +<div class="fragment"><pre>00234 { +00235 _BitSet&= ~(1<<valueId); +00236 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1057_0" doxytag="NL3D::CMeshInstance::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::CTransformShape::clip </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +clip method called by <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_1">traverseClip()</a>. deafult is always visible +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CTransformz1017_0">NL3D::CTransform</a>. +<p> +Reimplemented in <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz627_0">NL3D::CParticleSystemModel</a>, and <a class="el" href="a03721.html#NL3D_1_1CWaterModelz1176_0">NL3D::CWaterModel</a>. +<p> +Definition at line <a class="el" href="a06570.html#l00141">141</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a06583.html#l00079">NL3D::CTravCameraScene::CamPos</a>, <a class="el" href="a05556.html#l00161">NL3D::CClipTrav::ForceNoFrustumClip</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06571.html#l00135">NL3D::CTransformShape::getDistMax()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>, and <a class="el" href="a05556.html#l00149">NL3D::CClipTrav::WorldPyramid</a>. +<p> +<div class="fragment"><pre>00142 { +00143 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_TrShape_Clip ); +00144 +00145 CClipTrav &clipTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getClipTrav(); +00146 +00147 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>) +00148 { +00149 <span class="comment">// first test DistMax (faster).</span> +00150 <span class="keywordtype">float</span> maxDist = <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModela10">getDistMax</a>(); +00151 <span class="comment">// if DistMax test enabled</span> +00152 <span class="keywordflow">if</span>(maxDist!=-1) +00153 { +00154 <span class="comment">// Calc the distance</span> +00155 <span class="keywordtype">float</span> sqrDist = (clipTrav.CamPos - <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().getPos()).sqrnorm (); +00156 maxDist*=maxDist; +00157 +00158 <span class="comment">// if dist > maxDist, skip</span> +00159 <span class="keywordflow">if</span> (sqrDist > maxDist) +00160 { +00161 <span class="comment">// Ok, not shown</span> +00162 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00163 } +00164 } +00165 +00166 <span class="comment">// Else finer clip with pyramid, only if needed</span> +00167 <span class="keywordflow">if</span>(clipTrav.ForceNoFrustumClip) +00168 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00169 <span class="keywordflow">else</span> +00170 <span class="keywordflow">return</span> <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>->clip(clipTrav.WorldPyramid, <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>()); +00171 } +00172 <span class="keywordflow">else</span> +00173 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00174 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_0" doxytag="NL3D::CMeshInstance::clipAddChild" ></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::CTransform::clipAddChild </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>son</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> + +<p> +Definition at line <a class="el" href="a06568.html#l01217">1217</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00712">NL3D::CTransform::_ClipParents</a>, <a class="el" href="a06569.html#l00711">NL3D::CTransform::_ClipSons</a>, <a class="el" href="a06568.html#l01273">NL3D::CTransform::clipHasParent()</a>, <a class="el" href="a06569.html#l00708">NL3D::CTransform::CClipNode::ClipNode</a>, <a class="el" href="a05705.html#l00128">NL3D::CFastPtrList< CTransform >::insert()</a>, and <a class="el" href="a06569.html#l00709">NL3D::CTransform::CClipNode::Parent</a>. +<p> +Referenced by <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a05870.html#l00075">NL3D::CLandscapeModel::initModel()</a>, <a class="el" href="a06348.html#l00277">NL3D::CScene::initQuadGridClipManager()</a>, <a class="el" href="a06302.html#l00086">NL3D::CQuadGridClipClusterListDist::resetSons()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>. +<p> +<div class="fragment"><pre>01218 { +01219 <span class="keywordflow">if</span>(!son) +01220 <span class="keywordflow">return</span>; +01221 +01222 <span class="comment">// if already linked, no-op.</span> +01223 <span class="keywordflow">if</span>(son->clipHasParent(<span class="keyword">this</span>)) +01224 <span class="keywordflow">return</span>; +01225 +01226 <span class="comment">// add a new parent entry for our son.</span> +01227 CClipNode *clipNode= <span class="keyword">new</span> CClipNode; +01228 son->_ClipParents.push_back(clipNode); +01229 +01230 <span class="comment">// link the son to us</span> +01231 clipNode->Parent= <span class="keyword">this</span>; +01232 +01233 <span class="comment">// link us to the son </span> +01234 _ClipSons.insert(son, &clipNode->ClipNode); +01235 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_1" doxytag="NL3D::CMeshInstance::clipDelChild" ></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::CTransform::clipDelChild </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>son</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> + +<p> +Definition at line <a class="el" href="a06568.html#l01238">1238</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06568.html#l01286">NL3D::CTransform::clipDelFromParent()</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00249">NL3D::CScene::initDefaultRoots()</a>, <a class="el" href="a05870.html#l00075">NL3D::CLandscapeModel::initModel()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>01239 { +01240 <span class="keywordflow">if</span>(!son) +01241 <span class="keywordflow">return</span>; +01242 +01243 <span class="comment">// try to remove from me from my parent</span> +01244 son->clipDelFromParent(<span class="keyword">this</span>); +01245 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_2" doxytag="NL3D::CMeshInstance::clipGetChild" ></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="a02316.html">CTransform</a> * NL3D::CTransform::clipGetChild </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>index</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [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="a06568.html#l01265">1265</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00711">NL3D::CTransform::_ClipSons</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05705.html#l00135">NL3D::CFastPtrList< CTransform >::size()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06341.html#l00052">NL3D::CRootModel::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>01266 { +01267 <a class="code" href="a04199.html#a6">nlassert</a>(index < _ClipSons.size()); +01268 <span class="keywordflow">return</span> (const_cast<CTransform*>(<span class="keyword">this</span>))->_ClipSons.begin()[<a class="code" href="a04223.html#a566">index</a>]; +01269 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_3" doxytag="NL3D::CMeshInstance::clipGetNumChildren" ></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::CTransform::clipGetNumChildren </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="a06569.html#l00237">237</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00711">NL3D::CTransform::_ClipSons</a>, <a class="el" href="a05705.html#l00135">NL3D::CFastPtrList< CTransform >::size()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06341.html#l00052">NL3D::CRootModel::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>00237 {<span class="keywordflow">return</span> _ClipSons.size();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_4" doxytag="NL3D::CMeshInstance::clipGetNumParents" ></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::CTransform::clipGetNumParents </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="a06569.html#l00234">234</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00712">NL3D::CTransform::_ClipParents</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06568.html#l01248">NL3D::CTransform::clipUnlinkFromAll()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>. +<p> +<div class="fragment"><pre>00234 {<span class="keywordflow">return</span> _ClipParents.size();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_5" doxytag="NL3D::CMeshInstance::clipGetParent" ></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="a02316.html">CTransform</a> * NL3D::CTransform::clipGetParent </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>index</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [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="a06568.html#l01258">1258</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00712">NL3D::CTransform::_ClipParents</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06568.html#l01248">NL3D::CTransform::clipUnlinkFromAll()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>. +<p> +<div class="fragment"><pre>01259 { +01260 <a class="code" href="a04199.html#a6">nlassert</a>(index < _ClipParents.size()); +01261 <span class="keywordflow">return</span> _ClipParents[<a class="code" href="a04223.html#a566">index</a>]->Parent; +01262 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1021_6" doxytag="NL3D::CMeshInstance::clipUnlinkFromAll" ></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::CTransform::clipUnlinkFromAll </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> [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="a06568.html#l01248">1248</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06568.html#l01286">NL3D::CTransform::clipDelFromParent()</a>, <a class="el" href="a06569.html#l00234">NL3D::CTransform::clipGetNumParents()</a>, and <a class="el" href="a06568.html#l01258">NL3D::CTransform::clipGetParent()</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a06348.html#l00277">NL3D::CScene::initQuadGridClipManager()</a>, <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>01249 { +01250 <span class="comment">// unlink from all parent clip</span> +01251 <span class="keywordflow">while</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_4">clipGetNumParents</a>() ) +01252 { +01253 <a class="code" href="a02316.html#NL3D_1_1CTransformz1037_0">clipDelFromParent</a>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_5">clipGetParent</a>(0) ); +01254 } +01255 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablea0" doxytag="NL3D::CMeshInstance::compareMatrixDate" ></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::ITransformable::compareMatrixDate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a> </td> + <td class="mdname1" valign="top" nowrap> <em>callerDate</em> </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> +Tells if the LocalMatrix is newer than what caller except. This return true either if the matrix components (pos/rot etc...) are touched, or if matrix is newer than caller date. +<p> +Definition at line <a class="el" href="a06575.html#l00082">82</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a06575.html#l00334">NL3D::ITransformable::needCompute()</a>, and <a class="el" href="a05981.html#l00102">uint64</a>. +<p> +Referenced by <a class="el" href="a06737.html#l01339">NL3D::CWaterModel::updateDiffuseMapMatrix()</a>. +<p> +<div class="fragment"><pre>00083 { +00084 <span class="keywordflow">return</span> callerDate<_LocalMatrixDate || <a class="code" href="a02278.html#NL3D_1_1ITransformabled1">needCompute</a>(); +00085 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez465_0" doxytag="NL3D::CMeshInstance::computeWorldBBoxForShadow" ></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::CMeshInstance::computeWorldBBoxForShadow </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>worldBB</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Special For Skeleton Caster. When Skeletons cast shadows, they first compute the WorldBBox. The model should compute its bbox in World (best fit). <dl compact><dt><b>Returns:</b></dt><dd>false if the model don't support it (default), or if hidden in HRC!!</dd></dl> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_2">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00352">352</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06569.html#l00306">NL3D::CTransform::isHrcVisible()</a>, and <a class="el" href="a05384.html#l00262">NLMISC::CAABBox::transformAABBox()</a>. +<p> +<div class="fragment"><pre>00353 { +00354 <span class="comment">// If even not visible or empty, no-op</span> +00355 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela29">isHrcVisible</a>() || !<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>) +00356 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00357 +00358 <span class="comment">// get the shape bbox</span> +00359 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>->getAABBox(worldBB); +00360 <span class="comment">// transform into world</span> +00361 worldBB= CAABBox::transformAABBox(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>(), worldBB); +00362 +00363 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00364 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstanceb3" doxytag="NL3D::CMeshInstance::createShadowMap" ></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::CMeshInstance::createShadowMap </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> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +To implement for ShadowCaster support. typically allocate a <a class="el" href="a03370.html">CShadowMap</a> and store NB: the texture doesn't have to be inited at this time. Update it each frame in <a class="el" href="a02888.html#NL3D_1_1CMeshInstancez465_1">generateShadowMap()</a> +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_0">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00254">254</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06002.html#l00121">_ShadowGeom</a>, <a class="el" href="a06002.html#l00112">_ShadowMap</a>, <a class="el" href="a06002.html#l00119">NL3D::CMeshInstance::CShadowGeom::CasterTriangles</a>, <a class="el" href="a06002.html#l00117">NL3D::CMeshInstance::CShadowGeom::CasterVBuffer</a>, <a class="el" href="a05989.html#l02437">NL3D::CMesh::getNbMatrixBlock()</a>, <a class="el" href="a05989.html#l02442">NL3D::CMesh::getNbRdrPass()</a>, <a class="el" href="a06198.html#l00108">NL3D::CPrimitiveBlock::getNumTri()</a>, <a class="el" href="a06711.html#l00453">NL3D::CVertexBuffer::getNumVertices()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05989.html#l02447">NL3D::CMesh::getRdrPassPrimitiveBlock()</a>, <a class="el" href="a06197.html#l00091">NL3D::CPrimitiveBlock::getTriPointer()</a>, <a class="el" href="a05989.html#l02432">NL3D::CMesh::getVertexBuffer()</a>, <a class="el" href="a06710.html#l00438">NL3D::CVertexBuffer::getVertexCoordPointer()</a>, <a class="el" href="a06710.html#l00409">NL3D::CVertexBuffer::setNumVertices()</a>, <a class="el" href="a06711.html#l00524">NL3D::CVertexBuffer::setVertexCoord()</a>, <a class="el" href="a06710.html#l00169">NL3D::CVertexBuffer::setVertexFormat()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00255 { +00256 <span class="comment">// create the shadowMap</span> +00257 <span class="keywordflow">if</span>(!<a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>) +00258 { +00259 <a class="code" href="a04558.html#a15">uint</a> i; +00260 +00261 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>= <span class="keyword">new</span> CShadowMap(&<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getRenderTrav().getShadowMapManager()); +00262 +00263 <span class="comment">// Init the shadowGeom.</span> +00264 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>= <span class="keyword">new</span> CShadowGeom; +00265 +00266 <span class="comment">// create a VBuffer with only Position Data</span> +00267 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a> *mesh= safe_cast<CMesh*>((IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00268 <span class="keyword">const</span> CVertexBuffer &vbSrc= mesh->getVertexBuffer(); +00269 <span class="comment">// init</span> +00270 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo1">CasterVBuffer</a>.setVertexFormat(CVertexBuffer::PositionFlag); +00271 <a class="code" href="a04558.html#a15">uint</a> numVerts= vbSrc.getNumVertices(); +00272 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo1">CasterVBuffer</a>.setNumVertices(numVerts); +00273 <span class="comment">// fill</span> +00274 <span class="keywordflow">for</span>(i=0;i<numVerts;i++) +00275 { +00276 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo1">CasterVBuffer</a>.setVertexCoord(i, *(CVector*)vbSrc.getVertexCoordPointer(i)); +00277 } +00278 +00279 <span class="comment">// TODO: OPTIM : VBHard</span> +00280 <span class="comment">/* TODO: OPTIM : must store the shadow Geometry in the mesh and not in the instance (in shadowMap)!</span> +00281 <span class="comment"> Not very interesting to optimize because casters will be only skeletons </span> +00282 <span class="comment"> (even the items like swords won't be rendered in CMeshInstance since sticked to a skeleton)</span> +00283 <span class="comment"> */</span> +00284 +00285 <span class="comment">// Copy All triangles in the PB cache.</span> +00286 <a class="code" href="a04558.html#a15">uint</a> nbMB= mesh->getNbMatrixBlock(); +00287 <span class="comment">// count tris</span> +00288 <a class="code" href="a04558.html#a15">uint</a> numTris= 0; +00289 <span class="keywordflow">for</span>(i=0;i<nbMB;i++) +00290 { +00291 <a class="code" href="a04558.html#a15">uint</a> nbRP= mesh->getNbRdrPass(i); +00292 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> j=0;j<nbRP;j++) +00293 { +00294 numTris+= mesh->getRdrPassPrimitiveBlock(i, j).getNumTri(); +00295 } +00296 } +00297 <span class="keywordflow">if</span>(numTris) +00298 { +00299 <span class="comment">// allocate</span> +00300 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo0">CasterTriangles</a>.resize(numTris*3); +00301 <span class="comment">// Copy.</span> +00302 <a class="code" href="a04558.html#a11">uint32</a> *triPtr= &<a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo0">CasterTriangles</a>[0]; +00303 <span class="keywordflow">for</span>(i=0;i<nbMB;i++) +00304 { +00305 <a class="code" href="a04558.html#a15">uint</a> nbRP= mesh->getNbRdrPass(i); +00306 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> j=0;j<nbRP;j++) +00307 { +00308 <a class="code" href="a04558.html#a15">uint</a> passNummTri= mesh->getRdrPassPrimitiveBlock(i, j).getNumTri(); +00309 memcpy(triPtr, mesh->getRdrPassPrimitiveBlock(i, j).getTriPointer(), passNummTri*3*<span class="keyword">sizeof</span>(<a class="code" href="a04558.html#a11">uint32</a>)); +00310 triPtr+= passNummTri*3; +00311 } +00312 } +00313 } +00314 } +00315 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstanceh0" doxytag="NL3D::CMeshInstance::creator" ></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="a02316.html">CTransform</a>* NL3D::CMeshInstance::creator </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, static, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02873.html#NL3D_1_1CMeshBaseInstanceh0">NL3D::CMeshBaseInstance</a>. +<p> +Definition at line <a class="el" href="a06002.html#l00108">108</a> of file <a class="el" href="a06002.html">mesh_instance.h</a>. +<p> +<div class="fragment"><pre>00108 {<span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a02888.html#NL3D_1_1CMeshInstanceb2">CMeshInstance</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstanceb4" doxytag="NL3D::CMeshInstance::deleteShadowMap" ></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::CMeshInstance::deleteShadowMap </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> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +To implement for ShadowCaster support. typically free the shadowMap. +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_1">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00240">240</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06002.html#l00121">_ShadowGeom</a>, <a class="el" href="a06002.html#l00112">_ShadowMap</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a06001.html#l00056">~CMeshInstance()</a>. +<p> +<div class="fragment"><pre>00241 { +00242 <span class="keywordflow">if</span>(<a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>) +00243 { +00244 <a class="code" href="a04199.html#a6">nlassert</a>(_ShadowGeom); +00245 <span class="keyword">delete</span> <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>; +00246 <span class="keyword">delete</span> <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>; +00247 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>= NULL; +00248 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>= NULL; +00249 } +00250 <a class="code" href="a04199.html#a6">nlassert</a>(_ShadowGeom==NULL && _ShadowMap==NULL); +00251 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_0" doxytag="NL3D::CMeshInstance::enableAsyncTextureMode" ></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::CMeshBaseInstance::enableAsyncTextureMode </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>enable</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> +if true, the instance is said in "AsyncTextureMode". Ie user must fill AsyncTextures field with name of the textures to load. At each <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_8">startAsyncTextureLoading()</a>, the system start to load async them. Then, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_5">isAsyncTextureReady()</a> should be test each frame, to know if loading has completed. By default, AsyncTextureMode=false. When it swap from false to true, each texture file in Materials are replaced with "blank.tga", and true fileNames are copied into AsyncTextures. When it swap from true to false, the inverse is applied. NB: calling enableAsyncTextureMode(true) calls setAsyncTextureDirty(true) +<p> +Definition at line <a class="el" href="a05993.html#l00375">375</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00239">NL3D::CMeshBaseInstance::_AsyncTextureMode</a>, <a class="el" href="a05994.html#l00240">NL3D::CMeshBaseInstance::_AsyncTextureReady</a>, <a class="el" href="a05994.html#l00237">NL3D::CMeshBaseInstance::_AsyncTextureToLoadRefCount</a>, <a class="el" href="a05994.html#l00242">NL3D::CMeshBaseInstance::_CurrentAsyncTextures</a>, <a class="el" href="a05994.html#l00082">NL3D::CMeshBaseInstance::AsyncTextures</a>, <a class="el" href="a06522.html#l00089">NL3D::CTextureFile::getFileName()</a>, <a class="el" href="a05969.html#l00047">NL3D::IDRV_MAT_MAXTEXTURES</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05993.html#l00486">NL3D::CMeshBaseInstance::releaseCurrentAsyncTextures()</a>, <a class="el" href="a05994.html#l00185">NL3D::CMeshBaseInstance::setAsyncTextureDirty()</a>, <a class="el" href="a06522.html#l00080">NL3D::CTextureFile::setFileName()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00131">NL3D::CInstanceUser::enableAsyncTextureMode()</a>, and <a class="el" href="a05993.html#l00059">NL3D::CMeshBaseInstance::~CMeshBaseInstance()</a>. +<p> +<div class="fragment"><pre>00376 { +00377 <span class="comment">// if same, no-op.</span> +00378 <span class="keywordflow">if</span>(_AsyncTextureMode==enable) +00379 <span class="keywordflow">return</span>; +00380 _AsyncTextureMode= enable; +00381 +00382 <span class="comment">// if comes to async texture mode, must prepare AsyncTexturing</span> +00383 <span class="keywordflow">if</span>(_AsyncTextureMode) +00384 { +00385 _AsyncTextureReady= <span class="keyword">true</span>; +00386 +00387 <span class="comment">// For all TextureFiles in material</span> +00388 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>.size();i++) +00389 { +00390 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> stage=0;stage<<a class="code" href="a05363.html#a83">IDRV_MAT_MAXTEXTURES</a>;stage++) +00391 { +00392 <span class="comment">// test if really a CTextureFile</span> +00393 CTextureFile *text= dynamic_cast<CTextureFile*>(<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[i].getTexture(stage)); +00394 <span class="keywordflow">if</span>(text) +00395 { +00396 <span class="comment">// Must setup the AsyncTextures</span> +00397 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[i].IsTextureFile[stage]= <span class="keyword">true</span>; +00398 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[i].TextureNames[stage]= text->getFileName(); +00399 <span class="comment">// Now, must copy the textureFile, to Avoid writing in CMeshBase TextureFile descriptor !!!</span> +00400 CTextureFile *tf = <span class="keyword">new</span> CTextureFile(*text); +00401 <span class="comment">// setup a dummy texture => Instance won't block rendering because texture not yet ready</span> +00402 tf->setFileName(<span class="stringliteral">"blank.tga"</span>); +00403 Materials[i].setTexture(stage, tf); +00404 } +00405 <span class="keywordflow">else</span> +00406 { +00407 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[i].IsTextureFile[stage]= <span class="keyword">false</span>; +00408 } +00409 } +00410 } +00411 +00412 <span class="comment">// For convenience, flag the instance as Dirty.</span> +00413 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_6">setAsyncTextureDirty</a>(<span class="keyword">true</span>); +00414 } +00415 <span class="comment">// else, AsyncTextureMode disabled</span> +00416 <span class="keywordflow">else</span> +00417 { +00418 <span class="comment">// first, must stop and release all textures in the async manager.</span> +00419 <a class="code" href="a02873.html#NL3D_1_1CMeshBaseInstancez451_0">releaseCurrentAsyncTextures</a>(); +00420 <a class="code" href="a04199.html#a6">nlassert</a>(_AsyncTextureToLoadRefCount==0); +00421 <span class="comment">// clear the array => ensure good work if enableAsyncTextureMode(true) is made later</span> +00422 <a class="code" href="a05378.html#a381">contReset</a>(_CurrentAsyncTextures); +00423 +00424 <span class="comment">// For all TextureFiles in material, copy User setup from AsyncTextures, to real fileName</span> +00425 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>.size();i++) +00426 { +00427 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> stage=0;stage<<a class="code" href="a05363.html#a83">IDRV_MAT_MAXTEXTURES</a>;stage++) +00428 { +00429 <span class="comment">// if an async texture file</span> +00430 <span class="keywordflow">if</span>(<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[i].IsTextureFile[stage]) +00431 { +00432 <span class="comment">// copy the texture name into the texture file.</span> +00433 CTextureFile *text= safe_cast<CTextureFile*>(<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[i].getTexture(stage)); +00434 text->setFileName(AsyncTextures[i].TextureNames[stage]); +00435 <span class="comment">// clear string space</span> +00436 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[i].TextureNames[stage].clear(); +00437 } +00438 } +00439 } +00440 } +00441 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_3" doxytag="NL3D::CMeshInstance::enableCastShadowMap" ></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::CTransform::enableCastShadowMap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>state</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> +By default, map shadow casting is disabled. This enabled shadow for this model. Fails if the model don't support dynamic Map Shadow Casting (eg landscape) Dervier note: <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_0">createShadowMap()</a> and <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1051_1">deleteShadowMap()</a> is called here. +<p> +Definition at line <a class="el" href="a06568.html#l01335">1335</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00470">NL3D::CTransform::canCastShadowMap()</a>, <a class="el" href="a06569.html#l00902">NL3D::CTransform::createShadowMap()</a>, <a class="el" href="a06569.html#l00904">NL3D::CTransform::deleteShadowMap()</a>, <a class="el" href="a06569.html#l00495">NL3D::CTransform::getShadowMap()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy10">NL3D::CTransform::IsFinalShadowMapCaster</a>, <a class="el" href="a06569.html#l00480">NL3D::CTransform::modelCanCastShadowMap()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>01336 { +01337 <span class="keywordtype">bool</span> precState= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>(); +01338 +01339 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_10">modelCanCastShadowMap</a>()) +01340 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalShadowMapCaster, state); +01341 <span class="keywordflow">else</span> +01342 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalShadowMapCaster, <span class="keyword">false</span>); +01343 +01344 <span class="comment">// if just enabled, create the shadowMap</span> +01345 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>() && !precState) +01346 { +01347 <a class="code" href="a02888.html#NL3D_1_1CMeshInstanceb3">createShadowMap</a>(); +01348 <span class="comment">// The user must have created it.</span> +01349 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02888.html#NL3D_1_1CMeshInstancez465_2">getShadowMap</a>()); +01350 } +01351 <span class="comment">// if just disabled, free ressource</span> +01352 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>() && precState) +01353 { +01354 <a class="code" href="a02888.html#NL3D_1_1CMeshInstanceb4">deleteShadowMap</a>(); +01355 } +01356 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_4" doxytag="NL3D::CMeshInstance::enableReceiveShadowMap" ></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::CTransform::enableReceiveShadowMap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>state</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +By default, map shadow receiving is disabled. This enabled shadow for this model. Fails if the model don't support dynamic Map Shadow Receiving (eg Particle system) +<p> +Definition at line <a class="el" href="a06569.html#l00475">475</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy11">NL3D::CTransform::IsFinalShadowMapReceiver</a>, <a class="el" href="a06569.html#l00482">NL3D::CTransform::modelCanReceiveShadowMap()</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a05874.html#l00548">NL3D::CLandscapeUser::enableReceiveShadowMap()</a>. +<p> +<div class="fragment"><pre>00475 {<span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_11">modelCanReceiveShadowMap</a>()) <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalShadowMapReceiver, state);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelb2" doxytag="NL3D::CMeshInstance::forceCompute" ></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::CTransform::forceCompute </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> [protected, 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="a06568.html#l01359">1359</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00618">NL3D::CTransform::_FatherBoneId</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. +<p> +Referenced by <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>. +<p> +<div class="fragment"><pre>01360 { +01361 <span class="comment">// if father is a skeleton, force to compute the bone we are sticked to</span> +01362 <span class="keywordflow">if</span> (<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>) +01363 { +01364 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->forceComputeBone(_FatherBoneId); +01365 } +01366 <span class="keywordflow">else</span> +01367 { +01368 <span class="comment">// force to compûte the father</span> +01369 <span class="keywordflow">if</span> (_HrcParent) +01370 { +01371 _HrcParent->forceCompute(); +01372 } +01373 } +01374 <span class="comment">// compute</span> +01375 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_4">update</a>(); +01376 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1047_1">updateWorldMatrixFromFather</a>(); +01377 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela3" doxytag="NL3D::CMeshInstance::freeze" ></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::CTransform::freeze </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +freeze the preceding position of the model. Do not use, special code for cluster. This inform the scene that preceding position setuped by user is "frozen". ie at next render(), this object won't be added to the "object moving list" (usefull for cluster mgt). The "frozen" state is disabled (at render() time) if:<ul> +<li>change in position (directly or indireclty, such as animation) is performed after the <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela3">freeze()</a>.</li><li>the "frozen" state of a father is not enabled (or disabled by a change in position of him :) ).</li></ul> + +<p> +Definition at line <a class="el" href="a06568.html#l00367">367</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00847">NL3D::CTransform::_Frozen</a>, and <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, and <a class="el" href="a06348.html#l00249">NL3D::CScene::initDefaultRoots()</a>. +<p> +<div class="fragment"><pre>00368 { +00369 <span class="comment">// First, update the model</span> +00370 <span class="comment">// _Frozen state is disabled here (in CTransform::update()).</span> +00371 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_4">update</a>(); +00372 +00373 <span class="comment">// Then flag the frozen state.</span> +00374 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a>= <span class="keyword">true</span>; +00375 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela4" doxytag="NL3D::CMeshInstance::freezeHRC" ></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::CTransform::freezeHRC </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +freeze the HRC so the WorldMatrix computed at next render() will be kept for long, and the model won't either be tested in HRC (which is still expensive, even if the worldmatrix doesn't need to be recomputed). The model won't either be validated. It is suposed to not change at all. Also, if it is not a son of a <a class="el" href="a02362.html">CCluster</a>, it may be accelerated during Cliping (with <a class="el" href="a03287.html">CQuadGridClipManager</a>).<p> +NB: the model won't be tested in HRC anymore. calling <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">freezeHRC()</a> on a model in a hierarchy without calling it to the root of the hierarchy will result in that the model won't be validated nor be HRC traversed. To be simplier, you should <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">freezeHRC()</a> all the models of a hierarchy, from base root to leaves.<p> +NB: if the hierarchy of this object must change, or if the object must moves, you must call <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela49">unfreezeHRC()</a> first, and you should do this for all the parents of this model. +<p> +Definition at line <a class="el" href="a06568.html#l00385">385</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00741">NL3D::CTransform::_FreezeHRCState</a>, <a class="el" href="a06569.html#l00847">NL3D::CTransform::_Frozen</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformy29NL3D_1_1CTransformy1">NL3D::CTransform::FreezeHRCStateDisabled</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformy29NL3D_1_1CTransformy4">NL3D::CTransform::FreezeHRCStateRequest</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy28">NL3D::CTransform::QuadGridClipEnabled</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a06350.html#l01132">NL3D::CInstanceGroup::freezeHRC()</a>. +<p> +<div class="fragment"><pre>00386 { +00387 <span class="comment">// if disabled, say we are ready to validate our worldMatrix for long.</span> +00388 <span class="keywordflow">if</span>(_FreezeHRCState==FreezeHRCStateDisabled) +00389 { +00390 _FreezeHRCState= FreezeHRCStateRequest; +00391 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(QuadGridClipEnabled, <span class="keyword">true</span>); +00392 +00393 <span class="comment">/* If the transform is not frozen (ie staticaly inserted in a cluster),</span> +00394 <span class="comment"> We must be sure it will be tested against QuadGridClipManager at next ClipTrav pass.</span> +00395 <span class="comment"> => must make this object a "moving object" at next render=> dirt _LocalMatrixDate.</span> +00396 <span class="comment"> */</span> +00397 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a>) +00398 { +00399 _TransformDirty= <span class="keyword">true</span>; +00400 } +00401 } +00402 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_0" doxytag="NL3D::CMeshInstance::freezeStaticLightSetup" ></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::CTransform::freezeStaticLightSetup </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03091.html">CPointLight</a> * </td> + <td class="mdname" nowrap> <em>pointLight</em>[NL3D_MAX_LIGHT_CONTRIBUTION], </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>numPointLights</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a> </td> + <td class="mdname" nowrap> <em>sunContribution</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03091.html">CPointLight</a> * </td> + <td class="mdname" nowrap> <em>frozenAmbientlight</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Freeze and set the Static Light Setup. Called by <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa1">CInstanceGroup::addToScene()</a> NB: it calls <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting()</a> first. NB: nlassert(numPointLights<=NL3D_MAX_LIGHT_CONTRIBUTION) +<p> +Definition at line <a class="el" href="a06568.html#l01028">1028</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a05894.html#l00071">NL3D::CLightContribution::Factor</a>, <a class="el" href="a05894.html#l00093">NL3D::CLightContribution::FrozenAmbientLight</a>, <a class="el" href="a05894.html#l00079">NL3D::CLightContribution::FrozenStaticLightSetup</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy17">NL3D::CTransform::IsNeedUpdateFrozenStaticLightSetup</a>, <a class="el" href="a05894.html#l00042">NL3D_MAX_LIGHT_CONTRIBUTION</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05894.html#l00084">NL3D::CLightContribution::NumFrozenStaticLight</a>, <a class="el" href="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, <a class="el" href="a05894.html#l00086">NL3D::CLightContribution::SunContribution</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>01030 { +01031 <a class="code" href="a04199.html#a6">nlassert</a>(numPointLights <= NL3D_MAX_LIGHT_CONTRIBUTION); +01032 +01033 <span class="comment">// resetLighting() first.</span> +01034 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting</a>(); +01035 +01036 <span class="comment">// Enable StaticLightSetup.</span> +01037 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenStaticLightSetup= <span class="keyword">true</span>; +01038 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.NumFrozenStaticLight= numPointLights; +01039 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.SunContribution= sunContribution; +01040 <span class="comment">// setup the FrozenAmbientLight</span> +01041 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenAmbientLight= frozenAmbientlight; +01042 <span class="comment">// Setup other pointLights</span> +01043 <a class="code" href="a04558.html#a15">uint</a> i; +01044 <span class="keywordflow">for</span>(i=0;i<numPointLights;i++) +01045 { +01046 <span class="comment">// set the light</span> +01047 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[i]= pointLight[i]; +01048 <span class="comment">// Enable at max.</span> +01049 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.Factor[i]= 255; +01050 <span class="comment">// Compute static AttFactor Later because don't have WorlPosition of the model here!!</span> +01051 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsNeedUpdateFrozenStaticLightSetup, <span class="keyword">true</span>); +01052 +01053 <span class="comment">// Do NOT set the iterator, because it is a staticLight.</span> +01054 } +01055 <span class="comment">// End the list</span> +01056 <span class="keywordflow">if</span>(i<<a class="code" href="a04471.html#a0">NL3D_MAX_LIGHT_CONTRIBUTION</a>) +01057 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[i]= NULL; +01058 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez465_1" doxytag="NL3D::CMeshInstance::generateShadowMap" ></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::CMeshInstance::generateShadowMap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>lightDir</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For Casters. Display the Shadow to the "Auxiliary Driver". This method should only write to AlphaBuffer (since RGB may be the current rendered scene!), with Alpha==1 when pixel is shadowed. The ShadowMapManager has already cleared the AlphaBuffer to black, and has already enabled alpha write only. The ShadowMapManager has already setuped Viewport/Scissor as its convenience. The extra blurring is a work of the ShadowMapManager (which blurs multiple shadows in a same pass) NB: you can overwrite the current driver frustum/ViewMatrix/modelMatrix without backuping it (ShadowMapManager work) +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_5">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00166">166</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06002.html#l00121">_ShadowGeom</a>, <a class="el" href="a06002.html#l00112">_ShadowMap</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera2">NL3D::IDriver::activeVertexBuffer()</a>, <a class="el" href="a06370.html#l00135">NL3D::CShadowMap::buildCasterCameraMatrix()</a>, <a class="el" href="a06370.html#l00167">NL3D::CShadowMap::buildProjectionInfos()</a>, <a class="el" href="a06002.html#l00119">NL3D::CMeshInstance::CShadowGeom::CasterTriangles</a>, <a class="el" href="a06002.html#l00117">NL3D::CMeshInstance::CShadowGeom::CasterVBuffer</a>, <a class="el" href="a06330.html#l00135">NL3D::CRenderTrav::getAuxDriver()</a>, <a class="el" href="a06373.html#l00099">NL3D::CShadowMapManager::getCasterShadowMaterial()</a>, <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a05385.html#l00091">NLMISC::CAABBox::getHalfSize()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06330.html#l00185">NL3D::CRenderTrav::getShadowMapManager()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05972.html#l01090">NLMISC::CMatrix::inverted()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06682.html#l00119">NLMISC::CVector::normalize()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera56">NL3D::IDriver::renderTriangles()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera60">NL3D::IDriver::setFrustum()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera68">NL3D::IDriver::setupModelMatrix()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera72">NL3D::IDriver::setupViewMatrix()</a>, <a class="el" href="a06001.html#l00319">updateShadowMap()</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +<div class="fragment"><pre>00167 { +00168 <span class="comment">// get the driver for Texture Render</span> +00169 CScene *scene= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>(); +00170 CRenderTrav &renderTrav= scene->getRenderTrav(); +00171 IDriver *driver= renderTrav.getAuxDriver(); +00172 +00173 <span class="keywordflow">if</span>(!<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>) +00174 <span class="keywordflow">return</span>; +00175 +00176 <span class="comment">// update ShadowMap data if needed.</span> +00177 <span class="comment">// ****</span> +00178 <a class="code" href="a02888.html#NL3D_1_1CMeshInstanced0">updateShadowMap</a>(driver); +00179 +00180 <span class="keywordflow">if</span>(<a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>) +00181 { +00182 <a class="code" href="a04199.html#a6">nlassert</a>(_ShadowGeom); +00183 } +00184 <span class="keywordflow">if</span>(!<a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a> || <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo0">CasterTriangles</a>.empty()) +00185 <span class="keywordflow">return</span>; +00186 +00187 <span class="comment">// compute the ProjectionMatrix.</span> +00188 <span class="comment">// ****</span> +00189 +00190 <span class="comment">// get the BBox and localPosMatrix</span> +00191 CAABBox bbShape; +00192 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>->getAABBox(bbShape); +00193 CMatrix localPosMatrix= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>(); +00194 localPosMatrix.setPos(CVector::Null); +00195 +00196 <span class="comment">// setup cameraMatrix with BBox and Enlarge For 1 pixel</span> +00197 CMatrix cameraMatrix; +00198 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>->buildCasterCameraMatrix(lightDir, localPosMatrix, bbShape, cameraMatrix); +00199 +00200 +00201 <span class="comment">// Render.</span> +00202 <span class="comment">// ****</span> +00203 <span class="comment">// setup the orhtogonal frustum and viewMatrix to include all the object.</span> +00204 driver->setFrustum(0,1,0,1,0,1,<span class="keyword">false</span>); +00205 driver->setupViewMatrix(cameraMatrix.inverted()); +00206 driver->setupModelMatrix(localPosMatrix); +00207 +00208 <span class="comment">// render the Cached VB/Primtives</span> +00209 driver->activeVertexBuffer(<a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo1">CasterVBuffer</a>); +00210 CMaterial &castMat= renderTrav.getShadowMapManager().getCasterShadowMaterial(); +00211 driver->renderTriangles(castMat, &<a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo0">CasterTriangles</a>[0], <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer0">_ShadowGeom</a>-><a class="code" href="a02889.html#NL3D_1_1CMeshInstance_1_1CShadowGeomo0">CasterTriangles</a>.size()/3); +00212 +00213 <span class="comment">// Infos.</span> +00214 <span class="comment">// ****</span> +00215 +00216 <span class="comment">// Compute the BackPoint: the first point to be shadowed. </span> +00217 CVector backPoint= bbShape.getCenter(); +00218 <span class="comment">// get the 3/4 bottom of the shape</span> +00219 backPoint.z-= bbShape.getHalfSize().z/2; +00220 backPoint= localPosMatrix * backPoint; +00221 <span class="comment">// Use the 3/4 bottom of the BBox minus the light direction in XY. NB: little hack: </span> +00222 <span class="comment">// suppose no Rotate (but Z) and no scale</span> +00223 CVector ldir= lightDir; +00224 ldir.z= 0; +00225 ldir.normalize(); +00226 <span class="keywordtype">float</span> lenXY= (CVector(bbShape.getHalfSize().x, bbShape.getHalfSize().y, 0)).norm(); +00227 backPoint-= ldir*lenXY; +00228 +00229 <span class="comment">// Compute LocalProjectionMatrix and other infos from cameraMatrix and backPoint?</span> +00230 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>->buildProjectionInfos(cameraMatrix, backPoint, scene); +00231 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela5" doxytag="NL3D::CMeshInstance::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::CTransformShape::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, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the untransformed AABBox of the mesh. NULL (gtSize()==0) if no mesh. +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModela3">NL3D::CTransform</a>. +<p> +Reimplemented in <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModela7">NL3D::CParticleSystemModel</a>. +<p> +Definition at line <a class="el" href="a06570.html#l00083">83</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00066">NLMISC::CAABBox::setCenter()</a>, <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>, and <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>. +<p> +Referenced by <a class="el" href="a06570.html#l00316">NL3D::CTransformShape::getLightHotSpotInWorld()</a>, <a class="el" href="a05828.html#l00064">NL3D::CInstanceUser::getShapeAABBox()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, and <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>. +<p> +<div class="fragment"><pre>00084 { +00085 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>) +00086 { +00087 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>->getAABBox(bbox); +00088 } +00089 <span class="keywordflow">else</span> +00090 { +00091 bbox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(CVector::Null); +00092 bbox.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">setHalfSize</a>(CVector::Null); +00093 } +00094 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela6" doxytag="NL3D::CMeshInstance::getAncestorSkeletonModel" ></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="a03399.html">CSkeletonModel</a>* NL3D::CTransform::getAncestorSkeletonModel </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="a06569.html#l00207">207</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>. +<p> +Referenced by <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>. +<p> +<div class="fragment"><pre>00207 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_1" doxytag="NL3D::CMeshInstance::getAsyncTextureDistance" ></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::CMeshBaseInstance::getAsyncTextureDistance </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> +if true, the instance is said in "AsyncTextureMode". Ie user must fill AsyncTextures field with name of the textures to load. At each <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_8">startAsyncTextureLoading()</a>, the system start to load async them. Then, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_5">isAsyncTextureReady()</a> should be test each frame, to know if loading has completed. By default, AsyncTextureMode=false. When it swap from false to true, each texture file in Materials are replaced with "blank.tga", and true fileNames are copied into AsyncTextures. When it swap from true to false, the inverse is applied. NB: calling enableAsyncTextureMode(true) calls setAsyncTextureDirty(true) +<p> +Definition at line <a class="el" href="a05994.html#l00179">179</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +References <a class="el" href="a05994.html#l00244">NL3D::CMeshBaseInstance::_AsyncTextureDistance</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00171">NL3D::CInstanceUser::getAsyncTextureDistance()</a>. +<p> +<div class="fragment"><pre>00179 {<span class="keywordflow">return</span> _AsyncTextureDistance;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_2" doxytag="NL3D::CMeshInstance::getAsyncTextureId" ></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> NL3D::CMeshBaseInstance::getAsyncTextureId </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="mdname" nowrap> <em>matId</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>stage</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get an AynscTextureId. ret -1 if not found, or not a textureFile. NB: the id returned is the one in _CurrentAsyncTexture it the valid ones (thoses loaded or being loaded) Can be used for some (non deleting) request to the AsyncTextureManager +<p> +Definition at line <a class="el" href="a05993.html#l00547">547</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00242">NL3D::CMeshBaseInstance::_CurrentAsyncTextures</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00866">NL3D::CSkeletonModel::computeLodTexture()</a>. +<p> +<div class="fragment"><pre>00548 { +00549 <span class="keywordflow">if</span>(matId>=_CurrentAsyncTextures.size()) +00550 <span class="keywordflow">return</span> -1; +00551 <span class="keywordflow">if</span>(!_CurrentAsyncTextures[matId].isTextureFile(stage)) +00552 <span class="keywordflow">return</span> -1; +00553 <span class="keywordflow">return</span> _CurrentAsyncTextures[matId].TextIds[stage]; +00554 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_3" doxytag="NL3D::CMeshInstance::getAsyncTextureMode" ></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::CMeshBaseInstance::getAsyncTextureMode </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> +if true, the instance is said in "AsyncTextureMode". Ie user must fill AsyncTextures field with name of the textures to load. At each <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_8">startAsyncTextureLoading()</a>, the system start to load async them. Then, <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_5">isAsyncTextureReady()</a> should be test each frame, to know if loading has completed. By default, AsyncTextureMode=false. When it swap from false to true, each texture file in Materials are replaced with "blank.tga", and true fileNames are copied into AsyncTextures. When it swap from true to false, the inverse is applied. NB: calling enableAsyncTextureMode(true) calls setAsyncTextureDirty(true) +<p> +Definition at line <a class="el" href="a05994.html#l00162">162</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +References <a class="el" href="a05994.html#l00239">NL3D::CMeshBaseInstance::_AsyncTextureMode</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00866">NL3D::CSkeletonModel::computeLodTexture()</a>, <a class="el" href="a05828.html#l00139">NL3D::CInstanceUser::getAsyncTextureMode()</a>, <a class="el" href="a05826.html#l00050">NL3D::CInstanceMaterialUser::getTextureFileName()</a>, <a class="el" href="a05826.html#l00074">NL3D::CInstanceMaterialUser::setTextureFileName()</a>, and <a class="el" href="a05993.html#l00445">NL3D::CMeshBaseInstance::startAsyncTextureLoading()</a>. +<p> +<div class="fragment"><pre>00162 {<span class="keywordflow">return</span> _AsyncTextureMode;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez445_0" doxytag="NL3D::CMeshInstance::getBlendShapeFactors" ></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="a02200.html">CAnimatedMorph</a>>* NL3D::CMeshBaseInstance::getBlendShapeFactors </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05994.html#l00129">129</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +References <a class="el" href="a05994.html#l00231">NL3D::CMeshBaseInstance::_AnimatedMorphFactor</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>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, and <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>. +<p> +<div class="fragment"><pre>00130 { +00131 <span class="keywordflow">return</span> &_AnimatedMorphFactor; +00132 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez445_1" doxytag="NL3D::CMeshInstance::getBlendShapeName" ></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::CMeshBaseInstance::getBlendShapeName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>nBlendShapeNb</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::string & </td> + <td class="mdname" nowrap> <em>BlendShapeName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [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="a05993.html#l00146">146</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00231">NL3D::CMeshBaseInstance::_AnimatedMorphFactor</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06350.html#l01015">NL3D::CInstanceGroup::getBlendShapes()</a>. +<p> +<div class="fragment"><pre>00147 { +00148 <span class="keywordflow">if</span> (nBlendShapeNb >= _AnimatedMorphFactor.size()) +00149 <span class="keywordflow">return</span>; +00150 BlendShapeName = _AnimatedMorphFactor[nBlendShapeNb].getName(); +00151 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelb3" doxytag="NL3D::CMeshInstance::getChannelMixer" ></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="a02335.html">CChannelMixer</a>* NL3D::CTransform::getChannelMixer </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, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the channelMixer owned by the transform. return result of a refPtr => may be NULL. +<p> +Definition at line <a class="el" href="a06569.html#l00641">641</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06393.html#l01665">NL3D::CSkeletonModel::computeCurrentBBox()</a>, <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, and <a class="el" href="a06393.html#l00280">NL3D::CSkeletonModel::updateBoneToCompute()</a>. +<p> +<div class="fragment"><pre>00641 {<span class="keywordflow">return</span> _ChannelMixer;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela7" doxytag="NL3D::CMeshInstance::getChannelMixerOwnerShip" ></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::CTransform::getChannelMixerOwnerShip </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="a06569.html#l00257">257</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy8">NL3D::CTransform::IsDeleteChannelMixer</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>00257 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsDeleteChannelMixer)!=0; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela8" doxytag="NL3D::CMeshInstance::getClusterSystem" ></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="a02671.html">CInstanceGroup</a>* NL3D::CTransform::getClusterSystem </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00320">320</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00737">NL3D::CTransform::_ClusterSystem</a>. +<p> +Referenced by <a class="el" href="a06348.html#l01268">NL3D::CScene::findCameraClusterSystemFromRay()</a>, and <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>. +<p> +<div class="fragment"><pre>00320 { <span class="keywordflow">return</span> _ClusterSystem; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez441_0" doxytag="NL3D::CMeshInstance::getDefaultTrack" ></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="a03542.html">ITrack</a> * NL3D::CMeshBaseInstance::getDefaultTrack </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>valueId</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Default Track Values. +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1023_0">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a05993.html#l00097">97</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00162">NL3D::CMeshBase::getDefaultPivot()</a>, <a class="el" href="a05992.html#l00161">NL3D::CMeshBase::getDefaultPos()</a>, <a class="el" href="a05992.html#l00163">NL3D::CMeshBase::getDefaultRotEuler()</a>, <a class="el" href="a05992.html#l00164">NL3D::CMeshBase::getDefaultRotQuat()</a>, <a class="el" href="a05992.html#l00165">NL3D::CMeshBase::getDefaultScale()</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00098 { +00099 <span class="comment">// Pointer on the CMeshBase</span> +00100 CMeshBase* pMesh=(CMeshBase*)(IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>; +00101 +00102 <span class="comment">// Switch the value</span> +00103 <span class="keywordflow">switch</span> (valueId) +00104 { +00105 <span class="keywordflow">case</span> CTransform::PosValue: +00106 <span class="keywordflow">return</span> pMesh->getDefaultPos(); +00107 <span class="keywordflow">case</span> CTransform::RotEulerValue: +00108 <span class="keywordflow">return</span> pMesh->getDefaultRotEuler(); +00109 <span class="keywordflow">case</span> CTransform::RotQuatValue: +00110 <span class="keywordflow">return</span> pMesh->getDefaultRotQuat(); +00111 <span class="keywordflow">case</span> CTransform::ScaleValue: +00112 <span class="keywordflow">return</span> pMesh->getDefaultScale(); +00113 <span class="keywordflow">case</span> CTransform::PivotValue: +00114 <span class="keywordflow">return</span> pMesh->getDefaultPivot(); +00115 <span class="keywordflow">default</span>: +00116 <span class="comment">// Problem, new values ?</span> +00117 <a class="code" href="a04199.html#a12">nlstop</a>; +00118 }; +00119 <span class="keywordflow">return</span> NULL; +00120 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela10" doxytag="NL3D::CMeshInstance::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::CTransformShape::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> + +<p> +Definition at line <a class="el" href="a06571.html#l00135">135</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a06302.html#l00414">NL3D::CQuadGridClipCluster::addModel()</a>, <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, and <a class="el" href="a05829.html#l00125">NL3D::CInstanceUser::getDistMax()</a>. +<p> +<div class="fragment"><pre>00135 { <span class="keywordflow">return</span> _DistMax; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela11" doxytag="NL3D::CMeshInstance::getForceClipRoot" ></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::CTransform::getForceClipRoot </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="a06569.html#l00538">538</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, and <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00265">NL3D::CTransformUser::getForceClipRoot()</a>. +<p> +<div class="fragment"><pre>00538 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot) != 0; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_1" doxytag="NL3D::CMeshInstance::getLightContribution" ></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="a02744.html">CLightContribution</a>& NL3D::CTransform::getLightContribution </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 current light contribution of this model +<p> +Definition at line <a class="el" href="a06569.html#l00373">373</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>. +<p> +Referenced by <a class="el" href="a06372.html#l00626">NL3D::CShadowMapManager::computeShadowColors()</a>, and <a class="el" href="a06372.html#l00595">NL3D::CShadowMapManager::computeShadowDirection()</a>. +<p> +<div class="fragment"><pre>00373 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela12" doxytag="NL3D::CMeshInstance::getLightContribution" ></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="a02744.html">CLightContribution</a>& NL3D::CTransformShape::getLightContribution </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02914.html#NL3D_1_1CMeshMultiLodInstancea13">NL3D::CMeshMultiLodInstance</a>. +<p> +Definition at line <a class="el" href="a06571.html#l00155">155</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>, and <a class="el" href="a06148.html#l00680">NL3D::CParticleSystemModel::traverseRender()</a>. +<p> +<div class="fragment"><pre>00155 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela13" doxytag="NL3D::CMeshInstance::getLightHotSpotInWorld" ></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::CTransformShape::getLightHotSpotInWorld </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>modelPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float & </td> + <td class="mdname" nowrap> <em>modelRadius</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const<code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the HotSpot of the model for Light computation. For models with global attenuation, this is the point taken for attenuation computes. NB: should return the current world position. NB: return also the modelRadius (only for bigLightable) Default to NULL. +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1024_2">NL3D::CTransform</a>. +<p> +Reimplemented in <a class="el" href="a03399.html#NL3D_1_1CSkeletonModela11">NL3D::CSkeletonModel</a>. +<p> +Definition at line <a class="el" href="a06570.html#l00316">316</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a06570.html#l00083">NL3D::CTransformShape::getAABBox()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a05385.html#l00096">NLMISC::CAABBox::getRadius()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, and <a class="el" href="a06569.html#l00365">NL3D::CTransform::isBigLightable()</a>. +<p> +<div class="fragment"><pre>00317 { +00318 <span class="comment">/*</span> +00319 <span class="comment"> // get the untransformed bbox from the model.</span> +00320 <span class="comment"> CAABBox bbox;</span> +00321 <span class="comment"> getAABBox(bbox);</span> +00322 <span class="comment"> // get transformed center pos of bbox</span> +00323 <span class="comment"> modelPos= getWorldMatrix() * bbox.getCenter();</span> +00324 <span class="comment"> // If the model is a big lightable, must take radius from aabbox, else suppose 0 radius.</span> +00325 <span class="comment"> if(isBigLightable())</span> +00326 <span class="comment"> {</span> +00327 <span class="comment"> // get size of the bbox (bounding sphere)</span> +00328 <span class="comment"> modelRadius= bbox.getRadius();</span> +00329 <span class="comment"> }</span> +00330 <span class="comment"> else</span> +00331 <span class="comment"> {</span> +00332 <span class="comment"> // Assume 0 radius => faster computeLinearAttenuation()</span> +00333 <span class="comment"> modelRadius= 0;</span> +00334 <span class="comment"> }</span> +00335 <span class="comment"> */</span> +00336 +00337 <span class="comment">// This method works well for Big Trees.</span> +00338 <span class="comment">// TODO: generalize, saving a LightHotSpot per shape.</span> +00339 +00340 <span class="comment">// get pos of object. Ie the hotSpot is the pivot.</span> +00341 modelPos= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().getPos(); +00342 <span class="comment">// If the model is a big lightable, must take radius from aabbox, else suppose 0 radius.</span> +00343 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_3">isBigLightable</a>()) +00344 { +00345 <span class="comment">// get the untransformed bbox from the model.</span> +00346 CAABBox bbox; +00347 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModela5">getAABBox</a>(bbox); +00348 <span class="comment">// get size of the bbox (bounding sphere)</span> +00349 modelRadius= bbox.getRadius(); +00350 } +00351 <span class="keywordflow">else</span> +00352 { +00353 <span class="comment">// Assume 0 radius => faster computeLinearAttenuation()</span> +00354 modelRadius= 0; +00355 } +00356 +00357 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez443_0" doxytag="NL3D::CMeshInstance::getLightMapName" ></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::CMeshBaseInstance::getLightMapName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>nLightMapNb</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::string & </td> + <td class="mdname" nowrap> <em>LightMapName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [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="a05993.html#l00131">131</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00234">NL3D::CMeshBase::_LightInfos</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00993">NL3D::CInstanceGroup::getLights()</a>. +<p> +<div class="fragment"><pre>00132 { +00133 CMeshBase* pMesh=(CMeshBase*)(IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>; +00134 <span class="keywordflow">if</span>( nLightMapNb >= pMesh->_LightInfos.size() ) +00135 <span class="keywordflow">return</span>; +00136 LightMapName = pMesh->_LightInfos[nLightMapNb].AnimatedLight; +00137 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1025_0" doxytag="NL3D::CMeshInstance::getLoadBalancingGroup" ></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 std::string & NL3D::CTransform::getLoadBalancingGroup </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the load Balancing group of a model. see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1025_1">setLoadBalancingGroup()</a>. +<p> +Definition at line <a class="el" href="a06568.html#l00532">532</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00894">NL3D::CTransform::_LoadBalancingGroup</a>, and <a class="el" href="a05924.html#l00068">NL3D::CLoadBalancingGroup::Name</a>. +<p> +<div class="fragment"><pre>00533 { +00534 <span class="comment">// get the group name</span> +00535 <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1049_0">_LoadBalancingGroup</a>->Name; +00536 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez439_0" doxytag="NL3D::CMeshInstance::getMaterial" ></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="a02839.html">CMaterial</a> * NL3D::CMeshBaseInstance::getMaterial </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>materialId</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get a material of the transform shape +<p> +Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela14">NL3D::CTransformShape</a>. +<p> +Definition at line <a class="el" href="a05993.html#l00361">361</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00362 { +00363 <span class="keywordflow">return</span> &(<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[materialId]); +00364 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez439_1" doxytag="NL3D::CMeshInstance::getMaterial" ></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="a02839.html">CMaterial</a> * NL3D::CMeshBaseInstance::getMaterial </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>materialId</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get a material of the transform shape +<p> +Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela15">NL3D::CTransformShape</a>. +<p> +Definition at line <a class="el" href="a05993.html#l00354">354</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00355 { +00356 <span class="keywordflow">return</span> &(<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[materialId]); +00357 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablea1" doxytag="NL3D::CMeshInstance::getMatrix" ></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="a02851.html">CMatrix</a>& NL3D::ITransformable::getMatrix </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> +Get the matrix, compute her if necessary (work in all modes). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00076">76</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06574.html#l00141">NL3D::ITransformable::updateMatrix()</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a05530.html#l00243">NL3D::CCamera::buildCameraPyramid()</a>, <a class="el" href="a05491.html#l00155">NL3D::CBone::compute()</a>, <a class="el" href="a06741.html#l00327">NL3D::CWaterShape::createInstance()</a>, <a class="el" href="a06737.html#l00127">NL3D::CWaterModel::getAttenuatedHeight()</a>, <a class="el" href="a06577.html#l00081">NL3D::CTransformableUser::getMatrix()</a>, <a class="el" href="a05559.html#l00777">NL3D::CCloudScape::render()</a>, <a class="el" href="a06016.html#l00496">NL3D::CMeshMultiLod::renderCoarseMesh()</a>, and <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>. +<p> +<div class="fragment"><pre>00076 {<a class="code" href="a02278.html#NL3D_1_1ITransformabled2">updateMatrix</a>(); <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablea2" doxytag="NL3D::CMeshInstance::getMatrixDate" ></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#a13">uint64</a> NL3D::ITransformable::getMatrixDate </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 last date of computed matrix. <a class="el" href="a02278.html#NL3D_1_1ITransformabled2">updateMatrix()</a> if necessary. +<p> +Definition at line <a class="el" href="a06575.html#l00090">90</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a06574.html#l00141">NL3D::ITransformable::updateMatrix()</a>. +<p> +Referenced by <a class="el" href="a06737.html#l01339">NL3D::CWaterModel::updateDiffuseMapMatrix()</a>. +<p> +<div class="fragment"><pre>00091 { +00092 <a class="code" href="a02278.html#NL3D_1_1ITransformabled2">updateMatrix</a>(); +00093 <span class="keywordflow">return</span> _LocalMatrixDate; +00094 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_0" doxytag="NL3D::CMeshInstance::getMeanColor" ></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="a03337.html">CRGBA</a> NL3D::CTransform::getMeanColor </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> +see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_7">setMeanColor()</a> +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00437">437</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00756">NL3D::CTransform::_MeanColor</a>. +<p> +<div class="fragment"><pre>00437 {<span class="keywordflow">return</span> _MeanColor;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1053_0" doxytag="NL3D::CMeshInstance::getMRMLevelDetail" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual const <a class="el" href="a02959.html">CMRMLevelDetail</a>* NL3D::CTransformShape::getMRMLevelDetail </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> +If the model support MRM, return the level detail setup. default is return NULL. +<p> + +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez501_1">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez533_1">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06571.html#l00114">114</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>. +<p> +<div class="fragment"><pre>00114 {<span class="keywordflow">return</span> NULL;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez445_2" doxytag="NL3D::CMeshInstance::getNbBlendShape" ></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#a11">uint32</a> NL3D::CMeshBaseInstance::getNbBlendShape </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> [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="a05993.html#l00140">140</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00231">NL3D::CMeshBaseInstance::_AnimatedMorphFactor</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06350.html#l01015">NL3D::CInstanceGroup::getBlendShapes()</a>. +<p> +<div class="fragment"><pre>00141 { +00142 <span class="keywordflow">return</span> _AnimatedMorphFactor.size(); +00143 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez443_1" doxytag="NL3D::CMeshInstance::getNbLightMap" ></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#a11">uint32</a> NL3D::CMeshBaseInstance::getNbLightMap </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> [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="a05993.html#l00124">124</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00234">NL3D::CMeshBase::_LightInfos</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00993">NL3D::CInstanceGroup::getLights()</a>. +<p> +<div class="fragment"><pre>00125 { +00126 CMeshBase* pMesh=(CMeshBase*)(IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>; +00127 <span class="keywordflow">return</span> pMesh->_LightInfos.size(); +00128 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez439_2" doxytag="NL3D::CMeshInstance::getNumMaterial" ></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::CMeshBaseInstance::getNumMaterial </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the count of material in this transform shape +<p> +Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModela18">NL3D::CTransformShape</a>. +<p> +Definition at line <a class="el" href="a05993.html#l00347">347</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00348 { +00349 <span class="keywordflow">return</span> <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>.size (); +00350 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1053_1" doxytag="NL3D::CMeshInstance::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::CTransformShape::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, inherited]</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 want render for a fixed distance.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>distance</em> </td><td>is the distance of the shape from the eye. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the approximate number of triangles this instance will render at this distance. This number can be a float. The function MUST be decreasing or constant with the distance but don't have to be continus.</dd></dl> + +<p> +Reimplemented in <a class="el" href="a02914.html#NL3D_1_1CMeshMultiLodInstancea17">NL3D::CMeshMultiLodInstance</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModela20">NL3D::CParticleSystemModel</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelz928_1">NL3D::CSkeletonModel</a>. +<p> +Definition at line <a class="el" href="a06570.html#l00075">75</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>. +<p> +Referenced by <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>. +<p> +<div class="fragment"><pre>00076 { +00077 <span class="comment">// Call shape method</span> +00078 <span class="keywordflow">return</span> <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>->getNumTriangles (distance); +00079 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1053_2" doxytag="NL3D::CMeshInstance::getNumTrianglesAfterLoadBalancing" ></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::CTransformShape::getNumTrianglesAfterLoadBalancing </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get an approximation of the number of triangles this instance should render. This method is valid only for <a class="el" href="a02539.html">IShape</a> classes (in render()), after LoadBalancing traversal is performed. NB: It is not guaranted that this instance will render those number of triangles. +<p> +Definition at line <a class="el" href="a06571.html#l00111">111</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +References <a class="el" href="a06571.html#l00175">NL3D::CTransformShape::_NumTrianglesAfterLoadBalancing</a>. +<p> +Referenced by <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06011.html#l01538">NL3D::CMeshMRMSkinned::profileSceneRender()</a>, <a class="el" href="a06005.html#l03030">NL3D::CMeshMRM::profileSceneRender()</a>, <a class="el" href="a06011.html#l01468">NL3D::CMeshMRMSkinned::render()</a>, <a class="el" href="a06005.html#l02953">NL3D::CMeshMRM::render()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a06005.html#l03017">NL3D::CMeshMRM::supportMeshBlockRendering()</a>, and <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>. +<p> +<div class="fragment"><pre>00111 {<span class="keywordflow">return</span> _NumTrianglesAfterLoadBalancing;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela19" doxytag="NL3D::CMeshInstance::getOrderingLayer" ></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::CTransform::getOrderingLayer </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> +Get the ordering layer. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00187">187</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00743">NL3D::CTransform::_OrderingLayer</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00169">NL3D::CTransformUser::getOrderingLayer()</a>, and <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>. +<p> +<div class="fragment"><pre>00187 { <span class="keywordflow">return</span> _OrderingLayer; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela20" doxytag="NL3D::CMeshInstance::getOwnerScene" ></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="a03348.html">CScene</a>* NL3D::CTransform::getOwnerScene </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> +get the scene which has created us +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00105">105</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00693">NL3D::CTransform::_OwnerScene</a>. +<p> +Referenced by <a class="el" href="a05862.html#l00385">NL3D::CLandscape::addZone()</a>, <a class="el" href="a06737.html#l01130">NL3D::CWaterModel::clip()</a>, <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, <a class="el" href="a05870.html#l00143">NL3D::CLandscapeModel::clipAndRenderLandscape()</a>, <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06393.html#l00972">NL3D::CSkeletonModel::computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l00866">NL3D::CSkeletonModel::computeLodTexture()</a>, <a class="el" href="a06737.html#l01026">NL3D::CWaterModel::computeSimpleClippedPoly()</a>, <a class="el" href="a06393.html#l01852">NL3D::CSkeletonModel::createShadowMap()</a>, <a class="el" href="a06001.html#l00254">createShadowMap()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06001.html#l00166">generateShadowMap()</a>, <a class="el" href="a06018.html#l00067">NL3D::CMeshMultiLodInstance::getCoarseMeshLighting()</a>, <a class="el" href="a06568.html#l00214">NL3D::CTransform::initModel()</a>, <a class="el" href="a06393.html#l00154">NL3D::CSkeletonModel::initModel()</a>, <a class="el" href="a06182.html#l00059">NL3D::CPointLightModel::initModel()</a>, <a class="el" href="a05870.html#l00075">NL3D::CLandscapeModel::initModel()</a>, <a class="el" href="a06149.html#l00315">NL3D::CParticleSystemModel::insertInVisibleList()</a>, <a class="el" href="a06016.html#l00740">NL3D::CMeshMultiLod::instanciateCoarseMeshSpace()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a06304.html#l00319">NL3D::CQuadGridClipManager::profile()</a>, <a class="el" href="a06570.html#l00248">NL3D::CTransformShape::profileRender()</a>, <a class="el" href="a05870.html#l00293">NL3D::CLandscapeModel::receiveShadowMap()</a>, <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a05993.html#l00486">NL3D::CMeshBaseInstance::releaseCurrentAsyncTextures()</a>, <a class="el" href="a06358.html#l00141">NL3D::CSegRemanence::render()</a>, <a class="el" href="a06016.html#l00232">NL3D::CMeshMultiLod::render()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</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="a06393.html#l01295">NL3D::CSkeletonModel::renderCLod()</a>, <a class="el" href="a06016.html#l00496">NL3D::CMeshMultiLod::renderCoarseMesh()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06393.html#l01885">NL3D::CSkeletonModel::renderShadowSkins()</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="a06011.html#l00726">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06011.html#l00795">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupPrimitives()</a>, <a class="el" href="a06005.html#l01406">NL3D::CMeshMRMGeom::renderSkinGroupPrimitives()</a>, <a class="el" href="a06011.html#l00877">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupSpecularRdrPass()</a>, <a class="el" href="a06005.html#l01488">NL3D::CMeshMRMGeom::renderSkinGroupSpecularRdrPass()</a>, <a class="el" href="a06393.html#l01449">NL3D::CSkeletonModel::renderSkinList()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a06304.html#l00081">NL3D::CQuadGridClipManager::reset()</a>, <a class="el" href="a06568.html#l00522">NL3D::CTransform::setLoadBalancingGroup()</a>, <a class="el" href="a06393.html#l00837">NL3D::CSkeletonModel::setLodCharacterShape()</a>, <a class="el" href="a05993.html#l00445">NL3D::CMeshBaseInstance::startAsyncTextureLoading()</a>, <a class="el" href="a06737.html#l00998">NL3D::CWaveMakerModel::traverseAnimDetail()</a>, <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>, <a class="el" href="a06358.html#l00458">NL3D::CSegRemanence::traverseAnimDetail()</a>, <a class="el" href="a06148.html#l00516">NL3D::CParticleSystemModel::traverseAnimDetail()</a>, <a class="el" href="a05993.html#l00214">NL3D::CMeshBaseInstance::traverseAnimDetail()</a>, <a class="el" href="a06568.html#l00938">NL3D::CTransform::traverseAnimDetailWithoutUpdateWorldMatrix()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06304.html#l00303">NL3D::CQuadGridClipManager::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, <a class="el" href="a05870.html#l00105">NL3D::CLandscapeModel::traverseClip()</a>, <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, <a class="el" href="a05870.html#l00090">NL3D::CLandscapeModel::traverseHrc()</a>, <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>, <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>, <a class="el" href="a06570.html#l00262">NL3D::CTransformShape::traverseLoadBalancing()</a>, <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>, <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, <a class="el" href="a06688.html#l00145">NL3D::CVegetableBlendLayerModel::traverseRender()</a>, <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>, <a class="el" href="a06001.html#l00330">traverseRender()</a>, <a class="el" href="a05870.html#l00257">NL3D::CLandscapeModel::traverseRender()</a>, <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>, <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>, <a class="el" href="a06304.html#l00112">NL3D::CQuadGridClipManager::updateClustersFromCamera()</a>, <a class="el" href="a06393.html#l01872">NL3D::CSkeletonModel::updateShadowMap()</a>, <a class="el" href="a06001.html#l00319">updateShadowMap()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, <a class="el" href="a06393.html#l00123">NL3D::CSkeletonModel::~CSkeletonModel()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>00105 {<span class="keywordflow">return</span> _OwnerScene;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_0" doxytag="NL3D::CMeshInstance::getPivot" ></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="a03128.html">CVector</a> NL3D::ITransformable::getPivot </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00255">255</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +<div class="fragment"><pre>00256 { +00257 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00258 <span class="keywordflow">return</span> _Pivot.Value; +00259 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_1" doxytag="NL3D::CMeshInstance::getPivot" ></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::ITransformable::getPivot </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>pivot</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00224">224</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06577.html#l00169">NL3D::CTransformableUser::getPivot()</a>. +<p> +<div class="fragment"><pre>00225 { +00226 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00227 pivot= _Pivot.Value; +00228 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablee0" doxytag="NL3D::CMeshInstance::getPivotValueName" ></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 char * NL3D::ITransformable::getPivotValueName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06574.html#l00117">117</a> of file <a class="el" href="a06574.html">transformable.cpp</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>. +<p> +<div class="fragment"><pre>00118 { +00119 <span class="keywordflow">return</span> <span class="stringliteral">"pivot"</span>; +00120 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_2" doxytag="NL3D::CMeshInstance::getPos" ></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="a03128.html">CVector</a> NL3D::ITransformable::getPos </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode(nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00231">231</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06737.html#l00117">NL3D::CWaterModel::getHeight()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">renderIntoSkeletonShadowMap()</a>, and <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>. +<p> +<div class="fragment"><pre>00232 { +00233 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00234 <span class="keywordflow">return</span> _Pos.Value; +00235 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_3" doxytag="NL3D::CMeshInstance::getPos" ></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::ITransformable::getPos </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>pos</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode(nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00200">200</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06577.html#l00149">NL3D::CTransformableUser::getPos()</a>, <a class="el" href="a06350.html#l01105">NL3D::CInstanceGroup::getPos()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>. +<p> +<div class="fragment"><pre>00201 { +00202 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00203 pos= _Pos.Value; +00204 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablee1" doxytag="NL3D::CMeshInstance::getPosValueName" ></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 char * NL3D::ITransformable::getPosValueName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06574.html#l00097">97</a> of file <a class="el" href="a06574.html">transformable.cpp</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>. +<p> +<div class="fragment"><pre>00098 { +00099 <span class="keywordflow">return</span> <span class="stringliteral">"pos"</span>; +00100 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_6" doxytag="NL3D::CMeshInstance::getReceiverBBox" ></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::CTransform::getReceiverBBox </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02156.html">CAABBox</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>bbox</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For receivers. get the World Instance bbox that includes the receiver. +<p> +Reimplemented in <a class="el" href="a02713.html#NL3D_1_1CLandscapeModelz282_0">NL3D::CLandscapeModel</a>. +<p> +Definition at line <a class="el" href="a06568.html#l01328">1328</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00066">NLMISC::CAABBox::setCenter()</a>, and <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>. +<p> +Referenced by <a class="el" href="a06372.html#l00223">NL3D::CShadowMapManager::addShadowReceiver()</a>. +<p> +<div class="fragment"><pre>01329 { +01330 bbox.setCenter(CVector::Null); +01331 bbox.setHalfSize(CVector::Null); +01332 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_7" doxytag="NL3D::CMeshInstance::getReceiverRenderWorldMatrix" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual const <a class="el" href="a02851.html">CMatrix</a>& NL3D::CTransform::getReceiverRenderWorldMatrix </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> +For receivers. Retrieve the WorldMatrix of the model used for <a class="el" href="a02434.html#NL3D_1_1IDrivera51">IDriver::render()</a>. By default it returns <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix()</a>. The exception is the Landscape and his "ZBuffer Problem" management. +<p> +Reimplemented in <a class="el" href="a02713.html#NL3D_1_1CLandscapeModelz282_1">NL3D::CLandscapeModel</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00511">511</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>. +<p> +Referenced by <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>. +<p> +<div class="fragment"><pre>00511 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypea8" doxytag="NL3D::CMeshInstance::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_1ITransformablez1083_4" doxytag="NL3D::CMeshInstance::getRotEuler" ></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="a03128.html">CVector</a> NL3D::ITransformable::getRotEuler </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in RotEuler mode(nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00237">237</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +<div class="fragment"><pre>00238 { +00239 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler); +00240 <span class="keywordflow">return</span> _RotEuler.Value; +00241 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_5" doxytag="NL3D::CMeshInstance::getRotEuler" ></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::ITransformable::getRotEuler </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>rot</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in RotEuler mode(nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00206">206</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06577.html#l00154">NL3D::CTransformableUser::getRotEuler()</a>. +<p> +<div class="fragment"><pre>00207 { +00208 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler); +00209 rot= _RotEuler.Value; +00210 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablee2" doxytag="NL3D::CMeshInstance::getRotEulerValueName" ></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 char * NL3D::ITransformable::getRotEulerValueName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06574.html#l00102">102</a> of file <a class="el" href="a06574.html">transformable.cpp</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>. +<p> +<div class="fragment"><pre>00103 { +00104 <span class="keywordflow">return</span> <span class="stringliteral">"roteuler"</span>; +00105 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_6" doxytag="NL3D::CMeshInstance::getRotOrder" ></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="a02851.html#NLMISC_1_1CMatrixw0">CMatrix::TRotOrder</a> NL3D::ITransformable::getRotOrder </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the current rotorder (information vlaid only when RotEuler mode). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00194">194</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00317">NL3D::ITransformable::_RotOrder</a>. +<p> +Referenced by <a class="el" href="a06577.html#l00143">NL3D::CTransformableUser::getRotOrder()</a>. +<p> +<div class="fragment"><pre>00195 { +00196 <span class="keywordflow">return</span> _RotOrder; +00197 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_7" doxytag="NL3D::CMeshInstance::getRotQuat" ></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="a03296.html">CQuat</a> NL3D::ITransformable::getRotQuat </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in RotQuat mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00243">243</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +<div class="fragment"><pre>00244 { +00245 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat); +00246 <span class="keywordflow">return</span> _RotQuat.Value; +00247 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_8" doxytag="NL3D::CMeshInstance::getRotQuat" ></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::ITransformable::getRotQuat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03296.html">CQuat</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>quat</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in RotQuat mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00212">212</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06577.html#l00159">NL3D::CTransformableUser::getRotQuat()</a>, and <a class="el" href="a06350.html#l01114">NL3D::CInstanceGroup::getRotQuat()</a>. +<p> +<div class="fragment"><pre>00213 { +00214 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat); +00215 quat= _RotQuat.Value; +00216 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablee3" doxytag="NL3D::CMeshInstance::getRotQuatValueName" ></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 char * NL3D::ITransformable::getRotQuatValueName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06574.html#l00107">107</a> of file <a class="el" href="a06574.html">transformable.cpp</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>. +<p> +<div class="fragment"><pre>00108 { +00109 <span class="keywordflow">return</span> <span class="stringliteral">"rotquat"</span>; +00110 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_9" doxytag="NL3D::CMeshInstance::getScale" ></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="a03128.html">CVector</a> NL3D::ITransformable::getScale </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00249">249</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +<div class="fragment"><pre>00250 { +00251 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00252 <span class="keywordflow">return</span> _Scale.Value; +00253 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_10" doxytag="NL3D::CMeshInstance::getScale" ></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::ITransformable::getScale </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>scale</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00218">218</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a05491.html#l00155">NL3D::CBone::compute()</a>, and <a class="el" href="a06577.html#l00164">NL3D::CTransformableUser::getScale()</a>. +<p> +<div class="fragment"><pre>00219 { +00220 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00221 scale= _Scale.Value; +00222 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablee4" doxytag="NL3D::CMeshInstance::getScaleValueName" ></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 char * NL3D::ITransformable::getScaleValueName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06574.html#l00112">112</a> of file <a class="el" href="a06574.html">transformable.cpp</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00077">NL3D::ITransformable::getValueName()</a>. +<p> +<div class="fragment"><pre>00113 { +00114 <span class="keywordflow">return</span> <span class="stringliteral">"scale"</span>; +00115 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez465_2" doxytag="NL3D::CMeshInstance::getShadowMap" ></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="a03370.html">CShadowMap</a> * NL3D::CMeshInstance::getShadowMap </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> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get The shadow Map result for receveing. If NULL, nothing is displayed. +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_8">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00234">234</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06002.html#l00112">_ShadowMap</a>. +<p> +<div class="fragment"><pre>00235 { +00236 <span class="keywordflow">return</span> <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>; +00237 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelb4" doxytag="NL3D::CMeshInstance::getShowWhenLODSticked" ></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::CTransform::getShowWhenLODSticked </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, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Test if obj must be displayed when sticked to an object displayed as a LOD (example: sword in hand of a character displayed as a LOD state). +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00680">680</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00746">NL3D::CTransform::_ForceCLodSticked</a>. +<p> +Referenced by <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>. +<p> +<div class="fragment"><pre>00680 { <span class="keywordflow">return</span> _ForceCLodSticked; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela22" doxytag="NL3D::CMeshInstance::getSkeletonModel" ></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="a03399.html">CSkeletonModel</a>* NL3D::CTransform::getSkeletonModel </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> +Get the skeleton model. Returnr NULL in normal mode. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00205">205</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>. +<p> +Referenced by <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</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="a06011.html#l01843">NL3D::CMeshMRMSkinnedGeom::renderShadowSkinGeom()</a>, <a class="el" href="a06005.html#l03376">NL3D::CMeshMRMGeom::renderShadowSkinGeom()</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="a06011.html#l00726">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>, and <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>. +<p> +<div class="fragment"><pre>00205 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_0" doxytag="NL3D::CMeshInstance::getSkinBoneSphere" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual const std::vector<<a class="el" href="a02291.html">NLMISC::CBSphere</a>>* NL3D::CTransform::getSkinBoneSphere </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, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL. +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_0">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_0">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00584">584</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>. +<p> +<div class="fragment"><pre>00584 {<span class="keywordflow">return</span> NULL;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez461_0" doxytag="NL3D::CMeshInstance::getSkinBoneUsage" ></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 std::vector< <a class="el" href="a04558.html#a10">sint32</a> > * NL3D::CMeshInstance::getSkinBoneUsage </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> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Called for lod character coloring. +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00099">99</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a05989.html#l02468">NL3D::CMesh::computeBonesId()</a>, <a class="el" href="a05989.html#l02463">NL3D::CMesh::getMeshGeom()</a>, and <a class="el" href="a05990.html#l00440">NL3D::CMeshGeom::getSkinBoneUsage()</a>. +<p> +<div class="fragment"><pre>00100 { +00101 <span class="comment">// Get a pointer on the shape</span> +00102 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a> *pMesh = NLMISC::safe_cast<CMesh *>((IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00103 +00104 <span class="comment">// Recompute the id</span> +00105 pMesh->computeBonesId (_FatherSkeletonModel); +00106 +00107 <span class="comment">// get ids.</span> +00108 <span class="keywordflow">return</span> &pMesh->getMeshGeom().getSkinBoneUsage(); +00109 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1083_11" doxytag="NL3D::CMeshInstance::getTransformMode" ></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="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a> NL3D::ITransformable::getTransformMode </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the current transform mode. +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00189">189</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00058">NL3D::ITransformable::TTransformMode</a>. +<p> +Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, and <a class="el" href="a06577.html#l00138">NL3D::CTransformableUser::getTransformMode()</a>. +<p> +<div class="fragment"><pre>00190 { +00191 <span class="keywordflow">return</span> _Mode; +00192 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela23" doxytag="NL3D::CMeshInstance::getUserClipping" ></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::CTransform::getUserClipping </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the user clipping state. +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l01316">1316</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy30">NL3D::CTransform::UserClipping</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00132">NL3D::CTransformUser::getUserClipping()</a>. +<p> +<div class="fragment"><pre>01317 { +01318 <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(UserClipping) != 0; +01319 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_2" doxytag="NL3D::CMeshInstance::getUserLightable" ></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::CTransform::getUserLightable </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> +Get the UserLightable flag. +<p> +Definition at line <a class="el" href="a06569.html#l00347">347</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy27">NL3D::CTransform::IsUserLightable</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00183">NL3D::CTransformUser::getUserLightable()</a>. +<p> +<div class="fragment"><pre>00347 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsUserLightable)!=0;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1087_2" doxytag="NL3D::CMeshInstance::getValue" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03835.html">IAnimatedValue</a> * NL3D::ITransformable::getValue </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>valueId</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +From <a class="el" href="a02197.html">IAnimatable</a>. +<p> + +<p> +Implements <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_2">NL3D::IAnimatable</a>. +<p> +Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_2">NL3D::CCamera</a>, and <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_3">NL3D::CParticleSystemModel</a>. +<p> +Definition at line <a class="el" href="a06574.html#l00058">58</a> of file <a class="el" href="a06574.html">transformable.cpp</a>. +<p> +References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00059 { +00060 <span class="comment">// what value ?</span> +00061 <span class="keywordflow">switch</span> (valueId) +00062 { +00063 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>: <span class="keywordflow">return</span> &_Pos; +00064 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>: <span class="keywordflow">return</span> &_RotEuler; +00065 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>: <span class="keywordflow">return</span> &_RotQuat; +00066 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>: <span class="keywordflow">return</span> &_Scale; +00067 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>: <span class="keywordflow">return</span> &_Pivot; +00068 } +00069 +00070 <span class="comment">// No, only ITrnasformable values!</span> +00071 <a class="code" href="a04199.html#a12">nlstop</a>; +00072 <span class="comment">// Deriver note: else call BaseClass::getValue(valueId);</span> +00073 +00074 <span class="keywordflow">return</span> NULL; +00075 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1087_3" doxytag="NL3D::CMeshInstance::getValueName" ></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 char * NL3D::ITransformable::getValueName </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>valueId</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +From <a class="el" href="a02197.html">IAnimatable</a>. +<p> + +<p> +Implements <a class="el" href="a02197.html#NL3D_1_1IAnimatablez3_3">NL3D::IAnimatable</a>. +<p> +Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCameraz48_3">NL3D::CCamera</a>, and <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz625_4">NL3D::CParticleSystemModel</a>. +<p> +Definition at line <a class="el" href="a06574.html#l00077">77</a> of file <a class="el" href="a06574.html">transformable.cpp</a>. +<p> +References <a class="el" href="a06574.html#l00117">NL3D::ITransformable::getPivotValueName()</a>, <a class="el" href="a06574.html#l00097">NL3D::ITransformable::getPosValueName()</a>, <a class="el" href="a06574.html#l00102">NL3D::ITransformable::getRotEulerValueName()</a>, <a class="el" href="a06574.html#l00107">NL3D::ITransformable::getRotQuatValueName()</a>, <a class="el" href="a06574.html#l00112">NL3D::ITransformable::getScaleValueName()</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00078 { +00079 <span class="comment">// what value ?</span> +00080 <span class="keywordflow">switch</span> (valueId) +00081 { +00082 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">PosValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee1">getPosValueName</a> (); +00083 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">RotEulerValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee2">getRotEulerValueName</a>(); +00084 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">RotQuatValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee3">getRotQuatValueName</a>(); +00085 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">ScaleValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee4">getScaleValueName</a>(); +00086 <span class="keywordflow">case</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">PivotValue</a>: <span class="keywordflow">return</span> <a class="code" href="a02278.html#NL3D_1_1ITransformablee0">getPivotValueName</a>(); +00087 } +00088 +00089 <span class="comment">// No, only ITrnasformable values!</span> +00090 <a class="code" href="a04199.html#a12">nlstop</a>; +00091 <span class="comment">// Deriver note: else call BaseClass::getValueName(valueId);</span> +00092 +00093 <span class="keywordflow">return</span> <span class="stringliteral">""</span>; +00094 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela24" doxytag="NL3D::CMeshInstance::getVisibility" ></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="a02639.html#NL3D_1_1CHrcTravw3">CHrcTrav::TVisibility</a> NL3D::CTransform::getVisibility </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the local visibility state. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00203">203</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00146">NL3D::CTransformUser::getVisibility()</a>, <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>, <a class="el" href="a06013.html#l00159">NL3D::CMeshMRMSkinnedInstance::renderSkin()</a>, <a class="el" href="a06007.html#l00164">NL3D::CMeshMRMInstance::renderSkin()</a>, <a class="el" href="a06001.html#l00127">renderSkin()</a>, <a class="el" href="a06148.html#l00516">NL3D::CParticleSystemModel::traverseAnimDetail()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>. +<p> +<div class="fragment"><pre>00203 {<span class="keywordflow">return</span> Visibility;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela25" doxytag="NL3D::CMeshInstance::getWorldMatrix" ></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="a02851.html">CMatrix</a>& NL3D::CTransform::getWorldMatrix </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> +Get the worldMatrix that is computed at last Hrc pass +<p> +Definition at line <a class="el" href="a06569.html#l00299">299</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06005.html#l02738">NL3D::CMeshMRMGeom::activeInstance()</a>, <a class="el" href="a05989.html#l02058">NL3D::CMeshGeom::activeInstance()</a>, <a class="el" href="a05901.html#l00151">NL3D::CLightingManager::addDynamicLight()</a>, <a class="el" href="a05530.html#l00243">NL3D::CCamera::buildCameraPyramid()</a>, <a class="el" href="a06148.html#l00490">NL3D::CParticleSystemModel::checkAgainstPyramid()</a>, <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06393.html#l00972">NL3D::CSkeletonModel::computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06372.html#l00595">NL3D::CShadowMapManager::computeShadowDirection()</a>, <a class="el" href="a06737.html#l01026">NL3D::CWaterModel::computeSimpleClippedPoly()</a>, <a class="el" href="a06001.html#l00352">computeWorldBBoxForShadow()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06001.html#l00166">generateShadowMap()</a>, <a class="el" href="a06570.html#l00316">NL3D::CTransformShape::getLightHotSpotInWorld()</a>, <a class="el" href="a06569.html#l00511">NL3D::CTransform::getReceiverRenderWorldMatrix()</a>, <a class="el" href="a05901.html#l00231">NL3D::CLightingManager::insertStaticLightedModel()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>, <a class="el" href="a06148.html#l00328">NL3D::CParticleSystemModel::refreshRscDeletion()</a>, <a class="el" href="a06152.html#l00287">NL3D::CParticleSystemShape::render()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</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="a06393.html#l01295">NL3D::CSkeletonModel::renderCLod()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06016.html#l00446">NL3D::CMeshMultiLod::renderMeshGeom()</a>, <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</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="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a06358.html#l00326">NL3D::CSegRemanence::samplePos()</a>, <a class="el" href="a06372.html#l00880">NL3D::CShadowMapManager::selectShadowMapsToGenerate()</a>, <a class="el" href="a06024.html#l00228">NL3D::CMeshVPWindTree::setupPerInstanceConstants()</a>, <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, <a class="el" href="a06737.html#l00998">NL3D::CWaveMakerModel::traverseAnimDetail()</a>, <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>, <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>, <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>, and <a class="el" href="a06737.html#l01339">NL3D::CWaterModel::updateDiffuseMapMatrix()</a>. +<p> +<div class="fragment"><pre>00299 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela26" doxytag="NL3D::CMeshInstance::heritVisibility" ></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::CTransform::heritVisibility </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +herit the visibility from his father. (default behavior). +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l00287">287</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00139">NL3D::CTransformUser::heritVisibility()</a>. +<p> +<div class="fragment"><pre>00288 { +00289 <span class="comment">// Optim: do nothing if already set</span> +00290 <span class="keywordflow">if</span>(Visibility!= CHrcTrav::Herit) +00291 { +00292 _TransformDirty= <span class="keyword">true</span>; +00293 Visibility= CHrcTrav::Herit; +00294 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span> +00295 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>()) +00296 { +00297 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel); +00298 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->dirtSkinRenderLists(); +00299 } +00300 } +00301 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela27" doxytag="NL3D::CMeshInstance::hide" ></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::CTransform::hide </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Hide the object and his sons. +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l00223">223</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00113">NL3D::CTransformUser::hide()</a>, <a class="el" href="a05875.html#l00158">NL3D::CLandscapeUser::hide()</a>, <a class="el" href="a06250.html#l00225">NL3D::CPSMesh::newElement()</a>, and <a class="el" href="a06250.html#l00295">NL3D::CPSMesh::updatePos()</a>. +<p> +<div class="fragment"><pre>00224 { +00225 <span class="comment">// Optim: do nothing if already set</span> +00226 <span class="keywordflow">if</span>(Visibility!= CHrcTrav::Hide) +00227 { +00228 _TransformDirty= <span class="keyword">true</span>; +00229 Visibility= CHrcTrav::Hide; +00230 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span> +00231 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>()) +00232 { +00233 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel); +00234 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->dirtSkinRenderLists(); +00235 } +00236 } +00237 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_0" doxytag="NL3D::CMeshInstance::hrcGetChild" ></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="a02316.html">CTransform</a> * NL3D::CTransform::hrcGetChild </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>index</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [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="a06568.html#l01202">1202</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00699">NL3D::CTransform::_HrcSons</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05705.html#l00135">NL3D::CFastPtrList< CTransform >::size()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00786">NL3D::CTransform::traverseHrc()</a>, <a class="el" href="a06341.html#l00043">NL3D::CRootModel::traverseHrc()</a>, <a class="el" href="a05431.html#l00099">NL3D::CAnimDetailTrav::traverseHrcRecurs()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>01203 { +01204 <a class="code" href="a04199.html#a6">nlassert</a>(index < _HrcSons.size()); +01205 <span class="keywordflow">return</span> (const_cast<CTransform*>(<span class="keyword">this</span>))->_HrcSons.begin()[<a class="code" href="a04223.html#a566">index</a>]; +01206 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_1" doxytag="NL3D::CMeshInstance::hrcGetNumChildren" ></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::CTransform::hrcGetNumChildren </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="a06569.html#l00220">220</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00699">NL3D::CTransform::_HrcSons</a>, <a class="el" href="a05705.html#l00135">NL3D::CFastPtrList< CTransform >::size()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00786">NL3D::CTransform::traverseHrc()</a>, <a class="el" href="a06341.html#l00043">NL3D::CRootModel::traverseHrc()</a>, <a class="el" href="a05431.html#l00099">NL3D::CAnimDetailTrav::traverseHrcRecurs()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>00220 {<span class="keywordflow">return</span> _HrcSons.size();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_2" doxytag="NL3D::CMeshInstance::hrcGetParent" ></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="a02316.html">CTransform</a>* NL3D::CTransform::hrcGetParent </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="a06569.html#l00218">218</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>. +<p> +Referenced by <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. +<p> +<div class="fragment"><pre>00218 {<span class="keywordflow">return</span> _HrcParent;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_3" doxytag="NL3D::CMeshInstance::hrcLinkSon" ></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::CTransform::hrcLinkSon </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>son</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> +link son to this in Hierarchy traversal NB: link does nothing if the son node is HRC frozen +<p> +Definition at line <a class="el" href="a06568.html#l01151">1151</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00741">NL3D::CTransform::_FreezeHRCState</a>, <a class="el" href="a06569.html#l00698">NL3D::CTransform::_HrcNode</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06569.html#l00701">NL3D::CTransform::_HrcParentUnfreeze</a>, <a class="el" href="a06569.html#l00699">NL3D::CTransform::_HrcSons</a>, <a class="el" href="a06569.html#l00845">NL3D::CTransform::_WorldDate</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, and <a class="el" href="a05705.html#l00128">NL3D::CFastPtrList< CTransform >::insert()</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06350.html#l01123">NL3D::CInstanceGroup::linkRoot()</a>, <a class="el" href="a06568.html#l01380">NL3D::CTransform::setForceClipRoot()</a>, <a class="el" href="a06393.html#l00543">NL3D::CSkeletonModel::stickObjectEx()</a>, and <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>. +<p> +<div class="fragment"><pre>01152 { +01153 <span class="keywordflow">if</span>(!son) +01154 <span class="keywordflow">return</span>; +01155 +01156 <span class="comment">// If not unfrozen, can't link</span> +01157 <span class="keywordflow">if</span> (son->_FreezeHRCState != CTransform::FreezeHRCStateDisabled) +01158 <span class="keywordflow">return</span>; +01159 +01160 <span class="comment">// no-op if already me.</span> +01161 <span class="keywordflow">if</span>(son->_HrcParent==<span class="keyword">this</span>) +01162 <span class="keywordflow">return</span>; +01163 +01164 <span class="comment">// unlink from anyone</span> +01165 son->hrcUnlink(); +01166 +01167 <span class="comment">// link son to me</span> +01168 _HrcSons.insert(son, &son->_HrcNode); +01169 +01170 <span class="comment">// link me to son</span> +01171 son->_HrcParent= <span class="keyword">this</span>; +01172 +01173 <span class="comment">// Backup parent</span> +01174 son->_HrcParentUnfreeze= <span class="keyword">this</span>; +01175 +01176 <span class="comment">// my son should recompute his worldMatrix!</span> +01177 son->_WorldDate= -1; +01178 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1019_4" doxytag="NL3D::CMeshInstance::hrcUnlink" ></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::CTransform::hrcUnlink </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +unlink this from any Father in Hrc. No-op if no parent NB: unlink does nothing if the node is HRC frozen +<p> +Definition at line <a class="el" href="a06568.html#l01181">1181</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00698">NL3D::CTransform::_HrcNode</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06569.html#l00701">NL3D::CTransform::_HrcParentUnfreeze</a>, <a class="el" href="a06569.html#l00845">NL3D::CTransform::_WorldDate</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05704.html#l00037">NL3D::CFastPtrListNode::unlink()</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06348.html#l00249">NL3D::CScene::initDefaultRoots()</a>, <a class="el" href="a06348.html#l00277">NL3D::CScene::initQuadGridClipManager()</a>, <a class="el" href="a06568.html#l01380">NL3D::CTransform::setForceClipRoot()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>01182 { +01183 <span class="comment">// no-op if already NULL</span> +01184 <span class="keywordflow">if</span>(_HrcParent==NULL) +01185 <span class="keywordflow">return</span>; +01186 +01187 <span class="comment">// if ForceClipRoot flag is set, then the fx can't be linked elsewhere in the hierarchy</span> +01188 <a class="code" href="a04199.html#a6">nlassert</a>(!<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot)); +01189 +01190 <span class="comment">// unlink my parent from me.</span> +01191 _HrcNode.unlink(); +01192 +01193 <span class="comment">// unlink me from parent</span> +01194 _HrcParent= NULL; +01195 _HrcParentUnfreeze= NULL; +01196 +01197 <span class="comment">// I should recompute my worldMatrix (well not usefull since not linked, but still do it...)</span> +01198 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a>= -1; +01199 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancea27" doxytag="NL3D::CMeshInstance::initAnimatedLightIndex" ></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::CMeshBaseInstance::initAnimatedLightIndex </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <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> [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="a05993.html#l00316">316</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00229">NL3D::CMeshBaseInstance::_AnimatedLightmap</a>, <a class="el" href="a05992.html#l00234">NL3D::CMeshBase::_LightInfos</a>, <a class="el" href="a05992.html#l00101">NL3D::CMeshBase::CLightMapInfoList::AnimatedLight</a>, <a class="el" href="a05646.html#l00240">count</a>, <a class="el" href="a06348.html#l01101">NL3D::CScene::getAnimatedLightNameToIndex()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>. +<p> +<div class="fragment"><pre>00317 { +00318 <span class="comment">/* Scan lightmaps used by the shape, and for each, bind the transform shape to an </span> +00319 <span class="comment"> * animated lightmap index from the scene. This index will be used at runtime to </span> +00320 <span class="comment"> * get quickly a lightmap factor. This index is not set in the CShape because</span> +00321 <span class="comment"> * the CShape can be used with several CScene.</span> +00322 <span class="comment"> */</span> +00323 +00324 <span class="comment">// For each lightmap in the shape</span> +00325 CMeshBase *pMB = static_cast<CMeshBase*> (static_cast<IShape*> (<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>)); +00326 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a577">count</a> = pMB->_LightInfos.size (); +00327 <a class="code" href="a04558.html#a15">uint</a> i; +00328 +00329 <span class="comment">// Resize the index array</span> +00330 _AnimatedLightmap.resize (count); +00331 +00332 <span class="keywordflow">for</span> (i=0; i<<a class="code" href="a04223.html#a577">count</a>; i++) +00333 { +00334 <span class="comment">// The light info</span> +00335 CMeshBase::CLightMapInfoList &lightInfo = pMB->_LightInfos[i]; +00336 +00337 <span class="comment">// Get the lightmap info</span> +00338 _AnimatedLightmap[i] = scene.getAnimatedLightNameToIndex (lightInfo.AnimatedLight); +00339 } +00340 +00341 <span class="comment">// Must be traversed in AnimDetail, even if no channel mixer registered</span> +00342 CTransform::setIsForceAnimDetail (count != 0); +00343 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_0" doxytag="NL3D::CMeshInstance::initModel" ></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::CTransform::initModel </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Extra init for a model. this method is called by the framework at the very end of <a class="el" href="a03348.html#NL3D_1_1CScenez804_0">CScene::createModel()</a> Warning! if the model is a <a class="el" href="a02537.html">CTransformShape</a>, then when <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_0">initModel()</a> is called, Shape and other related member/setup of <a class="el" href="a02539.html#NL3D_1_1IShapea1">IShape::createInstance()</a> are not yet done (because createModel() is called at the begining in createInstance()).<p> +Because <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_0">initModel()</a> is called at the very end, deriver could implement anything like creating other models, but not deleting this model...<p> +Default behavior is to do nothing. +<p> +Reimplemented in <a class="el" href="a02713.html#NL3D_1_1CLandscapeModela25">NL3D::CLandscapeModel</a>, <a class="el" href="a03093.html#NL3D_1_1CPointLightModelb6">NL3D::CPointLightModel</a>, and <a class="el" href="a03399.html#NL3D_1_1CSkeletonModelb8">NL3D::CSkeletonModel</a>. +<p> +Definition at line <a class="el" href="a06568.html#l00214">214</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00894">NL3D::CTransform::_LoadBalancingGroup</a>, <a class="el" href="a05924.html#l00168">NL3D::CLoadBalancingTrav::getDefaultGroup()</a>, <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, and <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>. +<p> +Referenced by <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>. +<p> +<div class="fragment"><pre>00215 { +00216 <span class="comment">// assign me to the default group</span> +00217 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1049_0">_LoadBalancingGroup</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getLoadBalancingTrav().getDefaultGroup(); +00218 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstanceb8" doxytag="NL3D::CMeshInstance::initRenderFilterType" ></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::CMeshInstance::initRenderFilterType </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> [protected]</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="a06001.html#l00144">144</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a05989.html#l02463">NL3D::CMesh::getMeshGeom()</a>, and <a class="el" href="a05990.html#l00478">NL3D::CMeshGeom::hasMeshVertexProgram()</a>. +<p> +Referenced by <a class="el" href="a05989.html#l02357">NL3D::CMesh::createInstance()</a>. +<p> +<div class="fragment"><pre>00145 { +00146 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>) +00147 { +00148 <span class="comment">// If the Shape has a VP or not...</span> +00149 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a> *pMesh = NLMISC::safe_cast<CMesh *>((IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00150 +00151 <span class="keywordflow">if</span>( pMesh->getMeshGeom().hasMeshVertexProgram() ) +00152 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelp0">_RenderFilterType</a>= UScene::FilterMeshVP; +00153 <span class="keywordflow">else</span> +00154 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelp0">_RenderFilterType</a>= UScene::FilterMeshNoVP; +00155 } +00156 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_1" doxytag="NL3D::CMeshInstance::isAnimDetailable" ></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#a11">uint32</a> NL3D::CTransform::isAnimDetailable </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> +non-zero if the model is animDetailable (ie added to the animDetail list if visible) +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00440">440</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy5">NL3D::CTransform::IsAnimDetailable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>. +<p> +<div class="fragment"><pre>00440 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsAnimDetailable);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_4" doxytag="NL3D::CMeshInstance::isAsyncTextureDirty" ></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::CMeshBaseInstance::isAsyncTextureDirty </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> +see dirtAsyncTextureState() +<p> + +<p> +Definition at line <a class="el" href="a05994.html#l00187">187</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +References <a class="el" href="a05994.html#l00238">NL3D::CMeshBaseInstance::_AsyncTextureDirty</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00187">NL3D::CInstanceUser::isAsyncTextureDirty()</a>. +<p> +<div class="fragment"><pre>00187 {<span class="keywordflow">return</span> _AsyncTextureDirty;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_5" doxytag="NL3D::CMeshInstance::isAsyncTextureReady" ></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::CMeshBaseInstance::isAsyncTextureReady </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return true if all the async textures of the instances are uploaded. if was not ready before, this swap the return always true if not in async texture mode, or if <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_8">startAsyncTextureLoading()</a> has not been called since last enableAsyncTextureMode(true) +<p> +Definition at line <a class="el" href="a05993.html#l00507">507</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00240">NL3D::CMeshBaseInstance::_AsyncTextureReady</a>, <a class="el" href="a05994.html#l00237">NL3D::CMeshBaseInstance::_AsyncTextureToLoadRefCount</a>, <a class="el" href="a05994.html#l00242">NL3D::CMeshBaseInstance::_CurrentAsyncTextures</a>, <a class="el" href="a05969.html#l00047">NL3D::IDRV_MAT_MAXTEXTURES</a>, <a class="el" href="a06505.html#l00064">NL3D::ITexture::releaseDriverSetup()</a>, <a class="el" href="a06522.html#l00080">NL3D::CTextureFile::setFileName()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00155">NL3D::CInstanceUser::isAsyncTextureReady()</a>. +<p> +<div class="fragment"><pre>00508 { +00509 <span class="comment">// if ok, just quit</span> +00510 <span class="keywordflow">if</span>(_AsyncTextureReady) +00511 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00512 +00513 <span class="comment">// test if async loading ended</span> +00514 <span class="keywordflow">if</span>(_AsyncTextureToLoadRefCount==0) +00515 { +00516 <span class="comment">// must copy all fileNames into the actual Texture Files. Those are the valid ones now!</span> +00517 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<_CurrentAsyncTextures.size();i++) +00518 { +00519 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> stage=0;stage<<a class="code" href="a05363.html#a83">IDRV_MAT_MAXTEXTURES</a>;stage++) +00520 { +00521 <span class="keywordflow">if</span>(_CurrentAsyncTextures[i].IsTextureFile[stage]) +00522 { +00523 <span class="comment">// copy the texture name into the texture file.</span> +00524 CTextureFile *text= safe_cast<CTextureFile*>(<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[i].getTexture(stage)); +00525 <span class="comment">// Since the texture is really uploaded in the driver, the true driver Texture Id will</span> +00526 <span class="comment">// be bound to this texture.</span> +00527 text->setFileName(_CurrentAsyncTextures[i].TextureNames[stage]); +00528 <span class="comment">/* Since driver setup will only occurs when object become visible, it is a good idea to release</span> +00529 <span class="comment"> Old driver info, because it may points to old driver texture data (eg: old shared textureFile).</span> +00530 <span class="comment"> thus doing so release VRAM Texture Memory</span> +00531 <span class="comment"> */</span> +00532 text->releaseDriverSetup(); +00533 } +00534 } +00535 } +00536 +00537 <span class="comment">// Ok, we are now ready.</span> +00538 _AsyncTextureReady= <span class="keyword">true</span>; +00539 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00540 } +00541 <span class="keywordflow">else</span> +00542 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00543 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_3" doxytag="NL3D::CMeshInstance::isBigLightable" ></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#a11">uint32</a> NL3D::CTransform::isBigLightable </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> +non-zero if the lighting Manager must take into account the bbox of the transform. Default behavior is false. Deriver must call <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1035_0">setIsBigLightable()</a> at initialisation to change it. +<p> +Definition at line <a class="el" href="a06569.html#l00365">365</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy6">NL3D::CTransform::IsBigLightable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06570.html#l00316">NL3D::CTransformShape::getLightHotSpotInWorld()</a>. +<p> +<div class="fragment"><pre>00365 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsBigLightable);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela28" doxytag="NL3D::CMeshInstance::isClipVisible" ></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::CTransform::isClipVisible </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> +tells if the transform has been clipped in the clip traversal. +<p> +Definition at line <a class="el" href="a06569.html#l00313">313</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00867">NL3D::CTransform::_Visible</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06393.html#l00972">NL3D::CSkeletonModel::computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06393.html#l01620">NL3D::CSkeletonModel::computeRenderedBBox()</a>, <a class="el" href="a06573.html#l00204">NL3D::CTransformUser::getLastClippedState()</a>, <a class="el" href="a06393.html#l00374">NL3D::CSkeletonModel::isBoneComputed()</a>, <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, and <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>. +<p> +<div class="fragment"><pre>00314 { +00315 <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>; +00316 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_2" doxytag="NL3D::CMeshInstance::isCluster" ></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#a11">uint32</a> NL3D::CTransform::isCluster </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> +non-zero if the <a class="el" href="a02316.html">CTransform</a> can be casted to a <a class="el" href="a02362.html">CCluster</a> +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00451">451</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy7">NL3D::CTransform::IsCluster</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>. +<p> +<div class="fragment"><pre>00451 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsCluster);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_9" doxytag="NL3D::CMeshInstance::isGeneratingShadowMap" ></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::CTransform::isGeneratingShadowMap </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> +true if the instance cast shadow. By default false +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00515">515</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy13">NL3D::CTransform::IsGeneratingShadowMap</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, and <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>. +<p> +<div class="fragment"><pre>00515 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsGeneratingShadowMap)!=0;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela29" doxytag="NL3D::CMeshInstance::isHrcVisible" ></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::CTransform::isHrcVisible </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> +tells if the transform has been determined as visible in the hrc traversal +<p> +Reimplemented in <a class="el" href="a03093.html#NL3D_1_1CPointLightModeld0">NL3D::CPointLightModel</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00306">306</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00844">NL3D::CTransform::_WorldVis</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06393.html#l01987">NL3D::CSkeletonModel::computeWorldBBoxForShadow()</a>, <a class="el" href="a06001.html#l00352">computeWorldBBoxForShadow()</a>, <a class="el" href="a06573.html#l00198">NL3D::CTransformUser::getLastWorldVisState()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">renderIntoSkeletonShadowMap()</a>, and <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>. +<p> +<div class="fragment"><pre>00307 { +00308 <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>; +00309 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_4" doxytag="NL3D::CMeshInstance::isLightable" ></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#a11">uint32</a> NL3D::CTransform::isLightable </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> +true if the model can be lighted (such as <a class="el" href="a02873.html">CMeshBaseInstance</a>) Default behavior is false. Deriver must use setIsLightable(true) method if the instance can be lighted. <dl compact><dt><b>Returns:</b></dt><dd>0 if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_2">getUserLightable()</a> is false, or if the model can't be lighted at all. else return a non-zero value</dd></dl> + +<p> +Definition at line <a class="el" href="a06569.html#l00337">337</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy9">NL3D::CTransform::IsFinalLightable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>, <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. +<p> +<div class="fragment"><pre>00337 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsFinalLightable);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela30" doxytag="NL3D::CMeshInstance::isLinkToQuadCluster" ></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::CTransformShape::isLinkToQuadCluster </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> +true if the model is linked to a quadCluster +<p> + +<p> +Definition at line <a class="el" href="a06571.html#l00141">141</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +References <a class="el" href="a06571.html#l00196">NL3D::CTransformShape::_QuadClusterListNode</a>, and <a class="el" href="a05705.html#l00055">NL3D::CFastPtrListNode::isLinked()</a>. +<p> +<div class="fragment"><pre>00141 {<span class="keywordflow">return</span> _QuadClusterListNode.isLinked();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_3" doxytag="NL3D::CMeshInstance::isLoadBalancable" ></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#a11">uint32</a> NL3D::CTransform::isLoadBalancable </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> +non-zero if the model is loadBalancable (ie added to the loadBalancing list if visible) +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00442">442</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy15">NL3D::CTransform::IsLoadBalancable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. +<p> +<div class="fragment"><pre>00442 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsLoadBalancable);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_4" doxytag="NL3D::CMeshInstance::isMeshBaseInstance" ></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#a11">uint32</a> NL3D::CTransform::isMeshBaseInstance </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> +non-zero if the <a class="el" href="a02316.html">CTransform</a> can be casted to a <a class="el" href="a02873.html">CMeshBaseInstance</a> +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00447">447</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy16">NL3D::CTransform::IsMeshBaseInstance</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00131">NL3D::CInstanceUser::enableAsyncTextureMode()</a>, <a class="el" href="a05828.html#l00171">NL3D::CInstanceUser::getAsyncTextureDistance()</a>, <a class="el" href="a05828.html#l00139">NL3D::CInstanceUser::getAsyncTextureMode()</a>, <a class="el" href="a05828.html#l00187">NL3D::CInstanceUser::isAsyncTextureDirty()</a>, <a class="el" href="a05828.html#l00155">NL3D::CInstanceUser::isAsyncTextureReady()</a>, <a class="el" href="a05828.html#l00179">NL3D::CInstanceUser::setAsyncTextureDirty()</a>, <a class="el" href="a05828.html#l00163">NL3D::CInstanceUser::setAsyncTextureDistance()</a>, and <a class="el" href="a05828.html#l00147">NL3D::CInstanceUser::startAsyncTextureLoading()</a>. +<p> +<div class="fragment"><pre>00447 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsMeshBaseInstance);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_0" doxytag="NL3D::CMeshInstance::isNeedUpdateFrozenStaticLightSetup" ></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#a11">uint32</a> NL3D::CTransform::isNeedUpdateFrozenStaticLightSetup </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, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +non-zero if the object has a FrozenStaticLightSetup not correclty updated. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00631">631</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy17">NL3D::CTransform::IsNeedUpdateFrozenStaticLightSetup</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>. +<p> +<div class="fragment"><pre>00631 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsNeedUpdateFrozenStaticLightSetup);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_1" doxytag="NL3D::CMeshInstance::isNeedUpdateLighting" ></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#a11">uint32</a> NL3D::CTransform::isNeedUpdateLighting </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, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +non-zero if the object needs to updatelighting. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00629">629</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy18">NL3D::CTransform::IsNeedUpdateLighting</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, and <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>. +<p> +<div class="fragment"><pre>00629 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsNeedUpdateLighting);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela31" doxytag="NL3D::CMeshInstance::isOpaque" ></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#a11">uint32</a> NL3D::CTransform::isOpaque </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00173">173</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00239">NL3D::CTransformUser::isOpaque()</a>, <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>. +<p> +<div class="fragment"><pre>00173 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsOpaque); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela32" doxytag="NL3D::CMeshInstance::isQuadGridClipEnabled" ></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#a11">uint32</a> NL3D::CTransform::isQuadGridClipEnabled </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> +special feature for <a class="el" href="a03287.html">CQuadGridClipManager</a>. return a non-zero value if true +<p> +Definition at line <a class="el" href="a06569.html#l00294">294</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy28">NL3D::CTransform::QuadGridClipEnabled</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>. +<p> +<div class="fragment"><pre>00294 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(QuadGridClipEnabled);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_5" doxytag="NL3D::CMeshInstance::isRenderable" ></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#a11">uint32</a> NL3D::CTransform::isRenderable </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> +non-zero if the model is renderable (ie something may appear on screen) +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00444">444</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy20">NL3D::CTransform::IsRenderable</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. +<p> +<div class="fragment"><pre>00444 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsRenderable);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1027_0" doxytag="NL3D::CMeshInstance::isSkeleton" ></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#a11">uint32</a> NL3D::CTransform::isSkeleton </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 non-zero if I am a skeleton. if yes, static_cast<CSkeletonModel*> may be used +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00421">421</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy23">NL3D::CTransform::IsSkeleton</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>, and <a class="el" href="a05431.html#l00060">NL3D::CAnimDetailTrav::traverse()</a>. +<p> +<div class="fragment"><pre>00421 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsSkeleton);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez461_1" doxytag="NL3D::CMeshInstance::isSkinnable" ></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::CMeshInstance::isSkinnable </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> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +I can be skinned if the mesh is. +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00113">113</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a05989.html#l02463">NL3D::CMesh::getMeshGeom()</a>, and <a class="el" href="a05990.html#l00428">NL3D::CMeshGeom::isSkinned()</a>. +<p> +<div class="fragment"><pre>00114 { +00115 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>==NULL) +00116 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00117 +00118 <span class="comment">// Get a pointer on the shape</span> +00119 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a> *pMesh = NLMISC::safe_cast<CMesh *>((IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00120 +00121 <span class="comment">// true if the mesh is skinned</span> +00122 <span class="keywordflow">return</span> pMesh->getMeshGeom().isSkinned(); +00123 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1027_1" doxytag="NL3D::CMeshInstance::isSkinned" ></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#a11">uint32</a> NL3D::CTransform::isSkinned </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> +non-zero if the model is skinned onto a skeleton. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00423">423</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy24">NL3D::CTransform::IsSkinned</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06568.html#l00287">NL3D::CTransform::heritVisibility()</a>, <a class="el" href="a06568.html#l00223">NL3D::CTransform::hide()</a>, <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</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="a06011.html#l00726">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06005.html#l01318">NL3D::CMeshMRMGeom::renderSkinGroupGeom()</a>, <a class="el" href="a06568.html#l00590">NL3D::CTransform::setIsForceAnimDetail()</a>, <a class="el" href="a06568.html#l00255">NL3D::CTransform::setOpacity()</a>, <a class="el" href="a06568.html#l00240">NL3D::CTransform::setTransparency()</a>, <a class="el" href="a06568.html#l00271">NL3D::CTransform::show()</a>, <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>00423 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsSkinned);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela33" doxytag="NL3D::CMeshInstance::isStarted" ></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::CTransformShape::isStarted </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> + +<p> +Reimplemented in <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez886_1">NL3D::CSegRemanence</a>. +<p> +Definition at line <a class="el" href="a06571.html#l00132">132</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a05829.html#l00120">NL3D::CInstanceUser::isStarted()</a>. +<p> +<div class="fragment"><pre>00132 { <span class="keywordflow">return</span> <span class="keyword">false</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez5_0" doxytag="NL3D::CMeshInstance::isTouched" ></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#a11">uint32</a> NL3D::IAnimatable::isTouched </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>valueId</em> </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 non 0 int if the value as been touched else 0.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>valueId</em> </td><td>is the animated value ID in the object we want to test the touch flag. or it may be an OwnerBit.</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05434.html#l00184">184</a> of file <a class="el" href="a05434.html">animatable.h</a>. +<p> +References <a class="el" href="a05434.html#l00206">NL3D::IAnimatable::_BitSet</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06575.html#l00334">NL3D::ITransformable::needCompute()</a>, <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, and <a class="el" href="a05437.html#l00197">NL3D::CAnimatedMaterial::update()</a>. +<p> +<div class="fragment"><pre>00185 { +00186 <span class="keywordflow">return</span> _BitSet&(1<<valueId); +00187 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_6" doxytag="NL3D::CMeshInstance::isTransformShape" ></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#a11">uint32</a> NL3D::CTransform::isTransformShape </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> +non-zero if the <a class="el" href="a02316.html">CTransform</a> can be casted to a <a class="el" href="a02537.html">CTransformShape</a> +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00449">449</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy25">NL3D::CTransform::IsTransformShape</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. +<p> +<div class="fragment"><pre>00449 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsTransformShape);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela34" doxytag="NL3D::CMeshInstance::isTransparent" ></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#a11">uint32</a> NL3D::CTransform::isTransparent </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00174">174</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00244">NL3D::CTransformUser::isTransparent()</a>, <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>. +<p> +<div class="fragment"><pre>00174 { <span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsTransparent); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1085_0" doxytag="NL3D::CMeshInstance::lookAt" ></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::ITransformable::lookAt </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>eye</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>target</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>roll</em> = 0.f</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup Matrix by the lookAt method. Work only in DirectMatrix mode and RotQuat mode (not euler...).<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>eye</em> </td><td>is the coordinate of the object. </td></tr> + <tr><td valign=top><em>target</em> </td><td>is the point the object look at. </td></tr> + <tr><td valign=top><em>roll</em> </td><td>is the roll angle in radian along the object's Y axis.</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a06574.html#l00169">169</a> of file <a class="el" href="a06574.html">transformable.cpp</a>. +<p> +References <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">NL3D::ITransformable::DirectMatrix</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a05972.html#l00353">NLMISC::CMatrix::getRot()</a>, <a class="el" href="a05972.html#l00200">NLMISC::CMatrix::identity()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06682.html#l00119">NLMISC::CVector::normalize()</a>, <a class="el" href="a05972.html#l00538">NLMISC::CMatrix::rotateY()</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a06575.html#l00174">NL3D::ITransformable::setMatrix()</a>, <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</a>, <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>, <a class="el" href="a06575.html#l00138">NL3D::ITransformable::setRotQuat()</a>, and <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>. +<p> +Referenced by <a class="el" href="a06577.html#l00206">NL3D::CTransformableUser::lookAt()</a>, and <a class="el" href="a05530.html#l00164">NL3D::CCamera::update()</a>. +<p> +<div class="fragment"><pre>00170 { +00171 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat || _Mode==DirectMatrix); +00172 +00173 <span class="comment">// Roll matrix</span> +00174 CMatrix rollMT; +00175 rollMT.identity(); +00176 <span class="keywordflow">if</span> (roll!=0.f) +00177 rollMT.rotateY (roll); +00178 +00179 <span class="comment">// Make the target base</span> +00180 CVector j=target; +00181 j-=eye; +00182 j.normalize(); +00183 CVector i=j^CVector (0,0,1.f); +00184 CVector k=i^j; +00185 k.normalize(); +00186 i=j^k; +00187 i.normalize(); +00188 +00189 <span class="comment">// Make the target matrix</span> +00190 CMatrix targetMT; +00191 targetMT.identity(); +00192 targetMT.setRot (i, j, k); +00193 targetMT.setPos (eye); +00194 +00195 <span class="comment">// Compose matrix</span> +00196 targetMT*=rollMT; +00197 +00198 <span class="comment">// Set the matrix</span> +00199 <span class="keywordflow">if</span>(_Mode==<a class="code" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">DirectMatrix</a>) +00200 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_0">setMatrix</a> (targetMT); +00201 <span class="keywordflow">else</span> +00202 { +00203 <span class="comment">// transfrom to quaternion mode.</span> +00204 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(1,1,1)); +00205 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_2">setPivot</a>(CVector::Null); +00206 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_4">setPos</a>(targetMT.getPos()); +00207 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_7">setRotQuat</a>(targetMT.getRot()); +00208 } +00209 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_10" doxytag="NL3D::CMeshInstance::modelCanCastShadowMap" ></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#a11">uint32</a> NL3D::CTransform::modelCanCastShadowMap </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> +true if the model provide a method to support shadowMap generation +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00480">480</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy21">NL3D::CTransform::IsShadowMapCaster</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06568.html#l01335">NL3D::CTransform::enableCastShadowMap()</a>. +<p> +<div class="fragment"><pre>00480 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsShadowMapCaster);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_11" doxytag="NL3D::CMeshInstance::modelCanReceiveShadowMap" ></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#a11">uint32</a> NL3D::CTransform::modelCanReceiveShadowMap </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> +true if the model provide a method to support shadowMap receiving +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00482">482</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy22">NL3D::CTransform::IsShadowMapReceiver</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06569.html#l00475">NL3D::CTransform::enableReceiveShadowMap()</a>. +<p> +<div class="fragment"><pre>00482 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsShadowMapReceiver);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1057_1" doxytag="NL3D::CMeshInstance::profileRender" ></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::CTransformShape::profileRender </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Called at RenderTrav to profile current render. no-op per default. +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1017_1">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06570.html#l00248">248</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06330.html#l00145">NL3D::CRenderTrav::isCurrentPassOpaque()</a>, and <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>. +<p> +<div class="fragment"><pre>00249 { +00250 <span class="comment">// profile the shape.</span> +00251 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>) +00252 { +00253 CRenderTrav &rdrTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getRenderTrav(); +00254 <span class="keywordtype">bool</span> currentPassOpaque= rdrTrav.isCurrentPassOpaque(); +00255 +00256 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>->profileSceneRender( &rdrTrav, <span class="keyword">this</span>, currentPassOpaque ); +00257 } +00258 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_12" doxytag="NL3D::CMeshInstance::receiveShadowMap" ></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::CTransform::receiveShadowMap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03370.html">CShadowMap</a> * </td> + <td class="mdname" nowrap> <em>shadowMap</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>casterPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02839.html">CMaterial</a> & </td> + <td class="mdname" nowrap> <em>shadowMat</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> +For receivers. Modulate the Object with a ShadowMap. The model shoud render in the scene driver a version of its geometry simplified, and modulate the background with shadowColor. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>casterPos</em> </td><td>the world position of the caster model. </td></tr> + <tr><td valign=top><em>shadowMat</em> </td><td>a correclty setuped material with good ShadowColor, ready to be rendered.</td></tr> + </table> +</dl> + +<p> +Reimplemented in <a class="el" href="a02713.html#NL3D_1_1CLandscapeModelz282_2">NL3D::CLandscapeModel</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00506">506</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>. +<p> +<div class="fragment"><pre>00506 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancee5" doxytag="NL3D::CMeshInstance::registerBasic" ></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::CMeshInstance::registerBasic </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Call at the begining of the program, to register the model. +<p> + +<p> +Reimplemented from <a class="el" href="a02873.html#NL3D_1_1CMeshBaseInstancee5">NL3D::CMeshBaseInstance</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00073">73</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00051">NL3D::MeshBaseInstanceId</a>, and <a class="el" href="a06002.html#l00045">NL3D::MeshInstanceId</a>. +<p> +<div class="fragment"><pre>00074 { +00075 CScene::registerModel(MeshInstanceId, MeshBaseInstanceId, CMeshInstance::creator); +00076 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez437_1" doxytag="NL3D::CMeshInstance::registerToChannelMixer" ></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::CMeshBaseInstance::registerToChannelMixer </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02335.html">CChannelMixer</a> * </td> + <td class="mdname" nowrap> <em>chanMixer</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::string & </td> + <td class="mdname" nowrap> <em>prefix</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +register transform channels (in global anim mode). <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela35">setChannelMixerOwnerShip</a></dd></dl> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1023_0">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a05993.html#l00076">76</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00231">NL3D::CMeshBaseInstance::_AnimatedMorphFactor</a>, <a class="el" href="a06768.html#l02889">getName()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>. +<p> +<div class="fragment"><pre>00077 { +00078 <a class="code" href="a04558.html#a11">uint32</a> i; +00079 CTransformShape::registerToChannelMixer(chanMixer, prefix); +00080 +00081 <span class="comment">// Add any materials.</span> +00082 <span class="keywordflow">for</span> (i = 0; i < _AnimatedMaterials.size(); i++) +00083 { +00084 <span class="comment">// append material matname.*</span> +00085 _AnimatedMaterials[i].registerToChannelMixer(chanMixer, prefix + _AnimatedMaterials[i].getMaterialName() + <span class="stringliteral">"."</span>); +00086 } +00087 +00088 <span class="comment">// Add any morph</span> +00089 <span class="keywordflow">for</span> (i = 0; i < _AnimatedMorphFactor.size(); i++) +00090 { +00091 _AnimatedMorphFactor[i].registerToChannelMixer(chanMixer, prefix + _AnimatedMorphFactor[i].<a class="code" href="a05345.html#a33">getName</a>()); +00092 } +00093 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez465_3" doxytag="NL3D::CMeshInstance::renderIntoSkeletonShadowMap" ></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::CMeshInstance::renderIntoSkeletonShadowMap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03399.html">CSkeletonModel</a> * </td> + <td class="mdname" nowrap> <em>rootSkeleton</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02839.html">CMaterial</a> & </td> + <td class="mdname" nowrap> <em>castMat</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Special For Skeleton Caster. Render into the AuxDriver the mesh, within the current setuped Frustum/ViewMatrix. no-op by default, or if hidden in HRC!! <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>rootSkeleton</em> </td><td>the skeleton which is currently rendering its shadowMap</td></tr> + </table> +</dl> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_13">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00367">367</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a02434.html#NL3D_1_1IDrivera2">NL3D::IDriver::activeVertexBuffer()</a>, <a class="el" href="a06330.html#l00135">NL3D::CRenderTrav::getAuxDriver()</a>, <a class="el" href="a05989.html#l02437">NL3D::CMesh::getNbMatrixBlock()</a>, <a class="el" href="a05989.html#l02442">NL3D::CMesh::getNbRdrPass()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06575.html#l00231">NL3D::ITransformable::getPos()</a>, <a class="el" href="a05989.html#l02447">NL3D::CMesh::getRdrPassPrimitiveBlock()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a05989.html#l02432">NL3D::CMesh::getVertexBuffer()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06569.html#l00306">NL3D::CTransform::isHrcVisible()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera51">NL3D::IDriver::render()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera68">NL3D::IDriver::setupModelMatrix()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00368 { +00369 <span class="comment">/*</span> +00370 <span class="comment"> Yoyo: Not Very Robuts here:</span> +00371 <span class="comment"> - suppose the MeshInstance don't have sons.</span> +00372 <span class="comment"> - suppose that the VertexBuffer doesn't have VertexColor (else castMat.color unused).</span> +00373 <span class="comment"> */</span> +00374 +00375 <span class="comment">// If even not visible or empty, no-op</span> +00376 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela29">isHrcVisible</a>() || !<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>) +00377 <span class="keywordflow">return</span>; +00378 +00379 <span class="comment">// render into aux Driver</span> +00380 IDriver *driver= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getRenderTrav().getAuxDriver(); +00381 +00382 <span class="comment">// **** Render the Skeleton Skins</span> +00383 <span class="comment">// The model Matrix is special here. It must be the Skeleton World Matrix, minus The Root Skeleton pos.</span> +00384 CMatrix localPosMatrix; +00385 localPosMatrix.setRot( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>() ); +00386 <span class="comment">// NB: if this==rootSkeleton, then the final pos will be CVector::Null</span> +00387 localPosMatrix.setPos( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>().<a class="code" href="a02278.html#NL3D_1_1ITransformablez1083_2">getPos</a>() - rootSkeleton->getWorldMatrix().getPos() ); +00388 driver->setupModelMatrix(localPosMatrix); +00389 +00390 <span class="comment">// render the Mesh</span> +00391 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a> *mesh= (<a class="code" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a>*)(IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>; +00392 driver->activeVertexBuffer( const_cast<CVertexBuffer&>(mesh->getVertexBuffer()) ); +00393 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> mb=0;mb<mesh->getNbMatrixBlock();mb++) +00394 { +00395 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> rp=0;rp<mesh->getNbRdrPass(mb);rp++) +00396 { +00397 <span class="keyword">const</span> CPrimitiveBlock &pb= mesh->getRdrPassPrimitiveBlock(mb, rp); +00398 driver->render(const_cast<CPrimitiveBlock&>(pb), castMat); +00399 } +00400 } +00401 +00402 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_3" doxytag="NL3D::CMeshInstance::renderShadowSkinGeom" ></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="a04558.html#a14">sint</a> NL3D::CTransform::renderShadowSkinGeom </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="mdname" nowrap> <em>remainingVertices</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a> * </td> + <td class="mdname" nowrap> <em>vbDest</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL. +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_3">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_3">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00612">612</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00612 {<span class="keywordflow">return</span> 0;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_4" doxytag="NL3D::CMeshInstance::renderShadowSkinPrimitives" ></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::CTransform::renderShadowSkinPrimitives </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02839.html">CMaterial</a> & </td> + <td class="mdname" nowrap> <em>castMat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><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="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>baseVertex</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL. +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_4">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_4">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00613">613</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00613 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez461_2" doxytag="NL3D::CMeshInstance::renderSkin" ></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::CMeshInstance::renderSkin </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>alphaMRM</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Implementation of the renderSkin. +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_5">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00127">127</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a05989.html#l02463">NL3D::CMesh::getMeshGeom()</a>, <a class="el" href="a06569.html#l00203">NL3D::CTransform::getVisibility()</a>, and <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>. +<p> +<div class="fragment"><pre>00128 { +00129 <span class="comment">// Don't setup lighting or matrix in Skin. Done by the skeleton</span> +00130 +00131 <span class="keywordflow">if</span>(<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a> && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela24">getVisibility</a>() != CHrcTrav::Hide) +00132 { +00133 <span class="comment">// Get a pointer on the shape</span> +00134 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a> *pMesh = NLMISC::safe_cast<CMesh *>((IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00135 +00136 <span class="comment">// render the meshGeom</span> +00137 CMeshGeom &meshGeom= const_cast<CMeshGeom&>(pMesh->getMeshGeom ()); +00138 meshGeom.renderSkin( <span class="keyword">this</span>, alphaMRM ); +00139 } +00140 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_6" doxytag="NL3D::CMeshInstance::renderSkinGroupGeom" ></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="a04558.html#a14">sint</a> NL3D::CTransform::renderSkinGroupGeom </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>alphaMRM</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>remainingVertices</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a> * </td> + <td class="mdname" nowrap> <em>dest</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_11">supportSkinGrouping()</a>, called to transform the VBuffer, and store it into dest. <dl compact><dt><b>Returns:</b></dt><dd>number of vertices added to the VBuffer, or -1 if > reaminingVertices</dd></dl> + +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_6">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_6">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00601">601</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00601 {<span class="keywordflow">return</span> 0;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_7" doxytag="NL3D::CMeshInstance::renderSkinGroupPrimitives" ></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::CTransform::renderSkinGroupPrimitives </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="mdname" nowrap> <em>baseVertex</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a03407.html">CSkinSpecularRdrPass</a> > & </td> + <td class="mdname" nowrap> <em>specularRdrPasses</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>skinIndex</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_11">supportSkinGrouping()</a>, called to render the primitives of the already skinned vertices (VB activated in the driver) Optionnaly, fill specRdrPasses with specular rdrPass to sort (used for specular grouping). <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>baseVertex</em> </td><td>value to add to each PBlock index.</td></tr> + </table> +</dl> + +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_7">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_7">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00606">606</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00606 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_8" doxytag="NL3D::CMeshInstance::renderSkinGroupSpecularRdrPass" ></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::CTransform::renderSkinGroupSpecularRdrPass </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>rdrPass</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Render a specific specular renderPass returned by renderSkinGroupPrimitives. +<p> + +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_8">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_8">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00608">608</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00608 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_5" doxytag="NL3D::CMeshInstance::resetLighting" ></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::CTransform::resetLighting </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +reset lights which influence this models. NB: the model is removed from all lights's list (except FrozenStaticLightSetup). Called by light rendering.<p> +NB: the model is NOT removed from LightingManager (with eraseStaticLightedModel()). +<p> +Definition at line <a class="el" href="a06568.html#l00988">988</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a05894.html#l00079">NL3D::CLightContribution::FrozenStaticLightSetup</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy18">NL3D::CTransform::IsNeedUpdateLighting</a>, <a class="el" href="a06569.html#l00629">NL3D::CTransform::isNeedUpdateLighting()</a>, <a class="el" href="a05894.html#l00042">NL3D_MAX_LIGHT_CONTRIBUTION</a>, <a class="el" href="a05894.html#l00084">NL3D::CLightContribution::NumFrozenStaticLight</a>, <a class="el" href="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06179.html#l00418">NL3D::CPointLight::removeLightedModel()</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, <a class="el" href="a05894.html#l00069">NL3D::CLightContribution::TransformIterator</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05901.html#l00151">NL3D::CLightingManager::addDynamicLight()</a>, <a class="el" href="a06568.html#l01028">NL3D::CTransform::freezeStaticLightSetup()</a>, <a class="el" href="a06179.html#l00393">NL3D::CPointLight::resetLightedModels()</a>, <a class="el" href="a06568.html#l01061">NL3D::CTransform::unfreezeStaticLightSetup()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. +<p> +<div class="fragment"><pre>00989 { +00990 <span class="comment">// if the model is already isNeedUpdateLighting, his light setup is reseted.</span> +00991 <span class="comment">// so no need to reset again</span> +00992 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_1">isNeedUpdateLighting</a>()) +00993 <span class="keywordflow">return</span>; +00994 +00995 +00996 <span class="comment">// For all light not in FrozenStaticLightSetup, remove me from their list</span> +00997 <a class="code" href="a04558.html#a15">uint</a> startLight= 0; +00998 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenStaticLightSetup) +00999 { +01000 startLight= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.NumFrozenStaticLight; +01001 } +01002 +01003 <span class="comment">// for all light in the list, remove me from their list.</span> +01004 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=startLight; i<<a class="code" href="a04471.html#a0">NL3D_MAX_LIGHT_CONTRIBUTION</a>; i++) +01005 { +01006 CPointLight *pl= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[i]; +01007 <span class="comment">// if end of list, break.</span> +01008 <span class="keywordflow">if</span>(!pl) +01009 <span class="keywordflow">break</span>; +01010 <span class="keywordflow">else</span> +01011 { +01012 <span class="comment">// remove me from this light.</span> +01013 pl->removeLightedModel(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.TransformIterator[i]); +01014 } +01015 } +01016 <span class="comment">// empty the list.</span> +01017 <span class="keywordflow">if</span>(startLight<<a class="code" href="a04471.html#a0">NL3D_MAX_LIGHT_CONTRIBUTION</a>) +01018 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[startLight]= NULL; +01019 +01020 +01021 <span class="comment">// the model needs to update his lighting.</span> +01022 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsNeedUpdateLighting, <span class="keyword">true</span>); +01023 +01024 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez5_1" doxytag="NL3D::CMeshInstance::resize" ></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::IAnimatable::resize </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>count</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Change value count, bit are set to 0<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>count</em> </td><td>is the new value count.</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05434.html#l00195">195</a> of file <a class="el" href="a05434.html">animatable.h</a>. +<p> +References <a class="el" href="a05646.html#l00240">count</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00196 { +00197 <span class="comment">// with the "uint32 _BitSet" implementation, juste check the size is correct</span> +00198 <a class="code" href="a04199.html#a6">nlassert</a>(count<=32); +00199 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancea36" doxytag="NL3D::CMeshInstance::selectTextureSet" ></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::CMeshBaseInstance::selectTextureSet </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>id</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> +If there are selectable texture in this mesh shape, this replace the matching material instances with the right texture If <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_3">getAsyncTextureMode()</a>==true, then this replace the AsyncTexture fileNames, instead of the Materials file Names. +<p> +Definition at line <a class="el" href="a05993.html#l00268">268</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00239">NL3D::CMeshBaseInstance::_AsyncTextureMode</a>, <a class="el" href="a05994.html#l00082">NL3D::CMeshBaseInstance::AsyncTextures</a>, <a class="el" href="a06506.html#l00368">NL3D::ITexture::buildNonSelectableVersion()</a>, <a class="el" href="a06522.html#l00089">NL3D::CTextureFile::getFileName()</a>, <a class="el" href="a05992.html#l00179">NL3D::CMeshBase::getMaterial()</a>, <a class="el" href="a05992.html#l00173">NL3D::CMeshBase::getNbMaterial()</a>, <a class="el" href="a05641.html#l00046">NL3D::CMaterial::getTexture()</a>, <a class="el" href="a05969.html#l00047">NL3D::IDRV_MAT_MAXTEXTURES</a>, <a class="el" href="a06506.html#l00363">NL3D::ITexture::isSelectable()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05994.html#l00185">NL3D::CMeshBaseInstance::setAsyncTextureDirty()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>. +<p> +<div class="fragment"><pre>00269 { +00270 <a class="code" href="a04199.html#a6">nlassert</a>(Shape); +00271 CMeshBase *mb = NLMISC::safe_cast<CMeshBase *>((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00272 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> numMat = mb->getNbMaterial(); +00273 <a class="code" href="a04199.html#a6">nlassert</a>(numMat == <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>.size()); +00274 <span class="comment">// see which material are selectable</span> +00275 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> k = 0; k < numMat; ++k) +00276 { +00277 CMaterial &mat = mb->getMaterial(k); +00278 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a05373.html#a2">l</a> = 0; <a class="code" href="a05373.html#a2">l</a> < <a class="code" href="a05363.html#a83">IDRV_MAT_MAXTEXTURES</a>; ++<a class="code" href="a05373.html#a2">l</a>) +00279 { +00280 <span class="keywordflow">if</span> (mat.getTexture(l) && mat.getTexture(l)->isSelectable()) +00281 { +00282 <span class="comment">// use a smartPtr so the textFile will be released if just used to set the name for AsyncTextures.</span> +00283 <a class="code" href="a03408.html">CSmartPtr<ITexture></a> texNSV= mat.getTexture(l)->buildNonSelectableVersion(<span class="keywordtype">id</span>); +00284 +00285 <span class="comment">// std case: just replace the texture.</span> +00286 <span class="keywordflow">if</span>(!_AsyncTextureMode) +00287 { +00288 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[k].setTexture(l, texNSV); +00289 } +00290 <span class="comment">// Async case</span> +00291 <span class="keywordflow">else</span> +00292 { +00293 <span class="comment">// If texture file, must copy the texture name</span> +00294 <span class="keywordflow">if</span>(<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[k].IsTextureFile[<a class="code" href="a05373.html#a2">l</a>]) +00295 { +00296 CTextureFile *textFile= safe_cast<CTextureFile*>((ITexture*)texNSV); +00297 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[k].TextureNames[<a class="code" href="a05373.html#a2">l</a>]= textFile->getFileName(); +00298 } +00299 <span class="comment">// else replace the texture.</span> +00300 <span class="keywordflow">else</span> +00301 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[k].setTexture(l, texNSV); +00302 } +00303 } +00304 } +00305 } +00306 +00307 <span class="comment">// Flag the instance as AsyncTextureDirty if in this mode</span> +00308 <span class="keywordflow">if</span>(_AsyncTextureMode) +00309 { +00310 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_6">setAsyncTextureDirty</a>(<span class="keyword">true</span>); +00311 } +00312 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez461_3" doxytag="NL3D::CMeshInstance::setApplySkin" ></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::CMeshInstance::setApplySkin </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>state</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Call when the skin is applied on the skeleton. +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_9">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00079">79</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a05989.html#l02468">NL3D::CMesh::computeBonesId()</a>, and <a class="el" href="a05989.html#l02476">NL3D::CMesh::updateSkeletonUsage()</a>. +<p> +<div class="fragment"><pre>00080 { +00081 <span class="comment">// Call parents method</span> +00082 CMeshBaseInstance::setApplySkin (state); +00083 +00084 <span class="comment">// Get a pointer on the shape</span> +00085 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancen0">CMesh</a> *pMesh = NLMISC::safe_cast<CMesh *>((IShape*)<a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00086 +00087 <span class="comment">// Recompute the id</span> +00088 <span class="keywordflow">if</span> (state) +00089 { +00090 pMesh->computeBonesId (_FatherSkeletonModel); +00091 } +00092 +00093 <span class="comment">// update the skeleton usage according to the mesh.</span> +00094 pMesh->updateSkeletonUsage(_FatherSkeletonModel, state); +00095 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_6" doxytag="NL3D::CMeshInstance::setAsyncTextureDirty" ></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::CMeshBaseInstance::setAsyncTextureDirty </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>flag</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +User is free to flag this state, to know if <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_8">startAsyncTextureLoading()</a> should be called. Internal system don't use this flag. Default is false +<p> +Definition at line <a class="el" href="a05994.html#l00185">185</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +References <a class="el" href="a05994.html#l00238">NL3D::CMeshBaseInstance::_AsyncTextureDirty</a>. +<p> +Referenced by <a class="el" href="a05993.html#l00375">NL3D::CMeshBaseInstance::enableAsyncTextureMode()</a>, <a class="el" href="a05993.html#l00268">NL3D::CMeshBaseInstance::selectTextureSet()</a>, <a class="el" href="a05828.html#l00179">NL3D::CInstanceUser::setAsyncTextureDirty()</a>, and <a class="el" href="a05826.html#l00074">NL3D::CInstanceMaterialUser::setTextureFileName()</a>. +<p> +<div class="fragment"><pre>00185 {_AsyncTextureDirty= flag;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_7" doxytag="NL3D::CMeshInstance::setAsyncTextureDistance" ></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::CMeshBaseInstance::setAsyncTextureDistance </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><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For Lod of texture, and load balancing, set the approximate distance of the instance to the camera. +<p> +Definition at line <a class="el" href="a05994.html#l00178">178</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +References <a class="el" href="a05994.html#l00244">NL3D::CMeshBaseInstance::_AsyncTextureDistance</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00163">NL3D::CInstanceUser::setAsyncTextureDistance()</a>. +<p> +<div class="fragment"><pre>00178 {_AsyncTextureDistance= dist;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez445_3" doxytag="NL3D::CMeshInstance::setBlendShapeFactor" ></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::CMeshBaseInstance::setBlendShapeFactor </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname" nowrap> <em>BlendShapeName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>rFactor</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [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="a05993.html#l00154">154</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00231">NL3D::CMeshBaseInstance::_AnimatedMorphFactor</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06350.html#l01037">NL3D::CInstanceGroup::setBlendShapeFactor()</a>. +<p> +<div class="fragment"><pre>00155 { +00156 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> i = 0; i < _AnimatedMorphFactor.size(); ++i) +00157 <span class="keywordflow">if</span> (BlendShapeName == _AnimatedMorphFactor[i].getName()) +00158 { +00159 _AnimatedMorphFactor[i].setFactor (rFactor); +00160 } +00161 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela35" doxytag="NL3D::CMeshInstance::setChannelMixerOwnerShip" ></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::CTransform::setChannelMixerOwnerShip </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>enable</em> = true </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +This force gives this object ownership of the channel mixer it is registered to, so it will delete it when the dtor is called. It should be called AFTER this object has been registered to a channel mixer, because a new registration will broke the ownership. This is useful for automatic animations, when there's no owner of the channel mixer that could delete it. +<p> +Definition at line <a class="el" href="a06569.html#l00256">256</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy8">NL3D::CTransform::IsDeleteChannelMixer</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>, and <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>. +<p> +<div class="fragment"><pre>00256 { <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsDeleteChannelMixer, enable); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela36" doxytag="NL3D::CMeshInstance::setClusterSystem" ></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::CTransform::setClusterSystem </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02671.html">CInstanceGroup</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pCS</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00912">912</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00737">NL3D::CTransform::_ClusterSystem</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a06348.html#l01268">NL3D::CScene::findCameraClusterSystemFromRay()</a>, and <a class="el" href="a06568.html#l01380">NL3D::CTransform::setForceClipRoot()</a>. +<p> +<div class="fragment"><pre>00913 { +00914 <span class="keywordflow">if</span> (pCS != NULL) +00915 { +00916 <a class="code" href="a04199.html#a6">nlassert</a>(!<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot)); <span class="comment">// the transform must be linked to the root, and have not cluster system when this flag is set</span> +00917 } +00918 _ClusterSystem = pCS; +00919 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela37" doxytag="NL3D::CMeshInstance::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::CTransformShape::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> [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="a06571.html#l00137">137</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>, and <a class="el" href="a05829.html#l00130">NL3D::CInstanceUser::setDistMax()</a>. +<p> +<div class="fragment"><pre>00137 { _DistMax = distMax; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela38" doxytag="NL3D::CMeshInstance::setDontUnfreezeChildren" ></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::CTransform::setDontUnfreezeChildren </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</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> + +<p> +Definition at line <a class="el" href="a06568.html#l00378">378</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00848">NL3D::CTransform::_DontUnfreezeChildren</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00476">NL3D::CInstanceGroup::createRoot()</a>. +<p> +<div class="fragment"><pre>00379 { +00380 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_4">_DontUnfreezeChildren</a> = val; +00381 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez5_2" doxytag="NL3D::CMeshInstance::setFather" ></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::IAnimatable::setFather </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02197.html">IAnimatable</a> * </td> + <td class="mdname" nowrap> <em>father</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>fatherOwnerBit</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Say which (if any) <a class="el" href="a02197.html">IAnimatable</a> owns this one. This is important for Touch propagation. By this system, Fathers and ancestors know if they must check their sons (<a class="el" href="a02197.html#NL3D_1_1ITransformablez5_0">isTouched()</a> return true).<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>father</em> </td><td>the father we must inform of our update. </td></tr> + <tr><td valign=top><em>fatherOwnerBit</em> </td><td>What bit of father we must set when we are updated</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05434.html#l00153">153</a> of file <a class="el" href="a05434.html">animatable.h</a>. +<p> +References <a class="el" href="a05434.html#l00208">NL3D::IAnimatable::_Father</a>, <a class="el" href="a05434.html#l00210">NL3D::IAnimatable::_FatherOwnerBit</a>, <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, and <a class="el" href="a06358.html#l00424">NL3D::CSegRemanence::setAnimatedMaterial()</a>. +<p> +<div class="fragment"><pre>00154 { +00155 _Father= father; _FatherOwnerBit= fatherOwnerBit; +00156 +00157 <span class="comment">// propagate the touch to the fathers.</span> +00158 <a class="code" href="a02197.html#NL3D_1_1IAnimatabled0">propagateTouch</a>(); +00159 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformableb2" doxytag="NL3D::CMeshInstance::setFlag" ></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::IAnimatable::setFlag </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>valueId</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +This method set a bit in the bitset. +<p> + +<p> +Definition at line <a class="el" href="a05434.html#l00239">239</a> of file <a class="el" href="a05434.html">animatable.h</a>. +<p> +References <a class="el" href="a05434.html#l00206">NL3D::IAnimatable::_BitSet</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, and <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>. +<p> +<div class="fragment"><pre>00240 { +00241 _BitSet|= (1<<valueId); +00242 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela39" doxytag="NL3D::CMeshInstance::setForceClipRoot" ></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::CTransform::setForceClipRoot </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>forceClipRoot</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> +Force the transform to always be attached to the root As a consequence, it can't be inserted into a cluster system (even the root cluster) and is thus always visible when in the frustum (not clusterized) NB : any call to setClusterSystem will cause an assertion when the flag is set NB : any call to hrcUnlink will cause an assertion when the flag is set (must remain linked to the root) +<p> +Definition at line <a class="el" href="a06568.html#l01380">1380</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00693">NL3D::CTransform::_OwnerScene</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, <a class="el" href="a06349.html#l00482">NL3D::CScene::getRoot()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, <a class="el" href="a06569.html#l00912">NL3D::CTransform::setClusterSystem()</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00259">NL3D::CTransformUser::setForceClipRoot()</a>. +<p> +<div class="fragment"><pre>01381 { +01382 <span class="keywordflow">if</span> (forceClipRoot == (<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot) != 0)) <span class="keywordflow">return</span>; +01383 <span class="keywordflow">if</span> (forceClipRoot) +01384 { +01385 <span class="comment">// unlink from previous father and link to the root</span> +01386 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_4">hrcUnlink</a>(); +01387 <span class="keywordflow">if</span> (_OwnerScene) +01388 { +01389 _OwnerScene->getRoot()->hrcLinkSon(<span class="keyword">this</span>); +01390 } +01391 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela36">setClusterSystem</a>(NULL); +01392 } +01393 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(ForceClipRoot, forceClipRoot); +01394 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1030_14" doxytag="NL3D::CMeshInstance::setGeneratingShadowMap" ></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::CTransform::setGeneratingShadowMap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>state</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For ShadowMapManager. true if the model is rendering its ShadowMap this frame. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00514">514</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00470">NL3D::CTransform::canCastShadowMap()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy13">NL3D::CTransform::IsGeneratingShadowMap</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a06372.html#l00215">NL3D::CShadowMapManager::addShadowCasterGenerate()</a>. +<p> +<div class="fragment"><pre>00514 {<span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>()) <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsGeneratingShadowMap, state);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_0" doxytag="NL3D::CMeshInstance::setIsBigLightable" ></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::CTransform::setIsBigLightable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must use this method with true to indicate the model is a big lightable. +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l00574">574</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy6">NL3D::CTransform::IsBigLightable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>. +<p> +<div class="fragment"><pre>00575 { +00576 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsBigLightable, val); +00577 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_1" doxytag="NL3D::CMeshInstance::setIsCluster" ></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::CTransform::setIsCluster </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For <a class="el" href="a02362.html">CCluster</a> only. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00671">671</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy7">NL3D::CTransform::IsCluster</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00671 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsCluster, val);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_2" doxytag="NL3D::CMeshInstance::setIsForceAnimDetail" ></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::CTransform::setIsForceAnimDetail </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must use this method with true if the model must be AnimDetail-ed whatever <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1023_0">registerToChannelMixer()</a> has been called or not +<p> +Definition at line <a class="el" href="a06568.html#l00590">590</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy5">NL3D::CTransform::IsAnimDetailable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy12">NL3D::CTransform::IsForceAnimDetail</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00591 { +00592 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsForceAnimDetail, val ); +00593 +00594 <span class="comment">// Update flag, if we must be inserted in AnimDetail</span> +00595 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsAnimDetailable, _ChannelMixer || <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsForceAnimDetail) ); +00596 +00597 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span> +00598 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>()) +00599 { +00600 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel); +00601 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->dirtSkinRenderLists(); +00602 } +00603 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_3" doxytag="NL3D::CMeshInstance::setIsLightable" ></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::CTransform::setIsLightable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must use this method with true to indicate the model support lighting. +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l00552">552</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy9">NL3D::CTransform::IsFinalLightable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy14">NL3D::CTransform::IsLightable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy27">NL3D::CTransform::IsUserLightable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>. +<p> +<div class="fragment"><pre>00553 { +00554 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsLightable, val); +00555 <span class="comment">// update IsFinalLightable</span> +00556 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalLightable, (<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsLightable) && <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsUserLightable)) ); +00557 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_4" doxytag="NL3D::CMeshInstance::setIsLoadbalancable" ></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::CTransform::setIsLoadbalancable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must use this method with true to indicate the model support loadBalancing. +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l00605">605</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy15">NL3D::CTransform::IsLoadBalancable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00606 { +00607 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsLoadBalancable, val ); +00608 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_5" doxytag="NL3D::CMeshInstance::setIsMeshBaseInstance" ></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::CTransform::setIsMeshBaseInstance </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For <a class="el" href="a02873.html">CMeshBaseInstance</a> only. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00667">667</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy16">NL3D::CTransform::IsMeshBaseInstance</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00667 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsMeshBaseInstance, val);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_6" doxytag="NL3D::CMeshInstance::setIsRenderable" ></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::CTransform::setIsRenderable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must use this method with true to indicate the model can be rendered. "can be rendered" means if object has to be inserted in RenderTrav list. eg: a mesh must be inserted in a render list, but not a light, or a NULL transform. The default is false. +<p> +Definition at line <a class="el" href="a06568.html#l00568">568</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy20">NL3D::CTransform::IsRenderable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00569 { +00570 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsRenderable, val); +00571 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_7" doxytag="NL3D::CMeshInstance::setIsShadowMapCaster" ></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::CTransform::setIsShadowMapCaster </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +ShadowMap. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00674">674</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy21">NL3D::CTransform::IsShadowMapCaster</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00674 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsShadowMapCaster, val);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_8" doxytag="NL3D::CMeshInstance::setIsShadowMapReceiver" ></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::CTransform::setIsShadowMapReceiver </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must use this method with true to indicate the model is a big lightable. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00675">675</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy22">NL3D::CTransform::IsShadowMapReceiver</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00675 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsShadowMapReceiver, val);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_9" doxytag="NL3D::CMeshInstance::setIsSkeleton" ></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::CTransform::setIsSkeleton </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For <a class="el" href="a03399.html">CSkeletonModel</a> only. +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l00579">579</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy23">NL3D::CTransform::IsSkeleton</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00580 { +00581 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsSkeleton, val); +00582 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1035_10" doxytag="NL3D::CMeshInstance::setIsTransformShape" ></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::CTransform::setIsTransformShape </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For <a class="el" href="a02537.html">CTransformShape</a> only. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00669">669</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy25">NL3D::CTransform::IsTransformShape</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +<div class="fragment"><pre>00669 {<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsTransformShape, val);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1025_1" doxytag="NL3D::CMeshInstance::setLoadBalancingGroup" ></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::CTransform::setLoadBalancingGroup </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>group</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> +Change the load Balancing group of a model. Every models are in a special LoadBalancingGroup. NB: the group is created if did not exist. NB: if models are skinned, it is their Skeleton which drive the group<p> +By default, models lies in the "Default" group, but Skeletons for skinning and ParticlesSystems which are in "Skin" and "Fx" group respectively. The "Default" group is special because it is not balanced (ie models are only degraded from their distance to camera) +<p> +Definition at line <a class="el" href="a06568.html#l00522">522</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00894">NL3D::CTransform::_LoadBalancingGroup</a>, <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, <a class="el" href="a05923.html#l00227">NL3D::CLoadBalancingTrav::getOrCreateGroup()</a>, and <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>. +<p> +Referenced by <a class="el" href="a06395.html#l00154">NL3D::CSkeletonShape::createInstance()</a>, <a class="el" href="a06360.html#l00150">NL3D::CSegRemanenceShape::createInstance()</a>, and <a class="el" href="a06152.html#l00267">NL3D::CParticleSystemShape::createInstance()</a>. +<p> +<div class="fragment"><pre>00523 { +00524 <span class="comment">// Get the traversal.</span> +00525 CLoadBalancingTrav &trav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getLoadBalancingTrav(); +00526 <span class="comment">// get the group from trav (create if needed), and set it.</span> +00527 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1049_0">_LoadBalancingGroup</a>= trav.getOrCreateGroup(group); +00528 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela40" doxytag="NL3D::CMeshInstance::setLogicInfo" ></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::CTransform::setLogicInfo </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03863.html">ILogicInfo</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>logicInfo</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the LogicInfo for this transfrom, eg to retrieve statc light information, see <a class="el" href="a03863.html">ILogicInfo</a>. Ptr is kept in CTransfrom, so should call setLogicInfo(NULL) before to clean up. +<p> +Definition at line <a class="el" href="a06569.html#l00389">389</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00752">NL3D::CTransform::_LogicInfo</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00191">NL3D::CTransformUser::setLogicInfo()</a>. +<p> +<div class="fragment"><pre>00389 {_LogicInfo= logicInfo;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_0" doxytag="NL3D::CMeshInstance::setMatrix" ></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::ITransformable::setMatrix </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>mat</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in DirecTMatrix mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00174">174</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00318">NL3D::ITransformable::_LocalMatrixDate</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew1">NL3D::ITransformable::DirectMatrix</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, and <a class="el" href="a06577.html#l00076">NL3D::CTransformableUser::setMatrix()</a>. +<p> +<div class="fragment"><pre>00175 { +00176 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==DirectMatrix); +00177 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>= mat; +00178 <span class="comment">// The matrix has changed.</span> +00179 _LocalMatrixDate++; +00180 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1028_7" doxytag="NL3D::CMeshInstance::setMeanColor" ></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::CTransform::setMeanColor </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03337.html">CRGBA</a> </td> + <td class="mdname1" valign="top" nowrap> <em>color</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> +set the Mean color of the transform. The mean color can be used for many purpose, such as drawing objects if the textures are not loaded. It is used also for Lod Character. Default color is (255,255,255) +<p> +Definition at line <a class="el" href="a06568.html#l00540">540</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00756">NL3D::CTransform::_MeanColor</a>. +<p> +<div class="fragment"><pre>00541 { +00542 <span class="comment">// if the color is different from prec</span> +00543 <span class="keywordflow">if</span>(color!=_MeanColor) +00544 { +00545 <span class="comment">// change it.</span> +00546 _MeanColor= color; +00547 } +00548 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela41" doxytag="NL3D::CMeshInstance::setOpacity" ></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::CTransform::setOpacity </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>v</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> + +<p> +Definition at line <a class="el" href="a06568.html#l00255">255</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, and <a class="el" href="a05646.html#l00237">v</a>. +<p> +Referenced by <a class="el" href="a05712.html#l00044">NL3D::CFlareModel::CFlareModel()</a>, <a class="el" href="a06148.html#l00117">NL3D::CParticleSystemModel::CParticleSystemModel()</a>, <a class="el" href="a06393.html#l00075">NL3D::CSkeletonModel::CSkeletonModel()</a>, <a class="el" href="a06688.html#l00051">NL3D::CVegetableBlendLayerModel::CVegetableBlendLayerModel()</a>, <a class="el" href="a06737.html#l00063">NL3D::CWaterModel::CWaterModel()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, <a class="el" href="a06573.html#l00234">NL3D::CTransformUser::setOpacity()</a>, <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>, <a class="el" href="a06358.html#l00415">NL3D::CSegRemanence::updateOpacityFromShape()</a>, and <a class="el" href="a06148.html#l00196">NL3D::CParticleSystemModel::updateOpacityInfos()</a>. +<p> +<div class="fragment"><pre>00256 { +00257 <span class="keywordtype">bool</span> bTmp = <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsOpaque) == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>; +00258 <span class="keywordflow">if</span> (bTmp != <a class="code" href="a04223.html#a576">v</a>) +00259 { +00260 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsOpaque, v); +00261 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>()) +00262 { +00263 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel); +00264 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->dirtSkinRenderLists(); +00265 } +00266 } +00267 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela42" doxytag="NL3D::CMeshInstance::setOrderingLayer" ></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::CTransform::setOrderingLayer </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>layer</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the current layer for this transform. Typically, this is used to sort transparent objects. Isn't used with solid objects. For now : Layer 0 is for underwater Layer 1 is for water surfaces Layer 2 is for object above water +<p> +Definition at line <a class="el" href="a06569.html#l00184">184</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00743">NL3D::CTransform::_OrderingLayer</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06737.html#l00063">NL3D::CWaterModel::CWaterModel()</a>, and <a class="el" href="a06573.html#l00162">NL3D::CTransformUser::setOrderingLayer()</a>. +<p> +<div class="fragment"><pre>00184 { _OrderingLayer = layer; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_1" doxytag="NL3D::CMeshInstance::setPivot" ></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::ITransformable::setPivot </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>x</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>y</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>z</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00169">169</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</a>, <a class="el" href="a05646.html#l00236">x</a>, <a class="el" href="a05646.html#l00236">y</a>, and <a class="el" href="a05646.html#l00236">z</a>. +<p> +<div class="fragment"><pre>00170 { +00171 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_2">setPivot</a>(CVector(x, y, z)); +00172 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_2" doxytag="NL3D::CMeshInstance::setPivot" ></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::ITransformable::setPivot </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>pivot</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00162">162</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00325">NL3D::ITransformable::_Pivot</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew3">NL3D::ITransformable::PivotValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00132">NL3D::CTransformableUser::setPivot()</a>, and <a class="el" href="a06575.html#l00169">NL3D::ITransformable::setPivot()</a>. +<p> +<div class="fragment"><pre>00163 { +00164 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00165 _Pivot.Value= pivot; +00166 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PivotValue, OwnerBit); +00167 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_3" doxytag="NL3D::CMeshInstance::setPos" ></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::ITransformable::setPos </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>x</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>y</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>z</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode(nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00121">121</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>, <a class="el" href="a05646.html#l00236">x</a>, <a class="el" href="a05646.html#l00236">y</a>, and <a class="el" href="a05646.html#l00236">z</a>. +<p> +<div class="fragment"><pre>00122 { +00123 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_4">setPos</a>(CVector(x,y,z)); +00124 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_4" doxytag="NL3D::CMeshInstance::setPos" ></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::ITransformable::setPos </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>pos</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode(nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00114">114</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a05530.html#l00196">NL3D::CCamera::build()</a>, <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00097">NL3D::CTransformableUser::setPos()</a>, <a class="el" href="a06575.html#l00121">NL3D::ITransformable::setPos()</a>, <a class="el" href="a06350.html#l01090">NL3D::CInstanceGroup::setPos()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>. +<p> +<div class="fragment"><pre>00115 { +00116 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00117 _Pos.Value= pos; +00118 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PosValue, OwnerBit); +00119 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_5" doxytag="NL3D::CMeshInstance::setRotEuler" ></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::ITransformable::setRotEuler </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>rotX</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>rotY</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>rotZ</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in RotEuler mode(nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00133">133</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00126">NL3D::ITransformable::setRotEuler()</a>. +<p> +<div class="fragment"><pre>00134 { +00135 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_6">setRotEuler</a>(CVector(rotX, rotY, rotZ)); +00136 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_6" doxytag="NL3D::CMeshInstance::setRotEuler" ></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::ITransformable::setRotEuler </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>rot</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in RotEuler mode(nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00126">126</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00322">NL3D::ITransformable::_RotEuler</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew6">NL3D::ITransformable::RotEulerValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06577.html#l00102">NL3D::CTransformableUser::setRotEuler()</a>, and <a class="el" href="a06575.html#l00133">NL3D::ITransformable::setRotEuler()</a>. +<p> +<div class="fragment"><pre>00127 { +00128 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler); +00129 _RotEuler.Value= rot; +00130 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(RotEulerValue, OwnerBit); +00131 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_7" doxytag="NL3D::CMeshInstance::setRotQuat" ></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::ITransformable::setRotQuat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03296.html">CQuat</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>quat</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in RotQuat mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00138">138</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00323">NL3D::ITransformable::_RotQuat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew8">NL3D::ITransformable::RotQuatValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06483.html#l00062">NL3D::CTargetAnimCtrl::execute()</a>, <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00107">NL3D::CTransformableUser::setRotQuat()</a>, and <a class="el" href="a06350.html#l01098">NL3D::CInstanceGroup::setRotQuat()</a>. +<p> +<div class="fragment"><pre>00139 { +00140 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotQuat); +00141 _RotQuat.Value= quat; +00142 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(RotQuatValue, OwnerBit); +00143 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_8" doxytag="NL3D::CMeshInstance::setScale" ></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::ITransformable::setScale </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>scale</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00157">157</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>. +<p> +<div class="fragment"><pre>00158 { +00159 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(scale, scale, scale)); +00160 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_9" doxytag="NL3D::CMeshInstance::setScale" ></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::ITransformable::setScale </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>scaleX</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>scaleY</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>scaleZ</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00152">152</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>. +<p> +<div class="fragment"><pre>00153 { +00154 <a class="code" href="a02278.html#NL3D_1_1ITransformablez1081_10">setScale</a>(CVector(scaleX, scaleY, scaleZ)); +00155 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1081_10" doxytag="NL3D::CMeshInstance::setScale" ></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::ITransformable::setScale </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>scale</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Work only in Rot* mode (nlassert). +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00145">145</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew5">NL3D::ITransformable::RotEuler</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablew11NL3D_1_1ITransformablew7">NL3D::ITransformable::RotQuat</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew9">NL3D::ITransformable::ScaleValue</a>, <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>, and <a class="el" href="a05442.html#l00116">NL3D::CAnimatedValueBlendable< T >::Value</a>. +<p> +Referenced by <a class="el" href="a06574.html#l00169">NL3D::ITransformable::lookAt()</a>, <a class="el" href="a06577.html#l00128">NL3D::CTransformableUser::setScale()</a>, and <a class="el" href="a06575.html#l00152">NL3D::ITransformable::setScale()</a>. +<p> +<div class="fragment"><pre>00146 { +00147 <a class="code" href="a04199.html#a6">nlassert</a>(_Mode==RotEuler || _Mode==RotQuat); +00148 _Scale.Value= scale; +00149 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(ScaleValue, OwnerBit); +00150 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez1079_0" doxytag="NL3D::CMeshInstance::setTransformMode" ></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::ITransformable::setTransformMode </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02278.html#NL3D_1_1ITransformablew11">TTransformMode</a> </td> + <td class="mdname" nowrap> <em>mode</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02851.html#NLMISC_1_1CMatrixw0">CMatrix::TRotOrder</a> </td> + <td class="mdname" nowrap> <em>ro</em> = CMatrix::ZXY</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Change the transform mode. Components or matrix are not reseted. +<p> + +<p> +Definition at line <a class="el" href="a06575.html#l00100">100</a> of file <a class="el" href="a06575.html">transformable.h</a>. +<p> +References <a class="el" href="a06575.html#l00317">NL3D::ITransformable::_RotOrder</a>, <a class="el" href="a02278.html#NL3D_1_1ITransformablez1087_0NL3D_1_1ITransformablew4">NL3D::ITransformable::PosValue</a>, and <a class="el" href="a05434.html#l00168">NL3D::IAnimatable::touch()</a>. +<p> +Referenced by <a class="el" href="a05530.html#l00196">NL3D::CCamera::build()</a>, <a class="el" href="a05531.html#l00125">NL3D::CCamera::enableTargetAnimation()</a>, <a class="el" href="a06250.html#l00225">NL3D::CPSMesh::newElement()</a>, <a class="el" href="a06577.html#l00092">NL3D::CTransformableUser::setTransformMode()</a>, and <a class="el" href="a06250.html#l00295">NL3D::CPSMesh::updatePos()</a>. +<p> +<div class="fragment"><pre>00101 { +00102 _Mode= mode; +00103 _RotOrder= ro; +00104 <span class="comment">// just for information.</span> +00105 <a class="code" href="a02197.html#NL3D_1_1ITransformablez5_3">touch</a>(PosValue, OwnerBit); +00106 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela43" doxytag="NL3D::CMeshInstance::setTransparency" ></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::CTransform::setTransparency </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>v</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> +Accessors for opacity/transparency +<p> +Definition at line <a class="el" href="a06568.html#l00240">240</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, and <a class="el" href="a05646.html#l00237">v</a>. +<p> +Referenced by <a class="el" href="a05712.html#l00044">NL3D::CFlareModel::CFlareModel()</a>, <a class="el" href="a06148.html#l00117">NL3D::CParticleSystemModel::CParticleSystemModel()</a>, <a class="el" href="a06393.html#l00075">NL3D::CSkeletonModel::CSkeletonModel()</a>, <a class="el" href="a06688.html#l00051">NL3D::CVegetableBlendLayerModel::CVegetableBlendLayerModel()</a>, <a class="el" href="a06737.html#l00063">NL3D::CWaterModel::CWaterModel()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, <a class="el" href="a06573.html#l00229">NL3D::CTransformUser::setTransparency()</a>, <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>, <a class="el" href="a06358.html#l00415">NL3D::CSegRemanence::updateOpacityFromShape()</a>, <a class="el" href="a06148.html#l00196">NL3D::CParticleSystemModel::updateOpacityInfos()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>. +<p> +<div class="fragment"><pre>00241 { +00242 <span class="keywordtype">bool</span> bTmp = <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsTransparent) == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>; +00243 <span class="keywordflow">if</span> (bTmp != <a class="code" href="a04223.html#a576">v</a>) +00244 { +00245 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsTransparent, v); +00246 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>()) +00247 { +00248 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel); +00249 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->dirtSkinRenderLists(); +00250 } +00251 } +00252 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelb6" doxytag="NL3D::CMeshInstance::setupCurrentLightContribution" ></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::CTransformShape::setupCurrentLightContribution </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02744.html">CLightContribution</a> * </td> + <td class="mdname" nowrap> <em>lightContrib</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>useLocalAtt</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For deriver who wants to setup their own current lightContribution setup (as skeleton). Must call <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1055_0">changeLightSetup()</a> so change are effectively made in driver +<p> +Definition at line <a class="el" href="a06570.html#l00098">98</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a06571.html#l00182">NL3D::CTransformShape::_CurrentLightContribution</a>, and <a class="el" href="a06571.html#l00184">NL3D::CTransformShape::_CurrentUseLocalAttenuation</a>. +<p> +Referenced by <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>. +<p> +<div class="fragment"><pre>00099 { +00100 _CurrentLightContribution= lightContrib; +00101 _CurrentUseLocalAttenuation= useLocalAtt; +00102 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela44" doxytag="NL3D::CMeshInstance::setUserClipping" ></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::CTransform::setUserClipping </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>enable</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> + +<p> +Definition at line <a class="el" href="a06568.html#l01310">1310</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy30">NL3D::CTransform::UserClipping</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00126">NL3D::CTransformUser::setUserClipping()</a>. +<p> +<div class="fragment"><pre>01311 { +01312 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a> (UserClipping, enable); +01313 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_6" doxytag="NL3D::CMeshInstance::setUserLightable" ></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::CTransform::setUserLightable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>enable</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> +Set the UserLightable flag. if false, <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable()</a> will always return false. Doing this, user can disable lighting on a model which may be interesting for speed. Default behavior is UserLightable==true. +<p> +Definition at line <a class="el" href="a06568.html#l00559">559</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy9">NL3D::CTransform::IsFinalLightable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy14">NL3D::CTransform::IsLightable</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy27">NL3D::CTransform::IsUserLightable</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00178">NL3D::CTransformUser::setUserLightable()</a>. +<p> +<div class="fragment"><pre>00560 { +00561 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsUserLightable, enable); +00562 <span class="comment">// update IsFinalLightable</span> +00563 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsFinalLightable, (<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsLightable) && <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(IsUserLightable)) ); +00564 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela45" doxytag="NL3D::CMeshInstance::setWorldMatrix" ></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::CTransform::setWorldMatrix </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>mat</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00302">302</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06146.html#l00165">NL3D::CParticleSystemManager::processAnimate()</a>. +<p> +<div class="fragment"><pre>00302 { <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a> = mat;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela46" doxytag="NL3D::CMeshInstance::show" ></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::CTransform::show </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Show the objet and his sons. +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l00271">271</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a06394.html#l00151">NL3D::CSkeletonModel::dirtSkinRenderLists()</a>, <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>. +<p> +Referenced by <a class="el" href="a06573.html#l00120">NL3D::CTransformUser::show()</a>, and <a class="el" href="a05875.html#l00153">NL3D::CLandscapeUser::show()</a>. +<p> +<div class="fragment"><pre>00272 { +00273 <span class="comment">// Optim: do nothing if already set</span> +00274 <span class="keywordflow">if</span>(Visibility!= CHrcTrav::Show) +00275 { +00276 _TransformDirty= <span class="keyword">true</span>; +00277 Visibility= CHrcTrav::Show; +00278 <span class="comment">// If skinned, then must inform skeleton parent that it must recompute skin render/animDetail lists</span> +00279 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>()) +00280 { +00281 <a class="code" href="a04199.html#a6">nlassert</a>(_FatherSkeletonModel); +00282 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->dirtSkinRenderLists(); +00283 } +00284 } +00285 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela47" doxytag="NL3D::CMeshInstance::start" ></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::CTransformShape::start </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez886_4">NL3D::CSegRemanence</a>. +<p> +Definition at line <a class="el" href="a06571.html#l00128">128</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a05829.html#l00110">NL3D::CInstanceUser::start()</a>. +<p> +<div class="fragment"><pre>00128 {}; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez447_8" doxytag="NL3D::CMeshInstance::startAsyncTextureLoading" ></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::CMeshBaseInstance::startAsyncTextureLoading </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>position</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> +Start to load all textures in AsyncTextures array (if needed) NB: old setup is kept in Material => instance is still rendered with "coherent" textures, until new textures are ready no op if not in async texture mode. +<p> +Definition at line <a class="el" href="a05993.html#l00445">445</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00240">NL3D::CMeshBaseInstance::_AsyncTextureReady</a>, <a class="el" href="a05994.html#l00242">NL3D::CMeshBaseInstance::_CurrentAsyncTextures</a>, <a class="el" href="a05463.html#l00151">NL3D::CAsyncTextureManager::addTextureRef()</a>, <a class="el" href="a05994.html#l00082">NL3D::CMeshBaseInstance::AsyncTextures</a>, <a class="el" href="a06349.html#l00501">NL3D::CScene::getAsyncTextureManager()</a>, <a class="el" href="a05994.html#l00162">NL3D::CMeshBaseInstance::getAsyncTextureMode()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05969.html#l00047">NL3D::IDRV_MAT_MAXTEXTURES</a>, <a class="el" href="a05993.html#l00486">NL3D::CMeshBaseInstance::releaseCurrentAsyncTextures()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00147">NL3D::CInstanceUser::startAsyncTextureLoading()</a>. +<p> +<div class="fragment"><pre>00446 { +00447 <span class="keywordflow">if</span>(!<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstancez447_3">getAsyncTextureMode</a>()) +00448 <span class="keywordflow">return</span>; +00449 +00450 <span class="comment">// If the async texutre manager is not setuped in the scene, abort.</span> +00451 CAsyncTextureManager *asyncTextMgr= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getAsyncTextureManager(); +00452 <span class="keywordflow">if</span>(!asyncTextMgr) +00453 <span class="keywordflow">return</span>; +00454 +00455 <a class="code" href="a04558.html#a15">uint</a> i; +00456 +00457 +00458 <span class="comment">/* for all new texture names to load, add them to the manager</span> +00459 <span class="comment"> NB: done first before release because of RefCount Management (in case of same texture name).</span> +00460 <span class="comment"> */</span> +00461 <span class="keywordflow">for</span>(i=0;i<<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>.size();i++) +00462 { +00463 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> stage=0;stage<<a class="code" href="a05363.html#a83">IDRV_MAT_MAXTEXTURES</a>;stage++) +00464 { +00465 <span class="keywordflow">if</span>(<a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[i].IsTextureFile[stage]) +00466 { +00467 <a class="code" href="a04558.html#a15">uint</a> <span class="keywordtype">id</span>; +00468 <span class="keywordtype">id</span>= asyncTextMgr->addTextureRef(AsyncTextures[i].TextureNames[stage], <span class="keyword">this</span>, position); +00469 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>[i].TextIds[stage]= <span class="keywordtype">id</span>; +00470 } +00471 } +00472 } +00473 +00474 <span class="comment">/* For all old textures (0 for the first time...), release them.</span> +00475 <span class="comment"> */</span> +00476 <a class="code" href="a02873.html#NL3D_1_1CMeshBaseInstancez451_0">releaseCurrentAsyncTextures</a>(); +00477 +00478 <span class="comment">// OK! bkup the setup</span> +00479 _CurrentAsyncTextures= <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">AsyncTextures</a>; +00480 +00481 <span class="comment">// texture async is not ready.</span> +00482 _AsyncTextureReady= <span class="keyword">false</span>; +00483 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela48" doxytag="NL3D::CMeshInstance::stop" ></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::CTransformShape::stop </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a03357.html#NL3D_1_1CSegRemanencez886_5">NL3D::CSegRemanence</a>. +<p> +Definition at line <a class="el" href="a06571.html#l00130">130</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a05829.html#l00115">NL3D::CInstanceUser::stop()</a>. +<p> +<div class="fragment"><pre>00130 {}; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_10" doxytag="NL3D::CMeshInstance::supportShadowSkinGrouping" ></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::CTransform::supportShadowSkinGrouping </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, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Special Skinning For ShadowMapping. +<p> + +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_10">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_10">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00611">611</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +<div class="fragment"><pre>00611 {<span class="keywordflow">return</span> <span class="keyword">false</span>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_11" doxytag="NL3D::CMeshInstance::supportSkinGrouping" ></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::CTransform::supportSkinGrouping </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, protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver may support SkinGrouping if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It renders the skin with current ctx of the skeletonModel, but torn in 2 pass: fillVB,a nd renderPrimitives Deriver may check NL3D_MESH_SKIN_MANAGER_VERTEXFORMAT and NL3D_MESH_SKIN_MANAGER_MAXVERTICES +<p> +Reimplemented in <a class="el" href="a02899.html#NL3D_1_1CMeshMRMInstancez499_11">NL3D::CMeshMRMInstance</a>, and <a class="el" href="a02909.html#NL3D_1_1CMeshMRMSkinnedInstancez531_11">NL3D::CMeshMRMSkinnedInstance</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00597">597</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +<div class="fragment"><pre>00597 {<span class="keywordflow">return</span> <span class="keyword">false</span>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITransformablez5_3" doxytag="NL3D::CMeshInstance::touch" ></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::IAnimatable::touch </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="mdname" nowrap> <em>valueId</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>ownerValueId</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Touch a value because it has been modified.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>valueId</em> </td><td>is the animated value ID in the object we want to touch. </td></tr> + <tr><td valign=top><em>ownerValueId</em> </td><td>is the bit of the <a class="el" href="a02197.html">IAnimatable</a> part which owns this animated value.</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05434.html#l00168">168</a> of file <a class="el" href="a05434.html">animatable.h</a>. +<p> +References <a class="el" href="a05434.html#l00212">NL3D::IAnimatable::propagateTouch()</a>, <a class="el" href="a05434.html#l00239">NL3D::IAnimatable::setFlag()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05543.html#l00154">NL3D::CChannelMixer::eval()</a>, <a class="el" href="a05543.html#l00083">NL3D::CChannelMixer::evalSingleChannel()</a>, <a class="el" href="a06148.html#l00249">NL3D::CParticleSystemModel::reallocRsc()</a>, <a class="el" href="a05543.html#l00621">NL3D::CChannelMixer::refreshList()</a>, <a class="el" href="a05531.html#l00154">NL3D::CCamera::setFov()</a>, <a class="el" href="a06575.html#l00162">NL3D::ITransformable::setPivot()</a>, <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>, <a class="el" href="a05531.html#l00147">NL3D::CCamera::setRoll()</a>, <a class="el" href="a06575.html#l00126">NL3D::ITransformable::setRotEuler()</a>, <a class="el" href="a06575.html#l00138">NL3D::ITransformable::setRotQuat()</a>, <a class="el" href="a06575.html#l00145">NL3D::ITransformable::setScale()</a>, <a class="el" href="a05531.html#l00135">NL3D::CCamera::setTargetPos()</a>, <a class="el" href="a06575.html#l00100">NL3D::ITransformable::setTransformMode()</a>, and <a class="el" href="a06144.html#l00100">NL3D::CParticleSystemInstanceUser::setUserParam()</a>. +<p> +<div class="fragment"><pre>00169 { +00170 <span class="comment">// Set the bit</span> +00171 <a class="code" href="a02197.html#NL3D_1_1ITransformableb2">setFlag</a>(valueId); +00172 <span class="comment">// Set the owner bit</span> +00173 <a class="code" href="a02197.html#NL3D_1_1ITransformableb2">setFlag</a>(ownerValueId); +00174 +00175 <span class="comment">// propagate the touch to the fathers.</span> +00176 <a class="code" href="a02197.html#NL3D_1_1IAnimatabled0">propagateTouch</a>(); +00177 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez449_0" doxytag="NL3D::CMeshInstance::traverseAnimDetail" ></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::CMeshBaseInstance::traverseAnimDetail </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +this do :<ul> +<li>call <a class="el" href="a02316.html#NL3D_1_1CWaterModelz1017_1">CTransformShape::traverseAnimDetail()</a></li><li>update animated materials.</li></ul> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaterModelz1017_1">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a05993.html#l00214">214</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05994.html#l00229">NL3D::CMeshBaseInstance::_AnimatedLightmap</a>, <a class="el" href="a05992.html#l00234">NL3D::CMeshBase::_LightInfos</a>, <a class="el" href="a06349.html#l00418">NL3D::CScene::getAnimatedLightFactor()</a>, <a class="el" href="a06349.html#l00410">NL3D::CScene::getLightmapGroupColor()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05992.html#l00100">NL3D::CMeshBase::CLightMapInfoList::LightGroup</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05992.html#l00102">NL3D::CMeshBase::CLightMapInfoList::StageList</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00215 { +00216 CMeshBase *mb = NLMISC::safe_cast<CMeshBase *>((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00217 +00218 CTransformShape::traverseAnimDetail(); +00219 +00220 +00221 <span class="comment">// update animated materials.</span> +00222 <span class="comment">// test if animated materials must be updated.</span> +00223 <span class="keywordflow">if</span>(IAnimatable::isTouched(CMeshBaseInstance::OwnerBit)) +00224 { +00225 <span class="comment">// must test / update all AnimatedMaterials.</span> +00226 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<_AnimatedMaterials.size();i++) +00227 { +00228 <span class="comment">// This test and update the pointed material.</span> +00229 _AnimatedMaterials[i].update(); +00230 } +00231 +00232 IAnimatable::clearFlag(CMeshBaseInstance::OwnerBit); +00233 } +00234 +00235 <span class="comment">// Lightmap automatic animation</span> +00236 +00237 <span class="comment">// Animated lightmap must have the same size than shape info lightmap.</span> +00238 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> count0 = _AnimatedLightmap.size(); +00239 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> count1 = mb->_LightInfos.size (); +00240 <a class="code" href="a04199.html#a6">nlassert</a> (count0 == count1); +00241 <span class="keywordflow">if</span> (count0 == count1) +00242 { +00243 <span class="keywordflow">for</span> ( <a class="code" href="a04558.html#a15">uint</a> i = 0; i < count0; ++i ) +00244 { +00245 CMeshBase::CLightMapInfoList &groupInfo = mb->_LightInfos[i]; +00246 std::list<CMeshBase::CLightMapInfoList::CMatStage>::iterator ite = groupInfo.StageList.begin (); +00247 <span class="keywordflow">while</span> (ite != groupInfo.StageList.end ()) +00248 { +00249 <a class="code" href="a04558.html#a14">sint</a> animatedLightmap = _AnimatedLightmap[i]; +00250 <span class="keywordflow">if</span> (animatedLightmap != -1) +00251 { +00252 <a class="code" href="a03337.html">CRGBA</a> factor = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a> ()->getAnimatedLightFactor (animatedLightmap, groupInfo.LightGroup); +00253 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[ite->MatId].setLightMapFactor ( ite->StageId, factor ); +00254 } +00255 <span class="keywordflow">else</span> +00256 { +00257 <a class="code" href="a03337.html">CRGBA</a> factor = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a> ()->getLightmapGroupColor (groupInfo.LightGroup); +00258 <a class="code" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">Materials</a>[ite->MatId].setLightMapFactor ( ite->StageId, factor ); +00259 } +00260 ite++; +00261 } +00262 } +00263 } +00264 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1047_0" doxytag="NL3D::CMeshInstance::traverseAnimDetailWithoutUpdateWorldMatrix" ></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::CTransform::traverseAnimDetailWithoutUpdateWorldMatrix </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> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +traverse without updatin WorldMatrixFromFather:<ul> +<li>animdetail if the model channelmixer is not NULL, and if model not clipped</li></ul> + +<p> +Definition at line <a class="el" href="a06568.html#l00938">938</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a05543.html#l00154">NL3D::CChannelMixer::eval()</a>, and <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00953">NL3D::CTransform::traverseAnimDetail()</a>. +<p> +<div class="fragment"><pre>00939 { +00940 <span class="comment">// AnimDetail behavior: animate only if not clipped.</span> +00941 <span class="comment">// NB: no need to test because of VisibilityList use.</span> +00942 +00943 <span class="comment">// test if the refptr is NULL or not (RefPtr).</span> +00944 CChannelMixer *chanmix= _ChannelMixer; +00945 <span class="keywordflow">if</span>(chanmix) +00946 { +00947 <span class="comment">// eval detail!!</span> +00948 chanmix->eval(<span class="keyword">true</span>, <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getAnimDetailTrav().CurrentDate); +00949 } +00950 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_1" doxytag="NL3D::CMeshInstance::traverseClip" ></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::CTransform::traverseClip </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The base traverseClip method. The behavior is to:<ul> +<li>test if _WorldVis is visible.</li><li>test if is clipped with <a class="el" href="a02316.html#NL3D_1_1CTransformz1017_0">clip()</a> OR IF SKELETON MODEL, USE SKELETON MODEL clip!!</li><li>if visible and not clipped, set <code>_Visible=true</code> (else false). and<ul> +<li>add the CTransform* to the ClipTrav list</li></ul> +</li><li>if _Visible==true, and renderable, add it to the RenderTraversal: <code>RenderTrav->addRenderModel(model)</code>;</li><li>always traverseSons(), to clip the sons.</li></ul> + +<p> +Reimplemented in <a class="el" href="a02362.html#NL3D_1_1CClusterz70_3">NL3D::CCluster</a>, <a class="el" href="a02713.html#NL3D_1_1CLandscapeModela47">NL3D::CLandscapeModel</a>, <a class="el" href="a03052.html#NL3D_1_1CParticleSystemModelz627_2">NL3D::CParticleSystemModel</a>, <a class="el" href="a03287.html#NL3D_1_1CQuadGridClipManagerz778_2">NL3D::CQuadGridClipManager</a>, and <a class="el" href="a03340.html#NL3D_1_1CRootModelz794_1">NL3D::CRootModel</a>. +<p> +Definition at line <a class="el" href="a06568.html#l00806">806</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a06569.html#l00865">NL3D::CTransform::_ClipDate</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00746">NL3D::CTransform::_ForceCLodSticked</a>, <a class="el" href="a06569.html#l00830">NL3D::CTransform::_RenderFilterType</a>, <a class="el" href="a06569.html#l00806">NL3D::CTransform::_StateFlags</a>, <a class="el" href="a06569.html#l00867">NL3D::CTransform::_Visible</a>, <a class="el" href="a06569.html#l00844">NL3D::CTransform::_WorldVis</a>, <a class="el" href="a05898.html#l00077">NL3D::CLightTrav::addLightedModel()</a>, <a class="el" href="a06330.html#l00121">NL3D::CRenderTrav::addRenderModel()</a>, <a class="el" href="a05924.html#l00178">NL3D::CLoadBalancingTrav::addVisibleModel()</a>, <a class="el" href="a05432.html#l00084">NL3D::CAnimDetailTrav::addVisibleModel()</a>, <a class="el" href="a05556.html#l00105">NL3D::CClipTrav::addVisibleModel()</a>, <a class="el" href="a06569.html#l00155">NL3D::CTransform::clip()</a>, <a class="el" href="a06568.html#l01265">NL3D::CTransform::clipGetChild()</a>, <a class="el" href="a06569.html#l00237">NL3D::CTransform::clipGetNumChildren()</a>, <a class="el" href="a05556.html#l00151">NL3D::CClipTrav::CurrentDate</a>, <a class="el" href="a06349.html#l00477">NL3D::CScene::getAnimDetailTrav()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06349.html#l00508">NL3D::CScene::getFilterRenderFlags()</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06569.html#l00440">NL3D::CTransform::isAnimDetailable()</a>, <a class="el" href="a06569.html#l00313">NL3D::CTransform::isClipVisible()</a>, <a class="el" href="a06394.html#l00259">NL3D::CSkeletonModel::isDisplayedAsLodCharacter()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a06569.html#l00442">NL3D::CTransform::isLoadBalancable()</a>, <a class="el" href="a06569.html#l00444">NL3D::CTransform::isRenderable()</a>, <a class="el" href="a05646.html#l01124">num</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy30">NL3D::CTransform::UserClipping</a>. +<p> +Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, <a class="el" href="a06341.html#l00052">NL3D::CRootModel::traverseClip()</a>, and <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>. +<p> +<div class="fragment"><pre>00807 { +00808 <span class="comment">// disable H_AUTO, because slowdown when lot of models (eg 1000-2000 tested in forest)</span> +00809 <span class="comment">//H_AUTO( NL3D_TransformClip );</span> +00810 +00811 CScene *scene= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>(); +00812 CClipTrav &clipTrav= scene->getClipTrav(); +00813 +00814 <span class="keywordflow">if</span> ((<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_0">_ClipDate</a> == clipTrav.CurrentDate) && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>) +00815 <span class="keywordflow">return</span>; +00816 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_0">_ClipDate</a> = clipTrav.CurrentDate; +00817 +00818 <span class="comment">// clip: update Visible flag.</span> +00819 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <span class="keyword">false</span>; +00820 <span class="comment">// if at least visible.</span> +00821 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>) +00822 { +00823 <span class="comment">// If linked to a SkeletonModel anywhere in the hierarchy, don't clip, and use skeleton model clip result.</span> +00824 <span class="comment">// This works because we are sons of a special node which is not in the clip traversal, and</span> +00825 <span class="comment">// which is traversed at end of the traversal.</span> +00826 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>!=NULL ) +00827 { +00828 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>->isClipVisible(); +00829 <span class="comment">// Special test: if we are sticked to a skeletonModel, and if we are still visible, maybe we don't have to</span> +00830 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a> && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>) +00831 { +00832 <span class="comment">// if our skeletonModel father is displayed with a Lod, maybe we are not to be displayed</span> +00833 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->isDisplayedAsLodCharacter()) +00834 { +00835 <span class="comment">// We are visible only if we where sticked to the skeleton with forceCLod==true.</span> +00836 <span class="comment">// This is also true if we are actually a skeletonModel</span> +00837 <span class="keywordflow">if</span>(!_ForceCLodSticked) +00838 <span class="comment">// otherWise we are not visible. eg: this is the case of skins and some sticked object</span> +00839 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <span class="keyword">false</span>; +00840 } +00841 } +00842 } +00843 <span class="comment">// else, clip.</span> +00844 <span class="keywordflow">else</span> +00845 { +00846 <span class="comment">// If the instance is not filtered</span> +00847 <span class="keywordflow">if</span>(scene->getFilterRenderFlags() & <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelp0">_RenderFilterType</a>) +00848 { +00849 <span class="comment">// User cliping enabled ?</span> +00850 <span class="keywordflow">if</span> (_StateFlags & UserClipping) +00851 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <span class="keyword">true</span>; +00852 <span class="keywordflow">else</span> +00853 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>= <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelz1057_0">clip</a>(); +00854 } +00855 } +00856 } +00857 +00858 <span class="comment">// if visible, add to list.</span> +00859 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">_Visible</a>) +00860 { +00861 <span class="comment">// add this model to the visibility list.</span> +00862 clipTrav.addVisibleModel(<span class="keyword">this</span>); +00863 +00864 <span class="comment">// Has not an ancestor skeleton model?</span> +00865 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL ) +00866 { +00867 <span class="comment">// If needed, insert the model in the lighted list.</span> +00868 <span class="comment">// don't insert if has an ancestorSkeletonModel, because in this case, result is driven by </span> +00869 <span class="comment">// the _LightContribution of the _AncestorSkeletonModel.</span> +00870 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable</a>() ) +00871 scene->getLightTrav().addLightedModel(<span class="keyword">this</span>); +00872 +00873 <span class="comment">// If needed, insert the model in the animDetail list.</span> +00874 <span class="comment">// don't insert if has an ancestoreSkeletonModel, because in this case, this ancestore will </span> +00875 <span class="comment">// animDetail through the hierarchy...</span> +00876 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_1">isAnimDetailable</a>() ) +00877 scene->getAnimDetailTrav().addVisibleModel(<span class="keyword">this</span>); +00878 } +00879 +00880 <span class="comment">// If needed, Add it to the loadBalancing trav</span> +00881 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_3">isLoadBalancable</a>() ) +00882 scene->getLoadBalancingTrav().addVisibleModel(<span class="keyword">this</span>); +00883 +00884 <span class="comment">// If needed, insert the model in the render list.</span> +00885 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_5">isRenderable</a>() ) +00886 scene->getRenderTrav().addRenderModel(<span class="keyword">this</span>); +00887 } +00888 +00889 <span class="comment">// Traverse the Clip sons.</span> +00890 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a653">num</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_3">clipGetNumChildren</a>(); +00891 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<<a class="code" href="a04223.html#a653">num</a>;i++) +00892 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_2">clipGetChild</a>(i)->traverseClip(); +00893 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstancez449_1" doxytag="NL3D::CMeshInstance::traverseHrc" ></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::CMeshBaseInstance::traverseHrc </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +this do :<ul> +<li>animate channel mixer for pos, rot, scale etc..</li><li>call standard <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_2">CTransform::traverseHrc()</a></li></ul> + +<p> +We perform wrapping ourselves. We avoid using a playlist, to not create one more obj.<p> +Eval non detail animation +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_2">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a05993.html#l00164">164</a> of file <a class="el" href="a05993.html">mesh_base_instance.cpp</a>. +<p> +References <a class="el" href="a05543.html#l00154">NL3D::CChannelMixer::eval()</a>, <a class="el" href="a05992.html#l00212">NL3D::CMeshBase::getAutoAnim()</a>, <a class="el" href="a05443.html#l00125">NL3D::CAnimation::getBeginTime()</a>, <a class="el" href="a06569.html#l00641">NL3D::CTransform::getChannelMixer()</a>, <a class="el" href="a06349.html#l00271">NL3D::CScene::getCurrentTime()</a>, <a class="el" href="a05443.html#l00157">NL3D::CAnimation::getEndTime()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a05543.html#l00476">NL3D::CChannelMixer::getSlotAnimation()</a>, <a class="el" href="a06569.html#l00218">NL3D::CTransform::hrcGetParent()</a>, <a class="el" href="a05544.html#l00345">NL3D::CChannelMixer::setSlotTime()</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>. +<p> +<div class="fragment"><pre>00165 { +00166 CMeshBase *mb = NLMISC::safe_cast<CMeshBase *>((IShape *) <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelo2">Shape</a>); +00167 +00168 <span class="comment">// if the base instance uses automatic animations, we must also setup the date of the channel mixer controlling this object</span> +00169 <span class="keywordflow">if</span> (mb->getAutoAnim()) +00170 { +00171 <span class="comment">// Unfreeze HRC for those models</span> +00172 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *node = <span class="keyword">this</span>; +00173 <span class="keywordflow">while</span> (node) +00174 { +00175 node->unfreezeHRC(); +00176 node = node->hrcGetParent(); +00177 } +00178 +00179 <span class="comment">// setup the channel mixer date</span> +00180 CChannelMixer *chanMix = <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelb3">getChannelMixer</a>(); +00181 <span class="keywordflow">if</span> (chanMix) +00182 { +00183 <span class="keyword">const</span> CAnimation *anim = chanMix->getSlotAnimation(0); +00187 <span class="keywordflow">if</span> (anim) +00188 { +00189 <span class="comment">// Animation offset are setuped before clipping, they will be used for detail too.</span> +00190 <span class="keywordtype">float</span> animLenght = anim->getEndTime() - anim->getBeginTime(); +00191 <span class="keywordflow">if</span> (animLenght > 0) +00192 { +00193 <span class="keywordtype">float</span> currTime = (<a class="code" href="a05363.html#a366">TAnimationTime</a>) <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getCurrentTime(); +00194 <span class="keywordtype">float</span> startTime = (<a class="code" href="a04558.html#a15">uint</a>) (currTime / animLenght) * animLenght; +00195 <span class="comment">// Set the channel mixer date using the global date of the scene</span> +00196 chanMix->setSlotTime(0, anim->getBeginTime() + currTime - startTime); +00197 } +00198 <span class="keywordflow">else</span> +00199 { +00200 chanMix->setSlotTime(0, anim->getBeginTime()); +00201 } +00202 +00205 chanMix->eval(<span class="keyword">false</span>); +00206 } +00207 } +00208 } +00209 +00210 CTransformShape::traverseHrc(); +00211 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_3" doxytag="NL3D::CMeshInstance::traverseLight" ></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::CTransform::traverseLight </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +traverse the lightedModel per default: recompute LightContribution is <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable()</a> +<p> + +<p> +Reimplemented in <a class="el" href="a03093.html#NL3D_1_1CPointLightModela36">NL3D::CPointLightModel</a>, <a class="el" href="a03287.html#NL3D_1_1CQuadGridClipManagerz778_4">NL3D::CQuadGridClipManager</a>, and <a class="el" href="a03340.html#NL3D_1_1CRootModelz794_3">NL3D::CRootModel</a>. +<p> +Definition at line <a class="el" href="a06568.html#l01080">1080</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a06569.html#l00752">NL3D::CTransform::_LogicInfo</a>, <a class="el" href="a05894.html#l00073">NL3D::CLightContribution::AttFactor</a>, <a class="el" href="a06179.html#l00267">NL3D::CPointLight::computeLinearAttenuation()</a>, <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06568.html#l00514">NL3D::CTransform::getAABBox()</a>, <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06180.html#l00116">NL3D::CPointLight::getPosition()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06569.html#l00631">NL3D::CTransform::isNeedUpdateFrozenStaticLightSetup()</a>, <a class="el" href="a06569.html#l00629">NL3D::CTransform::isNeedUpdateLighting()</a>, <a class="el" href="a05898.html#l00097">NL3D::CLightTrav::LightingManager</a>, <a class="el" href="a05894.html#l00084">NL3D::CLightContribution::NumFrozenStaticLight</a>, <a class="el" href="a05701.html#l00125">NLMISC::OptFastFloor()</a>, <a class="el" href="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>01081 { +01082 <span class="comment">// if the model do not need to update his lighting, just skip.</span> +01083 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_1">isNeedUpdateLighting</a>()) +01084 <span class="keywordflow">return</span>; +01085 +01086 +01087 <span class="comment">// If a freezeStaticLightSetup() has been called on this model recently.</span> +01088 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_0">isNeedUpdateFrozenStaticLightSetup</a>()) +01089 { +01090 <span class="comment">// Now, the correct matrix is computed.</span> +01091 <span class="comment">// get the untransformed bbox from the model.</span> +01092 CAABBox bbox; +01093 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModela5">getAABBox</a>(bbox); +01094 <span class="comment">// get transformed center pos of bbox</span> +01095 CVector worldModelPos= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>() * bbox.getCenter(); +01096 +01097 <span class="comment">// So we can compute AttFactor for each static light influencing this static object</span> +01098 <a class="code" href="a04558.html#a15">uint</a> numPointLights= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.NumFrozenStaticLight; +01099 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<numPointLights;i++) +01100 { +01101 <span class="keyword">const</span> CPointLight *pl= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[i]; +01102 <span class="comment">// don't worry about the precision of floor, because of *255.</span> +01103 <span class="keywordtype">float</span> distToModel= (pl->getPosition() - worldModelPos).norm(); +01104 <a class="code" href="a04558.html#a14">sint</a> attFactor= <a class="code" href="a05378.html#a397">NLMISC::OptFastFloor</a>( 255 * pl->computeLinearAttenuation(worldModelPos, distToModel) ); +01105 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.AttFactor[i]= (<a class="code" href="a04558.html#a7">uint8</a>)attFactor; +01106 } +01107 +01108 <span class="comment">// clean.</span> +01109 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(CTransform::IsNeedUpdateFrozenStaticLightSetup, <span class="keyword">false</span>); +01110 } +01111 +01112 +01113 <span class="comment">// see CTransform::clip(), here I am Lightable(), and I have no _AncestorSkeletonModel</span> +01114 <span class="comment">// So I am sure that I really need to recompute my ModelLightContributions.</span> +01115 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getLightTrav().LightingManager.computeModelLightContributions(<span class="keyword">this</span>, +01116 _LightContribution, _LogicInfo); +01117 +01118 <span class="comment">// done!</span> +01119 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(CTransform::IsNeedUpdateLighting, <span class="keyword">false</span>); +01120 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1057_2" doxytag="NL3D::CMeshInstance::traverseLoadBalancing" ></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::CTransformShape::traverseLoadBalancing </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +no-op by default +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelz1017_6">NL3D::CTransform</a>. +<p> +Reimplemented in <a class="el" href="a02914.html#NL3D_1_1CMeshMultiLodInstancez541_0">NL3D::CMeshMultiLodInstance</a>. +<p> +Definition at line <a class="el" href="a06570.html#l00262">262</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, <a class="el" href="a05924.html#l00166">NL3D::CLoadBalancingTrav::getLoadPass()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>, and <a class="el" href="a06570.html#l00308">NL3D::CTransformShape::traverseLoadBalancingPass1()</a>. +<p> +<div class="fragment"><pre>00263 { +00264 CLoadBalancingTrav &loadTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getLoadBalancingTrav(); +00265 <span class="keywordflow">if</span>(loadTrav.getLoadPass()==0) +00266 <a class="code" href="a02537.html#NL3D_1_1CTransformShapez1061_0">traverseLoadBalancingPass0</a>(); +00267 <span class="keywordflow">else</span> +00268 <a class="code" href="a02537.html#NL3D_1_1CTransformShapez1061_1">traverseLoadBalancingPass1</a>(); +00269 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancez463_0" doxytag="NL3D::CMeshInstance::traverseRender" ></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::CMeshInstance::traverseRender </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> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +just a specialisation to maybe add the ShadowMap Caster. This is not Clip or ShadowMapCaster Loding REGULAR but this is just a test... +<p> +Reimplemented from <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelz1057_3">NL3D::CTransformShape</a>. +<p> +Definition at line <a class="el" href="a06001.html#l00330">330</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06372.html#l00209">NL3D::CShadowMapManager::addShadowCaster()</a>, <a class="el" href="a06372.html#l00215">NL3D::CShadowMapManager::addShadowCasterGenerate()</a>, <a class="el" href="a06569.html#l00470">NL3D::CTransform::canCastShadowMap()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, and <a class="el" href="a06330.html#l00185">NL3D::CRenderTrav::getShadowMapManager()</a>. +<p> +<div class="fragment"><pre>00331 { +00332 CMeshBaseInstance::traverseRender(); +00333 +00334 <span class="comment">/*</span> +00335 <span class="comment"> Doing like this (and not like skeleton scheme) result in 2 problems:</span> +00336 <span class="comment"> - MehsInstance ShadowMap Casting are not "Loded" ie they are computed each frame.</span> +00337 <span class="comment"> - The shadow is displayed only if the mesh is, which is conceptually false.</span> +00338 <span class="comment"> BUT this is just an easy demo of ShadowMap.</span> +00339 <span class="comment"> Additionally, still do the correct test: if I am son of a SkeletonModel, then I don't have to cast my </span> +00340 <span class="comment"> shadowMap since my skeleton father will do it for me.</span> +00341 <span class="comment"> */</span> +00342 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1030_0">canCastShadowMap</a>() && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL ) +00343 { +00344 <span class="comment">// Since the mesh is rendered, add it to the list.</span> +00345 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getRenderTrav().getShadowMapManager().addShadowCaster(<span class="keyword">this</span>); +00346 <span class="comment">// Compute each frame.</span> +00347 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getRenderTrav().getShadowMapManager().addShadowCasterGenerate(<span class="keyword">this</span>); +00348 } +00349 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModela49" doxytag="NL3D::CMeshInstance::unfreezeHRC" ></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::CTransform::unfreezeHRC </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">freezeHRC()</a>. +<p> +Definition at line <a class="el" href="a06568.html#l00406">406</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00741">NL3D::CTransform::_FreezeHRCState</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06569.html#l00701">NL3D::CTransform::_HrcParentUnfreeze</a>, <a class="el" href="a06569.html#l00634">NL3D::CTransform::_LightedModelIt</a>, <a class="el" href="a05901.html#l00217">NL3D::CLightingManager::eraseStaticLightedModel()</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformy29NL3D_1_1CTransformy1">NL3D::CTransform::FreezeHRCStateDisabled</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00482">NL3D::CScene::getRoot()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a05898.html#l00097">NL3D::CLightTrav::LightingManager</a>, <a class="el" href="a06568.html#l00612">NL3D::CTransform::linkToUpdateList()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy28">NL3D::CTransform::QuadGridClipEnabled</a>, <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>, and <a class="el" href="a06569.html#l00561">NL3D::CTransform::unlinkFromQuadCluster()</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>, and <a class="el" href="a06350.html#l01146">NL3D::CInstanceGroup::unfreezeHRC()</a>. +<p> +<div class="fragment"><pre>00407 { +00408 <span class="comment">// if this model is no HRC frozen disabled</span> +00409 <span class="keywordflow">if</span>(_FreezeHRCState!=FreezeHRCStateDisabled) +00410 { +00411 <span class="comment">// if model correctly frozen.</span> +00412 <span class="keywordflow">if</span>(_FreezeHRCState == CTransform::FreezeHRCStateEnabled ) +00413 { +00414 <span class="comment">// Should not be linked : can't link after a freezeHRC</span> +00415 <a class="code" href="a04199.html#a6">nlassert</a> (_HrcParent == NULL); +00416 +00417 <span class="comment">// Set as unfreeze else, hrcLinkSon doesn't work</span> +00418 _FreezeHRCState= FreezeHRCStateDisabled; +00419 +00420 <span class="comment">// Link this model to the previous HRC parent.</span> +00421 <span class="keywordflow">if</span> (_HrcParentUnfreeze) +00422 _HrcParentUnfreeze->hrcLinkSon( <span class="keyword">this</span> ); +00423 <span class="keywordflow">else</span> +00424 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getRoot()->hrcLinkSon( <span class="keyword">this</span> ); +00425 +00426 <span class="comment">// Link this object to the validateList.</span> +00427 <a class="code" href="a02316.html#NL3D_1_1CTransformz1039_0">linkToUpdateList</a>(); +00428 +00429 <span class="comment">// if lightable()</span> +00430 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable</a>() ) +00431 { +00432 CLightTrav &lightTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getLightTrav(); +00433 <span class="comment">// Lighting: must remove the object from the quadGrid.</span> +00434 <span class="comment">// NB: works if _LightedModelIt==NULL. result is that _LightedModelIt= NULL.</span> +00435 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">_LightedModelIt</a>= lightTrav.LightingManager.eraseStaticLightedModel(_LightedModelIt); +00436 } +00437 +00438 } +00439 <span class="keywordflow">else</span> +00440 _FreezeHRCState= FreezeHRCStateDisabled; +00441 +00442 <span class="comment">// unlink me from any QuadCluster, and disable QuadCluster</span> +00443 <a class="code" href="a02537.html#NL3D_1_1CWaveMakerModelb7">unlinkFromQuadCluster</a>(); +00444 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(QuadGridClipEnabled, <span class="keyword">false</span>); +00445 } +00446 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_7" doxytag="NL3D::CMeshInstance::unfreezeStaticLightSetup" ></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::CTransform::unfreezeStaticLightSetup </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> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +unFreeze the Static Light Setup. Must be called if static pointLights are deleted. NB: it calls <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting()</a> first. NB: do not need to call it if pointLights and this transform are deleted at same time. +<p> +Definition at line <a class="el" href="a06568.html#l01061">1061</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a05894.html#l00093">NL3D::CLightContribution::FrozenAmbientLight</a>, <a class="el" href="a05894.html#l00079">NL3D::CLightContribution::FrozenStaticLightSetup</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy17">NL3D::CTransform::IsNeedUpdateFrozenStaticLightSetup</a>, <a class="el" href="a05894.html#l00084">NL3D::CLightContribution::NumFrozenStaticLight</a>, <a class="el" href="a05894.html#l00067">NL3D::CLightContribution::PointLight</a>, <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, and <a class="el" href="a06569.html#l00809">NL3D::CTransform::setStateFlag()</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00935">NL3D::CInstanceGroup::removeFromScene()</a>. +<p> +<div class="fragment"><pre>01062 { +01063 <span class="comment">// resetLighting() first.</span> +01064 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting</a>(); +01065 +01066 <span class="comment">// Disable StaticLightSetup.</span> +01067 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenStaticLightSetup= <span class="keyword">false</span>; +01068 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.NumFrozenStaticLight= 0; +01069 <span class="comment">// End the list</span> +01070 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.PointLight[0]= NULL; +01071 <span class="comment">// No more FrozenAmbientLight</span> +01072 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenAmbientLight= NULL; +01073 +01074 <span class="comment">// Don't need to update StaticLightSetup since no more exist.</span> +01075 <a class="code" href="a02316.html#NL3D_1_1CTransformz1041_2">setStateFlag</a>(IsNeedUpdateFrozenStaticLightSetup, <span class="keyword">false</span>); +01076 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelb7" doxytag="NL3D::CMeshInstance::unlinkFromQuadCluster" ></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::CTransformShape::unlinkFromQuadCluster </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> [protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +special feature for <a class="el" href="a03287.html">CQuadGridClipManager</a>. remove from it. +<p> + +<p> +Reimplemented from <a class="el" href="a02316.html#NL3D_1_1CVegetableBlendLayerModelb7">NL3D::CTransform</a>. +<p> +Definition at line <a class="el" href="a06570.html#l00133">133</a> of file <a class="el" href="a06570.html">transform_shape.cpp</a>. +<p> +References <a class="el" href="a06571.html#l00196">NL3D::CTransformShape::_QuadClusterListNode</a>, and <a class="el" href="a05704.html#l00037">NL3D::CFastPtrListNode::unlink()</a>. +<p> +<div class="fragment"><pre>00134 { +00135 <span class="comment">// if linked to a quadGridClipCluster, unlink it</span> +00136 _QuadClusterListNode.unlink(); +00137 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1017_4" doxytag="NL3D::CMeshInstance::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::CTransform::update </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> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +This function update the model (called by <a class="el" href="a03348.html#NL3D_1_1CScened0">CScene::updateModels()</a>) Deriver Must :<ul> +<li>call BaseClass::update() (eg: <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_4">CTransform::update()</a>).</li><li>test if something is different (eg: animation modification). Then update Model information (eg compute new Matrix).</li></ul> +<p> +The default behavior is to update transform Matrix etc... +<p> +Reimplemented in <a class="el" href="a02315.html#NL3D_1_1CCamerab8">NL3D::CCamera</a>. +<p> +Definition at line <a class="el" href="a06568.html#l00450">450</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00741">NL3D::CTransform::_FreezeHRCState</a>, <a class="el" href="a06569.html#l00847">NL3D::CTransform::_Frozen</a>, <a class="el" href="a06569.html#l00735">NL3D::CTransform::_LastTransformableMatrixDate</a>, <a class="el" href="a06569.html#l00634">NL3D::CTransform::_LightedModelIt</a>, <a class="el" href="a06569.html#l00841">NL3D::CTransform::_LocalDate</a>, <a class="el" href="a06569.html#l00839">NL3D::CTransform::_LocalMatrix</a>, <a class="el" href="a06569.html#l00840">NL3D::CTransform::_LocalVis</a>, <a class="el" href="a06569.html#l00749">NL3D::CTransform::_TransformDirty</a>, <a class="el" href="a05797.html#l00092">NL3D::CHrcTrav::CurrentDate</a>, <a class="el" href="a05901.html#l00217">NL3D::CLightingManager::eraseStaticLightedModel()</a>, <a class="el" href="a06349.html#l00474">NL3D::CScene::getHrcTrav()</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06575.html#l00076">NL3D::ITransformable::getMatrix()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, <a class="el" href="a05901.html#l00231">NL3D::CLightingManager::insertStaticLightedModel()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a05898.html#l00097">NL3D::CLightTrav::LightingManager</a>, <a class="el" href="a06568.html#l00630">NL3D::CTransform::unlinkFromUpdateList()</a>, and <a class="el" href="a06569.html#l00543">NL3D::CTransform::Visibility</a>. +<p> +Referenced by <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, <a class="el" href="a06568.html#l00367">NL3D::CTransform::freeze()</a>, and <a class="el" href="a06348.html#l01067">NL3D::CScene::updateModels()</a>. +<p> +<div class="fragment"><pre>00451 { +00452 <span class="comment">// test if the matrix has been changed in ITransformable.</span> +00453 <span class="keywordflow">if</span>(ITransformable::compareMatrixDate(_LastTransformableMatrixDate)) +00454 { +00455 _LastTransformableMatrixDate= ITransformable::getMatrixDate(); +00456 _TransformDirty= <span class="keyword">true</span>; +00457 } +00458 +00459 <span class="comment">// update the freezeHRC state.</span> +00460 <span class="keywordflow">if</span>(_FreezeHRCState != CTransform::FreezeHRCStateDisabled) +00461 { +00462 <span class="comment">// if the model request to be frozen in HRC</span> +00463 <span class="keywordflow">if</span>(_FreezeHRCState == CTransform::FreezeHRCStateRequest ) +00464 { +00465 <span class="comment">// Wait for next Hrc traversal to compute good _WorldMatrix for this model and his sons.</span> +00466 <span class="comment">// Also, next Hrc traversal will insert the model in the LightingManager quadGrid (if lightable)</span> +00467 _FreezeHRCState = CTransform::FreezeHRCStateReady; +00468 } +00469 <span class="comment">// if the model is ready to be frozen in HRC, then do it!!</span> +00470 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( _FreezeHRCState == CTransform::FreezeHRCStateReady ) +00471 { +00472 <span class="comment">// Unlink this model.</span> +00473 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_4">hrcUnlink</a>(); +00474 +00475 <span class="comment">// unLink this object from the validateList. NB: the list will still be correclty parsed.</span> +00476 <a class="code" href="a02316.html#NL3D_1_1CTransformz1039_1">unlinkFromUpdateList</a>(); +00477 +00478 <span class="comment">// if lightable, the model is inserted in a quadgrid to update his lighting only when</span> +00479 <span class="comment">// dynamicLights touch him (since himself is static).</span> +00480 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable</a>() ) +00481 { +00482 CLightTrav &lightTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getLightTrav(); +00483 <span class="comment">// Lighting: must reinsert the object from the quadGrid.</span> +00484 <span class="comment">// NB: works if _LightedModelIt==NULL. result is that _LightedModelIt= NULL.</span> +00485 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">_LightedModelIt</a>= lightTrav.LightingManager.eraseStaticLightedModel(_LightedModelIt); +00486 <span class="comment">// insert in the quadgrid.</span> +00487 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">_LightedModelIt</a>= lightTrav.LightingManager.insertStaticLightedModel(<span class="keyword">this</span>); +00488 } +00489 +00490 <span class="comment">// Now this model won't be tested for validation nor for worldMatrix update. End!!</span> +00491 _FreezeHRCState = CTransform::FreezeHRCStateEnabled; +00492 } +00493 } +00494 +00495 <span class="comment">// update _LocalMatrix</span> +00496 <span class="keywordflow">if</span>(_TransformDirty) +00497 { +00498 <span class="comment">// update the local matrix.</span> +00499 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>= <a class="code" href="a02278.html#NL3D_1_1ITransformablea1">getMatrix</a>(); +00500 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_8">_LocalVis</a>= Visibility; +00501 <span class="comment">// update the date of the local matrix.</span> +00502 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_6">_LocalDate</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getHrcTrav().CurrentDate; +00503 +00504 <span class="comment">// The transform has been modified. Hence, it is no more frozen.</span> +00505 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a>= <span class="keyword">false</span>; +00506 +00507 <span class="comment">// ok!</span> +00508 _TransformDirty= <span class="keyword">false</span>; +00509 } +00510 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_0" doxytag="NL3D::CMeshInstance::updateClipTravForAncestorSkeleton" ></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::CTransform::updateClipTravForAncestorSkeleton </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> [protected, 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="a06568.html#l00748">748</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a06569.html#l00849">NL3D::CTransform::_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>, <a class="el" href="a06568.html#l01217">NL3D::CTransform::clipAddChild()</a>, <a class="el" href="a06569.html#l00234">NL3D::CTransform::clipGetNumParents()</a>, <a class="el" href="a06568.html#l01258">NL3D::CTransform::clipGetParent()</a>, <a class="el" href="a06568.html#l01248">NL3D::CTransform::clipUnlinkFromAll()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00482">NL3D::CScene::getRoot()</a>, and <a class="el" href="a06349.html#l00636">NL3D::CScene::SonsOfAncestorSkeletonModelGroup</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. +<p> +<div class="fragment"><pre>00749 { +00750 CClipTrav &clipTrav= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getClipTrav(); +00751 +00752 <span class="comment">// If I have an ancestor Skeleton Model, I must be binded in ClipTrav to the SonsOfAncestorSkeletonModelGroup</span> +00753 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a> && !<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>) +00754 { +00755 <span class="comment">// must unlink from ALL olds models.</span> +00756 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_6">clipUnlinkFromAll</a>(); +00757 +00758 <span class="comment">// And link to SonsOfAncestorSkeletonModelGroup.</span> +00759 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->SonsOfAncestorSkeletonModelGroup->clipAddChild(<span class="keyword">this</span>); +00760 +00761 <span class="comment">// update the flag.</span> +00762 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>= <span class="keyword">true</span>; +00763 } +00764 +00765 +00766 <span class="comment">// else I must be binded to the standard Root.</span> +00767 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a> && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>) +00768 { +00769 <span class="comment">// verify first I am really still linked to the SonsOfAncestorSkeletonModelGroup.</span> +00770 <span class="comment">// This test is important, because link may have changed for any reason (portals, clipManager....).</span> +00771 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_4">clipGetNumParents</a>() == 1 && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_5">clipGetParent</a>(0)==<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->SonsOfAncestorSkeletonModelGroup ) +00772 { +00773 <span class="comment">// must unlink from ALL olds models.</span> +00774 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1021_6">clipUnlinkFromAll</a>(); +00775 <span class="comment">// and now, link to std root.</span> +00776 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getRoot()->clipAddChild(<span class="keyword">this</span>); +00777 } +00778 +00779 <span class="comment">// update the flag</span> +00780 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a>= <span class="keyword">false</span>; +00781 } +00782 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstanced0" doxytag="NL3D::CMeshInstance::updateShadowMap" ></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::CMeshInstance::updateShadowMap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>driver</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [private]</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="a06001.html#l00319">319</a> of file <a class="el" href="a06001.html">mesh_instance.cpp</a>. +<p> +References <a class="el" href="a06002.html#l00112">_ShadowMap</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06349.html#l00563">NL3D::CScene::getShadowMapTextureSize()</a>, <a class="el" href="a06371.html#l00110">NL3D::CShadowMap::getTextureSize()</a>, and <a class="el" href="a06370.html#l00066">NL3D::CShadowMap::initTexture()</a>. +<p> +Referenced by <a class="el" href="a06001.html#l00166">generateShadowMap()</a>. +<p> +<div class="fragment"><pre>00320 { +00321 <span class="comment">// create/update texture</span> +00322 <span class="keywordflow">if</span>(<a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>->getTextureSize()!=<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getShadowMapTextureSize()) +00323 { +00324 <a class="code" href="a02888.html#NL3D_1_1CMeshInstancer1">_ShadowMap</a>->initTexture(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getShadowMapTextureSize()); +00325 } +00326 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_1" doxytag="NL3D::CMeshInstance::updateWorld" ></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::CTransform::updateWorld </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> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Update the world state according to the parent world state and the local states. +<p> + +<p> +Definition at line <a class="el" href="a06568.html#l00663">663</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a06569.html#l00848">NL3D::CTransform::_DontUnfreezeChildren</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00847">NL3D::CTransform::_Frozen</a>, <a class="el" href="a06569.html#l00700">NL3D::CTransform::_HrcParent</a>, <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, <a class="el" href="a06569.html#l00841">NL3D::CTransform::_LocalDate</a>, <a class="el" href="a06569.html#l00839">NL3D::CTransform::_LocalMatrix</a>, <a class="el" href="a06569.html#l00840">NL3D::CTransform::_LocalVis</a>, <a class="el" href="a05797.html#l00088">NL3D::CHrcTrav::_MovingObjects</a>, <a class="el" href="a06569.html#l00845">NL3D::CTransform::_WorldDate</a>, <a class="el" href="a06569.html#l00843">NL3D::CTransform::_WorldMatrix</a>, <a class="el" href="a06569.html#l00844">NL3D::CTransform::_WorldVis</a>, <a class="el" href="a05797.html#l00092">NL3D::CHrcTrav::CurrentDate</a>, <a class="el" href="a02316.html#NL3D_1_1CTransformz1041_0NL3D_1_1CTransformy0">NL3D::CTransform::ForceClipRoot</a>, <a class="el" href="a05894.html#l00079">NL3D::CLightContribution::FrozenStaticLightSetup</a>, <a class="el" href="a06349.html#l00474">NL3D::CScene::getHrcTrav()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06569.html#l00818">NL3D::CTransform::getStateFlag()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a06569.html#l00449">NL3D::CTransform::isTransformShape()</a>, <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00786">NL3D::CTransform::traverseHrc()</a>. +<p> +<div class="fragment"><pre>00664 { +00665 <span class="keyword">const</span> CMatrix *pFatherWM; +00666 <span class="keywordtype">bool</span> visFather; +00667 +00668 <span class="comment">// If not root case, link to Fahter.</span> +00669 <span class="keywordflow">if</span>(_HrcParent) +00670 { +00671 pFatherWM= &(_HrcParent->_WorldMatrix); +00672 visFather= _HrcParent->_WorldVis; +00673 +00674 <span class="comment">// if _HrcParent is not frozen (for any reason), disable us!</span> +00675 +00676 <span class="keywordflow">if</span> (!_HrcParent->_Frozen && !_HrcParent->_DontUnfreezeChildren) +00677 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a>= <span class="keyword">false</span>; +00678 +00679 <span class="comment">// herit _AncestorSkeletonModel</span> +00680 <span class="keywordflow">if</span> (_HrcParent->_AncestorSkeletonModel) +00681 <span class="comment">// If my father has an _AncestorSkeletonModel, get it.</span> +00682 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>= _HrcParent->_AncestorSkeletonModel; +00683 <span class="keywordflow">else</span> +00684 <span class="comment">// else I have an ancestor skel model if I am sticked/binded directly to a skeleton model.</span> +00685 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>; +00686 } +00687 <span class="comment">// else, default!!</span> +00688 <span class="keywordflow">else</span> +00689 { +00690 pFatherWM= &(CMatrix::Identity); +00691 visFather= <span class="keyword">true</span>; +00692 +00693 <span class="comment">// at the root of the hierarchy, we have no parent, hence no FatherSkeletonModel nor _AncestorSkeletonModel.</span> +00694 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>= NULL; +00695 +00696 <span class="comment">// NB: Root is Frozen by essence :), so don't modify the frozen state here.</span> +00697 } +00698 +00699 <span class="comment">// Combine matrix</span> +00700 <span class="keywordflow">if</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_6">_LocalDate</a>><a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a> || (_HrcParent && _HrcParent->_WorldDate><a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a>) ) +00701 { +00702 <span class="comment">// Must recompute the world matrix. ONLY IF I AM NOT SKINNED/STICKED TO A SKELETON in the hierarchy!</span> +00703 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL ) +00704 { +00705 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>= *pFatherWM * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>; +00706 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">_WorldDate</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getHrcTrav().CurrentDate; +00707 +00708 <span class="comment">// Add the model to the moving object list, only if I am a transform shape</span> +00709 <span class="keywordflow">if</span> (!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">_Frozen</a> && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1028_6">isTransformShape</a>() && !<a class="code" href="a02316.html#NL3D_1_1CTransformz1041_1">getStateFlag</a>(ForceClipRoot)) +00710 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela20">getOwnerScene</a>()->getHrcTrav()._MovingObjects.push_back (static_cast<CTransformShape*>(<span class="keyword">this</span>)); +00711 } +00712 } +00713 +00714 <span class="comment">// Update dynamic lighting.</span> +00715 <span class="comment">/*</span> +00716 <span class="comment"> If the model is not frozen in StaticLight, then must update lighting each frame.</span> +00717 <span class="comment"> Even if the object doesn't move, a new dynamic light may enter in its aera. Hence we must test</span> +00718 <span class="comment"> it in the light quadrid. StaticLight-ed Objects don't need it because they are inserted in a special quadgrid, </span> +00719 <span class="comment"> where dynamics lights touch all StaticLight-ed object to force their computing</span> +00720 <span class="comment"></span> +00721 <span class="comment"> NB: not done if _AncestorSkeletonModel!=NULL. no need because in this case, </span> +00722 <span class="comment"> result is driven by the _LightContribution of the _AncestorSkeletonModel.</span> +00723 <span class="comment"> */</span> +00724 <span class="keywordflow">if</span>( !<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.FrozenStaticLightSetup && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a>==NULL ) +00725 { +00726 <span class="comment">// if the model is lightable reset lighting</span> +00727 <span class="keywordflow">if</span>( <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_4">isLightable</a>() ) +00728 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1024_5">resetLighting</a>(); +00729 } +00730 +00731 <span class="comment">// Combine visibility.</span> +00732 <span class="keywordflow">switch</span>(<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_8">_LocalVis</a>) +00733 { +00734 <span class="keywordflow">case</span> CHrcTrav::Herit: <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>= visFather; <span class="keywordflow">break</span>; +00735 <span class="keywordflow">case</span> CHrcTrav::Hide: <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>= <span class="keyword">false</span>; <span class="keywordflow">break</span>; +00736 <span class="keywordflow">case</span> CHrcTrav::Show: <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">_WorldVis</a>= <span class="keyword">true</span>; <span class="keywordflow">break</span>; +00737 <span class="keywordflow">default</span>: <span class="keywordflow">break</span>; +00738 } +00739 +00740 +00741 <span class="comment">// If I have an ancestor Skeleton Model, I must be binded in ClipTrav to the SonsOfAncestorSkeletonModelGroup</span> +00742 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_0">updateClipTravForAncestorSkeleton</a>(); +00743 +00744 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1047_1" doxytag="NL3D::CMeshInstance::updateWorldMatrixFromFather" ></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::CTransform::updateWorldMatrixFromFather </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> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For Skeleton Object Stick. update the wolrd matrix. no-op if skinned. no-op if no AcnestorSkeletonModel. use standard father WorldMatrix if !_FatherSkeletonModel else get the correct boneId WorldMatrix from _FatherSkeletonModel +<p> +Definition at line <a class="el" href="a06568.html#l00905">905</a> of file <a class="el" href="a06568.html">transform.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a06569.html#l00618">NL3D::CTransform::_FatherBoneId</a>, <a class="el" href="a06569.html#l00616">NL3D::CTransform::_FatherSkeletonModel</a>, <a class="el" href="a06569.html#l00839">NL3D::CTransform::_LocalMatrix</a>, <a class="el" href="a06569.html#l00843">NL3D::CTransform::_WorldMatrix</a>, <a class="el" href="a06394.html#l00098">NL3D::CSkeletonModel::Bones</a>, <a class="el" href="a06569.html#l00218">NL3D::CTransform::hrcGetParent()</a>, and <a class="el" href="a06569.html#l00423">NL3D::CTransform::isSkinned()</a>. +<p> +Referenced by <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, and <a class="el" href="a06568.html#l00953">NL3D::CTransform::traverseAnimDetail()</a>. +<p> +<div class="fragment"><pre>00906 { +00907 <span class="comment">// If I am not skinned, and If I have a skeleton ancestor</span> +00908 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1027_1">isSkinned</a>() && <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">_AncestorSkeletonModel</a> ) +00909 { +00910 <span class="comment">// Compute the HRC _WorldMatrix.</span> +00911 <span class="comment">// if I am not sticked.</span> +00912 <span class="keywordflow">if</span>(!<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>) +00913 { +00914 <span class="comment">// get the normal father worldMatrix in Hrc.</span> +00915 <a class="code" href="a02316.html#NL3D_1_1CTransformb2">CTransform</a> *fatherTransform= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1019_2">hrcGetParent</a>(); +00916 <span class="comment">// if exist</span> +00917 <span class="keywordflow">if</span>(fatherTransform) +00918 { +00919 <span class="keyword">const</span> CMatrix &parentWM= fatherTransform->_WorldMatrix; +00920 <span class="comment">// combine worldMatrix</span> +00921 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>= parentWM * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>; +00922 } +00923 <span class="keywordflow">else</span> +00924 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>; +00925 } +00926 <span class="keywordflow">else</span> +00927 { +00928 <span class="comment">// get the worldMatrix of the bone if I am sticked.</span> +00929 <span class="keyword">const</span> CMatrix &parentWM= <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">_FatherSkeletonModel</a>->Bones[<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_12">_FatherBoneId</a>].getWorldMatrix(); +00930 <span class="comment">// combine worldMatrix</span> +00931 <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">_WorldMatrix</a>= parentWM * <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">_LocalMatrix</a>; +00932 } +00933 } +00934 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1024_8" doxytag="NL3D::CMeshInstance::useMergedPointLight" ></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::CTransform::useMergedPointLight </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return true if the current light contribution of this model use a MergedPointLight +<p> +Definition at line <a class="el" href="a06569.html#l00369">369</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +References <a class="el" href="a06569.html#l00626">NL3D::CTransform::_LightContribution</a>, and <a class="el" href="a05894.html#l00088">NL3D::CLightContribution::UseMergedPointLight</a>. +<p> +<div class="fragment"><pre>00369 {<span class="keywordflow">return</span> <a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">_LightContribution</a>.UseMergedPointLight;} +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshInstancen0" doxytag="NL3D::CMeshInstance::CMesh" ></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 class <a class="el" href="a02857.html">CMesh</a><code> [friend]</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="a06002.html#l00109">109</a> of file <a class="el" href="a06002.html">mesh_instance.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypen0" doxytag="NL3D::CMeshInstance::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_1CWaveMakerModelz1043_2" doxytag="NL3D::CMeshInstance::_AncestorSkeletonModel" ></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="a03399.html">CSkeletonModel</a>* <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_2">NL3D::CTransform::_AncestorSkeletonModel</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00851">851</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00532">NL3D::CClipTrav::clipSkeletonShadowMaps()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06569.html#l00207">NL3D::CTransform::getAncestorSkeletonModel()</a>, <a class="el" href="a05431.html#l00060">NL3D::CAnimDetailTrav::traverse()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1045_0" doxytag="NL3D::CMeshInstance::_ClipDate" ></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#a12">sint64</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1045_0">NL3D::CTransform::_ClipDate</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +date of last <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_1">traverseClip()</a> +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00865">865</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, and <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_3" doxytag="NL3D::CMeshInstance::_ClipLinkedInSonsOfAncestorSkeletonModelGroup" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1043_3">NL3D::CTransform::_ClipLinkedInSonsOfAncestorSkeletonModelGroup</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00849">849</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, and <a class="el" href="a06568.html#l00748">NL3D::CTransform::updateClipTravForAncestorSkeleton()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_4" doxytag="NL3D::CMeshInstance::_DontUnfreezeChildren" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1043_4">NL3D::CTransform::_DontUnfreezeChildren</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00848">848</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00378">NL3D::CTransform::setDontUnfreezeChildren()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_12" doxytag="NL3D::CMeshInstance::_FatherBoneId" ></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> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_12">NL3D::CTransform::_FatherBoneId</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL. +<p> +Definition at line <a class="el" href="a06569.html#l00618">618</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06393.html#l01043">NL3D::CSkeletonModel::computeCLodVertexAlpha()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, <a class="el" href="a06393.html#l00543">NL3D::CSkeletonModel::stickObjectEx()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1032_13" doxytag="NL3D::CMeshInstance::_FatherSkeletonModel" ></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="a03399.html">CSkeletonModel</a>* <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_13">NL3D::CTransform::_FatherSkeletonModel</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Deriver must change this method if <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_2">isSkinnable()</a>. It return a list of sphere relative to each bone of the father skeleton. Use with <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1032_1">getSkinBoneUsage()</a> to know to wich bone this sphere apply NB: if a sphere radius is -1, it means that the bone is not used (for any reason...) default is to return NULL. +<p> +Definition at line <a class="el" href="a06569.html#l00616">616</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00497">NL3D::CSkeletonModel::bindSkin()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06393.html#l00573">NL3D::CSkeletonModel::detachSkeletonSon()</a>, <a class="el" href="a06568.html#l01359">NL3D::CTransform::forceCompute()</a>, <a class="el" href="a06393.html#l00391">NL3D::CSkeletonModel::forceComputeBone()</a>, <a class="el" href="a06569.html#l00205">NL3D::CTransform::getSkeletonModel()</a>, <a class="el" href="a06568.html#l00287">NL3D::CTransform::heritVisibility()</a>, <a class="el" href="a06568.html#l00223">NL3D::CTransform::hide()</a>, <a class="el" href="a06568.html#l00334">NL3D::CTransform::registerToChannelMixer()</a>, <a class="el" href="a06568.html#l00590">NL3D::CTransform::setIsForceAnimDetail()</a>, <a class="el" href="a06568.html#l00255">NL3D::CTransform::setOpacity()</a>, <a class="el" href="a06568.html#l00240">NL3D::CTransform::setTransparency()</a>, <a class="el" href="a06568.html#l00271">NL3D::CTransform::show()</a>, <a class="el" href="a06393.html#l00543">NL3D::CSkeletonModel::stickObjectEx()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_5" doxytag="NL3D::CMeshInstance::_Frozen" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1043_5">NL3D::CTransform::_Frozen</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00847">847</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00367">NL3D::CTransform::freeze()</a>, <a class="el" href="a06568.html#l00385">NL3D::CTransform::freezeHRC()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1045_1" doxytag="NL3D::CMeshInstance::_IndexInVisibleList" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1045_1">NL3D::CTransform::_IndexInVisibleList</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +date of last <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1017_1">traverseClip()</a> +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00869">869</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a05556.html#l00105">NL3D::CClipTrav::addVisibleModel()</a>, <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_2" doxytag="NL3D::CMeshInstance::_LightContribution" ></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="a02744.html">CLightContribution</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_2">NL3D::CTransform::_LightContribution</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The contribution of all lights. This enlarge the struct only of approx 15%. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00626">626</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l01028">NL3D::CTransform::freezeStaticLightSetup()</a>, <a class="el" href="a06569.html#l00373">NL3D::CTransform::getLightContribution()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>, <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>, <a class="el" href="a06568.html#l01061">NL3D::CTransform::unfreezeStaticLightSetup()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06569.html#l00369">NL3D::CTransform::useMergedPointLight()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1033_3" doxytag="NL3D::CMeshInstance::_LightedModelIt" ></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="a02749.html">CLightingManager::CQGItLightedModel</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1033_3">NL3D::CTransform::_LightedModelIt</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +each transform may be in a quadGird of lighted models (see <a class="el" href="a02747.html">CLightingManager</a>) +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00634">634</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1049_0" doxytag="NL3D::CMeshInstance::_LoadBalancingGroup" ></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="a02774.html">CLoadBalancingGroup</a>* <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1049_0">NL3D::CTransform::_LoadBalancingGroup</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00894">894</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00532">NL3D::CTransform::getLoadBalancingGroup()</a>, <a class="el" href="a06568.html#l00214">NL3D::CTransform::initModel()</a>, and <a class="el" href="a06568.html#l00522">NL3D::CTransform::setLoadBalancingGroup()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_6" doxytag="NL3D::CMeshInstance::_LocalDate" ></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#a12">sint64</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_6">NL3D::CTransform::_LocalDate</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00841">841</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_7" doxytag="NL3D::CMeshInstance::_LocalMatrix" ></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="a02851.html">CMatrix</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_7">NL3D::CTransform::_LocalMatrix</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Hrc IN variables. +<p> + +<p> +Reimplemented from <a class="el" href="a02278.html#NL3D_1_1ITransformabler0">NL3D::ITransformable</a>. +<p> +Definition at line <a class="el" href="a06569.html#l00839">839</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_8" doxytag="NL3D::CMeshInstance::_LocalVis" ></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="a02639.html#NL3D_1_1CHrcTravw3">CHrcTrav::TVisibility</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_8">NL3D::CTransform::_LocalVis</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00840">840</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l00450">NL3D::CTransform::update()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelp0" doxytag="NL3D::CMeshInstance::_RenderFilterType" ></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#a11">uint32</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelp0">NL3D::CTransform::_RenderFilterType</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +State for renderFiltering. Default is 0xFFFFFFFF (always displayed) Deriver work to change this value +<p> +Definition at line <a class="el" href="a06569.html#l00830">830</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, and <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancer0" doxytag="NL3D::CMeshInstance::_ShadowGeom" ></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="a02889.html">CShadowGeom</a>* <a class="el" href="a02888.html#NL3D_1_1CMeshInstancer0">NL3D::CMeshInstance::_ShadowGeom</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="a06002.html#l00121">121</a> of file <a class="el" href="a06002.html">mesh_instance.h</a>. +<p> +Referenced by <a class="el" href="a06001.html#l00042">CMeshInstance()</a>, <a class="el" href="a06001.html#l00254">createShadowMap()</a>, <a class="el" href="a06001.html#l00240">deleteShadowMap()</a>, and <a class="el" href="a06001.html#l00166">generateShadowMap()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshInstancer1" doxytag="NL3D::CMeshInstance::_ShadowMap" ></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="a03370.html">CShadowMap</a>* <a class="el" href="a02888.html#NL3D_1_1CMeshInstancer1">NL3D::CMeshInstance::_ShadowMap</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="a06002.html#l00112">112</a> of file <a class="el" href="a06002.html">mesh_instance.h</a>. +<p> +Referenced by <a class="el" href="a06001.html#l00042">CMeshInstance()</a>, <a class="el" href="a06001.html#l00254">createShadowMap()</a>, <a class="el" href="a06001.html#l00240">deleteShadowMap()</a>, <a class="el" href="a06001.html#l00166">generateShadowMap()</a>, <a class="el" href="a06001.html#l00234">getShadowMap()</a>, and <a class="el" href="a06001.html#l00319">updateShadowMap()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1045_2" doxytag="NL3D::CMeshInstance::_Visible" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1045_2">NL3D::CTransform::_Visible</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +set to true is the object is visible (not clipped). +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00867">867</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06569.html#l00313">NL3D::CTransform::isClipVisible()</a>, and <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstanceo2" doxytag="NL3D::CMeshInstance::_VPWindTreePhase" ></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="a02873.html#NL3D_1_1CMeshMultiLodInstanceo2">NL3D::CMeshBaseInstance::_VPWindTreePhase</a><code> [inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +<a class="el" href="a02917.html">CMeshVPWindTree</a> instance specific part. +<p> + +<p> +Definition at line <a class="el" href="a05994.html#l00254">254</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +Referenced by <a class="el" href="a06024.html#l00144">NL3D::CMeshVPWindTree::initInstance()</a>, and <a class="el" href="a06024.html#l00228">NL3D::CMeshVPWindTree::setupPerInstanceConstants()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_9" doxytag="NL3D::CMeshInstance::_WorldDate" ></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#a12">sint64</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_9">NL3D::CTransform::_WorldDate</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00845">845</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a06568.html#l01181">NL3D::CTransform::hrcUnlink()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_10" doxytag="NL3D::CMeshInstance::_WorldMatrix" ></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="a02851.html">CMatrix</a> <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModelz1043_10">NL3D::CTransform::_WorldMatrix</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Hrc OUT variables. +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00843">843</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>, and <a class="el" href="a06568.html#l00905">NL3D::CTransform::updateWorldMatrixFromFather()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CWaveMakerModelz1043_11" doxytag="NL3D::CMeshInstance::_WorldVis" ></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="a02316.html#NL3D_1_1CWaveMakerModelz1043_11">NL3D::CTransform::_WorldVis</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06569.html#l00844">844</a> of file <a class="el" href="a06569.html">transform.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00052">NL3D::CTransform::CTransform()</a>, <a class="el" href="a06569.html#l00306">NL3D::CTransform::isHrcVisible()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, and <a class="el" href="a06568.html#l00663">NL3D::CTransform::updateWorld()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodInstanceo3" doxytag="NL3D::CMeshInstance::AsyncTextures" ></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="a02229.html">CAsyncTextureBlock</a>> <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo3">NL3D::CMeshBaseInstance::AsyncTextures</a><code> [inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For Aynsc Texture Loading. This has the same size as Materials. User can fill here the name of the texture he want to async load. WARNING: once AsyncTextureMode is set, Material's Texture fields should not be modified, else undefined results +<p> +Definition at line <a class="el" href="a05994.html#l00082">82</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00042">NL3D::CInstanceUser::CInstanceUser()</a>, <a class="el" href="a05993.html#l00375">NL3D::CMeshBaseInstance::enableAsyncTextureMode()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, <a class="el" href="a05993.html#l00268">NL3D::CMeshBaseInstance::selectTextureSet()</a>, and <a class="el" href="a05993.html#l00445">NL3D::CMeshBaseInstance::startAsyncTextureLoading()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypeo0" doxytag="NL3D::CMeshInstance::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="NL3D_1_1CMeshMultiLodInstanceo5" doxytag="NL3D::CMeshInstance::Materials" ></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="a02839.html">CMaterial</a>> <a class="el" href="a02873.html#NL3D_1_1CMeshMultiLodInstanceo5">NL3D::CMeshBaseInstance::Materials</a><code> [inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The list of materials, copied from the mesh. Each <a class="el" href="a02873.html">CMeshBaseInstance</a> has those materials, so they can be animated or modified for each instance. By default, they are copied from the Mesh. +<p> +Definition at line <a class="el" href="a05994.html#l00075">75</a> of file <a class="el" href="a05994.html">mesh_base_instance.h</a>. +<p> +Referenced by <a class="el" href="a05828.html#l00042">NL3D::CInstanceUser::CInstanceUser()</a>, <a class="el" href="a06393.html#l00866">NL3D::CSkeletonModel::computeLodTexture()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, <a class="el" href="a06011.html#l01288">NL3D::CMeshMRMSkinnedGeom::profileSceneRender()</a>, <a class="el" href="a06005.html#l02600">NL3D::CMeshMRMGeom::profileSceneRender()</a>, <a class="el" href="a05989.html#l01932">NL3D::CMeshGeom::profileSceneRender()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</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#l02768">NL3D::CMeshMRMGeom::renderPass()</a>, <a class="el" href="a05989.html#l02075">NL3D::CMeshGeom::renderPass()</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="a06011.html#l00795">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupPrimitives()</a>, <a class="el" href="a06005.html#l01406">NL3D::CMeshMRMGeom::renderSkinGroupPrimitives()</a>, <a class="el" href="a06011.html#l00877">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupSpecularRdrPass()</a>, and <a class="el" href="a06005.html#l01488">NL3D::CMeshMRMGeom::renderSkinGroupSpecularRdrPass()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypes0" doxytag="NL3D::CMeshInstance::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::CMeshInstance::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> +<a class="anchor" name="NL3D_1_1CWaveMakerModelo2" doxytag="NL3D::CMeshInstance::Shape" ></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="a03408.html">CSmartPtr</a><<a class="el" href="a02539.html">IShape</a>> <a class="el" href="a02537.html#NL3D_1_1CWaveMakerModelo2">NL3D::CTransformShape::Shape</a><code> [inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The shape, the object instancied. +<p> + +<p> +Definition at line <a class="el" href="a06571.html#l00072">72</a> of file <a class="el" href="a06571.html">transform_shape.h</a>. +<p> +Referenced by <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, <a class="el" href="a06393.html#l00866">NL3D::CSkeletonModel::computeLodTexture()</a>, <a class="el" href="a06741.html#l00684">NL3D::CWaveMakerShape::createInstance()</a>, <a class="el" href="a06741.html#l00327">NL3D::CWaterShape::createInstance()</a>, <a class="el" href="a06395.html#l00154">NL3D::CSkeletonShape::createInstance()</a>, <a class="el" href="a06376.html#l00050">NL3D::IShape::createInstance()</a>, <a class="el" href="a06360.html#l00150">NL3D::CSegRemanenceShape::createInstance()</a>, <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>, <a class="el" href="a06152.html#l00267">NL3D::CParticleSystemShape::createInstance()</a>, <a class="el" href="a06016.html#l00182">NL3D::CMeshMultiLod::createInstance()</a>, <a class="el" href="a06011.html#l01439">NL3D::CMeshMRMSkinned::createInstance()</a>, <a class="el" href="a06005.html#l02924">NL3D::CMeshMRM::createInstance()</a>, <a class="el" href="a05989.html#l02357">NL3D::CMesh::createInstance()</a>, <a class="el" href="a05714.html#l00100">NL3D::CFlareShape::createInstance()</a>, <a class="el" href="a06348.html#l00691">NL3D::CScene::deleteInstance()</a>, <a class="el" href="a06570.html#l00083">NL3D::CTransformShape::getAABBox()</a>, <a class="el" href="a06570.html#l00075">NL3D::CTransformShape::getNumTriangles()</a>, <a class="el" href="a06397.html#l00082">NL3D::CSkeletonUser::getShapeDistMax()</a>, <a class="el" href="a05828.html#l00108">NL3D::CInstanceUser::getShapeDistMax()</a>, <a class="el" href="a06570.html#l00248">NL3D::CTransformShape::profileRender()</a>, <a class="el" href="a06397.html#l00070">NL3D::CSkeletonUser::setShapeDistMax()</a>, <a class="el" href="a05828.html#l00098">NL3D::CInstanceUser::setShapeDistMax()</a>, and <a class="el" href="a06570.html#l00178">NL3D::CTransformShape::traverseRender()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a06002.html">mesh_instance.h</a><li><a class="el" href="a06001.html">mesh_instance.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:52:40 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> |