diff options
Diffstat (limited to 'docs/doxygen/nel/a02910.html')
-rw-r--r-- | docs/doxygen/nel/a02910.html | 4118 |
1 files changed, 4118 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02910.html b/docs/doxygen/nel/a02910.html new file mode 100644 index 00000000..70008f71 --- /dev/null +++ b/docs/doxygen/nel/a02910.html @@ -0,0 +1,4118 @@ +<!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::CMeshMultiLod 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::CMeshMultiLod Class Reference</h1><code>#include <<a class="el" href="a06017.html">mesh_multi_lod.h</a>></code> +<p> +<p>Inheritance diagram for NL3D::CMeshMultiLod: +<p><center><img src="a02910.png" usemap="#NL3D::CMeshMultiLod_map" border="0" alt=""></center> +<map name="NL3D::CMeshMultiLod_map"> +<area href="a02858.html" alt="NL3D::CMeshBase" shape="rect" coords="74,168,212,192"> +<area href="a02539.html" alt="NL3D::IShape" shape="rect" coords="74,112,212,136"> +<area href="a02209.html" alt="NLMISC::CRefCount" shape="rect" coords="0,56,138,80"> +<area href="a02867.html" alt="NLMISC::IStreamable" shape="rect" coords="148,56,286,80"> +<area href="a02540.html" alt="NLMISC::IClassable" shape="rect" coords="148,0,286,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Mesh with several LOD meshes.<p> +This mesh handle several meshes of any kind of shape (MRM, standard, coarse meshes..) At run time, it chooses what LOD meshes it must render according to its settings.<p> +<dl compact><dt><b>Author:</b></dt><dd>Cyril 'Hulud' Corvazier <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="a06017.html#l00052">52</a> of file <a class="el" href="a06017.html">mesh_multi_lod.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Public Types</h2></td></tr> +<tr><td colspan="2"><div class="groupHeader">Structures for building a mesh.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map< std::string,<br> + CLightInfoMapListV7 > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_0">TLightInfoMapV7</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector< CLightMapInfoList > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_1">TLightMapInfo</a></td></tr> + +<tr><td colspan="2"><div class="groupHeader">Structures for building a mesh.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map< std::string,<br> + CLightInfoMapListV7 > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_0">TLightInfoMapV7</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector< CLightMapInfoList > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_1">TLightMapInfo</a></td></tr> + +<tr><td colspan="2"><div class="groupHeader">Structures for building a mesh.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map< std::string,<br> + CLightInfoMapListV7 > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_0">TLightInfoMapV7</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector< CLightMapInfoList > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_1">TLightMapInfo</a></td></tr> + +<tr><td colspan="2"><div class="groupHeader">Structures for building a mesh.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map< std::string,<br> + CLightInfoMapListV7 > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_0">TLightInfoMapV7</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector< CLightMapInfoList > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_1">TLightMapInfo</a></td></tr> + +<tr><td colspan="2"><div class="groupHeader">Structures for building a mesh.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map< std::string,<br> + CLightInfoMapListV7 > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_0">TLightInfoMapV7</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector< CLightMapInfoList > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_1">TLightMapInfo</a></td></tr> + +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLoda0">changeMRMDistanceSetup</a> (float distanceFinest, float distanceMiddle, float distanceCoarsest)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLoda1">flushTextures</a> (<a class="el" href="a02434.html">IDriver</a> &driver, <a class="el" href="a04558.html#a15">uint</a> selectedTexture)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Flush textures. <a href="#NL3D_1_1CMeshMultiLoda1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02540.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6">getClassName</a> ()=0</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02539.html#NL3D_1_1IShapea5">getDistMax</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02879.html">IMeshGeom</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLoda4">getMeshGeom</a> (<a class="el" href="a04558.html#a15">uint</a> slot) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Geometry accessor. <a href="#NL3D_1_1CMeshMultiLoda4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLoda5">getNumSlotMesh</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get slot mesh count. <a href="#NL3D_1_1CMeshMultiLoda5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLoda6">getNumTriangles</a> (float distance)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">should not be called direclty as the intance of this shape will use 'getNumTrianglesWithCoarsestDist' themselves to get the correct distance. <a href="#NL3D_1_1CMeshMultiLoda6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLoda7">getNumTrianglesWithCoarsestDist</a> (float distance, float coarsestMeshDist) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a14">sint</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypea8">getRefCount</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02879.html">IMeshGeom</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLoda9">getSlotMesh</a> (<a class="el" href="a04558.html#a15">uint</a> i, bool &coarseMesh)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a slot mesh. <a href="#NL3D_1_1CMeshMultiLoda9"></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="a02858.html#NL3D_1_1CMeshMultiLoda10">isLightable</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Is this mesh lightable? true if one of his materials is not a lightmap. NB: result stored in file. <a href="#NL3D_1_1CMeshMultiLoda10"></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="a02910.html#NL3D_1_1CMeshMultiLoda11">isStatic</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Is static mesh ? <a href="#NL3D_1_1CMeshMultiLoda11"></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="a02858.html#NL3D_1_1CMeshMultiLoda12">serialMeshBase</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f) throw (NLMISC::EStream)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">serial the base Part of this mesh. <a href="#NL3D_1_1CMeshMultiLoda12"></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="a02539.html#NL3D_1_1IShapea11">setDistMax</a> (float distMax)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLoda14">useLightingLocalAttenuation</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">tells if the shape wants LocalAttenuation for RealTime lighting. Default is false <a href="#NL3D_1_1CMeshMultiLoda14"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">animated material mgt. do it after CMesh::build(), or CMeshMRM::build()</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02846.html">CMaterialBase</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz427_0">getAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">return NULL if this material is NOT animated. (or if material do not exist) <a href="#NL3D_1_1CMeshMultiLodz427_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz427_1">setAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>, const std::string &matName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup a material as animated. Material must exist or else no-op. <a href="#NL3D_1_1CMeshMultiLodz427_1"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Automatic animation</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_0">getAutoAnim</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_1">setAutoAnim</a> (bool on=true)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">access default tracks.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03549.html">CTrackDefaultRGBA</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_0">getDefaultLMFactor</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_1">getDefaultPivot</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_2">getDefaultPos</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_3">getDefaultRotEuler</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03548.html">CTrackDefaultQuat</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_4">getDefaultRotQuat</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_5">getDefaultScale</a> ()</td></tr> + +<tr><td colspan="2"><div class="groupHeader">LodCharacterTexture</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02810.html">CLodCharacterTexture</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz435_0">getLodCharacterTexture</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. NULL per default. NB: serialised <a href="#NL3D_1_1CMeshMultiLodz435_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_1">resetLodCharacterTexture</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">reset the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. <a href="#NL3D_1_1CMeshMultiLodz435_1"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_2">setupLodCharacterTexture</a> (<a class="el" href="a02810.html">CLodCharacterTexture</a> &lodText)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system <a href="#NL3D_1_1CMeshMultiLodz435_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Material accessors</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_0">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material, const version. <a href="#NL3D_1_1CMeshMultiLodz431_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_1">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material. <a href="#NL3D_1_1CMeshMultiLodz431_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_2">getNbMaterial</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of materials in the mesh. <a href="#NL3D_1_1CMeshMultiLodz431_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">animated material mgt. do it after CMesh::build(), or CMeshMRM::build()</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02846.html">CMaterialBase</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz427_0">getAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">return NULL if this material is NOT animated. (or if material do not exist) <a href="#NL3D_1_1CMeshMultiLodz427_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz427_1">setAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>, const std::string &matName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup a material as animated. Material must exist or else no-op. <a href="#NL3D_1_1CMeshMultiLodz427_1"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Automatic animation</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_0">getAutoAnim</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_1">setAutoAnim</a> (bool on=true)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">access default tracks.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03549.html">CTrackDefaultRGBA</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_0">getDefaultLMFactor</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_1">getDefaultPivot</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_2">getDefaultPos</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_3">getDefaultRotEuler</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03548.html">CTrackDefaultQuat</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_4">getDefaultRotQuat</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_5">getDefaultScale</a> ()</td></tr> + +<tr><td colspan="2"><div class="groupHeader">LodCharacterTexture</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02810.html">CLodCharacterTexture</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz435_0">getLodCharacterTexture</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. NULL per default. NB: serialised <a href="#NL3D_1_1CMeshMultiLodz435_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_1">resetLodCharacterTexture</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">reset the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. <a href="#NL3D_1_1CMeshMultiLodz435_1"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_2">setupLodCharacterTexture</a> (<a class="el" href="a02810.html">CLodCharacterTexture</a> &lodText)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system <a href="#NL3D_1_1CMeshMultiLodz435_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Material accessors</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_0">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material, const version. <a href="#NL3D_1_1CMeshMultiLodz431_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_1">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material. <a href="#NL3D_1_1CMeshMultiLodz431_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_2">getNbMaterial</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of materials in the mesh. <a href="#NL3D_1_1CMeshMultiLodz431_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">animated material mgt. do it after CMesh::build(), or CMeshMRM::build()</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02846.html">CMaterialBase</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz427_0">getAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">return NULL if this material is NOT animated. (or if material do not exist) <a href="#NL3D_1_1CMeshMultiLodz427_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz427_1">setAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>, const std::string &matName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup a material as animated. Material must exist or else no-op. <a href="#NL3D_1_1CMeshMultiLodz427_1"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Automatic animation</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_0">getAutoAnim</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_1">setAutoAnim</a> (bool on=true)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">access default tracks.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03549.html">CTrackDefaultRGBA</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_0">getDefaultLMFactor</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_1">getDefaultPivot</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_2">getDefaultPos</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_3">getDefaultRotEuler</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03548.html">CTrackDefaultQuat</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_4">getDefaultRotQuat</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_5">getDefaultScale</a> ()</td></tr> + +<tr><td colspan="2"><div class="groupHeader">LodCharacterTexture</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02810.html">CLodCharacterTexture</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz435_0">getLodCharacterTexture</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. NULL per default. NB: serialised <a href="#NL3D_1_1CMeshMultiLodz435_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_1">resetLodCharacterTexture</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">reset the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. <a href="#NL3D_1_1CMeshMultiLodz435_1"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_2">setupLodCharacterTexture</a> (<a class="el" href="a02810.html">CLodCharacterTexture</a> &lodText)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system <a href="#NL3D_1_1CMeshMultiLodz435_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Material accessors</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_0">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material, const version. <a href="#NL3D_1_1CMeshMultiLodz431_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_1">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material. <a href="#NL3D_1_1CMeshMultiLodz431_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_2">getNbMaterial</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of materials in the mesh. <a href="#NL3D_1_1CMeshMultiLodz431_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">animated material mgt. do it after CMesh::build(), or CMeshMRM::build()</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02846.html">CMaterialBase</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz427_0">getAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">return NULL if this material is NOT animated. (or if material do not exist) <a href="#NL3D_1_1CMeshMultiLodz427_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz427_1">setAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>, const std::string &matName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup a material as animated. Material must exist or else no-op. <a href="#NL3D_1_1CMeshMultiLodz427_1"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Automatic animation</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_0">getAutoAnim</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_1">setAutoAnim</a> (bool on=true)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">access default tracks.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03549.html">CTrackDefaultRGBA</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_0">getDefaultLMFactor</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_1">getDefaultPivot</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_2">getDefaultPos</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_3">getDefaultRotEuler</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03548.html">CTrackDefaultQuat</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_4">getDefaultRotQuat</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_5">getDefaultScale</a> ()</td></tr> + +<tr><td colspan="2"><div class="groupHeader">LodCharacterTexture</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02810.html">CLodCharacterTexture</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz435_0">getLodCharacterTexture</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. NULL per default. NB: serialised <a href="#NL3D_1_1CMeshMultiLodz435_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_1">resetLodCharacterTexture</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">reset the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. <a href="#NL3D_1_1CMeshMultiLodz435_1"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_2">setupLodCharacterTexture</a> (<a class="el" href="a02810.html">CLodCharacterTexture</a> &lodText)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system <a href="#NL3D_1_1CMeshMultiLodz435_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Material accessors</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_0">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material, const version. <a href="#NL3D_1_1CMeshMultiLodz431_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_1">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material. <a href="#NL3D_1_1CMeshMultiLodz431_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_2">getNbMaterial</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of materials in the mesh. <a href="#NL3D_1_1CMeshMultiLodz431_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Structures for building a multi lod mesh.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz535_0">build</a> (<a class="el" href="a02911.html">CMeshMultiLodBuild</a> &mbuild)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Build a mesh from material info, and a builded MeshGeom. WARNING: This has a side effect of deleting AnimatedMaterials. <a href="#NL3D_1_1CMeshMultiLodz535_0"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">From IShape</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_0">clip</a> (const std::vector< <a class="el" href="a03082.html">CPlane</a> > &pyramid, const <a class="el" href="a02851.html">CMatrix</a> &worldMatrix)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">clip this mesh in a driver. <a href="#NL3D_1_1CMeshMultiLodz537_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02537.html">CTransformShape</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_1">createInstance</a> (<a class="el" href="a03348.html">CScene</a> &scene)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <a class="el" href="a02888.html">CMeshInstance</a>, which contains materials. <a href="#NL3D_1_1CMeshMultiLodz537_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="a02910.html#NL3D_1_1CMeshMultiLodz537_2">getAABBox</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &bbox) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get bbox. <a href="#NL3D_1_1CMeshMultiLodz537_2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_3">NLMISC_DECLARE_CLASS</a> (<a class="el" href="a02910.html">CMeshMultiLod</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Declare name of the shape. <a href="#NL3D_1_1CMeshMultiLodz537_3"></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="a02910.html#NL3D_1_1CMeshMultiLodz537_4">profileSceneRender</a> (<a class="el" href="a03325.html">CRenderTrav</a> *rdrTrav, <a class="el" href="a02537.html">CTransformShape</a> *trans, bool opaquePass)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">profiling <a href="#NL3D_1_1CMeshMultiLodz537_4"></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="a02910.html#NL3D_1_1CMeshMultiLodz537_5">render</a> (<a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a02537.html">CTransformShape</a> *trans, bool passOpaque)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_5">render()</a> this mesh in a driver. <a href="#NL3D_1_1CMeshMultiLodz537_5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_6">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f) throw (NLMISC::EStream)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">serial this mesh. <a href="#NL3D_1_1CMeshMultiLodz537_6"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">animated material mgt. do it after CMesh::build(), or CMeshMRM::build()</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02846.html">CMaterialBase</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz427_0">getAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">return NULL if this material is NOT animated. (or if material do not exist) <a href="#NL3D_1_1CMeshMultiLodz427_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz427_1">setAnimatedMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>, const std::string &matName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup a material as animated. Material must exist or else no-op. <a href="#NL3D_1_1CMeshMultiLodz427_1"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Automatic animation</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_0">getAutoAnim</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz433_1">setAutoAnim</a> (bool on=true)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">access default tracks.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03549.html">CTrackDefaultRGBA</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_0">getDefaultLMFactor</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_1">getDefaultPivot</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_2">getDefaultPos</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_3">getDefaultRotEuler</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03548.html">CTrackDefaultQuat</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_4">getDefaultRotQuat</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz429_5">getDefaultScale</a> ()</td></tr> + +<tr><td colspan="2"><div class="groupHeader">LodCharacterTexture</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02810.html">CLodCharacterTexture</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz435_0">getLodCharacterTexture</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. NULL per default. NB: serialised <a href="#NL3D_1_1CMeshMultiLodz435_0"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_1">resetLodCharacterTexture</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">reset the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. <a href="#NL3D_1_1CMeshMultiLodz435_1"></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="a02858.html#NL3D_1_1CMeshMultiLodz435_2">setupLodCharacterTexture</a> (<a class="el" href="a02810.html">CLodCharacterTexture</a> &lodText)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">setup the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system <a href="#NL3D_1_1CMeshMultiLodz435_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Material accessors</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_0">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material, const version. <a href="#NL3D_1_1CMeshMultiLodz431_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02839.html">CMaterial</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_1">getMaterial</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a material. <a href="#NL3D_1_1CMeshMultiLodz431_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz431_2">getNbMaterial</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of materials in the mesh. <a href="#NL3D_1_1CMeshMultiLodz431_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Mesh Block Render Interface</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02879.html">IMeshGeom</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz539_0">supportMeshBlockRendering</a> (<a class="el" href="a02537.html">CTransformShape</a> *trans, float &polygonCount) const </td></tr> + +<tr><td colspan=2><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_1">TLightMapInfo</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodo0">_LightInfos</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>CPtrInfo * </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">pinfo</a></td></tr> + +<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NullPtrInfo</a></td></tr> + +<tr><td colspan=2><br><h2>Protected Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map< <a class="el" href="a04558.html#a11">uint32</a>,<br> + <a class="el" href="a02846.html">CMaterialBase</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodx0">TAnimatedMaterialMap</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Animated Material mgt. <a href="#NL3D_1_1CMeshMultiLodx0"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Protected 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="a02858.html#NL3D_1_1CMeshMultiLodb0">applyMaterialUsageOptim</a> (const std::vector< bool > &materialUsed, std::vector< <a class="el" href="a04558.html#a14">sint</a> > &remap)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodb1">buildMeshBase</a> (CMeshBaseBuild &m)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Just copy informations from a <a class="el" href="a02872.html">CMeshBaseBuild</a>. <a href="#NL3D_1_1CMeshMultiLodb1"></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="a02858.html#NL3D_1_1CMeshMultiLodb2">instanciateMeshBase</a> (<a class="el" href="a02873.html">CMeshBaseInstance</a> *mi, <a class="el" href="a03348.html">CScene</a> *ownerScene)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">instanciate MeshBase part to an instance (a <a class="el" href="a02873.html">CMeshBaseInstance</a>). <a href="#NL3D_1_1CMeshMultiLodb2"></a><br><br></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="a02858.html#NL3D_1_1CMeshMultiLodx0">TAnimatedMaterialMap</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02936.html">CMorphBase</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp1">_AnimatedMorph</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp2">_AutoAnim</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03549.html">CTrackDefaultRGBA</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp3">_DefaultLMFactor</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp4">_DefaultPivot</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp5">_DefaultPos</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Transform default tracks. Those default tracks are instancied, ie, CInstanceMesh will have the same and can't specialize it. <a href="#NL3D_1_1CMeshMultiLodp5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp6">_DefaultRotEuler</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03548.html">CTrackDefaultQuat</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp7">_DefaultRotQuat</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03551.html">CTrackDefaultVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp8">_DefaultScale</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02539.html#NL3D_1_1IShapep0">_DistMax</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Default to -1. <a href="#NL3D_1_1IShapep0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp10">_IsLightable</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Is this mesh lightable?? <a href="#NL3D_1_1CMeshMultiLodp10"></a><br><br></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="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The Materials. <a href="#NL3D_1_1CMeshMultiLodp11"></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="a02858.html#NL3D_1_1CMeshMultiLodp12">_UseLightingLocalAttenuation</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Is this mesh Use Lighting Local Attenuation ?? <a href="#NL3D_1_1CMeshMultiLodp12"></a><br><br></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="a02910.html#NL3D_1_1CMeshMultiLodd0">clear</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Clear the mesh. <a href="#NL3D_1_1CMeshMultiLodd0"></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="a02910.html#NL3D_1_1CMeshMultiLodd1">compileCoarseMeshes</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">compile Coarse Meshs when builded/loaded. <a href="#NL3D_1_1CMeshMultiLodd1"></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="a02910.html#NL3D_1_1CMeshMultiLodd2">compileDistMax</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">copileDistMax when builded/loaded. <a href="#NL3D_1_1CMeshMultiLodd2"></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="a02910.html#NL3D_1_1CMeshMultiLodd3">instanciateCoarseMeshSpace</a> (<a class="el" href="a02914.html">CMeshMultiLodInstance</a> *mi)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">called at <a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_1">createInstance()</a> time <a href="#NL3D_1_1CMeshMultiLodd3"></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="a02910.html#NL3D_1_1CMeshMultiLodd4">profileMeshGeom</a> (<a class="el" href="a04558.html#a15">uint</a> slot, <a class="el" href="a03325.html">CRenderTrav</a> *rdrTrav, <a class="el" href="a02914.html">CMeshMultiLodInstance</a> *trans, float numPoylgons, <a class="el" href="a04558.html#a11">uint32</a> rdrFlags)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Profile the MeshGeom of a slot, even if coarseMesh. <a href="#NL3D_1_1CMeshMultiLodd4"></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="a02910.html#NL3D_1_1CMeshMultiLodd5">renderCoarseMesh</a> (<a class="el" href="a04558.html#a15">uint</a> slot, <a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a02914.html">CMeshMultiLodInstance</a> *trans, <a class="el" href="a02371.html">CCoarseMeshManager</a> *manager)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Render the CoarseMesh of a slot. must be a coarseMesh, and shoudl be called only in passOpaque. <a href="#NL3D_1_1CMeshMultiLodd5"></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="a02910.html#NL3D_1_1CMeshMultiLodd6">renderMeshGeom</a> (<a class="el" href="a04558.html#a15">uint</a> slot, <a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a02914.html">CMeshMultiLodInstance</a> *trans, float numPoylgons, <a class="el" href="a04558.html#a11">uint32</a> rdrFlags, float <a class="el" href="a04223.html#a663">alpha</a>, <a class="el" href="a02371.html">CCoarseMeshManager</a> *manager)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Render the MeshGeom of a slot, even if coarseMesh. <a href="#NL3D_1_1CMeshMultiLodd6"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02913.html">CMeshSlot</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Vector of meshes. <a href="#NL3D_1_1CMeshMultiLodr0"></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="a02910.html#NL3D_1_1CMeshMultiLodr1">_StaticLod</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Static or dynamic load ? Yoyo: no more used, but leave for possible usage later... <a href="#NL3D_1_1CMeshMultiLodr1"></a><br><br></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="a02910.html#NL3D_1_1CMeshMultiLodn0">CMeshMultiLodInstance</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 Typedef Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshMultiLodx0" doxytag="NL3D::CMeshMultiLod::TAnimatedMaterialMap" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> typedef std::map<<a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a02846.html">CMaterialBase</a>> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodx0">NL3D::CMeshBase::TAnimatedMaterialMap</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Animated Material mgt. +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00239">239</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz425_0" doxytag="NL3D::CMeshMultiLod::TLightInfoMapV7" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> typedef std::map< std::string, CLightInfoMapListV7 > <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_0">NL3D::CMeshBase::TLightInfoMapV7</a><code> [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="a05992.html#l00076">76</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz425_1" doxytag="NL3D::CMeshMultiLod::TLightMapInfo" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> typedef std::vector< CLightMapInfoList > <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz425_1">NL3D::CMeshBase::TLightMapInfo</a><code> [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="a05992.html#l00111">111</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshMultiLodb0" doxytag="NL3D::CMeshMultiLod::applyMaterialUsageOptim" ></a><p> +<table class="mdTable" 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::CMeshBase::applyMaterialUsageOptim </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::vector< bool > & </td> + <td class="mdname" nowrap> <em>materialUsed</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a04558.html#a14">sint</a> > & </td> + <td class="mdname" nowrap> <em>remap</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> +delete any material not used, and build remap table (old to new). _AnimatedMaterials are reseted <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodz435_1">resetLodCharacterTexture()</a>; is called +<p> +Definition at line <a class="el" href="a05991.html#l00333">333</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00240">NL3D::CMeshBase::_AnimatedMaterials</a>, <a class="el" href="a05992.html#l00234">NL3D::CMeshBase::_LightInfos</a>, <a class="el" href="a05646.html#l00240">count</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05991.html#l00436">NL3D::CMeshBase::resetLodCharacterTexture()</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>00334 { +00335 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>.size()==materialUsed.size()); +00336 +00337 <span class="comment">// security reset</span> +00338 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodz435_1">resetLodCharacterTexture</a>(); +00339 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>.clear(); +00340 +00341 <span class="comment">// init all ids to "Not Used"</span> +00342 remap.clear(); +00343 remap.resize(<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>.size(), -1); +00344 +00345 <span class="comment">// remove unused materials and build remap</span> +00346 vector<CMaterial>::iterator itMat= <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>.begin(); +00347 <a class="code" href="a04558.html#a15">uint</a> dstIdx= 0; +00348 <a class="code" href="a04558.html#a15">uint</a> i; +00349 <span class="keywordflow">for</span>(i=0;i<materialUsed.size();i++) +00350 { +00351 <span class="comment">// if used, still use it, and remap.</span> +00352 <span class="keywordflow">if</span>(materialUsed[i]) +00353 { +00354 remap[i]= dstIdx; +00355 itMat++; +00356 dstIdx++; +00357 } +00358 <span class="comment">// remove from the array</span> +00359 <span class="keywordflow">else</span> +00360 { +00361 itMat= <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>.erase(itMat); +00362 } +00363 } +00364 +00365 <span class="comment">// apply the remap to LightMaps infos</span> +00366 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a577">count</a> = <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodo0">_LightInfos</a>.size (); +00367 <span class="keywordflow">for</span> (i=0; i<<a class="code" href="a04223.html#a577">count</a>; i++) +00368 { +00369 CLightMapInfoList &mapInfoList = <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodo0">_LightInfos</a>[i]; +00370 std::list<CMeshBase::CLightMapInfoList::CMatStage>::iterator ite = mapInfoList.StageList.begin (); +00371 <span class="keywordflow">while</span> (ite != mapInfoList.StageList.end ()) +00372 { +00373 <a class="code" href="a04558.html#a14">sint</a> newId= remap[ite->MatId]; +00374 <span class="comment">// If material used</span> +00375 <span class="keywordflow">if</span>(newId>=0) +00376 { +00377 <span class="comment">// apply remap on the material id</span> +00378 ite->MatId= newId; +00379 ite++; +00380 } +00381 <span class="keywordflow">else</span> +00382 { +00383 <span class="comment">// remove it from list of light infos</span> +00384 ite= mapInfoList.StageList.erase(ite); +00385 } +00386 } +00387 } +00388 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz535_0" doxytag="NL3D::CMeshMultiLod::build" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMultiLod::build </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02911.html">CMeshMultiLodBuild</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>mbuild</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Build a mesh from material info, and a builded MeshGeom. WARNING: This has a side effect of deleting AnimatedMaterials. +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00052">52</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06017.html#l00250">_StaticLod</a>, <a class="el" href="a06017.html#l00104">NL3D::CMeshMultiLod::CMeshMultiLodBuild::BaseMesh</a>, <a class="el" href="a06016.html#l00403">clear()</a>, <a class="el" href="a06016.html#l00765">compileCoarseMeshes()</a>, <a class="el" href="a06016.html#l00587">compileDistMax()</a>, <a class="el" href="a06017.html#l00107">NL3D::CMeshMultiLod::CMeshMultiLodBuild::LodMeshes</a>, <a class="el" href="a06017.html#l00215">NL3D::CMeshMultiLod::CMeshSlot::MeshGeom</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06017.html#l00101">NL3D::CMeshMultiLod::CMeshMultiLodBuild::StaticLod</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00053 { +00054 <span class="comment">// Clear the mesh</span> +00055 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd0">clear</a> (); +00056 +00057 <span class="comment">// Build the base mesh</span> +00058 CMeshBase::buildMeshBase (mbuild.BaseMesh); +00059 +00060 <span class="comment">// Static flag</span> +00061 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr1">_StaticLod</a>=mbuild.StaticLod; +00062 +00063 <span class="comment">// Resize the array</span> +00064 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.resize (mbuild.LodMeshes.size()); +00065 +00066 <span class="comment">// For each slots</span> +00067 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> slot=0; slot<mbuild.LodMeshes.size(); slot++) +00068 { +00069 <span class="comment">// Dist max</span> +00070 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].DistMax=mbuild.LodMeshes[slot].DistMax; +00071 +00072 <span class="comment">// BlendLength</span> +00073 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].BlendLength=mbuild.LodMeshes[slot].BlendLength; +00074 +00075 <span class="comment">// Flags</span> +00076 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].Flags=0; +00077 +00078 <span class="comment">// Blend in ?</span> +00079 <span class="keywordflow">if</span> (mbuild.LodMeshes[slot].Flags & CMeshMultiLodBuild::CBuildSlot::BlendIn) +00080 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].Flags|=CMeshSlot::BlendIn; +00081 +00082 <span class="comment">// Blend out ?</span> +00083 <span class="keywordflow">if</span> (mbuild.LodMeshes[slot].Flags & CMeshMultiLodBuild::CBuildSlot::BlendOut) +00084 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].Flags|=CMeshSlot::BlendOut; +00085 +00086 <span class="comment">// Coarse mesh ?</span> +00087 <span class="keywordflow">if</span> (mbuild.LodMeshes[slot].Flags & CMeshMultiLodBuild::CBuildSlot::CoarseMesh) +00088 { +00089 <span class="comment">// Flag</span> +00090 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].Flags|=CMeshSlot::CoarseMesh; +00091 } +00092 +00093 <span class="comment">// Is opaque</span> +00094 <span class="keywordflow">if</span> (mbuild.LodMeshes[slot].Flags & CMeshMultiLodBuild::CBuildSlot::IsOpaque) +00095 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].Flags|=CMeshSlot::IsOpaque; +00096 +00097 <span class="comment">// Is transparent</span> +00098 <span class="keywordflow">if</span> (mbuild.LodMeshes[slot].Flags & CMeshMultiLodBuild::CBuildSlot::IsTransparent) +00099 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].Flags|=CMeshSlot::IsTransparent; +00100 +00101 <span class="comment">// MeshGeom</span> +00102 <a class="code" href="a04199.html#a6">nlassert</a> (mbuild.LodMeshes[slot].MeshGeom); +00103 +00104 <span class="comment">// Valid pointer ?</span> +00105 <span class="keywordflow">if</span> (<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].Flags&CMeshSlot::CoarseMesh) +00106 { +00107 <span class="comment">// If it is a coarse mesh, it must be a CMeshGeom.</span> +00108 <span class="keywordflow">if</span> (dynamic_cast<CMeshGeom*>(mbuild.LodMeshes[slot].MeshGeom)==NULL) +00109 { +00110 <span class="comment">// If it is a coarse mesh, it must be a CMeshGeom.</span> +00111 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].MeshGeom = NULL; +00112 <span class="keyword">delete</span> mbuild.LodMeshes[slot].MeshGeom; +00113 } +00114 <span class="keywordflow">else</span> +00115 <span class="comment">// Ok, no prb</span> +00116 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].MeshGeom = mbuild.LodMeshes[slot].MeshGeom; +00117 } +00118 <span class="keywordflow">else</span> +00119 <span class="comment">// Ok, no prb</span> +00120 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].MeshGeom = mbuild.LodMeshes[slot].MeshGeom; +00121 } +00122 +00123 <span class="comment">// Sort the slot by the distance...</span> +00124 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=mbuild.LodMeshes.size()-1; i>0; i--) +00125 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0; j<i; j++) +00126 { +00127 <span class="comment">// Bad sort ?</span> +00128 <span class="keywordflow">if</span> (<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[j].DistMax><a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[j+1].DistMax) +00129 { +00130 <span class="comment">// Exchange slots</span> +00131 CMeshSlot tmp=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[j]; +00132 _MeshVector[j]=_MeshVector[j+1]; +00133 _MeshVector[j+1]=tmp; +00134 tmp.MeshGeom=NULL; +00135 } +00136 } +00137 +00138 <span class="comment">// Calc start and end polygon count</span> +00139 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k=0; k<mbuild.LodMeshes.size(); k++) +00140 { +00141 <span class="comment">// Get start distance</span> +00142 <span class="keywordtype">float</span> startDist; +00143 <span class="keywordflow">if</span> (k==0) +00144 startDist=0; +00145 <span class="keywordflow">else</span> +00146 startDist=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[k-1].DistMax; +00147 +00148 <span class="comment">// Get start poly count</span> +00149 <span class="keywordtype">float</span> startPolyCount; +00150 startPolyCount=_MeshVector[k].MeshGeom->getNumTriangles (startDist); +00151 +00152 <span class="comment">// Get end distance</span> +00153 <span class="keywordtype">float</span> endDist=_MeshVector[k].DistMax; +00154 +00155 <span class="comment">// Get end poly count</span> +00156 <span class="keywordflow">if</span> (k==mbuild.LodMeshes.size()-1) +00157 { +00158 _MeshVector[k].EndPolygonCount=_MeshVector[k].MeshGeom->getNumTriangles (endDist); +00159 <span class="keywordflow">if</span> (startPolyCount==_MeshVector[k].EndPolygonCount) +00160 _MeshVector[k].EndPolygonCount=startPolyCount/2; +00161 } +00162 <span class="keywordflow">else</span> +00163 _MeshVector[k].EndPolygonCount=_MeshVector[k+1].MeshGeom->getNumTriangles (endDist); +00164 +00165 <span class="comment">// Calc A</span> +00166 <span class="keywordflow">if</span> (endDist==startDist) +00167 _MeshVector[k].A=0; +00168 <span class="keywordflow">else</span> +00169 _MeshVector[k].A=(_MeshVector[k].EndPolygonCount-startPolyCount)/(endDist-startDist); +00170 +00171 <span class="comment">// Calc A</span> +00172 _MeshVector[k].B=_MeshVector[k].EndPolygonCount-_MeshVector[k].A*endDist; +00173 } +00174 +00175 <span class="comment">// End: compile some stuff</span> +00176 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd2">compileDistMax</a>(); +00177 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd1">compileCoarseMeshes</a>(); +00178 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodb1" doxytag="NL3D::CMeshMultiLod::buildMeshBase" ></a><p> +<table class="mdTable" 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::CMeshBase::buildMeshBase </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02872.html">CMeshBaseBuild</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>m</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> +Just copy informations from a <a class="el" href="a02872.html">CMeshBaseBuild</a>. +<p> +Copy default position values +<p> +Definition at line <a class="el" href="a05991.html#l00226">226</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00240">NL3D::CMeshBase::_AnimatedMaterials</a>, <a class="el" href="a05992.html#l00251">NL3D::CMeshBase::_AnimatedMorph</a>, <a class="el" href="a05992.html#l00245">NL3D::CMeshBase::_DefaultPivot</a>, <a class="el" href="a05992.html#l00246">NL3D::CMeshBase::_DefaultRotEuler</a>, <a class="el" href="a05992.html#l00247">NL3D::CMeshBase::_DefaultRotQuat</a>, <a class="el" href="a05992.html#l00248">NL3D::CMeshBase::_DefaultScale</a>, <a class="el" href="a05992.html#l00234">NL3D::CMeshBase::_LightInfos</a>, <a class="el" href="a05992.html#l00256">NL3D::CMeshBase::_UseLightingLocalAttenuation</a>, <a class="el" href="a05992.html#l00135">NL3D::CMeshBase::CMeshBaseBuild::BSNames</a>, <a class="el" href="a05991.html#l00407">NL3D::CMeshBase::computeIsLightable()</a>, <a class="el" href="a05992.html#l00134">NL3D::CMeshBase::CMeshBaseBuild::DefaultBSFactors</a>, <a class="el" href="a05992.html#l00122">NL3D::CMeshBase::CMeshBaseBuild::DefaultPivot</a>, <a class="el" href="a05992.html#l00121">NL3D::CMeshBase::CMeshBaseBuild::DefaultPos</a>, <a class="el" href="a05992.html#l00123">NL3D::CMeshBase::CMeshBaseBuild::DefaultRotEuler</a>, <a class="el" href="a05992.html#l00124">NL3D::CMeshBase::CMeshBaseBuild::DefaultRotQuat</a>, <a class="el" href="a05992.html#l00125">NL3D::CMeshBase::CMeshBaseBuild::DefaultScale</a>, <a class="el" href="a05992.html#l00131">NL3D::CMeshBase::CMeshBaseBuild::LightInfoMap</a>, <a class="el" href="a05992.html#l00128">NL3D::CMeshBase::CMeshBaseBuild::Materials</a>, <a class="el" href="a06556.html#l00162">NL3D::CTrackDefaultBlendable< CQuat >::setValue()</a>, <a class="el" href="a06556.html#l00162">NL3D::CTrackDefaultBlendable< CVector >::setValue()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05992.html#l00118">NL3D::CMeshBase::CMeshBaseBuild::UseLightingLocalAttenuation</a>. +<p> +<div class="fragment"><pre>00227 { +00228 <span class="comment">// Copy light information</span> +00229 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodo0">_LightInfos</a> = m.LightInfoMap; +00230 +00231 <span class="comment">// copy the materials.</span> +00232 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>= m.Materials; +00233 +00234 <span class="comment">// clear the animated materials.</span> +00235 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>.clear(); +00236 +00238 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp5">_DefaultPos</a>.setValue (m.DefaultPos); +00239 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp4">_DefaultPivot</a>.setValue (m.DefaultPivot); +00240 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp6">_DefaultRotEuler</a>.setValue (m.DefaultRotEuler); +00241 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp7">_DefaultRotQuat</a>.setValue (m.DefaultRotQuat); +00242 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp8">_DefaultScale</a>.setValue (m.DefaultScale); +00243 +00244 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp1">_AnimatedMorph</a> .resize(m.DefaultBSFactors.size()); +00245 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> i = 0; i < m.DefaultBSFactors.size(); ++i) +00246 { +00247 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp1">_AnimatedMorph</a>[i].DefaultFactor.setValue (m.DefaultBSFactors[i]); +00248 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp1">_AnimatedMorph</a>[i].Name = m.BSNames[i]; +00249 } +00250 +00251 <span class="comment">// update _IsLightable flag.</span> +00252 <a class="code" href="a02858.html#NL3D_1_1CMeshBased0">computeIsLightable</a>(); +00253 <span class="comment">// copy _UseLightingLocalAttenuation</span> +00254 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp12">_UseLightingLocalAttenuation</a>= m.UseLightingLocalAttenuation; +00255 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda0" doxytag="NL3D::CMeshMultiLod::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"> void NL3D::CMeshMultiLod::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"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Change MRM Distance setup of the Lod 0 only. No op if the lod0 is not a <a class="el" href="a02892.html">CMeshMRMGeom</a> 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> +Definition at line <a class="el" href="a06016.html#l00609">609</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06005.html#l00228">NL3D::CMeshMRMGeom::changeMRMDistanceSetup()</a>, and <a class="el" href="a06017.html#l00144">getNumSlotMesh()</a>. +<p> +Referenced by <a class="el" href="a06018.html#l00202">NL3D::CMeshMultiLodInstance::changeMRMDistanceSetup()</a>. +<p> +<div class="fragment"><pre>00610 { +00611 <span class="comment">// no-op if empty.</span> +00612 <span class="keywordflow">if</span>(<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLoda5">getNumSlotMesh</a> ()==0) +00613 <span class="keywordflow">return</span>; +00614 +00615 <span class="comment">// If not NULL</span> +00616 <span class="keywordflow">if</span>(<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[0].MeshGeom==NULL) +00617 <span class="keywordflow">return</span>; +00618 +00619 <span class="comment">// verify it is a CMeshMRMGeom. else no-op.</span> +00620 CMeshMRMGeom *mgeom= dynamic_cast<CMeshMRMGeom*>(<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[0].MeshGeom); +00621 <span class="keywordflow">if</span>(mgeom==NULL) +00622 <span class="keywordflow">return</span>; +00623 +00624 <span class="comment">// ok, setup.</span> +00625 mgeom->changeMRMDistanceSetup(distanceFinest, distanceMiddle, distanceCoarsest); +00626 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodd0" doxytag="NL3D::CMeshMultiLod::clear" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::clear </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> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Clear the mesh. +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00403">403</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>. +<p> +Referenced by <a class="el" href="a06016.html#l00052">build()</a>. +<p> +<div class="fragment"><pre>00404 { +00405 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.clear (); +00406 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz537_0" doxytag="NL3D::CMeshMultiLod::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::CMeshMultiLod::clip </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::vector< <a class="el" href="a03082.html">CPlane</a> > & </td> + <td class="mdname" nowrap> <em>pyramid</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02851.html">CMatrix</a> & </td> + <td class="mdname" nowrap> <em>worldMatrix</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +clip this mesh in a driver. +<p> + +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapea0">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06016.html#l00211">211</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06000.html#l00110">NL3D::IMeshGeom::clip()</a>, <a class="el" href="a06017.html#l00215">NL3D::CMeshMultiLod::CMeshSlot::MeshGeom</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00212 { +00213 <span class="comment">// Look for the biggest mesh</span> +00214 <a class="code" href="a04558.html#a15">uint</a> meshCount=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.size(); +00215 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i<meshCount; i++) +00216 { +00217 <span class="comment">// Ref on slot</span> +00218 CMeshSlot &slot=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[i]; +00219 +00220 <span class="comment">// Is mesh present ?</span> +00221 <span class="keywordflow">if</span> (slot.MeshGeom) +00222 { +00223 <span class="comment">// Clip this mesh</span> +00224 <span class="keywordflow">return</span> slot.MeshGeom->clip (pyramid, worldMatrix); +00225 } +00226 } +00227 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00228 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodd1" doxytag="NL3D::CMeshMultiLod::compileCoarseMeshes" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::compileCoarseMeshes </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> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +compile Coarse Meshs when builded/loaded. +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00765">765</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06017.html#l00236">NL3D::CMeshMultiLod::CMeshSlot::CoarseNumTris</a>, <a class="el" href="a06017.html#l00237">NL3D::CMeshMultiLod::CMeshSlot::CoarseTriangles</a>, <a class="el" href="a06017.html#l00233">NL3D::CMeshMultiLod::CMeshSlot::Flags</a>, <a class="el" href="a05990.html#l00393">NL3D::CMeshGeom::getNbMatrixBlock()</a>, <a class="el" href="a05990.html#l00398">NL3D::CMeshGeom::getNbRdrPass()</a>, <a class="el" href="a06198.html#l00108">NL3D::CPrimitiveBlock::getNumTri()</a>, <a class="el" href="a05990.html#l00404">NL3D::CMeshGeom::getRdrPassPrimitiveBlock()</a>, <a class="el" href="a06197.html#l00091">NL3D::CPrimitiveBlock::getTriPointer()</a>, <a class="el" href="a06017.html#l00215">NL3D::CMeshMultiLod::CMeshSlot::MeshGeom</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="a06016.html#l00052">build()</a>. +<p> +<div class="fragment"><pre>00766 { +00767 <span class="comment">// For All Slots that are CoarseMeshes.</span> +00768 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.size();i++) +00769 { +00770 CMeshSlot &slotRef= <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[i]; +00771 <span class="keywordflow">if</span>( slotRef.Flags & CMeshSlot::CoarseMesh ) +00772 { +00773 <span class="comment">// reset</span> +00774 slotRef.CoarseNumTris= 0; +00775 +00776 <span class="comment">// Get a pointer on the geom mesh</span> +00777 CMeshGeom *meshGeom= safe_cast<CMeshGeom*>(slotRef.MeshGeom); +00778 +00779 <span class="comment">// For All RdrPass of the 1st matrix block</span> +00780 <span class="keywordflow">if</span>( meshGeom->getNbMatrixBlock()>0 ) +00781 { +00782 <span class="comment">// 1st count</span> +00783 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<meshGeom->getNbRdrPass(0);i++) +00784 { +00785 slotRef.CoarseNumTris+= meshGeom->getRdrPassPrimitiveBlock(0, i).getNumTri(); +00786 } +00787 +00788 <span class="comment">// 2snd allocate and fill</span> +00789 <span class="keywordflow">if</span>( slotRef.CoarseNumTris ) +00790 { +00791 slotRef.CoarseTriangles.resize(slotRef.CoarseNumTris * 3); +00792 <a class="code" href="a04558.html#a11">uint32</a> *dstPtr= &slotRef.CoarseTriangles[0]; +00793 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<meshGeom->getNbRdrPass(0);i++) +00794 { +00795 <span class="keyword">const</span> CPrimitiveBlock &pb= meshGeom->getRdrPassPrimitiveBlock(0, i); +00796 <a class="code" href="a04558.html#a15">uint</a> numTris= pb.getNumTri(); +00797 memcpy(dstPtr, pb.getTriPointer(), numTris*3*<span class="keyword">sizeof</span>(<a class="code" href="a04558.html#a11">uint32</a>)); +00798 dstPtr+= numTris*3; +00799 } +00800 } +00801 } +00802 } +00803 } +00804 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodd2" doxytag="NL3D::CMeshMultiLod::compileDistMax" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::compileDistMax </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> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +copileDistMax when builded/loaded. +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00587">587</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>. +<p> +Referenced by <a class="el" href="a06016.html#l00052">build()</a>. +<p> +<div class="fragment"><pre>00588 { +00589 <span class="comment">// Last element</span> +00590 std::vector<CMeshSlot>::const_iterator ite=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.end(); +00591 ite--; +00592 <span class="keywordflow">if</span> (ite!=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.end()) +00593 IShape::_DistMax= ite->DistMax; +00594 <span class="keywordflow">else</span> +00595 IShape::_DistMax= -1; +00596 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz537_1" doxytag="NL3D::CMeshMultiLod::createInstance" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02537.html">CTransformShape</a> * NL3D::CMeshMultiLod::createInstance </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>scene</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Create a <a class="el" href="a02888.html">CMeshInstance</a>, which contains materials. +<p> + +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapea1">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06016.html#l00182">182</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06019.html#l00077">NL3D::CMeshMultiLodInstance::_LastLodMatrixDate</a>, <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>, <a class="el" href="a06018.html#l00223">NL3D::CMeshMultiLodInstance::initRenderFilterType()</a>, <a class="el" href="a06016.html#l00740">instanciateCoarseMeshSpace()</a>, <a class="el" href="a06571.html#l00072">NL3D::CTransformShape::Shape</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00183 { +00184 <span class="comment">// Create a CMeshInstance, an instance of a multi lod mesh.</span> +00185 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodn0">CMeshMultiLodInstance</a> *mi=(<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodn0">CMeshMultiLodInstance</a>*)scene.createModel(NL3D::MeshMultiLodInstanceId); +00186 mi->Shape= <span class="keyword">this</span>; +00187 mi->_LastLodMatrixDate=0; +00188 +00189 <span class="comment">// instanciate the material part of the Mesh, ie the CMeshBase.</span> +00190 CMeshBase::instanciateMeshBase(mi, &scene); +00191 +00192 <span class="comment">// Create the necessary space for Coarse Instanciation</span> +00193 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd3">instanciateCoarseMeshSpace</a>(mi); +00194 +00195 <span class="comment">// For all lods, do some instance init for MeshGeom</span> +00196 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0; i<<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.size(); i++) +00197 { +00198 <span class="keywordflow">if</span>(<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[i].MeshGeom) +00199 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[i].MeshGeom->initInstance(mi); +00200 } +00201 +00202 <span class="comment">// init the Filter type</span> +00203 mi->initRenderFilterType(); +00204 +00205 +00206 <span class="keywordflow">return</span> mi; +00207 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda1" doxytag="NL3D::CMeshMultiLod::flushTextures" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshBase::flushTextures </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> & </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>selectedTexture</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Flush textures. +<p> +Flush material textures +<p> +Implements <a class="el" href="a02539.html#NL3D_1_1IShapea2">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a05991.html#l00392">392</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00393 { +00394 <span class="comment">// Mat count</span> +00395 <a class="code" href="a04558.html#a15">uint</a> matCount=<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>.size(); +00396 +00397 <span class="comment">// Flush each material textures</span> +00398 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> mat=0; mat<matCount; mat++) +00399 { +00401 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>[mat].flushTextures (driver, selectedTexture); +00402 } +00403 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz537_2" doxytag="NL3D::CMeshMultiLod::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::CMeshMultiLod::getAABBox </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02156.html">NLMISC::CAABBox</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>bbox</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get bbox. +<p> + +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapea3">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06016.html#l00383">383</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a05646.html#l00240">count</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00384 { +00385 <span class="comment">// Get count</span> +00386 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a577">count</a>=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.size(); +00387 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> slot=0; slot<<a class="code" href="a04223.html#a577">count</a>; slot++) +00388 { +00389 <span class="comment">// Shape ?</span> +00390 <span class="keywordflow">if</span> (<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].MeshGeom) +00391 { +00392 <span class="comment">// Get the bounding box</span> +00393 bbox=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].MeshGeom->getBoundingBox().getAABBox(); +00394 +00395 <span class="comment">// ok</span> +00396 <span class="keywordflow">break</span>; +00397 } +00398 } +00399 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz427_0" doxytag="NL3D::CMeshMultiLod::getAnimatedMaterial" ></a><p> +<table class="mdTable" 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="a02846.html">CMaterialBase</a> * NL3D::CMeshBase::getAnimatedMaterial </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> +return NULL if this material is NOT animated. (or if material do not exist) +<p> + +<p> +Definition at line <a class="el" href="a05991.html#l00090">90</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00240">NL3D::CMeshBase::_AnimatedMaterials</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00091 { +00092 TAnimatedMaterialMap::iterator it; +00093 it= <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>.find(<span class="keywordtype">id</span>); +00094 <span class="keywordflow">if</span>(it!=<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>.end()) +00095 <span class="keywordflow">return</span> &it->second; +00096 <span class="keywordflow">else</span> +00097 <span class="keywordflow">return</span> NULL; +00098 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz433_0" doxytag="NL3D::CMeshMultiLod::getAutoAnim" ></a><p> +<table class="mdTable" 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::CMeshBase::getAutoAnim </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="a05992.html#l00212">212</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00258">NL3D::CMeshBase::_AutoAnim</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>, and <a class="el" href="a05993.html#l00164">NL3D::CMeshBaseInstance::traverseHrc()</a>. +<p> +<div class="fragment"><pre>00212 { <span class="keywordflow">return</span> <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp2">_AutoAnim</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6" doxytag="NL3D::CMeshMultiLod::getClassName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual std::string NLMISC::IClassable::getClassName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [pure virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implemented in <a class="el" href="a02995.html#NLAIAGENT_1_1CNumericIndexz1699_0">NLAIAGENT::CNumericIndex</a>, <a class="el" href="a02145.html#NLAIAGENT_1_1VectorTypez1764_0">NLAIC::IPointerGestion</a>, <a class="el" href="a02650.html#NLAIC_1_1CIdentTypez1766_0">NLAIC::CIdentType</a>, and <a class="el" href="a02241.html#CAutomataDescz1896_0">CAutomataDesc</a>. +<p> +Referenced by <a class="el" href="a05549.html#l00091">NLMISC::CClassRegistry::checkObject()</a>, and <a class="el" href="a06525.html#l00039">NL3D::GetTextureSize()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz429_0" doxytag="NL3D::CMeshMultiLod::getDefaultLMFactor" ></a><p> +<table class="mdTable" 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="a03549.html">CTrackDefaultRGBA</a>* NL3D::CMeshBase::getDefaultLMFactor </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="a05992.html#l00166">166</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00249">NL3D::CMeshBase::_DefaultLMFactor</a>. +<p> +<div class="fragment"><pre>00166 {<span class="keywordflow">return</span> &<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp3">_DefaultLMFactor</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz429_1" doxytag="NL3D::CMeshMultiLod::getDefaultPivot" ></a><p> +<table class="mdTable" 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="a03551.html">CTrackDefaultVector</a>* NL3D::CMeshBase::getDefaultPivot </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="a05992.html#l00162">162</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00245">NL3D::CMeshBase::_DefaultPivot</a>. +<p> +Referenced by <a class="el" href="a05993.html#l00097">NL3D::CMeshBaseInstance::getDefaultTrack()</a>. +<p> +<div class="fragment"><pre>00162 {<span class="keywordflow">return</span> &<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp4">_DefaultPivot</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz429_2" doxytag="NL3D::CMeshMultiLod::getDefaultPos" ></a><p> +<table class="mdTable" 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="a03551.html">CTrackDefaultVector</a>* NL3D::CMeshBase::getDefaultPos </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="a05992.html#l00161">161</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05993.html#l00097">NL3D::CMeshBaseInstance::getDefaultTrack()</a>. +<p> +<div class="fragment"><pre>00161 {<span class="keywordflow">return</span> &<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp5">_DefaultPos</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz429_3" doxytag="NL3D::CMeshMultiLod::getDefaultRotEuler" ></a><p> +<table class="mdTable" 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="a03551.html">CTrackDefaultVector</a>* NL3D::CMeshBase::getDefaultRotEuler </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="a05992.html#l00163">163</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00246">NL3D::CMeshBase::_DefaultRotEuler</a>. +<p> +Referenced by <a class="el" href="a05993.html#l00097">NL3D::CMeshBaseInstance::getDefaultTrack()</a>. +<p> +<div class="fragment"><pre>00163 {<span class="keywordflow">return</span> &<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp6">_DefaultRotEuler</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz429_4" doxytag="NL3D::CMeshMultiLod::getDefaultRotQuat" ></a><p> +<table class="mdTable" 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="a03548.html">CTrackDefaultQuat</a>* NL3D::CMeshBase::getDefaultRotQuat </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="a05992.html#l00164">164</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00247">NL3D::CMeshBase::_DefaultRotQuat</a>. +<p> +Referenced by <a class="el" href="a05993.html#l00097">NL3D::CMeshBaseInstance::getDefaultTrack()</a>. +<p> +<div class="fragment"><pre>00164 {<span class="keywordflow">return</span> &<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp7">_DefaultRotQuat</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz429_5" doxytag="NL3D::CMeshMultiLod::getDefaultScale" ></a><p> +<table class="mdTable" 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="a03551.html">CTrackDefaultVector</a>* NL3D::CMeshBase::getDefaultScale </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="a05992.html#l00165">165</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00248">NL3D::CMeshBase::_DefaultScale</a>. +<p> +Referenced by <a class="el" href="a05993.html#l00097">NL3D::CMeshBaseInstance::getDefaultTrack()</a>. +<p> +<div class="fragment"><pre>00165 {<span class="keywordflow">return</span> &<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp8">_DefaultScale</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapea5" doxytag="NL3D::CMeshMultiLod::getDistMax" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float NL3D::IShape::getDistMax </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return the DistMax where the shape is no more displayed. Default is to return -1, meaning DistMax = infinite. +<p> +Definition at line <a class="el" href="a06377.html#l00112">112</a> of file <a class="el" href="a06377.html">shape.h</a>. +<p> +<div class="fragment"><pre>00112 {<span class="keywordflow">return</span> <a class="code" href="a02539.html#NL3D_1_1IShapep0">_DistMax</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz435_0" doxytag="NL3D::CMeshMultiLod::getLodCharacterTexture" ></a><p> +<table class="mdTable" 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="a02810.html">CLodCharacterTexture</a>* NL3D::CMeshBase::getLodCharacterTexture </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 lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. NULL per default. NB: serialised +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00223">223</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00278">NL3D::CMeshBase::_LodCharacterTexture</a>. +<p> +Referenced by <a class="el" href="a06393.html#l00866">NL3D::CSkeletonModel::computeLodTexture()</a>. +<p> +<div class="fragment"><pre>00223 {<span class="keywordflow">return</span> _LodCharacterTexture;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz431_0" doxytag="NL3D::CMeshMultiLod::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::CMeshBase::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>id</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> +Get a material, const version. +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00184">184</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00185 { +00186 <span class="keywordflow">return</span> <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>[<span class="keywordtype">id</span>]; +00187 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz431_1" doxytag="NL3D::CMeshMultiLod::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::CMeshBase::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>id</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> +Get a material. +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00179">179</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06768.html#l01717">NL3D::CZoneLighter::addTriangles()</a>, <a class="el" href="a05567.html#l00070">NL3D::CCoarseMeshBuild::buildBitmap()</a>, <a class="el" href="a06250.html#l02064">NL3D::CPSConstraintMesh::CMeshDisplayShare::buildRdrPassSet()</a>, <a class="el" href="a06250.html#l00501">NL3D::CheckForLightableFacesInMesh()</a>, <a class="el" href="a06250.html#l00480">NL3D::CheckForOpaqueAndTransparentFacesInMesh()</a>, <a class="el" href="a06378.html#l00134">NL3D::CShapeBank::processWaitingShapes()</a>, <a class="el" href="a05567.html#l00430">NL3D::CCoarseMeshBuild::remapCoordinates()</a>, <a class="el" href="a05457.html#l00231">NL3D::CAsyncFileManager3D::CMeshLoad::run()</a>, and <a class="el" href="a05993.html#l00268">NL3D::CMeshBaseInstance::selectTextureSet()</a>. +<p> +<div class="fragment"><pre>00180 { +00181 <span class="keywordflow">return</span> <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>[<span class="keywordtype">id</span>]; +00182 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda4" doxytag="NL3D::CMeshMultiLod::getMeshGeom" ></a><p> +<table class="mdTable" 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="a02879.html">IMeshGeom</a> & NL3D::CMeshMultiLod::getMeshGeom </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>slot</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Geometry accessor. +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00599">599</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06017.html#l00144">getNumSlotMesh()</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="a06768.html#l01670">NL3D::CZoneLighter::addTriangles()</a>, <a class="el" href="a05824.html#l00129">NL3D::CInstanceLighter::addTriangles()</a>, and <a class="el" href="a06626.html#l00053">NL3D::UShape::getMeshTriangles()</a>. +<p> +<div class="fragment"><pre>00600 { +00601 <span class="comment">// Checks</span> +00602 <a class="code" href="a04199.html#a6">nlassert</a> (slot<getNumSlotMesh ()); +00603 +00604 <span class="keywordflow">return</span> *<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].MeshGeom; +00605 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz431_2" doxytag="NL3D::CMeshMultiLod::getNbMaterial" ></a><p> +<table class="mdTable" 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::CMeshBase::getNbMaterial </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 number of materials in the mesh. +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00173">173</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06378.html#l00134">NL3D::CShapeBank::processWaitingShapes()</a>, <a class="el" href="a05457.html#l00231">NL3D::CAsyncFileManager3D::CMeshLoad::run()</a>, and <a class="el" href="a05993.html#l00268">NL3D::CMeshBaseInstance::selectTextureSet()</a>. +<p> +<div class="fragment"><pre>00174 { +00175 <span class="keywordflow">return</span> <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>.size(); +00176 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda5" doxytag="NL3D::CMeshMultiLod::getNumSlotMesh" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::getNumSlotMesh </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get slot mesh count. +<p> + +<p> +Definition at line <a class="el" href="a06017.html#l00144">144</a> of file <a class="el" href="a06017.html">mesh_multi_lod.h</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06016.html#l00609">changeMRMDistanceSetup()</a>, <a class="el" href="a06016.html#l00599">getMeshGeom()</a>, <a class="el" href="a06626.html#l00053">NL3D::UShape::getMeshTriangles()</a>, and <a class="el" href="a06018.html#l00223">NL3D::CMeshMultiLodInstance::initRenderFilterType()</a>. +<p> +<div class="fragment"><pre>00145 { +00146 <span class="keywordflow">return</span> <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.size(); +00147 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda6" doxytag="NL3D::CMeshMultiLod::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"> virtual float NL3D::CMeshMultiLod::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> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +should not be called direclty as the intance of this shape will use 'getNumTrianglesWithCoarsestDist' themselves to get the correct distance. +<p> + +<p> +Implements <a class="el" href="a02539.html#NL3D_1_1IShapez900_0">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06017.html#l00180">180</a> of file <a class="el" href="a06017.html">mesh_multi_lod.h</a>. +<p> +References <a class="el" href="a06016.html#l00320">getNumTrianglesWithCoarsestDist()</a>. +<p> +<div class="fragment"><pre>00181 { +00182 <span class="keywordflow">return</span> <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLoda7">getNumTrianglesWithCoarsestDist</a>(distance, -1); +00183 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda7" doxytag="NL3D::CMeshMultiLod::getNumTrianglesWithCoarsestDist" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::getNumTrianglesWithCoarsestDist </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>distance</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>coarsestMeshDist</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</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="a06016.html#l00320">320</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06017.html#l00218">NL3D::CMeshMultiLod::CMeshSlot::A</a>, <a class="el" href="a06017.html#l00221">NL3D::CMeshMultiLod::CMeshSlot::B</a>, <a class="el" href="a06017.html#l00215">NL3D::CMeshMultiLod::CMeshSlot::MeshGeom</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06018.html#l00215">NL3D::CMeshMultiLodInstance::getNumTriangles()</a>, and <a class="el" href="a06017.html#l00180">getNumTriangles()</a>. +<p> +<div class="fragment"><pre>00321 { +00322 <span class="comment">// Look in the table for good distances..</span> +00323 <a class="code" href="a04558.html#a15">uint</a> meshCount=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.size(); +00324 +00325 <span class="comment">// At least on mesh</span> +00326 <span class="keywordflow">if</span> (meshCount>0) +00327 { +00328 +00329 <span class="keywordflow">if</span> (coarsestMeshDist != -1) +00330 { +00331 <span class="keywordflow">if</span> (coarsestMeshDist != 0) +00332 { +00333 <span class="comment">// rescale distance to new coarse mesh distance..</span> +00334 distance *= <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[meshCount - 1].DistMax / coarsestMeshDist; +00335 } +00336 } +00337 +00338 <a class="code" href="a04558.html#a15">uint</a> i=0; +00339 <span class="comment">// Look for good i</span> +00340 <span class="keywordflow">while</span> ( <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[i].DistMax < distance) +00341 { +00342 <span class="keywordflow">if</span> (i==meshCount-1) +00343 <span class="comment">// Abort if last one</span> +00344 <span class="keywordflow">break</span>; +00345 i++; +00346 } +00347 +00348 <span class="comment">// Ref on slot</span> +00349 <span class="keyword">const</span> CMeshSlot &slot=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[i]; +00350 +00351 <span class="comment">// Is mesh present ?</span> +00352 <span class="keywordflow">if</span> (slot.MeshGeom) +00353 { +00354 <span class="comment">// Get the polygon count with the distance</span> +00355 <span class="keywordtype">float</span> polyCount=slot.A * distance + slot.B; +00356 +00357 <span class="comment">/*// Get the perfect polygon count in this slot for the asked distance</span> +00358 <span class="comment"> float goodPolyCount=slot.MeshGeom->getNumTriangles (distance);</span> +00359 <span class="comment"></span> +00360 <span class="comment"> // Get the next slot perfect polygon count</span> +00361 <span class="comment"> float realEndPolyCount;</span> +00362 <span class="comment"></span> +00363 <span class="comment"> // Last slot ?</span> +00364 <span class="comment"> if ( (i<meshCount-1) && _MeshVector[i+1].MeshGeom )</span> +00365 <span class="comment"> // Take end number polygon count in the next slot</span> +00366 <span class="comment"> realEndPolyCount=_MeshVector[i+1].MeshGeom->getNumTriangles (slot.DistMax);</span> +00367 <span class="comment"> else</span> +00368 <span class="comment"> // Take end number polygon count in the this slot</span> +00369 <span class="comment"> realEndPolyCount=slot.EndPolygonCount;</span> +00370 <span class="comment"></span> +00371 <span class="comment"> // Return blended polygon count to have a continous decreasing function</span> +00372 <span class="comment"> return (goodPolyCount-slot.BeginPolygonCount) * (realEndPolyCount-slot.BeginPolygonCount) / </span> +00373 <span class="comment"> (slot.EndPolygonCount-slot.BeginPolygonCount) + slot.BeginPolygonCount;*/</span> +00374 <span class="keywordflow">return</span> polyCount; +00375 } +00376 } +00377 +00378 <span class="keywordflow">return</span> 0; +00379 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypea8" doxytag="NL3D::CMeshMultiLod::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_1CMeshMultiLoda9" doxytag="NL3D::CMeshMultiLod::getSlotMesh" ></a><p> +<table class="mdTable" 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="a02879.html">IMeshGeom</a>* NL3D::CMeshMultiLod::getSlotMesh </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>i</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool & </td> + <td class="mdname" nowrap> <em>coarseMesh</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get a slot mesh. +<p> + +<p> +Definition at line <a class="el" href="a06017.html#l00150">150</a> of file <a class="el" href="a06017.html">mesh_multi_lod.h</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06018.html#l00223">NL3D::CMeshMultiLodInstance::initRenderFilterType()</a>. +<p> +<div class="fragment"><pre>00151 { +00152 <span class="comment">// Coarse mesh ?</span> +00153 coarseMesh=(<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[i].Flags&CMeshSlot::CoarseMesh)!=0; +00154 +00155 <span class="comment">// Return the mesh pointer</span> +00156 <span class="keywordflow">return</span> _MeshVector[i].MeshGeom; +00157 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodd3" doxytag="NL3D::CMeshMultiLod::instanciateCoarseMeshSpace" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::instanciateCoarseMeshSpace </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02914.html">CMeshMultiLodInstance</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>mi</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> +called at <a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_1">createInstance()</a> time +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00740">740</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06019.html#l00113">NL3D::CMeshMultiLodInstance::_CoarseMeshVB</a>, <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06017.html#l00233">NL3D::CMeshMultiLod::CMeshSlot::Flags</a>, <a class="el" href="a06349.html#l00335">NL3D::CScene::getCoarseMeshManager()</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="a05990.html#l00390">NL3D::CMeshGeom::getVertexBuffer()</a>, <a class="el" href="a05570.html#l00117">NL3D::CCoarseMeshManager::getVertexSize()</a>, <a class="el" href="a06017.html#l00215">NL3D::CMeshMultiLod::CMeshSlot::MeshGeom</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06016.html#l00182">createInstance()</a>. +<p> +<div class="fragment"><pre>00741 { +00742 CCoarseMeshManager *manager= mi->getOwnerScene()->getCoarseMeshManager(); +00743 +00744 <span class="keywordflow">if</span>(manager) +00745 { +00746 <span class="comment">// For all MeshSlots that have a CoarseMesh, count max Coarse NumVertices;</span> +00747 <a class="code" href="a04558.html#a15">uint</a> numVertices= 0; +00748 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>.size();i++) +00749 { +00750 CMeshSlot &slotRef= <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[i]; +00751 <span class="keywordflow">if</span>( slotRef.Flags & CMeshSlot::CoarseMesh ) +00752 { +00753 <span class="comment">// Get a pointer on the geom mesh</span> +00754 CMeshGeom *meshGeom= safe_cast<CMeshGeom*>(slotRef.MeshGeom); +00755 numVertices= max(numVertices, (<a class="code" href="a04558.html#a15">uint</a>)meshGeom->getVertexBuffer().getNumVertices() ); +00756 } +00757 } +00758 +00759 <span class="comment">// Then allocate vertex space for dest manager vertex size.</span> +00760 mi->_CoarseMeshVB.resize( numVertices*manager->getVertexSize() ); +00761 } +00762 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodb2" doxytag="NL3D::CMeshMultiLod::instanciateMeshBase" ></a><p> +<table class="mdTable" 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::CMeshBase::instanciateMeshBase </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02873.html">CMeshBaseInstance</a> * </td> + <td class="mdname" nowrap> <em>mi</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03348.html">CScene</a> * </td> + <td class="mdname" nowrap> <em>ownerScene</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> +instanciate MeshBase part to an instance (a <a class="el" href="a02873.html">CMeshBaseInstance</a>). +<p> + +<p> +Definition at line <a class="el" href="a05991.html#l00261">261</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00240">NL3D::CMeshBase::_AnimatedMaterials</a>, <a class="el" href="a05994.html#l00226">NL3D::CMeshBaseInstance::_AnimatedMaterials</a>, <a class="el" href="a05992.html#l00251">NL3D::CMeshBase::_AnimatedMorph</a>, <a class="el" href="a05994.html#l00231">NL3D::CMeshBaseInstance::_AnimatedMorphFactor</a>, <a class="el" href="a05992.html#l00245">NL3D::CMeshBase::_DefaultPivot</a>, <a class="el" href="a05992.html#l00247">NL3D::CMeshBase::_DefaultRotQuat</a>, <a class="el" href="a05992.html#l00248">NL3D::CMeshBase::_DefaultScale</a>, <a class="el" href="a05994.html#l00082">NL3D::CMeshBaseInstance::AsyncTextures</a>, <a class="el" href="a05442.html#l00279">NL3D::CAnimatedValueQuat</a>, <a class="el" href="a05442.html#l00277">NL3D::CAnimatedValueVector</a>, <a class="el" href="a06556.html#l00169">NL3D::CTrackDefaultBlendable< CQuat >::getValue()</a>, <a class="el" href="a06556.html#l00169">NL3D::CTrackDefaultBlendable< CVector >::getValue()</a>, <a class="el" href="a05994.html#l00075">NL3D::CMeshBaseInstance::Materials</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05993.html#l00268">NL3D::CMeshBaseInstance::selectTextureSet()</a>, <a class="el" href="a05434.html#l00153">NL3D::IAnimatable::setFather()</a>, <a class="el" href="a06568.html#l00574">NL3D::CTransform::setIsBigLightable()</a>, <a class="el" href="a06568.html#l00552">NL3D::CTransform::setIsLightable()</a>, <a class="el" href="a05437.html#l00182">NL3D::CAnimatedMaterial::setMaterial()</a>, <a class="el" href="a06568.html#l00255">NL3D::CTransform::setOpacity()</a>, <a class="el" href="a06568.html#l00240">NL3D::CTransform::setTransparency()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00262 { +00263 <a class="code" href="a04558.html#a11">uint32</a> i; +00264 +00265 +00266 <span class="comment">// setup animated blendShapes</span> +00267 <span class="comment">//===========================</span> +00268 mi->_AnimatedMorphFactor.reserve(<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp1">_AnimatedMorph</a>.size()); +00269 <span class="keywordflow">for</span>(i = 0; i < <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp1">_AnimatedMorph</a>.size(); ++i) +00270 { +00271 CAnimatedMorph am(&_AnimatedMorph[i]); +00272 mi->_AnimatedMorphFactor.push_back (am); +00273 } +00274 +00275 <span class="comment">// setup materials.</span> +00276 <span class="comment">//=================</span> +00277 <span class="comment">// Copy material. Textures are referenced only</span> +00278 mi->Materials= <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>; +00279 +00280 <span class="comment">// Instanciate selectable textures (use default set)</span> +00281 mi->selectTextureSet(0); +00282 +00283 <span class="comment">// prepare possible AsyncTextures</span> +00284 mi->AsyncTextures.resize(<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>.size()); +00285 +00286 <span class="comment">// setup animated materials.</span> +00287 <span class="comment">//==========================</span> +00288 TAnimatedMaterialMap::iterator it; +00289 mi->_AnimatedMaterials.reserve(<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>.size()); +00290 <span class="keywordflow">for</span>(it= <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>.begin(); it!= <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>.end(); it++) +00291 { +00292 CAnimatedMaterial aniMat(&it->second); +00293 +00294 <span class="comment">// set the target instance material.</span> +00295 <a class="code" href="a04199.html#a6">nlassert</a>(it->first < mi->Materials.size()); +00296 aniMat.setMaterial(&mi->Materials[it->first]); +00297 +00298 <span class="comment">// Must set the Animatable father of the animated material (the mesh_base_instance!).</span> +00299 aniMat.setFather(mi, CMeshBaseInstance::OwnerBit); +00300 +00301 <span class="comment">// Append this animated material.</span> +00302 mi->_AnimatedMaterials.push_back(aniMat); +00303 } +00304 +00305 <span class="comment">// Misc</span> +00306 <span class="comment">//==========================</span> +00307 +00308 <span class="comment">// Setup position with the default value</span> +00309 mi->ITransformable::setPos( ((CAnimatedValueVector&)<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp5">_DefaultPos</a>.getValue()).Value ); +00310 mi->ITransformable::setRotQuat( ((CAnimatedValueQuat&)<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp7">_DefaultRotQuat</a>.getValue()).Value ); +00311 mi->ITransformable::setScale( ((CAnimatedValueVector&)<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp8">_DefaultScale</a>.getValue()).Value ); +00312 mi->ITransformable::setPivot( ((CAnimatedValueVector&)<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp4">_DefaultPivot</a>.getValue()).Value ); +00313 +00314 <span class="comment">// Check materials for transparency</span> +00315 mi->setTransparency( <span class="keyword">false</span> ); +00316 mi->setOpacity( <span class="keyword">false</span> ); +00317 <span class="keywordflow">for</span>( i = 0; i < mi->Materials.size(); ++i ) +00318 <span class="keywordflow">if</span>( mi->Materials[i].getBlend() ) +00319 mi->setTransparency( <span class="keyword">true</span> ); +00320 <span class="keywordflow">else</span> +00321 mi->setOpacity( <span class="keyword">true</span> ); +00322 +00323 <span class="comment">// if the mesh is lightable, then the instance is</span> +00324 mi->setIsLightable(this->isLightable()); +00325 +00326 <span class="comment">// a mesh is considered big for lightable if it uses localAttenuation</span> +00327 mi->setIsBigLightable(this->useLightingLocalAttenuation()); +00328 +00329 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda10" doxytag="NL3D::CMeshMultiLod::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"> bool NL3D::CMeshBase::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> +Is this mesh lightable? true if one of his materials is not a lightmap. NB: result stored in file. +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00198">198</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00254">NL3D::CMeshBase::_IsLightable</a>. +<p> +Referenced by <a class="el" href="a05824.html#l00305">NL3D::CInstanceLighter::light()</a>. +<p> +<div class="fragment"><pre>00198 {<span class="keywordflow">return</span> <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp10">_IsLightable</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda11" doxytag="NL3D::CMeshMultiLod::isStatic" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::isStatic </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Is static mesh ? +<p> + +<p> +Definition at line <a class="el" href="a06017.html#l00160">160</a> of file <a class="el" href="a06017.html">mesh_multi_lod.h</a>. +<p> +References <a class="el" href="a06017.html#l00250">_StaticLod</a>. +<p> +<div class="fragment"><pre>00161 { +00162 <span class="keywordflow">return</span> <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr1">_StaticLod</a>; +00163 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz537_3" doxytag="NL3D::CMeshMultiLod::NLMISC_DECLARE_CLASS" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> NL3D::CMeshMultiLod::NLMISC_DECLARE_CLASS </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02910.html">CMeshMultiLod</a> </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Declare name of the shape. +<p> + </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodd4" doxytag="NL3D::CMeshMultiLod::profileMeshGeom" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::profileMeshGeom </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>slot</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03325.html">CRenderTrav</a> * </td> + <td class="mdname" nowrap> <em>rdrTrav</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02914.html">CMeshMultiLodInstance</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>numPoylgons</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>rdrFlags</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Profile the MeshGeom of a slot, even if coarseMesh. +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00661">661</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06017.html#l00233">NL3D::CMeshMultiLod::CMeshSlot::Flags</a>, <a class="el" href="a06017.html#l00215">NL3D::CMeshMultiLod::CMeshSlot::MeshGeom</a>, <a class="el" href="a02879.html#NL3D_1_1IMeshGeoma5">NL3D::IMeshGeom::profileSceneRender()</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="a06016.html#l00687">profileSceneRender()</a>. +<p> +<div class="fragment"><pre>00662 { +00663 <span class="comment">// Ref</span> +00664 CMeshSlot &slotRef=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot]; +00665 +00666 <span class="comment">// MeshGeom exist?</span> +00667 <span class="keywordflow">if</span> (slotRef.MeshGeom) +00668 { +00669 <span class="comment">// NB Here, the meshGeom may still be a coarseMesh, but rendered through CMeshGeom</span> +00670 <span class="keywordflow">if</span>(slotRef.Flags&CMeshSlot::CoarseMesh) +00671 { +00672 <span class="comment">// Render only for opaque material</span> +00673 <span class="keywordflow">if</span>(rdrFlags & IMeshGeom::RenderOpaqueMaterial) +00674 { +00675 slotRef.MeshGeom->profileSceneRender(rdrTrav, trans, numPoylgons, rdrFlags); +00676 } +00677 } +00678 <span class="keywordflow">else</span> +00679 { +00680 slotRef.MeshGeom->profileSceneRender(rdrTrav, trans, numPoylgons, rdrFlags); +00681 } +00682 } +00683 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz537_4" doxytag="NL3D::CMeshMultiLod::profileSceneRender" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMultiLod::profileSceneRender </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03325.html">CRenderTrav</a> * </td> + <td class="mdname" nowrap> <em>rdrTrav</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02537.html">CTransformShape</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>opaquePass</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +profiling +<p> + +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapea8">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06016.html#l00687">687</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06019.html#l00110">NL3D::CMeshMultiLodInstance::Flags</a>, <a class="el" href="a06019.html#l00106">NL3D::CMeshMultiLodInstance::Lod0</a>, <a class="el" href="a06019.html#l00107">NL3D::CMeshMultiLodInstance::Lod1</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06019.html#l00118">NL3D::CMeshMultiLodInstance::PolygonCountLod0</a>, <a class="el" href="a06019.html#l00119">NL3D::CMeshMultiLodInstance::PolygonCountLod1</a>, <a class="el" href="a06016.html#l00661">profileMeshGeom()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00688 { +00689 <span class="comment">// Render good meshes</span> +00690 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodn0">CMeshMultiLodInstance</a> *instance=safe_cast<CMeshMultiLodInstance*>(trans); +00691 +00692 +00693 <span class="comment">// Second lod ?</span> +00694 <span class="keywordflow">if</span> ( (instance->Lod1!=0xffffffff) && (passOpaque==<span class="keyword">false</span>) ) +00695 { +00696 <span class="comment">// build rdrFlags to rdr both transparent and opaque materials, </span> +00697 <span class="comment">// use globalAlphaBlend, and disable ZWrite for Lod1</span> +00698 <a class="code" href="a04558.html#a11">uint32</a> rdrFlags= IMeshGeom::RenderOpaqueMaterial | IMeshGeom::RenderTransparentMaterial | +00699 IMeshGeom::RenderGlobalAlpha | IMeshGeom::RenderGADisableZWrite; +00700 <span class="comment">// NB: very important to render Lod1 first, because Lod0 is still rendered with ZWrite enabled.</span> +00701 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd4">profileMeshGeom</a> (instance->Lod1, rdrTrav, instance, instance->PolygonCountLod1, rdrFlags); +00702 } +00703 +00704 +00705 <span class="comment">// Have an opaque pass ?</span> +00706 <span class="keywordflow">if</span> ( (instance->Flags&CMeshMultiLodInstance::Lod0Blend) == 0) +00707 { +00708 <span class="comment">// Is this slot a CoarseMesh?</span> +00709 <span class="keywordflow">if</span> ( <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[instance->Lod0].Flags&CMeshSlot::CoarseMesh ) +00710 { +00711 } +00712 <span class="keywordflow">else</span> +00713 { +00714 <span class="comment">// build rdrFlags the normal way (as CMesh::render() for example)</span> +00715 <a class="code" href="a04558.html#a11">uint32</a> mask= (0-(<a class="code" href="a04558.html#a11">uint32</a>)passOpaque); +00716 <a class="code" href="a04558.html#a11">uint32</a> rdrFlags; +00717 <span class="comment">// select rdrFlags, without ifs.</span> +00718 rdrFlags= mask & (IMeshGeom::RenderOpaqueMaterial | IMeshGeom::RenderPassOpaque); +00719 rdrFlags|= ~mask & (IMeshGeom::RenderTransparentMaterial); +00720 <span class="comment">// Only render the normal way the first lod</span> +00721 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd4">profileMeshGeom</a> (instance->Lod0, rdrTrav, instance, instance->PolygonCountLod0, rdrFlags); +00722 } +00723 } +00724 <span class="keywordflow">else</span> +00725 { +00726 <span class="comment">// Should not be in opaque</span> +00727 <a class="code" href="a04199.html#a6">nlassert</a> (passOpaque==<span class="keyword">false</span>); +00728 +00729 <span class="comment">// build rdrFlags to rdr both transparent and opaque materials, </span> +00730 <span class="comment">// use globalAlphaBlend, BUT Don't disable ZWrite for Lod0</span> +00731 <a class="code" href="a04558.html#a11">uint32</a> rdrFlags= IMeshGeom::RenderOpaqueMaterial | IMeshGeom::RenderTransparentMaterial | +00732 IMeshGeom::RenderGlobalAlpha; +00733 +00734 <span class="comment">// Render first lod in blend mode. Don't disable ZWrite for Lod0</span> +00735 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd4">profileMeshGeom</a> (instance->Lod0, rdrTrav, instance, instance->PolygonCountLod0, rdrFlags); +00736 } +00737 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz537_5" doxytag="NL3D::CMeshMultiLod::render" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMultiLod::render </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02537.html">CTransformShape</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>passOpaque</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +<a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodz537_5">render()</a> this mesh in a driver. +<p> + +<p> +Implements <a class="el" href="a02539.html#NL3D_1_1IShapea9">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06016.html#l00232">232</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06019.html#l00122">NL3D::CMeshMultiLodInstance::BlendFactor</a>, <a class="el" href="a06019.html#l00110">NL3D::CMeshMultiLodInstance::Flags</a>, <a class="el" href="a06349.html#l00335">NL3D::CScene::getCoarseMeshManager()</a>, <a class="el" href="a06569.html#l00105">NL3D::CTransform::getOwnerScene()</a>, <a class="el" href="a06019.html#l00106">NL3D::CMeshMultiLodInstance::Lod0</a>, <a class="el" href="a06019.html#l00107">NL3D::CMeshMultiLodInstance::Lod1</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06019.html#l00118">NL3D::CMeshMultiLodInstance::PolygonCountLod0</a>, <a class="el" href="a06019.html#l00119">NL3D::CMeshMultiLodInstance::PolygonCountLod1</a>, <a class="el" href="a06016.html#l00496">renderCoarseMesh()</a>, <a class="el" href="a06016.html#l00446">renderMeshGeom()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00233 { +00234 <span class="comment">// Render good meshes</span> +00235 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodn0">CMeshMultiLodInstance</a> *instance=safe_cast<CMeshMultiLodInstance*>(trans); +00236 +00237 <span class="comment">// Static or dynamic coarse mesh ?</span> +00238 CCoarseMeshManager *manager; +00239 <span class="comment">// Get the coarse mesh manager</span> +00240 manager=instance->getOwnerScene()->getCoarseMeshManager(); +00241 +00242 <span class="comment">// *** Render Lods</span> +00243 +00244 <span class="comment">// Second lod ?</span> +00245 <span class="keywordflow">if</span> ( (instance->Lod1!=0xffffffff) && (passOpaque==<span class="keyword">false</span>) ) +00246 { +00247 <span class="comment">// build rdrFlags to rdr both transparent and opaque materials, </span> +00248 <span class="comment">// use globalAlphaBlend, and disable ZWrite for Lod1</span> +00249 <a class="code" href="a04558.html#a11">uint32</a> rdrFlags= IMeshGeom::RenderOpaqueMaterial | IMeshGeom::RenderTransparentMaterial | +00250 IMeshGeom::RenderGlobalAlpha | IMeshGeom::RenderGADisableZWrite; +00251 <span class="comment">// NB: very important to render Lod1 first, because Lod0 is still rendered with ZWrite enabled.</span> +00252 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd6">renderMeshGeom</a> (instance->Lod1, drv, instance, instance->PolygonCountLod1, rdrFlags, 1.f-instance->BlendFactor, manager); +00253 } +00254 +00255 +00256 <span class="comment">// Have an opaque pass ?</span> +00257 <span class="keywordflow">if</span> ( (instance->Flags&CMeshMultiLodInstance::Lod0Blend) == 0) +00258 { +00259 <span class="comment">// Is this slot a CoarseMesh?</span> +00260 <span class="keywordflow">if</span> ( <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[instance->Lod0].Flags&CMeshSlot::CoarseMesh ) +00261 { +00262 <span class="comment">// render as a CoarseMesh the lod 0, only in opaque pass</span> +00263 <span class="keywordflow">if</span>(passOpaque) +00264 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd5">renderCoarseMesh</a> (instance->Lod0, drv, instance, manager); +00265 } +00266 <span class="keywordflow">else</span> +00267 { +00268 <span class="comment">// build rdrFlags the normal way (as CMesh::render() for example)</span> +00269 <a class="code" href="a04558.html#a11">uint32</a> mask= (0-(<a class="code" href="a04558.html#a11">uint32</a>)passOpaque); +00270 <a class="code" href="a04558.html#a11">uint32</a> rdrFlags; +00271 <span class="comment">// select rdrFlags, without ifs.</span> +00272 rdrFlags= mask & (IMeshGeom::RenderOpaqueMaterial | IMeshGeom::RenderPassOpaque); +00273 rdrFlags|= ~mask & (IMeshGeom::RenderTransparentMaterial); +00274 <span class="comment">// Only render the normal way the first lod</span> +00275 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd6">renderMeshGeom</a> (instance->Lod0, drv, instance, instance->PolygonCountLod0, rdrFlags, 1, manager); +00276 } +00277 } +00278 <span class="keywordflow">else</span> +00279 { +00280 <span class="comment">// Should not be in opaque</span> +00281 <a class="code" href="a04199.html#a6">nlassert</a> (passOpaque==<span class="keyword">false</span>); +00282 +00283 <span class="comment">// build rdrFlags to rdr both transparent and opaque materials, </span> +00284 <span class="comment">// use globalAlphaBlend, BUT Don't disable ZWrite for Lod0</span> +00285 <a class="code" href="a04558.html#a11">uint32</a> rdrFlags= IMeshGeom::RenderOpaqueMaterial | IMeshGeom::RenderTransparentMaterial | +00286 IMeshGeom::RenderGlobalAlpha; +00287 +00288 <span class="comment">// Render first lod in blend mode. Don't disable ZWrite for Lod0</span> +00289 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd6">renderMeshGeom</a> (instance->Lod0, drv, instance, instance->PolygonCountLod0, rdrFlags, instance->BlendFactor, manager); +00290 } +00291 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodd5" doxytag="NL3D::CMeshMultiLod::renderCoarseMesh" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::renderCoarseMesh </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>slot</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="a02914.html">CMeshMultiLodInstance</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02371.html">CCoarseMeshManager</a> * </td> + <td class="mdname" nowrap> <em>manager</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Render the CoarseMesh of a slot. must be a coarseMesh, and shoudl be called only in passOpaque. +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00496">496</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06019.html#l00113">NL3D::CMeshMultiLodInstance::_CoarseMeshVB</a>, <a class="el" href="a06019.html#l00114">NL3D::CMeshMultiLodInstance::_LastCoarseMesh</a>, <a class="el" href="a06019.html#l00115">NL3D::CMeshMultiLodInstance::_LastCoarseMeshNumVertices</a>, <a class="el" href="a06019.html#l00080">NL3D::CMeshMultiLodInstance::_LastLodLightingDate</a>, <a class="el" href="a06019.html#l00077">NL3D::CMeshMultiLodInstance::_LastLodMatrixDate</a>, <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a05569.html#l00084">NL3D::CCoarseMeshManager::addMesh()</a>, <a class="el" href="a06017.html#l00236">NL3D::CMeshMultiLod::CMeshSlot::CoarseNumTris</a>, <a class="el" href="a06017.html#l00237">NL3D::CMeshMultiLod::CMeshSlot::CoarseTriangles</a>, <a class="el" href="a05797.html#l00092">NL3D::CHrcTrav::CurrentDate</a>, <a class="el" href="a06017.html#l00233">NL3D::CMeshMultiLod::CMeshSlot::Flags</a>, <a class="el" href="a05569.html#l00123">NL3D::CCoarseMeshManager::flushRender()</a>, <a class="el" href="a06018.html#l00067">NL3D::CMeshMultiLodInstance::getCoarseMeshLighting()</a>, <a class="el" href="a06349.html#l00346">NL3D::CScene::getCoarseMeshLightingUpdate()</a>, <a class="el" href="a05570.html#l00119">NL3D::CCoarseMeshManager::getColorOff()</a>, <a class="el" href="a06349.html#l00508">NL3D::CScene::getFilterRenderFlags()</a>, <a class="el" href="a06349.html#l00474">NL3D::CScene::getHrcTrav()</a>, <a class="el" href="a06575.html#l00076">NL3D::ITransformable::getMatrix()</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="a05570.html#l00118">NL3D::CCoarseMeshManager::getUVOff()</a>, <a class="el" href="a05990.html#l00390">NL3D::CMeshGeom::getVertexBuffer()</a>, <a class="el" href="a05570.html#l00117">NL3D::CCoarseMeshManager::getVertexSize()</a>, <a class="el" href="a06017.html#l00215">NL3D::CMeshMultiLod::CMeshSlot::MeshGeom</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06018.html#l00310">NL3D::CMeshMultiLodInstance::setColorCoarseMesh()</a>, <a class="el" href="a06018.html#l00280">NL3D::CMeshMultiLodInstance::setPosCoarseMesh()</a>, <a class="el" href="a06018.html#l00249">NL3D::CMeshMultiLodInstance::setUVCoarseMesh()</a>, <a class="el" href="a05981.html#l00101">sint64</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06016.html#l00232">render()</a>. +<p> +<div class="fragment"><pre>00497 { +00498 <span class="comment">// if the manager is NULL, quit.</span> +00499 <span class="keywordflow">if</span>(manager==NULL) +00500 <span class="keywordflow">return</span>; +00501 +00502 <span class="comment">// get the scene</span> +00503 CScene *scene= trans->getOwnerScene(); +00504 <span class="keywordflow">if</span>(!scene) +00505 <span class="keywordflow">return</span>; +00506 +00507 <span class="comment">// If filtered...</span> +00508 <span class="keywordflow">if</span>( (scene->getFilterRenderFlags() & UScene::FilterCoarseMesh)==0 ) +00509 <span class="keywordflow">return</span>; +00510 +00511 <span class="comment">// Ref</span> +00512 CMeshSlot &slotRef=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot]; +00513 +00514 <span class="comment">// the slot must be a Coarse mesh</span> +00515 <a class="code" href="a04199.html#a6">nlassert</a>(slotRef.Flags&CMeshSlot::CoarseMesh); +00516 +00517 <span class="comment">// Get a pointer on the geom mesh</span> +00518 CMeshGeom *meshGeom= safe_cast<CMeshGeom*>(slotRef.MeshGeom); +00519 +00520 <span class="comment">// ** If not the same as Before (or if NULL before...)</span> +00521 <span class="keywordflow">if</span> ( trans->_LastCoarseMesh!=meshGeom ) +00522 { +00523 <a class="code" href="a04558.html#a15">uint</a> numVerts= meshGeom->getVertexBuffer().getNumVertices(); +00524 <a class="code" href="a04558.html#a15">uint</a> numTris= slotRef.CoarseNumTris; +00525 <span class="comment">// If empty meshGeom, erase cache (each frame, ugly but error mgt here...)</span> +00526 <span class="keywordflow">if</span>( numTris==0 || numVerts==0 ) +00527 trans->_LastCoarseMesh= NULL; +00528 <span class="keywordflow">else</span> +00529 { +00530 <span class="comment">// Cache</span> +00531 trans->_LastCoarseMesh= meshGeom; +00532 trans->_LastCoarseMeshNumVertices= numVerts; +00533 +00534 <span class="comment">// Check setuped size.</span> +00535 <a class="code" href="a04199.html#a6">nlassert</a>( trans->_CoarseMeshVB.size() >= numVerts*manager->getVertexSize() ); +00536 +00537 <span class="comment">// Fill only UVs here. (Pos updated in Matrix pass. Color in Lighting Pass)</span> +00538 trans->setUVCoarseMesh( *meshGeom, manager->getVertexSize(), manager->getUVOff() ); +00539 +00540 <span class="comment">// Dirt the matrix</span> +00541 trans->_LastLodMatrixDate=0; +00542 <span class="comment">// Dirt the lighting. NB: period maximum is 255. Hence the -256, to ensure lighting compute now</span> +00543 trans->_LastLodLightingDate= -0x100; +00544 } +00545 } +00546 +00547 <span class="comment">// ** If setuped, update and render</span> +00548 <span class="keywordflow">if</span>( trans->_LastCoarseMesh ) +00549 { +00550 <span class="comment">// Matrix has changed ?</span> +00551 <span class="keywordflow">if</span> ( trans->ITransformable::compareMatrixDate (trans->_LastLodMatrixDate) ) +00552 { +00553 <span class="comment">// Get date</span> +00554 trans->_LastLodMatrixDate = trans->ITransformable::getMatrixDate(); +00555 +00556 <span class="comment">// Set matrix</span> +00557 trans->setPosCoarseMesh ( *meshGeom, trans->getMatrix(), manager->getVertexSize() ); +00558 } +00559 +00560 <span class="comment">// Lighting: test if must update lighting, according to date of HrcTrav (num of CScene::render() call).</span> +00561 <a class="code" href="a04558.html#a12">sint64</a> currentDate= scene->getHrcTrav().CurrentDate; +00562 <span class="keywordflow">if</span>( trans->_LastLodLightingDate < currentDate - scene->getCoarseMeshLightingUpdate() ) +00563 { +00564 <span class="comment">// reset the date.</span> +00565 trans->_LastLodLightingDate= currentDate; +00566 +00567 <span class="comment">// get average sun color</span> +00568 <a class="code" href="a03337.html">CRGBA</a> sunContrib= trans->getCoarseMeshLighting(); +00569 +00570 <span class="comment">// Set color</span> +00571 trans->setColorCoarseMesh ( sunContrib, manager->getVertexSize(), manager->getColorOff() ); +00572 } +00573 +00574 <span class="comment">// Add dynamic to the manager</span> +00575 <span class="keywordflow">if</span>( !manager->addMesh(trans->_LastCoarseMeshNumVertices, &trans->_CoarseMeshVB[0], slotRef.CoarseNumTris, &slotRef.CoarseTriangles[0] ) ) +00576 { +00577 <span class="comment">// If failure, flush the manager</span> +00578 manager->flushRender(drv); +00579 <span class="comment">// then try to re-add. No-op if fails this time..</span> +00580 manager->addMesh(trans->_LastCoarseMeshNumVertices, &trans->_CoarseMeshVB[0], slotRef.CoarseNumTris, &slotRef.CoarseTriangles[0] ); +00581 } +00582 } +00583 +00584 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodd6" doxytag="NL3D::CMeshMultiLod::renderMeshGeom" ></a><p> +<table class="mdTable" 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::CMeshMultiLod::renderMeshGeom </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>slot</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="a02914.html">CMeshMultiLodInstance</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>numPoylgons</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>rdrFlags</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>alpha</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02371.html">CCoarseMeshManager</a> * </td> + <td class="mdname" nowrap> <em>manager</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Render the MeshGeom of a slot, even if coarseMesh. +<p> + +<p> +Definition at line <a class="el" href="a06016.html#l00446">446</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a05646.html#l01173">alpha</a>, <a class="el" href="a06017.html#l00233">NL3D::CMeshMultiLod::CMeshSlot::Flags</a>, <a class="el" href="a06018.html#l00067">NL3D::CMeshMultiLodInstance::getCoarseMeshLighting()</a>, <a class="el" href="a05570.html#l00114">NL3D::CCoarseMeshManager::getMaterial()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a06017.html#l00215">NL3D::CMeshMultiLod::CMeshSlot::MeshGeom</a>, <a class="el" href="a05995.html#l00132">NL3D::CMeshBlender::prepareRenderForGlobalAlphaCoarseMesh()</a>, <a class="el" href="a02879.html#NL3D_1_1IMeshGeoma6">NL3D::IMeshGeom::render()</a>, <a class="el" href="a05989.html#l00915">NL3D::CMeshGeom::renderSimpleWithMaterial()</a>, <a class="el" href="a05995.html#l00181">NL3D::CMeshBlender::restoreRenderCoarseMesh()</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="a06016.html#l00232">render()</a>. +<p> +<div class="fragment"><pre>00447 { +00448 <span class="comment">// Ref</span> +00449 CMeshSlot &slotRef=<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot]; +00450 +00451 <span class="comment">// MeshGeom exist?</span> +00452 <span class="keywordflow">if</span> (slotRef.MeshGeom) +00453 { +00454 <span class="comment">// NB Here, the meshGeom may still be a coarseMesh, but rendered through CMeshGeom</span> +00455 <span class="keywordflow">if</span>(slotRef.Flags&CMeshSlot::CoarseMesh) +00456 { +00457 <span class="comment">// Render only for opaque material</span> +00458 <span class="keywordflow">if</span>(manager && (rdrFlags & IMeshGeom::RenderOpaqueMaterial) ) +00459 { +00460 <span class="keywordtype">bool</span> gaDisableZWrite= (rdrFlags & IMeshGeom::RenderGADisableZWrite)?<span class="keyword">true</span>:<span class="keyword">false</span>; +00461 +00462 <span class="comment">// Render the CoarseMesh with the manager material</span> +00463 CMaterial &material= manager->getMaterial(); +00464 +00465 <span class="comment">// modulate material for alphaBlend transition</span> +00466 <span class="comment">// ----------</span> +00467 <span class="comment">// get average sun color for this coarseMesh</span> +00468 <a class="code" href="a03337.html">CRGBA</a> newCol= trans->getCoarseMeshLighting(); +00469 +00470 <span class="comment">// Use a CMeshBlender to modify material and driver.</span> +00471 CMeshBlender blender; +00472 blender.prepareRenderForGlobalAlphaCoarseMesh(material, drv, newCol, alpha, gaDisableZWrite); +00473 +00474 +00475 <span class="comment">// render simple the coarseMesh</span> +00476 CMeshGeom *meshGeom= safe_cast<CMeshGeom*>(slotRef.MeshGeom); +00477 meshGeom->renderSimpleWithMaterial(drv, trans->getWorldMatrix(), material); +00478 +00479 +00480 <span class="comment">// resetup standard CoarseMeshMaterial material values</span> +00481 <span class="comment">// ----------</span> +00482 <span class="comment">// blender restore</span> +00483 blender.restoreRenderCoarseMesh(material, drv, gaDisableZWrite); +00484 } +00485 } +00486 <span class="keywordflow">else</span> +00487 { +00488 <span class="comment">// Render the geom mesh</span> +00489 <span class="comment">// Disable ZWrite only if in transition and for rendering Lod1</span> +00490 slotRef.MeshGeom->render (drv, trans, numPoylgons, rdrFlags, alpha); +00491 } +00492 } +00493 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz435_1" doxytag="NL3D::CMeshMultiLod::resetLodCharacterTexture" ></a><p> +<table class="mdTable" 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::CMeshBase::resetLodCharacterTexture </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 the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system. +<p> + +<p> +Definition at line <a class="el" href="a05991.html#l00436">436</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00278">NL3D::CMeshBase::_LodCharacterTexture</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00333">NL3D::CMeshBase::applyMaterialUsageOptim()</a>, <a class="el" href="a05991.html#l00446">NL3D::CMeshBase::setupLodCharacterTexture()</a>, and <a class="el" href="a05991.html#l00062">NL3D::CMeshBase::~CMeshBase()</a>. +<p> +<div class="fragment"><pre>00437 { +00438 <span class="keywordflow">if</span>(_LodCharacterTexture) +00439 { +00440 <span class="keyword">delete</span> _LodCharacterTexture; +00441 _LodCharacterTexture= NULL; +00442 } +00443 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz537_6" doxytag="NL3D::CMeshMultiLod::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CMeshMultiLod::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> throw (<a class="el" href="a03781.html">NLMISC::EStream</a>)<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +serial this mesh. +<p> + +<p> +Implements <a class="el" href="a02867.html#NL3D_1_1ITrackDefaulta6">NLMISC::IStreamable</a>. +<p> +Definition at line <a class="el" href="a06016.html#l00295">295</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +<div class="fragment"><pre>00296 { +00297 <span class="comment">// Serial a version number</span> +00298 (<span class="keywordtype">void</span>)f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (0); +00299 +00300 <span class="comment">// serial Materials infos contained in CMeshBase.</span> +00301 CMeshBase::serialMeshBase(f); +00302 +00303 <span class="comment">// Static lod flag</span> +00304 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (_StaticLod); +00305 +00306 <span class="comment">// Serial the values</span> +00307 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (_MeshVector); +00308 +00309 +00310 <span class="comment">// if reading, compile some stuff</span> +00311 <span class="keywordflow">if</span> (f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00312 { +00313 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd2">compileDistMax</a>(); +00314 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodd1">compileCoarseMeshes</a>(); +00315 } +00316 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda12" doxytag="NL3D::CMeshMultiLod::serialMeshBase" ></a><p> +<table class="mdTable" 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::CMeshBase::serialMeshBase </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> throw (<a class="el" href="a03781.html">NLMISC::EStream</a>)<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +serial the base Part of this mesh. +<p> + +<p> +Definition at line <a class="el" href="a05991.html#l00149">149</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00240">NL3D::CMeshBase::_AnimatedMaterials</a>, <a class="el" href="a05992.html#l00251">NL3D::CMeshBase::_AnimatedMorph</a>, <a class="el" href="a05992.html#l00258">NL3D::CMeshBase::_AutoAnim</a>, <a class="el" href="a05992.html#l00245">NL3D::CMeshBase::_DefaultPivot</a>, <a class="el" href="a05992.html#l00246">NL3D::CMeshBase::_DefaultRotEuler</a>, <a class="el" href="a05992.html#l00247">NL3D::CMeshBase::_DefaultRotQuat</a>, <a class="el" href="a05992.html#l00248">NL3D::CMeshBase::_DefaultScale</a>, <a class="el" href="a05992.html#l00254">NL3D::CMeshBase::_IsLightable</a>, <a class="el" href="a05992.html#l00234">NL3D::CMeshBase::_LightInfos</a>, <a class="el" href="a05992.html#l00278">NL3D::CMeshBase::_LodCharacterTexture</a>, <a class="el" href="a05992.html#l00256">NL3D::CMeshBase::_UseLightingLocalAttenuation</a>, <a class="el" href="a05991.html#l00407">NL3D::CMeshBase::computeIsLightable()</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05992.html#l00076">NL3D::CMeshBase::TLightInfoMapV7</a>. +<p> +<div class="fragment"><pre>00150 { +00151 <span class="comment">/*</span> +00152 <span class="comment"> Version 8:</span> +00153 <span class="comment"> - new format for CLightMapInfoList</span> +00154 <span class="comment"> Version 7:</span> +00155 <span class="comment"> - _LodCharacterTexture</span> +00156 <span class="comment"> Version 6:</span> +00157 <span class="comment"> - _DistMax</span> +00158 <span class="comment"> Version 5:</span> +00159 <span class="comment"> - _AutoAnim</span> +00160 <span class="comment"> Version 4:</span> +00161 <span class="comment"> - _UseLightingLocalAttenuation</span> +00162 <span class="comment"> Version 3:</span> +00163 <span class="comment"> - _IsLightable</span> +00164 <span class="comment"> Version 2:</span> +00165 <span class="comment"> - Added Blend Shapes factors</span> +00166 <span class="comment"> Version 1:</span> +00167 <span class="comment"> - Cut in version because of badly coded ITexture* serialisation. throw an exception if </span> +00168 <span class="comment"> find a version < 1.</span> +00169 <span class="comment"> Version 0:</span> +00170 <span class="comment"> - 1st version.</span> +00171 <span class="comment"> */</span> +00172 <a class="code" href="a04558.html#a14">sint</a> ver = f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a>(8); +00173 +00174 <span class="keywordflow">if</span> (ver >= 2) +00175 { +00176 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (_AnimatedMorph); +00177 } +00178 +00179 <span class="keywordflow">if</span>(ver<1) +00180 <span class="keywordflow">throw</span> <a class="code" href="a03781.html">NLMISC::EStream</a>(f, <span class="stringliteral">"Mesh in Stream is too old (MeshBase version < 1)"</span>); +00181 +00182 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (_DefaultPos); +00183 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (_DefaultPivot); +00184 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (_DefaultRotEuler); +00185 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (_DefaultRotQuat); +00186 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (_DefaultScale); +00187 +00188 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_Materials); +00189 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_AnimatedMaterials); +00190 +00191 <span class="keywordflow">if</span>(ver >= 8) +00192 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_LightInfos); +00193 <span class="keywordflow">else</span> +00194 { +00195 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodz425_0">TLightInfoMapV7</a> temp; +00196 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(temp); +00197 } +00198 +00199 <span class="keywordflow">if</span>(ver>=3) +00200 <span class="comment">// read/write _IsLightable flag.</span> +00201 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_IsLightable); +00202 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00203 <span class="comment">// update _IsLightable flag.</span> +00204 <a class="code" href="a02858.html#NL3D_1_1CMeshBased0">computeIsLightable</a>(); +00205 +00206 <span class="keywordflow">if</span>(ver>=4) +00207 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_UseLightingLocalAttenuation); +00208 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00209 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp12">_UseLightingLocalAttenuation</a>= <span class="keyword">false</span>; +00210 +00211 <span class="keywordflow">if</span> (ver >= 5) +00212 { +00213 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_AutoAnim); +00214 } +00215 +00216 <span class="keywordflow">if</span>(ver >= 6) +00217 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_DistMax); +00218 +00219 <span class="keywordflow">if</span>(ver >= 7) +00220 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_7">serialPtr</a>(_LodCharacterTexture); +00221 +00222 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz427_1" doxytag="NL3D::CMeshMultiLod::setAnimatedMaterial" ></a><p> +<table class="mdTable" 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::CMeshBase::setAnimatedMaterial </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>id</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>matName</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> +setup a material as animated. Material must exist or else no-op. +<p> + +<p> +Definition at line <a class="el" href="a05991.html#l00077">77</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00240">NL3D::CMeshBase::_AnimatedMaterials</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>00078 { +00079 <a class="code" href="a04199.html#a6">nlassert</a>(!matName.empty()); +00080 <span class="keywordflow">if</span>(<span class="keywordtype">id</span><<a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp11">_Materials</a>.size()) +00081 { +00082 <span class="comment">// add / replace animated material.</span> +00083 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>[<span class="keywordtype">id</span>].Name= matName; +00084 <span class="comment">// copy Material default.</span> +00085 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp0">_AnimatedMaterials</a>[<span class="keywordtype">id</span>].copyFromMaterial(&_Materials[<span class="keywordtype">id</span>]); +00086 } +00087 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz433_1" doxytag="NL3D::CMeshMultiLod::setAutoAnim" ></a><p> +<table class="mdTable" 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::CMeshBase::setAutoAnim </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>on</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> +Tells that the model instanciated from this shape should be automatically animated. If so the scene will search for an automatic anim that has the same name than this shape and will bind it. This state is serialized. NB: This is a clue to scene::createInstance, a call to createInstance of this object won't make the animation binding. +<p> +Definition at line <a class="el" href="a05992.html#l00210">210</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +References <a class="el" href="a05992.html#l00258">NL3D::CMeshBase::_AutoAnim</a>. +<p> +<div class="fragment"><pre>00210 { <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp2">_AutoAnim</a> = on; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapea11" doxytag="NL3D::CMeshMultiLod::setDistMax" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::IShape::setDistMax </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>distMax</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +setup the DistMax where the shape is no more displayed. Take effect only for the next created instances. setting <0 means -1 and so means DistMax = infinite. +<p> +Definition at line <a class="el" href="a06376.html#l00066">66</a> of file <a class="el" href="a06376.html">shape.cpp</a>. +<p> +Referenced by <a class="el" href="a05714.html#l00039">NL3D::CFlareShape::CFlareShape()</a>. +<p> +<div class="fragment"><pre>00067 { +00068 <a class="code" href="a02539.html#NL3D_1_1IShapep0">_DistMax</a>= distMax; +00069 <span class="comment">// normalize infinite setup.</span> +00070 <span class="keywordflow">if</span>(distMax<0) +00071 <a class="code" href="a02539.html#NL3D_1_1IShapep0">_DistMax</a>= -1; +00072 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz435_2" doxytag="NL3D::CMeshMultiLod::setupLodCharacterTexture" ></a><p> +<table class="mdTable" 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::CMeshBase::setupLodCharacterTexture </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02810.html">CLodCharacterTexture</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>lodText</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +setup the lod texture info. see <a class="el" href="a03399.html">CSkeletonModel</a> Lod system +<p> + +<p> +Definition at line <a class="el" href="a05991.html#l00446">446</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00278">NL3D::CMeshBase::_LodCharacterTexture</a>, and <a class="el" href="a05991.html#l00436">NL3D::CMeshBase::resetLodCharacterTexture()</a>. +<p> +<div class="fragment"><pre>00447 { +00448 <span class="comment">// delete old</span> +00449 <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodz435_1">resetLodCharacterTexture</a>(); +00450 <span class="comment">// seutp new</span> +00451 _LodCharacterTexture= <span class="keyword">new</span> CLodCharacterTexture; +00452 *_LodCharacterTexture= lodText; +00453 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodz539_0" doxytag="NL3D::CMeshMultiLod::supportMeshBlockRendering" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02879.html">IMeshGeom</a> * NL3D::CMeshMultiLod::supportMeshBlockRendering </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02537.html">CTransformShape</a> * </td> + <td class="mdname" nowrap> <em>trans</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float & </td> + <td class="mdname" nowrap> <em>polygonCount</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return !NULL if this shape can support MeshBlock rendering for a special instance. NB: Mesh Block render cannot occurs if the Mesh is Skinned/MeshMorphed. NB: Mesh Block render can occurs only in Opaque pass NB: Mesh block render can occurs only for <a class="el" href="a02858.html">CMeshBase</a> meshes. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>trans</em> </td><td>the instance to take into account (meshMultiLod may return NULL in blend transition). </td></tr> + <tr><td valign=top><em>polygonCount</em> </td><td>the number of polygons to render for the meshGeom returned </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the meshgeom to render per block if OK, else NULL (default)</dd></dl> + +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapez904_0">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a06016.html#l00630">630</a> of file <a class="el" href="a06016.html">mesh_multi_lod.cpp</a>. +<p> +References <a class="el" href="a06017.html#l00253">_MeshVector</a>, <a class="el" href="a06019.html#l00110">NL3D::CMeshMultiLodInstance::Flags</a>, <a class="el" href="a06019.html#l00106">NL3D::CMeshMultiLodInstance::Lod0</a>, <a class="el" href="a06019.html#l00118">NL3D::CMeshMultiLodInstance::PolygonCountLod0</a>, <a class="el" href="a02879.html#NL3D_1_1IMeshGeomz457_11">NL3D::IMeshGeom::supportMeshBlockRendering()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00631 { +00632 IMeshGeom *ret= NULL; +00633 +00634 <span class="comment">// get the instance</span> +00635 <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodn0">CMeshMultiLodInstance</a> *instance=safe_cast<CMeshMultiLodInstance*>(trans); +00636 +00637 <span class="comment">// Must not be in blend transition.</span> +00638 <span class="keywordflow">if</span> ( (instance->Flags&CMeshMultiLodInstance::Lod0Blend) == 0) +00639 { +00640 <a class="code" href="a04558.html#a15">uint</a> slot= instance->Lod0; +00641 <span class="comment">// The slot must not be a CoarseMesh</span> +00642 <span class="keywordflow">if</span> ( (<a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].Flags&CMeshSlot::CoarseMesh)==0 ) +00643 { +00644 <span class="comment">// MeshGeom exist?</span> +00645 ret= <a class="code" href="a02910.html#NL3D_1_1CMeshMultiLodr0">_MeshVector</a>[slot].MeshGeom; +00646 } +00647 } +00648 +00649 <span class="comment">// Ok if meshGeom is ok.</span> +00650 <span class="keywordflow">if</span>( ret && ret->supportMeshBlockRendering() ) +00651 { +00652 polygonCount= instance->PolygonCountLod0; +00653 <span class="keywordflow">return</span> ret; +00654 } +00655 <span class="keywordflow">else</span> +00656 <span class="keywordflow">return</span> NULL; +00657 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLoda14" doxytag="NL3D::CMeshMultiLod::useLightingLocalAttenuation" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CMeshBase::useLightingLocalAttenuation </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +tells if the shape wants LocalAttenuation for RealTime lighting. Default is false +<p> + +<p> +Reimplemented from <a class="el" href="a02539.html#NL3D_1_1IShapez902_0">NL3D::IShape</a>. +<p> +Definition at line <a class="el" href="a05991.html#l00429">429</a> of file <a class="el" href="a05991.html">mesh_base.cpp</a>. +<p> +References <a class="el" href="a05992.html#l00256">NL3D::CMeshBase::_UseLightingLocalAttenuation</a>. +<p> +<div class="fragment"><pre>00430 { +00431 <span class="keywordflow">return</span> <a class="code" href="a02858.html#NL3D_1_1CMeshMultiLodp12">_UseLightingLocalAttenuation</a>; +00432 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshMultiLodn0" doxytag="NL3D::CMeshMultiLod::CMeshMultiLodInstance" ></a><p> +<table class="mdTable" 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="a02914.html">CMeshMultiLodInstance</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="a06017.html#l00276">276</a> of file <a class="el" href="a06017.html">mesh_multi_lod.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypen0" doxytag="NL3D::CMeshMultiLod::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_1CMeshMultiLodp0" doxytag="NL3D::CMeshMultiLod::_AnimatedMaterials" ></a><p> +<table class="mdTable" 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="a02858.html#NL3D_1_1CMeshMultiLodx0">TAnimatedMaterialMap</a> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp0">NL3D::CMeshBase::_AnimatedMaterials</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="a05992.html#l00240">240</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00333">NL3D::CMeshBase::applyMaterialUsageOptim()</a>, <a class="el" href="a05991.html#l00226">NL3D::CMeshBase::buildMeshBase()</a>, <a class="el" href="a05991.html#l00090">NL3D::CMeshBase::getAnimatedMaterial()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>, and <a class="el" href="a05991.html#l00077">NL3D::CMeshBase::setAnimatedMaterial()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp1" doxytag="NL3D::CMeshMultiLod::_AnimatedMorph" ></a><p> +<table class="mdTable" 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="a02936.html">CMorphBase</a>> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp1">NL3D::CMeshBase::_AnimatedMorph</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="a05992.html#l00251">251</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00226">NL3D::CMeshBase::buildMeshBase()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, and <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp2" doxytag="NL3D::CMeshMultiLod::_AutoAnim" ></a><p> +<table class="mdTable" 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="a02858.html#NL3D_1_1CMeshMultiLodp2">NL3D::CMeshBase::_AutoAnim</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="a05992.html#l00258">258</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00043">NL3D::CMeshBase::CMeshBase()</a>, <a class="el" href="a05992.html#l00212">NL3D::CMeshBase::getAutoAnim()</a>, <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>, and <a class="el" href="a05992.html#l00210">NL3D::CMeshBase::setAutoAnim()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp3" doxytag="NL3D::CMeshMultiLod::_DefaultLMFactor" ></a><p> +<table class="mdTable" 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="a03549.html">CTrackDefaultRGBA</a> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp3">NL3D::CMeshBase::_DefaultLMFactor</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="a05992.html#l00249">249</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00043">NL3D::CMeshBase::CMeshBase()</a>, and <a class="el" href="a05992.html#l00166">NL3D::CMeshBase::getDefaultLMFactor()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp4" doxytag="NL3D::CMeshMultiLod::_DefaultPivot" ></a><p> +<table class="mdTable" 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="a03551.html">CTrackDefaultVector</a> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp4">NL3D::CMeshBase::_DefaultPivot</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="a05992.html#l00245">245</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00226">NL3D::CMeshBase::buildMeshBase()</a>, <a class="el" href="a05991.html#l00043">NL3D::CMeshBase::CMeshBase()</a>, <a class="el" href="a05992.html#l00162">NL3D::CMeshBase::getDefaultPivot()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, and <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp5" doxytag="NL3D::CMeshMultiLod::_DefaultPos" ></a><p> +<table class="mdTable" 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="a03551.html">CTrackDefaultVector</a> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp5">NL3D::CMeshBase::_DefaultPos</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Transform default tracks. Those default tracks are instancied, ie, CInstanceMesh will have the same and can't specialize it. +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00244">244</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp6" doxytag="NL3D::CMeshMultiLod::_DefaultRotEuler" ></a><p> +<table class="mdTable" 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="a03551.html">CTrackDefaultVector</a> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp6">NL3D::CMeshBase::_DefaultRotEuler</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="a05992.html#l00246">246</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00226">NL3D::CMeshBase::buildMeshBase()</a>, <a class="el" href="a05991.html#l00043">NL3D::CMeshBase::CMeshBase()</a>, <a class="el" href="a05992.html#l00163">NL3D::CMeshBase::getDefaultRotEuler()</a>, and <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp7" doxytag="NL3D::CMeshMultiLod::_DefaultRotQuat" ></a><p> +<table class="mdTable" 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="a03548.html">CTrackDefaultQuat</a> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp7">NL3D::CMeshBase::_DefaultRotQuat</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="a05992.html#l00247">247</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00226">NL3D::CMeshBase::buildMeshBase()</a>, <a class="el" href="a05991.html#l00043">NL3D::CMeshBase::CMeshBase()</a>, <a class="el" href="a05992.html#l00164">NL3D::CMeshBase::getDefaultRotQuat()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, and <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp8" doxytag="NL3D::CMeshMultiLod::_DefaultScale" ></a><p> +<table class="mdTable" 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="a03551.html">CTrackDefaultVector</a> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp8">NL3D::CMeshBase::_DefaultScale</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="a05992.html#l00248">248</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00226">NL3D::CMeshBase::buildMeshBase()</a>, <a class="el" href="a05991.html#l00043">NL3D::CMeshBase::CMeshBase()</a>, <a class="el" href="a05992.html#l00165">NL3D::CMeshBase::getDefaultScale()</a>, <a class="el" href="a05991.html#l00261">NL3D::CMeshBase::instanciateMeshBase()</a>, and <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IShapep0" doxytag="NL3D::CMeshMultiLod::_DistMax" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float <a class="el" href="a02539.html#NL3D_1_1IShapep0">NL3D::IShape::_DistMax</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Default to -1. +<p> + +<p> +Definition at line <a class="el" href="a06377.html#l00165">165</a> of file <a class="el" href="a06377.html">shape.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp10" doxytag="NL3D::CMeshMultiLod::_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"> bool <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp10">NL3D::CMeshBase::_IsLightable</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Is this mesh lightable?? +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00254">254</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00407">NL3D::CMeshBase::computeIsLightable()</a>, <a class="el" href="a05992.html#l00198">NL3D::CMeshBase::isLightable()</a>, and <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodo0" doxytag="NL3D::CMeshMultiLod::_LightInfos" ></a><p> +<table class="mdTable" 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="a02858.html#NL3D_1_1CMeshMultiLodz425_1">TLightMapInfo</a> <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodo0">NL3D::CMeshBase::_LightInfos</a><code> [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="a05992.html#l00234">234</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00333">NL3D::CMeshBase::applyMaterialUsageOptim()</a>, <a class="el" href="a05991.html#l00226">NL3D::CMeshBase::buildMeshBase()</a>, <a class="el" href="a06626.html#l00125">NL3D::UShape::cameraCollisionable()</a>, <a class="el" href="a05993.html#l00131">NL3D::CMeshBaseInstance::getLightMapName()</a>, <a class="el" href="a05993.html#l00124">NL3D::CMeshBaseInstance::getNbLightMap()</a>, <a class="el" href="a05993.html#l00316">NL3D::CMeshBaseInstance::initAnimatedLightIndex()</a>, <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>, and <a class="el" href="a05993.html#l00214">NL3D::CMeshBaseInstance::traverseAnimDetail()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp11" doxytag="NL3D::CMeshMultiLod::_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="a02858.html#NL3D_1_1CMeshMultiLodp11">NL3D::CMeshBase::_Materials</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The Materials. +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00230">230</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodr0" doxytag="NL3D::CMeshMultiLod::_MeshVector" ></a><p> +<table class="mdTable" 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="a02913.html">CMeshSlot</a>> <a class="el" href="a02910.html#NL3D_1_1CMeshMultiLodr0">NL3D::CMeshMultiLod::_MeshVector</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Vector of meshes. +<p> + +<p> +Definition at line <a class="el" href="a06017.html#l00253">253</a> of file <a class="el" href="a06017.html">mesh_multi_lod.h</a>. +<p> +Referenced by <a class="el" href="a06016.html#l00052">build()</a>, <a class="el" href="a06016.html#l00609">changeMRMDistanceSetup()</a>, <a class="el" href="a06016.html#l00403">clear()</a>, <a class="el" href="a06016.html#l00211">clip()</a>, <a class="el" href="a06016.html#l00765">compileCoarseMeshes()</a>, <a class="el" href="a06016.html#l00587">compileDistMax()</a>, <a class="el" href="a06016.html#l00182">createInstance()</a>, <a class="el" href="a06016.html#l00383">getAABBox()</a>, <a class="el" href="a06016.html#l00599">getMeshGeom()</a>, <a class="el" href="a06017.html#l00144">getNumSlotMesh()</a>, <a class="el" href="a06016.html#l00320">getNumTrianglesWithCoarsestDist()</a>, <a class="el" href="a06017.html#l00150">getSlotMesh()</a>, <a class="el" href="a06016.html#l00740">instanciateCoarseMeshSpace()</a>, <a class="el" href="a06016.html#l00661">profileMeshGeom()</a>, <a class="el" href="a06016.html#l00687">profileSceneRender()</a>, <a class="el" href="a06016.html#l00232">render()</a>, <a class="el" href="a06016.html#l00496">renderCoarseMesh()</a>, <a class="el" href="a06016.html#l00446">renderMeshGeom()</a>, <a class="el" href="a06016.html#l00630">supportMeshBlockRendering()</a>, and <a class="el" href="a06018.html#l00086">NL3D::CMeshMultiLodInstance::traverseLoadBalancing()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodr1" doxytag="NL3D::CMeshMultiLod::_StaticLod" ></a><p> +<table class="mdTable" 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="a02910.html#NL3D_1_1CMeshMultiLodr1">NL3D::CMeshMultiLod::_StaticLod</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Static or dynamic load ? Yoyo: no more used, but leave for possible usage later... +<p> + +<p> +Definition at line <a class="el" href="a06017.html#l00250">250</a> of file <a class="el" href="a06017.html">mesh_multi_lod.h</a>. +<p> +Referenced by <a class="el" href="a06016.html#l00052">build()</a>, and <a class="el" href="a06017.html#l00160">isStatic()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshMultiLodp12" doxytag="NL3D::CMeshMultiLod::_UseLightingLocalAttenuation" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a02858.html#NL3D_1_1CMeshMultiLodp12">NL3D::CMeshBase::_UseLightingLocalAttenuation</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Is this mesh Use Lighting Local Attenuation ?? +<p> + +<p> +Definition at line <a class="el" href="a05992.html#l00256">256</a> of file <a class="el" href="a05992.html">mesh_base.h</a>. +<p> +Referenced by <a class="el" href="a05991.html#l00226">NL3D::CMeshBase::buildMeshBase()</a>, <a class="el" href="a05991.html#l00043">NL3D::CMeshBase::CMeshBase()</a>, <a class="el" href="a05991.html#l00149">NL3D::CMeshBase::serialMeshBase()</a>, and <a class="el" href="a05991.html#l00429">NL3D::CMeshBase::useLightingLocalAttenuation()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypeo0" doxytag="NL3D::CMeshMultiLod::crefs" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">NLMISC::CRefCount::crefs</a><code> [mutable, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00079">79</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. +<p> +Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, <a class="el" href="a06402.html#l00070">NLMISC::CRefCount::getRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypes0" doxytag="NL3D::CMeshMultiLod::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::CMeshMultiLod::pinfo" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> CPtrInfo* <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">NLMISC::CRefCount::pinfo</a><code> [mutable, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00080">80</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. +<p> +Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a06017.html">mesh_multi_lod.h</a><li><a class="el" href="a06016.html">mesh_multi_lod.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:55:21 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> |