diff options
Diffstat (limited to 'docs/doxygen/nel/a02353.html')
-rw-r--r-- | docs/doxygen/nel/a02353.html | 2296 |
1 files changed, 2296 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02353.html b/docs/doxygen/nel/a02353.html new file mode 100644 index 00000000..a6a501da --- /dev/null +++ b/docs/doxygen/nel/a02353.html @@ -0,0 +1,2296 @@ +<!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::CClipTrav 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::CClipTrav Class Reference</h1><code>#include <<a class="el" href="a05556.html">clip_trav.h</a>></code> +<p> +<p>Inheritance diagram for NL3D::CClipTrav: +<p><center><img src="a02353.png" usemap="#NL3D::CClipTrav_map" border="0" alt=""></center> +<map name="NL3D::CClipTrav_map"> +<area href="a02354.html" alt="NL3D::CTravCameraScene" shape="rect" coords="0,56,165,80"> +<area href="a02214.html" alt="NL3D::CTraversal" shape="rect" coords="0,0,165,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +The clip traversal. The purpose of this traversal is to insert in the post-clip Traversal the models which are said to be not clipped.<p> +Models should use the CTransform->clip() method to implement their models, or completly redefine the traverseClip() method.<p> +<b>USER</b> <b>RULES</b>: Before using <a class="el" href="a02353.html#NL3D_1_1CClipTrava7">traverse()</a> on a clip traversal, you should:<ul> +<li><a class="el" href="a02354.html#NL3D_1_1CTravCameraScenea3">setFrustum()</a> the camera shape (focale....)</li><li><a class="el" href="a02354.html#NL3D_1_1CTravCameraScenea1">setCamMatrix()</a> for the camera transform</li></ul> +<p> +NB: see <a class="el" href="a03348.html">CScene</a> for 3d conventions (orthonormal basis...) <dl compact><dt><b>Author:</b></dt><dd>Lionel Berenguier <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2000 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00084">84</a> of file <a class="el" href="a05556.html">clip_trav.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Cluster system related methods.</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_0">addVisibleCluster</a> (<a class="el" href="a02362.html">CCluster</a> *cluster)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a visible cluster to the list. <a href="#NL3D_1_1CClipTravz65_0"></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="a02353.html#NL3D_1_1CClipTravz65_1">fullSearch</a> (std::vector< <a class="el" href="a02362.html">CCluster</a> * > &result, <a class="el" href="a02671.html">CInstanceGroup</a> *pIG, const <a class="el" href="a03128.html">CVector</a> &pos)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_2">getClusterVisibilityTracking</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Check the activation of cluster visibility tracking. <a href="#NL3D_1_1CClipTravz65_2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::vector< <a class="el" href="a02362.html">CCluster</a> * > & </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_3">getVisibleClusters</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_4">setClusterVisibilityTracking</a> (bool track)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set cluster tracking on/off (ie storage of thje visible cluster during clip traversal). <a href="#NL3D_1_1CClipTravz65_4"></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="a02353.html#NL3D_1_1CClipTravz65_5">_TrackClusterVisibility</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a visible cluster to the list. <a href="#NL3D_1_1CClipTravz65_5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02362.html">CCluster</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_6">_VisibleClusters</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a visible cluster to the list. <a href="#NL3D_1_1CClipTravz65_6"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTrava0">CClipTrav</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#NL3D_1_1CClipTrava0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03287.html">CQuadGridClipManager</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTrava1">getQuadGridClipManager</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTrava2">registerCluster</a> (<a class="el" href="a02362.html">CCluster</a> *pCluster)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02354.html#NL3D_1_1CTravCameraScenea1">setCamMatrix</a> (const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &camMatrix)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Setup the camera matrix (a translation/rotation matrix). <a href="#NL3D_1_1CTravCameraScenea1"></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="a02354.html#NL3D_1_1CTravCameraScenea2">setFrustum</a> (float <a class="el" href="a04223.html#a632">width</a>, float <a class="el" href="a04223.html#a633">height</a>, float znear, float zfar, bool perspective=true)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be >0 (if perspective). <a href="#NL3D_1_1CTravCameraScenea2"></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="a02354.html#NL3D_1_1CTravCameraScenea3">setFrustum</a> (float left, float right, float bottom, float top, float znear, float zfar, bool perspective=true)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be >0 (if perspective). <a href="#NL3D_1_1CTravCameraScenea3"></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="a02353.html#NL3D_1_1CClipTrava6">setQuadGridClipManager</a> (<a class="el" href="a03287.html">CQuadGridClipManager</a> *mgr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Setup the render traversal (else <a class="el" href="a02353.html#NL3D_1_1CClipTrava7">traverse()</a> won't work). <a href="#NL3D_1_1CClipTrava6"></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="a02353.html#NL3D_1_1CClipTrava7">traverse</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">traverse <a href="#NL3D_1_1CClipTrava7"></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="a02353.html#NL3D_1_1CClipTrava8">unregisterCluster</a> (<a class="el" href="a02362.html">CCluster</a> *pCluster)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTrava9">~CClipTrav</a> ()</td></tr> + +<tr><td colspan="2"><div class="groupHeader">Visible List mgt. Those visible modles are updated each traverse().</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz63_0">addVisibleModel</a> (<a class="el" href="a02316.html">CTransform</a> *model)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz63_1">reserveVisibleList</a> (<a class="el" href="a04558.html#a15">uint</a> numModels)</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="a03273.html">CQuadGrid</a>< <a class="el" href="a02362.html">CCluster</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02315.html">CCamera</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravo1">Camera</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a12">sint64</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravo2">CurrentDate</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravo3">ForceNoFrustumClip</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02362.html">CCluster</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravo4">RootCluster</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03348.html">CScene</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a></td></tr> + +<tr><td colspan="2"><div class="groupHeader">FOR MODEL TRAVERSAL ONLY. (Read only)</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those variables are valid only in traverse*(). <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03082.html">CPlane</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Vision Pyramid (6 normalized planes) in the view basis. <a href="#NL3D_1_1CClipTravz67_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03082.html">CPlane</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz67_1">WorldFrustumPyramid</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Vision Pyramid (6 normalized planes) in the world basis. NB: NOT modified by the ClusterSystem. <a href="#NL3D_1_1CClipTravz67_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03082.html">CPlane</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz67_2">WorldPyramid</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Vision Pyramid in the world basis. NB: may be modified by the ClusterSystem. <a href="#NL3D_1_1CClipTravz67_2"></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="a02354.html#NL3D_1_1CTravCameraSceneb0">update</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">update the dependent information. <a href="#NL3D_1_1CTravCameraSceneb0"></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="a02353.html#NL3D_1_1CClipTravd0">clipSkeletonShadowMaps</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravd1">loadBalanceSkeletonCLod</a> ()</td></tr> + +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravr0">_CurrentNumVisibleModels</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03287.html">CQuadGridClipManager</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravr1">_QuadGridClipManager</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02355.html">CSkeletonKey</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02316.html">CTransform</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravr3">_VisibleList</a></td></tr> + +<tr><td colspan=2><br><h2>Friends</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>class </td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravn0">CTransform</a></td></tr> + +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NL3D_1_1CClipTrava0" doxytag="NL3D::CClipTrav::CClipTrav" ></a><p> +<table class="mdTable" 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::CClipTrav::CClipTrav </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Constructor. +<p> + +<p> +Definition at line <a class="el" href="a05555.html#l00055">55</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00170">_QuadGridClipManager</a>, <a class="el" href="a05556.html#l00156">Accel</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz772_1">NL3D::CQuadGrid< CCluster * >::create()</a>, and <a class="el" href="a05556.html#l00161">ForceNoFrustumClip</a>. +<p> +<div class="fragment"><pre>00055 : <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>(6), <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_2">WorldPyramid</a>(6) +00056 { +00057 <a class="code" href="a02353.html#NL3D_1_1CClipTravr3">_VisibleList</a>.resize(1024); +00058 <a class="code" href="a02353.html#NL3D_1_1CClipTravr0">_CurrentNumVisibleModels</a>= 0; +00059 <a class="code" href="a02353.html#NL3D_1_1CClipTravo2">CurrentDate</a> = 0; +00060 <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.create (64, 16.0f); +00061 +00062 <a class="code" href="a02353.html#NL3D_1_1CClipTravo3">ForceNoFrustumClip</a>= <span class="keyword">false</span>; +00063 <a class="code" href="a02353.html#NL3D_1_1CClipTravr1">_QuadGridClipManager</a>= NULL; +00064 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTrava9" doxytag="NL3D::CClipTrav::~CClipTrav" ></a><p> +<table class="mdTable" 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::CClipTrav::~<a class="el" href="a02353.html">CClipTrav</a> </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></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="a05555.html#l00067">67</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +<div class="fragment"><pre>00068 { +00069 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CClipTravz65_0" doxytag="NL3D::CClipTrav::addVisibleCluster" ></a><p> +<table class="mdTable" 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::CClipTrav::addVisibleCluster </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02362.html">CCluster</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>cluster</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> +Add a visible cluster to the list. +<p> + +<p> +Definition at line <a class="el" href="a05555.html#l00106">106</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00134">_VisibleClusters</a>. +<p> +Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>. +<p> +<div class="fragment"><pre>00107 { +00108 <a class="code" href="a02353.html#NL3D_1_1CClipTravz65_6">_VisibleClusters</a>.push_back(cluster); +00109 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz63_0" doxytag="NL3D::CClipTrav::addVisibleModel" ></a><p> +<table class="mdTable" 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::CClipTrav::addVisibleModel </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>model</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00105">105</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +References <a class="el" href="a06569.html#l00869">NL3D::CTransform::_IndexInVisibleList</a>. +<p> +Referenced by <a class="el" href="a06149.html#l00315">NL3D::CParticleSystemModel::insertInVisibleList()</a>, and <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>. +<p> +<div class="fragment"><pre>00106 { +00107 model->_IndexInVisibleList= <a class="code" href="a02353.html#NL3D_1_1CClipTravr0">_CurrentNumVisibleModels</a>; +00108 <a class="code" href="a02353.html#NL3D_1_1CClipTravr3">_VisibleList</a>[<a class="code" href="a02353.html#NL3D_1_1CClipTravr0">_CurrentNumVisibleModels</a>]= model; +00109 <a class="code" href="a02353.html#NL3D_1_1CClipTravr0">_CurrentNumVisibleModels</a>++; +00110 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravd0" doxytag="NL3D::CClipTrav::clipSkeletonShadowMaps" ></a><p> +<table class="mdTable" 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::CClipTrav::clipSkeletonShadowMaps </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> + +<p> +Definition at line <a class="el" href="a05555.html#l00532">532</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a06569.html#l00851">NL3D::CTransform::_AncestorSkeletonModel</a>, <a class="el" href="a05898.html#l00077">NL3D::CLightTrav::addLightedModel()</a>, <a class="el" href="a06372.html#l00209">NL3D::CShadowMapManager::addShadowCaster()</a>, <a class="el" href="a05432.html#l00084">NL3D::CAnimDetailTrav::addVisibleModel()</a>, <a class="el" href="a06569.html#l00470">NL3D::CTransform::canCastShadowMap()</a>, <a class="el" href="a05505.html#l00048">NLMISC::CBSphere::Center</a>, <a class="el" href="a05555.html#l00523">NL3D::CFadeShadowMapSort::Dist</a>, <a class="el" href="a06371.html#l00086">NL3D::CShadowMap::DistanceFade</a>, <a class="el" href="a06349.html#l00477">NL3D::CScene::getAnimDetailTrav()</a>, <a class="el" href="a06349.html#l00274">NL3D::CScene::getEllapsedTime()</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06569.html#l00495">NL3D::CTransform::getShadowMap()</a>, <a class="el" href="a06393.html#l01846">NL3D::CSkeletonModel::getShadowMap()</a>, <a class="el" href="a06349.html#l00584">NL3D::CScene::getShadowMapDistFadeEnd()</a>, <a class="el" href="a06349.html#l00581">NL3D::CScene::getShadowMapDistFadeStart()</a>, <a class="el" href="a06330.html#l00185">NL3D::CRenderTrav::getShadowMapManager()</a>, <a class="el" href="a06349.html#l00590">NL3D::CScene::getShadowMapMaxCasterAround()</a>, <a class="el" href="a06349.html#l00587">NL3D::CScene::getShadowMapMaxCasterInScreen()</a>, <a class="el" href="a06349.html#l00567">NL3D::CScene::getShadowMapMaxDepth()</a>, <a class="el" href="a06349.html#l00518">NL3D::CScene::getSkeletonModelListBegin()</a>, <a class="el" href="a06349.html#l00519">NL3D::CScene::getSkeletonModelListEnd()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a06371.html#l00097">NL3D::CShadowMap::InScreenFadeAccum</a>, <a class="el" href="a06569.html#l00440">NL3D::CTransform::isAnimDetailable()</a>, <a class="el" href="a06569.html#l00313">NL3D::CTransform::isClipVisible()</a>, <a class="el" href="a06569.html#l00515">NL3D::CTransform::isGeneratingShadowMap()</a>, <a class="el" href="a06569.html#l00306">NL3D::CTransform::isHrcVisible()</a>, <a class="el" href="a06569.html#l00337">NL3D::CTransform::isLightable()</a>, <a class="el" href="a06349.html#l00514">NL3D::CScene::ItSkeletonModelList</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05555.html#l00522">NL3D::CFadeShadowMapSort::Model</a>, <a class="el" href="a06373.html#l00049">NL3D_SMM_FADE_SPEED</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06370.html#l00189">NL3D::CShadowMap::processFades()</a>, <a class="el" href="a05505.html#l00049">NLMISC::CBSphere::Radius</a>, <a class="el" href="a06372.html#l00880">NL3D::CShadowMapManager::selectShadowMapsToGenerate()</a>, <a class="el" href="a06371.html#l00090">NL3D::CShadowMap::TemporalInScreenFade</a>, <a class="el" href="a06371.html#l00088">NL3D::CShadowMap::TemporalOutScreenFade</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05556.html#l00147">WorldFrustumPyramid</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00120">traverse()</a>. +<p> +<div class="fragment"><pre>00533 { +00534 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_TravClip_SkeletonShadow ); +00535 +00536 CScene::ItSkeletonModelList itSkel; +00537 +00538 <span class="keywordtype">float</span> dFade= <a class="code" href="a04950.html#a4">NL3D_SMM_FADE_SPEED</a> * <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getEllapsedTime(); +00539 <span class="keywordtype">float</span> distFadeStart= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getShadowMapDistFadeStart(); +00540 <span class="keywordtype">float</span> distFadeEnd= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getShadowMapDistFadeEnd(); +00541 <span class="keywordtype">float</span> OODeltaDistFade; +00542 <span class="keywordflow">if</span>(distFadeEnd-distFadeStart>0) +00543 OODeltaDistFade= 1.0f/(distFadeEnd-distFadeStart); +00544 <span class="keywordflow">else</span> +00545 OODeltaDistFade= 1000000; +00546 <a class="code" href="a04558.html#a15">uint</a> maxCastInScreen= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getShadowMapMaxCasterInScreen(); +00547 <a class="code" href="a04558.html#a15">uint</a> maxCastAround= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getShadowMapMaxCasterAround(); +00548 +00549 <span class="comment">// **** First select Skeleton ShadowMap to Render</span> +00550 +00551 <span class="comment">// Lod Skeletons that will cast ShadowMaps.</span> +00552 <span class="keyword">static</span> std::vector<CFadeShadowMapSort> aroundCastSkeletons; +00553 <span class="keyword">static</span> std::vector<CFadeShadowMapSort> screenCastSkeletons; +00554 aroundCastSkeletons.clear(); +00555 screenCastSkeletons.clear(); +00556 +00557 <span class="comment">// For all skeleton casters</span> +00558 <span class="keywordflow">for</span>(itSkel= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListEnd(); itSkel++) +00559 { +00560 CSkeletonModel *sm= *itSkel; +00561 +00562 <span class="comment">// if the sm cast shadow</span> +00563 <span class="keywordflow">if</span>( sm->canCastShadowMap() ) +00564 { +00565 CShadowMap *shadowMap= sm->getShadowMap(); +00566 <a class="code" href="a04199.html#a6">nlassert</a>( shadowMap ); +00567 +00568 <span class="comment">// Is a Root Sm ?? Other Skeletons ShadowMaps are not render since the </span> +00569 <span class="comment">// Ancestor Skeleton render all of his sons. Additionally, no-op if this skeleton is hidden in HRC!!</span> +00570 <span class="keywordflow">if</span>( sm->_AncestorSkeletonModel==NULL && sm->isHrcVisible() ) +00571 { +00572 <span class="keywordtype">bool</span> visible= <span class="keyword">false</span>; +00573 <span class="comment">// if we are already visible, then its ok, we either don't need to test.</span> +00574 <span class="keywordflow">if</span>(sm->isClipVisible()) +00575 visible= <span class="keyword">true</span>; +00576 <span class="keywordflow">else</span> +00577 { +00578 <span class="comment">// TODO_SHADOW: Select a better "Skeleton Sphere". It depends also on Sticked objects/Skeletons.</span> +00579 <span class="comment">// Build the sphere around the skeleton that can receive shadow.</span> +00580 <a class="code" href="a02291.html">CBSphere</a> sphere; +00581 <span class="comment">// Suppose an Object sphere of 3 meter radius, centered on Skeleton Pos.</span> +00582 <span class="keyword">const</span> <span class="keywordtype">float</span> objectRadius= 3.f; +00583 sphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo0">Center</a>= sm->getWorldMatrix().getPos(); +00584 <span class="comment">// Add to this spehre the max Depth extent. </span> +00585 <span class="comment">// NB: works because suppose that the Shadow BBox include the Skeleton Center.</span> +00586 sphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo1">Radius</a>= objectRadius + <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getShadowMapMaxDepth(); +00587 +00588 <span class="comment">// Clip This sphere against the Frustum.</span> +00589 visible= <span class="keyword">true</span>; +00590 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<<a class="code" href="a02353.html#NL3D_1_1CClipTravz67_1">WorldFrustumPyramid</a>.size();i++) +00591 { +00592 <span class="comment">// if SpherMax OUT return false.</span> +00593 <span class="keywordtype">float</span> d= <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_1">WorldFrustumPyramid</a>[i]*sphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo0">Center</a>; +00594 <span class="keywordflow">if</span>(d>sphere.<a class="code" href="a02291.html#NLMISC_1_1CBSphereo1">Radius</a>) +00595 { +00596 visible= <span class="keyword">false</span>; +00597 <span class="keywordflow">break</span>; +00598 } +00599 } +00600 } +00601 +00602 <span class="comment">// If the ShadowMap is visible, add it to the List Of ShadowMap to Render.</span> +00603 <span class="keywordflow">if</span>(visible) +00604 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getRenderTrav().getShadowMapManager().addShadowCaster(sm); +00605 +00606 <span class="comment">// update Fading.</span> +00607 CFadeShadowMapSort fsms; +00608 fsms.Model= sm; +00609 fsms.Dist= (sm->getWorldMatrix().getPos() - <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_3">CamPos</a>).norm(); +00610 <span class="comment">// lod In and Out.</span> +00611 aroundCastSkeletons.push_back(fsms); +00612 <span class="keywordflow">if</span>(visible) +00613 screenCastSkeletons.push_back(fsms); +00614 <span class="comment">// Compute normal Distance fading.</span> +00615 shadowMap->DistanceFade= (fsms.Dist-distFadeStart)*OODeltaDistFade; +00616 <span class="comment">// Increment the TemporalFadeOut by default (see below)</span> +00617 shadowMap->TemporalOutScreenFade+= dFade; +00618 <span class="comment">// if !visible, increment the InScreenFadeAccum</span> +00619 <span class="keywordflow">if</span>(!visible) +00620 shadowMap->InScreenFadeAccum+= dFade; +00621 } +00622 <span class="comment">// If the skeleton is not visible, or if temporary bound to a AncestorSkeletonModel</span> +00623 <span class="keywordflow">else</span> +00624 { +00625 <span class="comment">// Increment the TemporalFadeOut. Because since will be hidden (or sticked) </span> +00626 <span class="comment">// for a long time, allow the process to free texture.</span> +00627 shadowMap->TemporalOutScreenFade+= dFade; +00628 <span class="comment">// Since not visible, increment the InScreenFadeAccum</span> +00629 shadowMap->InScreenFadeAccum+= dFade; +00630 } +00631 } +00632 } +00633 +00634 <span class="comment">// **** Load Balance Skeletons that cast ShadowMaps around, </span> +00635 +00636 sort(aroundCastSkeletons.begin(), aroundCastSkeletons.end()); +00637 sort(screenCastSkeletons.begin(), screenCastSkeletons.end()); +00638 +00639 <span class="comment">// For All Around nearest Casters, decrement their fadeOutScreen</span> +00640 <a class="code" href="a04558.html#a15">uint</a> numNearCast= <a class="code" href="a04061.html#a0">min</a>((<a class="code" href="a04558.html#a15">uint</a>)aroundCastSkeletons.size(), maxCastAround); +00641 <a class="code" href="a04558.html#a15">uint</a> i; +00642 <span class="keywordflow">for</span>(i=0;i<numNearCast;i++) +00643 { +00644 <a class="code" href="a02353.html#NL3D_1_1CClipTravn0">CTransform</a> *model= aroundCastSkeletons[i].Model; +00645 CShadowMap *shadowMap= model->getShadowMap(); +00646 <span class="comment">// Decrement the fade. *2 because default incremented above.</span> +00647 shadowMap->TemporalOutScreenFade-= 2*dFade; +00648 } +00649 +00650 <span class="comment">// For InScreen Casters, increment or decrement their fadeInScreen. Also resolve InScreenFadeAccum.</span> +00651 numNearCast= <a class="code" href="a04061.html#a0">min</a>((<a class="code" href="a04558.html#a15">uint</a>)screenCastSkeletons.size(), maxCastInScreen); +00652 <span class="comment">// nearest: decrement fadeInScreen, and remove accum</span> +00653 <span class="keywordflow">for</span>(i=0;i<numNearCast;i++) +00654 { +00655 CShadowMap *shadowMap= screenCastSkeletons[i].Model->getShadowMap(); +00656 <span class="comment">// Decrement the fade.</span> +00657 shadowMap->TemporalInScreenFade-= dFade + shadowMap->InScreenFadeAccum; +00658 <span class="comment">// Since visible and resolved, reset accum</span> +00659 shadowMap->InScreenFadeAccum= 0; +00660 } +00661 <span class="comment">// farthest: increment fadeInScreen, and append accum</span> +00662 <span class="keywordflow">for</span>(i=numNearCast;i<screenCastSkeletons.size();i++) +00663 { +00664 CShadowMap *shadowMap= screenCastSkeletons[i].Model->getShadowMap(); +00665 <span class="comment">// Increment the fade.</span> +00666 shadowMap->TemporalInScreenFade+= dFade + shadowMap->InScreenFadeAccum; +00667 <span class="comment">// Since visible and resolved, reset accum</span> +00668 shadowMap->InScreenFadeAccum= 0; +00669 } +00670 +00671 +00672 <span class="comment">// clamp values, and release texture where appropriated</span> +00673 <span class="keywordflow">for</span>(itSkel= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListEnd(); itSkel++) +00674 { +00675 CSkeletonModel *sm= *itSkel; +00676 <span class="comment">// if the sm cast shadow (whatever displayed or not)</span> +00677 <span class="keywordflow">if</span>( sm->canCastShadowMap() ) +00678 { +00679 CShadowMap *shadowMap= sm->getShadowMap(); +00680 shadowMap->processFades(); +00681 } +00682 } +00683 +00684 <span class="comment">// **** Use the rendered Skeletons ShadowMap to select the Ones that will be generated this Frame.</span> +00685 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getRenderTrav().getShadowMapManager().selectShadowMapsToGenerate(Scene); +00686 +00687 +00688 <span class="comment">/* **** Then for All Skeleton not visibles but that will generate their shadowMap, </span> +00689 <span class="comment"> we must compute the LightTraversal(for ShadowLight direction) and AnimDetailTraversal (for bone </span> +00690 <span class="comment"> animation)</span> +00691 <span class="comment"> We MUST NOT flag the skeleton as Visible, and we MUST NOT insert in LoadBalancing </span> +00692 <span class="comment"> (since won't be rendered)</span> +00693 <span class="comment"> NB: Do nothing for Sons of the Ancestor Skeleton because:</span> +00694 <span class="comment"> 1/ light do nothing with them (see std clip)</span> +00695 <span class="comment"> 2/ animDetail will be called recursively (see std clip and CSkeletonModel::traverseAnimDetail())</span> +00696 <span class="comment"> */</span> +00697 <span class="keywordflow">for</span>(itSkel= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListEnd(); itSkel++) +00698 { +00699 CSkeletonModel *sm= *itSkel; +00700 <span class="comment">// compute its shadowMap this frame? and not visible?</span> +00701 <span class="keywordflow">if</span>(sm->isGeneratingShadowMap() && !sm->isClipVisible() ) +00702 { +00703 <a class="code" href="a04199.html#a6">nlassert</a>(sm->_AncestorSkeletonModel==NULL); +00704 <span class="comment">// Add it only to the lightTrav and AnimDetailTrav</span> +00705 <span class="keywordflow">if</span>( sm->isLightable() ) +00706 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getLightTrav().addLightedModel(sm); +00707 <span class="keywordflow">if</span>( sm->isAnimDetailable() ) +00708 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getAnimDetailTrav().addVisibleModel(sm); +00709 } +00710 } +00711 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz65_1" doxytag="NL3D::CClipTrav::fullSearch" ></a><p> +<table class="mdTable" 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::CClipTrav::fullSearch </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a02362.html">CCluster</a> * > & </td> + <td class="mdname" nowrap> <em>result</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02671.html">CInstanceGroup</a> * </td> + <td class="mdname" nowrap> <em>pIG</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>pos</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> +Retreive a list of cluster for witch the position is inside. +<p> +Definition at line <a class="el" href="a05555.html#l00072">72</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00385">NL3D::CInstanceGroup::_ClusterInstances</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00120">traverse()</a>. +<p> +<div class="fragment"><pre>00073 { +00074 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00075 +00076 <span class="keywordflow">for</span> (i = 0; i < pIG->_ClusterInstances.size(); ++i) +00077 { +00078 <span class="keywordflow">for</span> (j = 0; j < pIG->_ClusterInstances[i]->Children.size(); ++j) +00079 { +00080 <span class="keywordflow">if</span> (<a class="code" href="a02353.html#NL3D_1_1CClipTravz65_1">fullSearch</a> (result, pIG->_ClusterInstances[i]->Children[j]->Group, pos)) +00081 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00082 } +00083 } +00084 +00085 <span class="keywordflow">for</span> (i = 0; i < pIG->_ClusterInstances.size(); ++i) +00086 { +00087 <span class="keywordflow">if</span> (pIG->_ClusterInstances[i]->isIn(pos)) +00088 result.push_back (pIG->_ClusterInstances[i]); +00089 } +00090 <span class="keywordflow">if</span> (result.size() > 0) +00091 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00092 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00093 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz65_2" doxytag="NL3D::CClipTrav::getClusterVisibilityTracking" ></a><p> +<table class="mdTable" 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::CClipTrav::getClusterVisibilityTracking </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Check the activation of cluster visibility tracking. +<p> + +<p> +Definition at line <a class="el" href="a05555.html#l00101">101</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00133">_TrackClusterVisibility</a>. +<p> +Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>. +<p> +<div class="fragment"><pre>00102 { +00103 <span class="keywordflow">return</span> <a class="code" href="a02353.html#NL3D_1_1CClipTravz65_5">_TrackClusterVisibility</a>; +00104 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTrava1" doxytag="NL3D::CClipTrav::getQuadGridClipManager" ></a><p> +<table class="mdTable" 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="a03287.html">CQuadGridClipManager</a>* NL3D::CClipTrav::getQuadGridClipManager </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00100">100</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +References <a class="el" href="a05556.html#l00170">_QuadGridClipManager</a>. +<p> +Referenced by <a class="el" href="a06352.html#l01016">NL3D::CSceneUser::profileQuadGridClipManager()</a>. +<p> +<div class="fragment"><pre>00100 {<span class="keywordflow">return</span> <a class="code" href="a02353.html#NL3D_1_1CClipTravr1">_QuadGridClipManager</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz65_3" doxytag="NL3D::CClipTrav::getVisibleClusters" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const std::vector< <a class="el" href="a02362.html">CCluster</a> * > & NL3D::CClipTrav::getVisibleClusters </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the list of cluster visible after the clip traversal You must activate the cluster tracking to obtain a result. +<p> +Definition at line <a class="el" href="a05555.html#l00113">113</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00134">_VisibleClusters</a>. +<p> +<div class="fragment"><pre>00114 { +00115 <span class="keywordflow">return</span> <a class="code" href="a02353.html#NL3D_1_1CClipTravz65_6">_VisibleClusters</a>; +00116 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravd1" doxytag="NL3D::CClipTrav::loadBalanceSkeletonCLod" ></a><p> +<table class="mdTable" 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::CClipTrav::loadBalanceSkeletonCLod </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> + +<p> +Definition at line <a class="el" href="a05555.html#l00457">457</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00183">_TmpSortSkeletons</a>, <a class="el" href="a06393.html#l00972">NL3D::CSkeletonModel::computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06349.html#l00329">NL3D::CScene::getMaxSkeletonsInNotCLodForm()</a>, <a class="el" href="a06349.html#l00518">NL3D::CScene::getSkeletonModelListBegin()</a>, <a class="el" href="a06349.html#l00519">NL3D::CScene::getSkeletonModelListEnd()</a>, <a class="el" href="a06349.html#l00514">NL3D::CScene::ItSkeletonModelList</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05701.html#l00125">NLMISC::OptFastFloor()</a>, <a class="el" href="a05556.html#l00175">NL3D::CClipTrav::CSkeletonKey::Priority</a>, <a class="el" href="a06393.html#l01014">NL3D::CSkeletonModel::setDisplayLodCharacterFlag()</a>, <a class="el" href="a05556.html#l00176">NL3D::CClipTrav::CSkeletonKey::SkeletonModel</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00120">traverse()</a>. +<p> +<div class="fragment"><pre>00458 { +00459 CScene::ItSkeletonModelList itSkel; +00460 <a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>.clear(); +00461 +00462 <span class="comment">// **** compute CLod priority of each skeleton,</span> +00463 <span class="keywordflow">for</span>(itSkel= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListEnd(); itSkel++) +00464 { +00465 CSkeletonModel *sm= *itSkel; +00466 <span class="keywordtype">float</span> pr= sm->computeDisplayLodCharacterPriority(); +00467 <span class="comment">// If valid priority (CLOd enabled, and skeleton visible)</span> +00468 <span class="keywordflow">if</span>(pr>0) +00469 { +00470 <span class="comment">// if the priority is >1, then display as CLod</span> +00471 <span class="keywordflow">if</span>(pr>1) +00472 sm->setDisplayLodCharacterFlag(<span class="keyword">true</span>); +00473 <span class="comment">// else load balance.</span> +00474 <span class="keywordflow">else</span> +00475 { +00476 CSkeletonKey key; +00477 <span class="comment">// don't bother OptFastFloor precision. NB: 0<pr<=1 here.</span> +00478 key.Priority= <a class="code" href="a05378.html#a397">OptFastFloor</a>(pr*0xFFFFFF00); +00479 key.SkeletonModel= sm; +00480 <a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>.push_back(key); +00481 } +00482 } +00483 } +00484 +00485 <span class="comment">// **** sort by priority in ascending order</span> +00486 <a class="code" href="a04558.html#a15">uint</a> nMaxSkelsInNotCLodForm= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getMaxSkeletonsInNotCLodForm(); +00487 <span class="comment">// Optim: need it only if too many skels</span> +00488 <span class="keywordflow">if</span>(<a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>.size()>nMaxSkelsInNotCLodForm) +00489 { +00490 sort(<a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>.begin(), <a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>.end()); +00491 } +00492 +00493 <span class="comment">// **** set CLod flag </span> +00494 <a class="code" href="a04558.html#a15">uint</a> n= <a class="code" href="a04061.html#a0">min</a>(nMaxSkelsInNotCLodForm, (<a class="code" href="a04558.html#a15">uint</a>)<a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>.size()); +00495 <a class="code" href="a04558.html#a15">uint</a> i; +00496 <span class="comment">// The lowest priority are displayed in std form</span> +00497 <span class="keywordflow">for</span>(i=0;i<n;i++) +00498 { +00499 <a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>[i].SkeletonModel->setDisplayLodCharacterFlag(<span class="keyword">false</span>); +00500 } +00501 <span class="comment">// the other are displayed in CLod form</span> +00502 <span class="keywordflow">for</span>(i=n;i<<a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>.size();i++) +00503 { +00504 <a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>[i].SkeletonModel->setDisplayLodCharacterFlag(<span class="keyword">true</span>); +00505 } +00506 +00507 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTrava2" doxytag="NL3D::CClipTrav::registerCluster" ></a><p> +<table class="mdTable" 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::CClipTrav::registerCluster </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02362.html">CCluster</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pCluster</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05555.html#l00433">433</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00156">Accel</a>, <a class="el" href="a05564.html#l00157">NL3D::CCluster::AccelIt</a>, <a class="el" href="a05564.html#l00101">NL3D::CCluster::getBBox()</a>, <a class="el" href="a05385.html#l00087">NLMISC::CAABBox::getMax()</a>, <a class="el" href="a05385.html#l00086">NLMISC::CAABBox::getMin()</a>, and <a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_2">NL3D::CQuadGrid< CCluster * >::insert()</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, and <a class="el" href="a05563.html#l00369">NL3D::CCluster::traverseHrc()</a>. +<p> +<div class="fragment"><pre>00434 { +00435 pCluster->AccelIt = <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.insert (pCluster->getBBox().getMin(), pCluster->getBBox().getMax(), pCluster); +00436 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz63_1" doxytag="NL3D::CClipTrav::reserveVisibleList" ></a><p> +<table class="mdTable" 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::CClipTrav::reserveVisibleList </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>numModels</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05555.html#l00511">511</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>. +<p> +<div class="fragment"><pre>00512 { +00513 <span class="comment">// enlarge only.</span> +00514 <span class="keywordflow">if</span>(numModels><a class="code" href="a02353.html#NL3D_1_1CClipTravr3">_VisibleList</a>.size()) +00515 <a class="code" href="a02353.html#NL3D_1_1CClipTravr3">_VisibleList</a>.resize(numModels); +00516 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenea1" doxytag="NL3D::CClipTrav::setCamMatrix" ></a><p> +<table class="mdTable" 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::CTravCameraScene::setCamMatrix </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>camMatrix</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> +Setup the camera matrix (a translation/rotation matrix). +<p> + +<p> +Definition at line <a class="el" href="a06583.html#l00102">102</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +References <a class="el" href="a06583.html#l00077">NL3D::CTravCameraScene::CamMatrix</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00300">NL3D::CScene::render()</a>. +<p> +<div class="fragment"><pre>00103 { +00104 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_2">CamMatrix</a>= camMatrix; +00105 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz65_4" doxytag="NL3D::CClipTrav::setClusterVisibilityTracking" ></a><p> +<table class="mdTable" 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::CClipTrav::setClusterVisibilityTracking </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>track</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> +Set cluster tracking on/off (ie storage of thje visible cluster during clip traversal). +<p> + +<p> +Definition at line <a class="el" href="a05555.html#l00096">96</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00133">_TrackClusterVisibility</a>. +<p> +<div class="fragment"><pre>00097 { +00098 <a class="code" href="a02353.html#NL3D_1_1CClipTravz65_5">_TrackClusterVisibility</a> = track; +00099 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenea2" doxytag="NL3D::CClipTrav::setFrustum" ></a><p> +<table class="mdTable" 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::CTravCameraScene::setFrustum </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>width</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>height</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>znear</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>zfar</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>perspective</em> = true</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be >0 (if perspective). +<p> + +<p> +Definition at line <a class="el" href="a06583.html#l00097">97</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +References <a class="el" href="a05646.html#l01013">height</a>, <a class="el" href="a06583.html#l00086">NL3D::CTravCameraScene::setFrustum()</a>, and <a class="el" href="a05646.html#l01013">width</a>. +<p> +<div class="fragment"><pre>00098 { +00099 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenea3">setFrustum</a>(-width/2, width/2, -height/2, height/2, znear, zfar, perspective); +00100 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenea3" doxytag="NL3D::CClipTrav::setFrustum" ></a><p> +<table class="mdTable" 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::CTravCameraScene::setFrustum </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname" nowrap> <em>left</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>right</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>bottom</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>top</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>znear</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>zfar</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>perspective</em> = true</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be >0 (if perspective). +<p> + +<p> +Definition at line <a class="el" href="a06583.html#l00086">86</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +References <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Bottom</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Far</a>, <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Near</a>, <a class="el" href="a06583.html#l00076">NL3D::CTravCameraScene::Perspective</a>, and <a class="el" href="a06583.html#l00075">NL3D::CTravCameraScene::Right</a>. +<p> +Referenced by <a class="el" href="a06583.html#l00109">NL3D::CTravCameraScene::CTravCameraScene()</a>, <a class="el" href="a06348.html#l00300">NL3D::CScene::render()</a>, and <a class="el" href="a06583.html#l00097">NL3D::CTravCameraScene::setFrustum()</a>. +<p> +<div class="fragment"><pre>00087 { +00088 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_5">Left</a>= left; +00089 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_8">Right</a>= right; +00090 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_0">Bottom</a>= bottom; +00091 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_9">Top</a>= top; +00092 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_6">Near</a>= znear; +00093 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_4">Far</a>= zfar; +00094 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_7">Perspective</a>= perspective; +00095 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTrava6" doxytag="NL3D::CClipTrav::setQuadGridClipManager" ></a><p> +<table class="mdTable" 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::CClipTrav::setQuadGridClipManager </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03287.html">CQuadGridClipManager</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>mgr</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> +Setup the render traversal (else <a class="el" href="a02353.html#NL3D_1_1CClipTrava7">traverse()</a> won't work). +<p> + +<p> +Definition at line <a class="el" href="a05555.html#l00427">427</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00170">_QuadGridClipManager</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00194">NL3D::CScene::release()</a>, and <a class="el" href="a06348.html#l00300">NL3D::CScene::render()</a>. +<p> +<div class="fragment"><pre>00428 { +00429 <a class="code" href="a02353.html#NL3D_1_1CClipTravr1">_QuadGridClipManager</a>= mgr; +00430 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTrava7" doxytag="NL3D::CClipTrav::traverse" ></a><p> +<table class="mdTable" 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::CClipTrav::traverse </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +traverse +<p> +Flag all cluster to know if they are in camera or not. +<p> +Definition at line <a class="el" href="a05555.html#l00120">120</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05797.html#l00088">NL3D::CHrcTrav::_MovingObjects</a>, <a class="el" href="a05556.html#l00170">_QuadGridClipManager</a>, <a class="el" href="a05556.html#l00134">_VisibleClusters</a>, <a class="el" href="a05556.html#l00156">Accel</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_0">NL3D::CQuadGrid< CCluster * >::begin()</a>, <a class="el" href="a05556.html#l00154">Camera</a>, <a class="el" href="a05897.html#l00054">NL3D::CLightTrav::clearLightedList()</a>, <a class="el" href="a06329.html#l00312">NL3D::CRenderTrav::clearRenderList()</a>, <a class="el" href="a05923.html#l00154">NL3D::CLoadBalancingTrav::clearVisibleList()</a>, <a class="el" href="a05431.html#l00053">NL3D::CAnimDetailTrav::clearVisibleList()</a>, <a class="el" href="a06568.html#l01217">NL3D::CTransform::clipAddChild()</a>, <a class="el" href="a06568.html#l01238">NL3D::CTransform::clipDelChild()</a>, <a class="el" href="a06569.html#l00234">NL3D::CTransform::clipGetNumParents()</a>, <a class="el" href="a06568.html#l01258">NL3D::CTransform::clipGetParent()</a>, <a class="el" href="a05555.html#l00532">clipSkeletonShadowMaps()</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_2">NL3D::CQuadGrid< CCluster * >::end()</a>, <a class="el" href="a05555.html#l00072">fullSearch()</a>, <a class="el" href="a06570.html#l00083">NL3D::CTransformShape::getAABBox()</a>, <a class="el" href="a06349.html#l00477">NL3D::CScene::getAnimDetailTrav()</a>, <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a06569.html#l00320">NL3D::CTransform::getClusterSystem()</a>, <a class="el" href="a05385.html#l00091">NLMISC::CAABBox::getHalfSize()</a>, <a class="el" href="a06349.html#l00474">NL3D::CScene::getHrcTrav()</a>, <a class="el" href="a06349.html#l00476">NL3D::CScene::getLightTrav()</a>, <a class="el" href="a06349.html#l00478">NL3D::CScene::getLoadBalancingTrav()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06349.html#l00482">NL3D::CScene::getRoot()</a>, <a class="el" href="a06349.html#l00518">NL3D::CScene::getSkeletonModelListBegin()</a>, <a class="el" href="a06349.html#l00519">NL3D::CScene::getSkeletonModelListEnd()</a>, <a class="el" href="a06569.html#l00299">NL3D::CTransform::getWorldMatrix()</a>, <a class="el" href="a05564.html#l00167">NL3D::CCluster::Group</a>, <a class="el" href="a05788.html#l00054">H_AFTER</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a05788.html#l00053">H_BEFORE</a>, <a class="el" href="a06569.html#l00451">NL3D::CTransform::isCluster()</a>, <a class="el" href="a05563.html#l00195">NL3D::CCluster::isIn()</a>, <a class="el" href="a06569.html#l00294">NL3D::CTransform::isQuadGridClipEnabled()</a>, <a class="el" href="a06349.html#l00514">NL3D::CScene::ItSkeletonModelList</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a05555.html#l00457">loadBalanceSkeletonCLod()</a>, <a class="el" href="a05556.html#l00064">NL3D_CLIP_PLANE_BOTTOM</a>, <a class="el" href="a05556.html#l00060">NL3D_CLIP_PLANE_FAR</a>, <a class="el" href="a05556.html#l00061">NL3D_CLIP_PLANE_LEFT</a>, <a class="el" href="a05556.html#l00059">NL3D_CLIP_PLANE_NEAR</a>, <a class="el" href="a05556.html#l00063">NL3D_CLIP_PLANE_RIGHT</a>, <a class="el" href="a05556.html#l00062">NL3D_CLIP_PLANE_TOP</a>, <a class="el" href="a06682.html#l00115">NLMISC::CVector::norm()</a>, <a class="el" href="a05556.html#l00153">RootCluster</a>, <a class="el" href="a05646.html#l00977">s</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_3">NL3D::CQuadGrid< CCluster * >::select()</a>, <a class="el" href="a06349.html#l00636">NL3D::CScene::SonsOfAncestorSkeletonModelGroup</a>, <a class="el" href="a06341.html#l00052">NL3D::CRootModel::traverseClip()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a06304.html#l00112">NL3D::CQuadGridClipManager::updateClustersFromCamera()</a>, <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>, <a class="el" href="a05556.html#l00145">ViewPyramid</a>, <a class="el" href="a05556.html#l00147">WorldFrustumPyramid</a>, and <a class="el" href="a05556.html#l00149">WorldPyramid</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00300">NL3D::CScene::render()</a>. +<p> +<div class="fragment"><pre>00121 { +00122 <a class="code" href="a04365.html#a4">H_AUTO</a>( NL3D_TravClip ); +00123 +00124 <span class="comment">// The root must exist</span> +00125 <a class="code" href="a02353.html#NL3D_1_1CClipTravn0">CTransform</a> *sceneRoot= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getRoot(); +00126 +00127 <span class="comment">// Increment the current date of the traversal</span> +00128 ++<a class="code" href="a02353.html#NL3D_1_1CClipTravo2">CurrentDate</a>; +00129 <span class="comment">// Update Clip infos.</span> +00130 CTravCameraScene::update(); +00131 +00132 <span class="comment">// Compute pyramid in view basis.</span> +00133 CVector pfoc(0,0,0); +00134 CVector lb(Left, Near, Bottom ); +00135 CVector lt(Left, Near, Top ); +00136 CVector rb(Right, Near, Bottom ); +00137 CVector rt(Right, Near, Top ); +00138 +00139 CVector lbFar(Left, Far, Bottom); +00140 CVector ltFar(Left, Far, Top ); +00141 CVector rbFar(Right, Far, Bottom); +00142 CVector rtFar(Right, Far, Top ); +00143 +00144 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00145 +00146 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a0">NL3D_CLIP_PLANE_NEAR</a>].make(lt, lb, rt); +00147 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a1">NL3D_CLIP_PLANE_FAR</a>].make(lbFar, ltFar, rtFar); +00148 +00149 <span class="keywordflow">if</span>(<a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_7">Perspective</a>) +00150 { +00151 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a2">NL3D_CLIP_PLANE_LEFT</a>].make(pfoc, lt, lb); +00152 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a3">NL3D_CLIP_PLANE_TOP</a>].make(pfoc, rt, lt); +00153 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a4">NL3D_CLIP_PLANE_RIGHT</a>].make(pfoc, rb, rt); +00154 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a5">NL3D_CLIP_PLANE_BOTTOM</a>].make(pfoc, lb, rb); +00155 } +00156 <span class="keywordflow">else</span> +00157 { +00158 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a2">NL3D_CLIP_PLANE_LEFT</a>].make(lt, ltFar, lbFar); +00159 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a3">NL3D_CLIP_PLANE_TOP</a>].make(lt, rtFar, ltFar); +00160 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a4">NL3D_CLIP_PLANE_RIGHT</a>].make(rt, rbFar, rtFar); +00161 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[<a class="code" href="a04133.html#a5">NL3D_CLIP_PLANE_BOTTOM</a>].make(lb, lbFar, rbFar); +00162 } +00163 +00164 <span class="comment">// Compute pyramid in World basis.</span> +00165 <span class="comment">// The vector transformation M of a plane p is computed as p*M-1.</span> +00166 <span class="comment">// Here, ViewMatrix== CamMatrix-1. Hence the following formula.</span> +00167 <span class="keywordflow">for</span> (i = 0; i < 6; i++) +00168 { +00169 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_2">WorldPyramid</a>[i]= <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a>[i]*<a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_10">ViewMatrix</a>; +00170 } +00171 +00172 <span class="comment">// bkup this pyramid (because this one may be modified by the cluster system).</span> +00173 <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_1">WorldFrustumPyramid</a>= <a class="code" href="a02353.html#NL3D_1_1CClipTravz67_2">WorldPyramid</a>; +00174 +00175 +00176 <span class="comment">// update the QuadGridClipManager.</span> +00177 <span class="keywordflow">if</span>(<a class="code" href="a02353.html#NL3D_1_1CClipTravr1">_QuadGridClipManager</a>) +00178 { +00179 <a class="code" href="a02353.html#NL3D_1_1CClipTravr1">_QuadGridClipManager</a>->updateClustersFromCamera(CamPos); +00180 } +00181 +00182 <a class="code" href="a04365.html#a2">H_BEFORE</a>( NL3D_TravClip_ClearLists ); +00183 +00184 <span class="comment">// Clear the traversals list.</span> +00185 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getAnimDetailTrav().clearVisibleList(); +00186 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getLoadBalancingTrav().clearVisibleList(); +00187 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getLightTrav().clearLightedList(); +00188 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getRenderTrav().clearRenderList(); +00189 +00190 <a class="code" href="a04365.html#a3">H_AFTER</a>( NL3D_TravClip_ClearLists ); +00191 +00192 +00193 <a class="code" href="a04365.html#a2">H_BEFORE</a>( NL3D_TravClip_ResetVisible ); +00194 +00195 <span class="comment">/* For all objects marked visible in preceding render, reset _Visible state here.</span> +00196 <span class="comment"> NB: must reset _Visible State to false because sometimes traverseClip() are even not executed</span> +00197 <span class="comment"> (Cluster clip, QuadGridClipManager clip...).</span> +00198 <span class="comment"> And somes models read this _Visible state. eg: Skins/StickedObjects test the Visible state of </span> +00199 <span class="comment"> their _AncestorSkeletonModel.</span> +00200 <span class="comment"> */</span> +00201 <span class="keywordflow">for</span> (i=0;i<<a class="code" href="a02353.html#NL3D_1_1CClipTravr0">_CurrentNumVisibleModels</a>;i++) +00202 { +00203 <span class="comment">// if the model still exists (see ~CTransform())</span> +00204 <span class="keywordflow">if</span>( <a class="code" href="a02353.html#NL3D_1_1CClipTravr3">_VisibleList</a>[i] ) +00205 { +00206 <span class="comment">// disable his visibility.</span> +00207 <a class="code" href="a02353.html#NL3D_1_1CClipTravr3">_VisibleList</a>[i]->_Visible= <span class="keyword">false</span>; +00208 <span class="comment">// let him know that it is no more in the list.</span> +00209 <a class="code" href="a02353.html#NL3D_1_1CClipTravr3">_VisibleList</a>[i]->_IndexInVisibleList= -1; +00210 } +00211 } +00212 <span class="comment">// Clear The visible List.</span> +00213 _CurrentNumVisibleModels= 0; +00214 <span class="comment">// Clear the visible cluster list.</span> +00215 <a class="code" href="a02353.html#NL3D_1_1CClipTravz65_6">_VisibleClusters</a>.clear(); +00216 +00217 <a class="code" href="a04365.html#a3">H_AFTER</a>( NL3D_TravClip_ResetVisible ); +00218 +00219 <span class="comment">// Found where is the camera</span> +00220 <span class="comment">//========================</span> +00221 +00222 <a class="code" href="a04365.html#a2">H_BEFORE</a>( NL3D_TravClip_FindCameraCluster); +00223 +00224 <span class="comment">// Found the cluster where the camera is</span> +00225 <span class="keyword">static</span> vector<CCluster*> vCluster; +00226 +00227 vCluster.clear(); +00228 sceneRoot->clipDelChild(RootCluster); +00229 +00230 <span class="comment">// In which cluster is the camera ?</span> +00231 CQuadGrid<CCluster*>::CIterator itAcc; +00232 <span class="keywordflow">if</span> (<a class="code" href="a02353.html#NL3D_1_1CClipTravo1">Camera</a>->getClusterSystem() == (CInstanceGroup*)-1) +00233 { +00234 <a class="code" href="a02353.html#NL3D_1_1CClipTravz65_1">fullSearch</a>(vCluster, <a class="code" href="a02353.html#NL3D_1_1CClipTravo4">RootCluster</a>->Group, CamPos); +00235 <span class="keywordflow">for</span> (i = 0; i < vCluster.size(); ++i) +00236 sceneRoot->clipAddChild(vCluster[i]); +00237 } +00238 <span class="keywordflow">else</span> +00239 { +00240 <span class="keywordtype">bool</span> bInWorld = <span class="keyword">true</span>; +00241 <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.select (CamPos, CamPos); +00242 itAcc = <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.begin(); +00243 <span class="keywordflow">while</span> (itAcc != <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.end()) +00244 { +00245 CCluster *pCluster = *itAcc; +00246 <span class="keywordflow">if</span> (pCluster->Group == <a class="code" href="a02353.html#NL3D_1_1CClipTravo1">Camera</a>->getClusterSystem()) +00247 <span class="keywordflow">if</span> (pCluster->isIn (CamPos)) +00248 { +00249 sceneRoot->clipAddChild(pCluster); +00250 vCluster.push_back (pCluster); +00251 bInWorld = <span class="keyword">false</span>; +00252 } +00253 ++itAcc; +00254 } +00255 +00256 <span class="keywordflow">if</span> (bInWorld) +00257 { +00258 sceneRoot->clipAddChild(RootCluster); +00259 vCluster.push_back (RootCluster); +00260 } +00261 } +00262 +00264 <span class="keywordflow">for</span>(i=0;i<vCluster.size();i++) +00265 { +00266 vCluster[i]->setCameraIn(<span class="keyword">true</span>); +00267 } +00268 +00269 +00270 <a class="code" href="a04365.html#a3">H_AFTER</a>( NL3D_TravClip_FindCameraCluster); +00271 +00272 <span class="comment">// Manage Moving Objects</span> +00273 <span class="comment">//=====================</span> +00274 +00275 <a class="code" href="a04365.html#a2">H_BEFORE</a>( NL3D_TravClip_MovingObjects); +00276 +00277 <span class="comment">// Unlink the moving objects from their clusters</span> +00278 CHrcTrav &hrcTrav= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getHrcTrav(); +00279 <span class="keywordflow">for</span> (i = 0; i < hrcTrav._MovingObjects.size(); ++i) +00280 { +00281 CTransformShape *pTfmShp = hrcTrav._MovingObjects[i]; +00282 +00283 <span class="keyword">static</span> vector<CTransform*> vModels; +00284 vModels.clear(); +00285 <a class="code" href="a04558.html#a15">uint</a> numClipParents= pTfmShp->clipGetNumParents(); +00286 <span class="keywordflow">for</span>(j=0;j<numClipParents;j++) +00287 { +00288 <a class="code" href="a02353.html#NL3D_1_1CClipTravn0">CTransform</a> *pFather = pTfmShp->clipGetParent(j); +00289 +00290 <span class="comment">// Does the father is a cluster ??</span> +00291 <span class="keywordflow">if</span> ( pFather->isCluster() ) +00292 { +00293 vModels.push_back (pFather); +00294 } +00295 } +00296 <span class="comment">// Remove me from all clusters</span> +00297 <span class="keywordflow">for</span> (j = 0; j < vModels.size(); ++j) +00298 { +00299 vModels[j]->clipDelChild(pTfmShp); +00300 } +00301 <span class="comment">// Remove me from Root Too</span> +00302 sceneRoot->clipDelChild(pTfmShp); +00303 +00304 <span class="comment">// NB: only the SonsOfAncestorSkeletonModelGroup may still be here.</span> +00305 } +00306 +00307 <span class="comment">// Affect the moving objects to their clusters</span> +00308 <span class="keywordflow">for</span> (i = 0; i < hrcTrav._MovingObjects.size(); ++i) +00309 { +00310 CTransformShape *pTfmShp = hrcTrav._MovingObjects[i]; +00311 +00312 <span class="keywordtype">bool</span> bInWorld = <span class="keyword">true</span>; +00313 CAABBox box; +00314 pTfmShp->getAABBox (box); +00315 <span class="comment">// Transform the box in the world</span> +00316 CVector c = box.getCenter(); +00317 CVector p = box.getCenter()+box.getHalfSize(); +00318 <span class="keyword">const</span> CMatrix &wm = pTfmShp->getWorldMatrix(); +00319 c = wm * c; +00320 p = wm * p; +00321 <span class="keywordtype">float</span> <a class="code" href="a04223.html#a626">s</a> = (p - c).norm(); +00322 +00323 <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.select (c+CVector(s,s,s), c+CVector(-s,-s,-s)); +00324 itAcc = <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.begin(); +00325 <span class="keywordflow">while</span> (itAcc != <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.end()) +00326 { +00327 CCluster *pCluster = *itAcc; +00328 <span class="keywordflow">if</span> (pCluster->Group == pTfmShp->getClusterSystem()) +00329 <span class="keywordflow">if</span> (pCluster->isIn (c,s)) +00330 { +00331 pCluster->clipAddChild(pTfmShp); +00332 bInWorld = <span class="keyword">false</span>; +00333 } +00334 ++itAcc; +00335 } +00336 +00337 <span class="comment">// Moving object in the world -> link to root or to the CQuadGridClipManager.</span> +00338 <span class="keywordflow">if</span> (bInWorld) +00339 { +00340 <span class="keywordflow">if</span>( <a class="code" href="a02353.html#NL3D_1_1CClipTravr1">_QuadGridClipManager</a> && pTfmShp->isQuadGridClipEnabled() ) +00341 { +00342 <span class="comment">// try to insert in the best cluster of the _QuadGridClipManager.</span> +00343 <span class="keywordflow">if</span>(!<a class="code" href="a02353.html#NL3D_1_1CClipTravr1">_QuadGridClipManager</a>->linkModel(pTfmShp)) +00344 <span class="comment">// if fails, link to "root".</span> +00345 <a class="code" href="a02353.html#NL3D_1_1CClipTravo4">RootCluster</a>->clipAddChild(pTfmShp); +00346 } +00347 <span class="keywordflow">else</span> +00348 { +00349 <a class="code" href="a02353.html#NL3D_1_1CClipTravo4">RootCluster</a>->clipAddChild(pTfmShp); +00350 } +00351 } +00352 } +00353 +00354 <a class="code" href="a04365.html#a3">H_AFTER</a>( NL3D_TravClip_MovingObjects); +00355 +00356 <span class="comment">// Clip the graph.</span> +00357 <span class="comment">//=====================</span> +00358 +00359 <a class="code" href="a04365.html#a2">H_BEFORE</a>( NL3D_TravClip_Traverse); +00360 +00361 +00362 <span class="comment">// Traverse the graph.</span> +00363 sceneRoot->traverseClip(); +00364 +00365 +00366 <span class="comment">// Unlink the cluster where we are</span> +00367 <span class="keywordflow">for</span> (i = 0; i < vCluster.size(); ++i) +00368 { +00369 <span class="comment">// reset Camera In Flag.</span> +00370 vCluster[i]->setCameraIn(<span class="keyword">false</span>); +00371 +00372 <span class="comment">// remove from Clip Root</span> +00373 sceneRoot->clipDelChild(vCluster[i]); +00374 } +00375 +00376 <a class="code" href="a04365.html#a3">H_AFTER</a>( NL3D_TravClip_Traverse); +00377 +00378 <span class="comment">// Load Balance the Skeleton CLod state here. </span> +00379 <span class="comment">// =========================</span> +00380 <span class="comment">/* Can't do it in LoadBalancingTrav because sons with _AncestorSkeletonModel!=NULL may be hiden if a skeleton</span> +00381 <span class="comment"> is displayed in CLod mode.</span> +00382 <span class="comment"> So must do it here, then clip all sons of AncestoreSkeletonModelGroup.</span> +00383 <span class="comment"> */</span> +00384 <a class="code" href="a04365.html#a2">H_BEFORE</a>( NL3D_TravClip_LoadBalanceCLod); +00385 <a class="code" href="a02353.html#NL3D_1_1CClipTravd1">loadBalanceSkeletonCLod</a>(); +00386 <a class="code" href="a04365.html#a3">H_AFTER</a>( NL3D_TravClip_LoadBalanceCLod); +00387 +00388 <a class="code" href="a04365.html#a2">H_BEFORE</a>( NL3D_TravClip_SkeletonClip); +00389 +00390 <span class="comment">// At the end of the clip traverse, must update clip for Objects which have a skeleton ancestor</span> +00391 <span class="comment">// =========================</span> +00392 <span class="comment">// those are linked to the SonsOfAncestorSkeletonModelGroup, so traverse it now.</span> +00393 <span class="keywordflow">if</span> (<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->SonsOfAncestorSkeletonModelGroup) +00394 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->SonsOfAncestorSkeletonModelGroup->traverseClip(); +00395 +00396 <span class="comment">// For All Skeletons, clip their ShadowMap possible projection against the frustum only.</span> +00397 <span class="comment">// =========================</span> +00398 <span class="comment">/*</span> +00399 <span class="comment"> Done here, because can't do in clip() in case of a skeleton in a cluster </span> +00400 <span class="comment"> (We insert in cluster with the SkeletonModel BBox, not the SkeletonModel + Shadow BBox).</span> +00401 <span class="comment"> */</span> +00402 <a class="code" href="a02353.html#NL3D_1_1CClipTravd0">clipSkeletonShadowMaps</a>(); +00403 +00404 <span class="comment">// Update Here the Skin render Lists of All visible Skeletons</span> +00405 <span class="comment">// =========================</span> +00406 <span class="comment">/*</span> +00407 <span class="comment"> Done here, because AnimDetail and Render need correct lists. NB: important to do it </span> +00408 <span class="comment"> before Render Traversal, because updateSkinRenderLists() may change the transparency flag!!</span> +00409 <span class="comment"> NB: can't do it in any traverse() because must be sure that it is done </span> +00410 <span class="comment"> (traverseHRC not called if SonOfAncestorSkeletonModel, and traverseClip not called if in a cluster).</span> +00411 <span class="comment"> NB: must do even if clipped because:</span> +00412 <span class="comment"> 1/ maybe used for generateShadow() (through the ancestorSkeletonModel)</span> +00413 <span class="comment"> 2/ the cost of method is 0 all the time (but when true changes)</span> +00414 <span class="comment"> */</span> +00415 CScene::ItSkeletonModelList itSkel; +00416 <span class="keywordflow">for</span>(itSkel= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>->getSkeletonModelListEnd(); itSkel++) +00417 { +00418 CSkeletonModel *sm= *itSkel; +00419 sm->updateSkinRenderLists(); +00420 } +00421 +00422 <a class="code" href="a04365.html#a3">H_AFTER</a>( NL3D_TravClip_SkeletonClip); +00423 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTrava8" doxytag="NL3D::CClipTrav::unregisterCluster" ></a><p> +<table class="mdTable" 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::CClipTrav::unregisterCluster </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02362.html">CCluster</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pCluster</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05555.html#l00439">439</a> of file <a class="el" href="a05555.html">clip_trav.cpp</a>. +<p> +References <a class="el" href="a05556.html#l00156">Accel</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_0">NL3D::CQuadGrid< CCluster * >::begin()</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_2">NL3D::CQuadGrid< CCluster * >::end()</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_1">NL3D::CQuadGrid< CCluster * >::erase()</a>, and <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_4">NL3D::CQuadGrid< CCluster * >::selectAll()</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00935">NL3D::CInstanceGroup::removeFromScene()</a>. +<p> +<div class="fragment"><pre>00440 { +00441 <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.selectAll(); +00442 CQuadGrid<CCluster*>::CIterator itAcc = <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.begin(); +00443 <span class="keywordflow">while</span> (itAcc != <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.end()) +00444 { +00445 CCluster *pC = *itAcc; +00446 <span class="keywordflow">if</span> (pCluster == pC) +00447 { +00448 <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.erase (itAcc); +00449 <span class="keywordflow">break</span>; +00450 } +00451 ++itAcc; +00452 } +00453 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraSceneb0" doxytag="NL3D::CClipTrav::update" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CTravCameraScene::update </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +update the dependent information. +<p> + +<p> +Definition at line <a class="el" href="a06583.html#l00122">122</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +References <a class="el" href="a06583.html#l00080">NL3D::CTravCameraScene::CamLook</a>, <a class="el" href="a06583.html#l00077">NL3D::CTravCameraScene::CamMatrix</a>, <a class="el" href="a06583.html#l00079">NL3D::CTravCameraScene::CamPos</a>, <a class="el" href="a05973.html#l00198">NLMISC::CMatrix::getPos()</a>, <a class="el" href="a05972.html#l01090">NLMISC::CMatrix::inverted()</a>, and <a class="el" href="a05972.html#l01244">NLMISC::CMatrix::mulVector()</a>. +<p> +<div class="fragment"><pre>00123 { +00124 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_10">ViewMatrix</a>= <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_2">CamMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1967_1">inverted</a>(); +00125 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_3">CamPos</a>= <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_2">CamMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1963_6">getPos</a>(); +00126 <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_1">CamLook</a>= <a class="code" href="a02354.html#NL3D_1_1CTravCameraScenez1097_2">CamMatrix</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1968_1">mulVector</a>(NLMISC::CVector::J); +00127 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CClipTravn0" doxytag="NL3D::CClipTrav::CTransform" ></a><p> +<table class="mdTable" 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="a02316.html">CTransform</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="a05556.html#l00166">166</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NL3D_1_1CClipTravr0" doxytag="NL3D::CClipTrav::_CurrentNumVisibleModels" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02353.html#NL3D_1_1CClipTravr0">NL3D::CClipTrav::_CurrentNumVisibleModels</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00168">168</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravr1" doxytag="NL3D::CClipTrav::_QuadGridClipManager" ></a><p> +<table class="mdTable" 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="a03287.html">CQuadGridClipManager</a>* <a class="el" href="a02353.html#NL3D_1_1CClipTravr1">NL3D::CClipTrav::_QuadGridClipManager</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00170">170</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00055">CClipTrav()</a>, <a class="el" href="a05556.html#l00100">getQuadGridClipManager()</a>, <a class="el" href="a05555.html#l00427">setQuadGridClipManager()</a>, and <a class="el" href="a05555.html#l00120">traverse()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravr2" doxytag="NL3D::CClipTrav::_TmpSortSkeletons" ></a><p> +<table class="mdTable" 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="a02355.html">CSkeletonKey</a>> <a class="el" href="a02353.html#NL3D_1_1CClipTravr2">NL3D::CClipTrav::_TmpSortSkeletons</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00183">183</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00457">loadBalanceSkeletonCLod()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz65_5" doxytag="NL3D::CClipTrav::_TrackClusterVisibility" ></a><p> +<table class="mdTable" 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="a02353.html#NL3D_1_1CClipTravz65_5">NL3D::CClipTrav::_TrackClusterVisibility</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add a visible cluster to the list. +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00133">133</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00101">getClusterVisibilityTracking()</a>, and <a class="el" href="a05555.html#l00096">setClusterVisibilityTracking()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz65_6" doxytag="NL3D::CClipTrav::_VisibleClusters" ></a><p> +<table class="mdTable" 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="a02362.html">CCluster</a>*> <a class="el" href="a02353.html#NL3D_1_1CClipTravz65_6">NL3D::CClipTrav::_VisibleClusters</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add a visible cluster to the list. +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00134">134</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00106">addVisibleCluster()</a>, <a class="el" href="a05555.html#l00113">getVisibleClusters()</a>, and <a class="el" href="a05555.html#l00120">traverse()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravr3" doxytag="NL3D::CClipTrav::_VisibleList" ></a><p> +<table class="mdTable" 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="a02316.html">CTransform</a>*> <a class="el" href="a02353.html#NL3D_1_1CClipTravr3">NL3D::CClipTrav::_VisibleList</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00167">167</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a06568.html#l00143">NL3D::CTransform::~CTransform()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravo0" doxytag="NL3D::CClipTrav::Accel" ></a><p> +<table class="mdTable" 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="a03273.html">CQuadGrid</a><<a class="el" href="a02362.html">CCluster</a>*> <a class="el" href="a02353.html#NL3D_1_1CClipTravo0">NL3D::CClipTrav::Accel</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00156">156</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a05555.html#l00055">CClipTrav()</a>, <a class="el" href="a06348.html#l01268">NL3D::CScene::findCameraClusterSystemFromRay()</a>, <a class="el" href="a05555.html#l00433">registerCluster()</a>, <a class="el" href="a05555.html#l00120">traverse()</a>, <a class="el" href="a05563.html#l00369">NL3D::CCluster::traverseHrc()</a>, and <a class="el" href="a05555.html#l00439">unregisterCluster()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_0" doxytag="NL3D::CClipTrav::Bottom" ></a><p> +<table class="mdTable" 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="a02354.html#NL3D_1_1CTravCameraScenez1097_0">NL3D::CTravCameraScene::Bottom</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="a06583.html#l00075">75</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06583.html#l00086">NL3D::CTravCameraScene::setFrustum()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravo1" doxytag="NL3D::CClipTrav::Camera" ></a><p> +<table class="mdTable" 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="a02315.html">CCamera</a>* <a class="el" href="a02353.html#NL3D_1_1CClipTravo1">NL3D::CClipTrav::Camera</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00154">154</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00300">NL3D::CScene::render()</a>, and <a class="el" href="a05555.html#l00120">traverse()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_1" doxytag="NL3D::CClipTrav::CamLook" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">NLMISC::CVector</a> <a class="el" href="a02354.html#NL3D_1_1CTravCameraScenez1097_1">NL3D::CTravCameraScene::CamLook</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="a06583.html#l00080">80</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a05870.html#l00143">NL3D::CLandscapeModel::clipAndRenderLandscape()</a>, <a class="el" href="a06583.html#l00109">NL3D::CTravCameraScene::CTravCameraScene()</a>, and <a class="el" href="a06583.html#l00122">NL3D::CTravCameraScene::update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_2" doxytag="NL3D::CClipTrav::CamMatrix" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02851.html">NLMISC::CMatrix</a> <a class="el" href="a02354.html#NL3D_1_1CTravCameraScenez1097_2">NL3D::CTravCameraScene::CamMatrix</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="a06583.html#l00077">77</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06583.html#l00109">NL3D::CTravCameraScene::CTravCameraScene()</a>, <a class="el" href="a06583.html#l00102">NL3D::CTravCameraScene::setCamMatrix()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>, and <a class="el" href="a06583.html#l00122">NL3D::CTravCameraScene::update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_3" doxytag="NL3D::CClipTrav::CamPos" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">NLMISC::CVector</a> <a class="el" href="a02354.html#NL3D_1_1CTravCameraScenez1097_3">NL3D::CTravCameraScene::CamPos</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="a06583.html#l00079">79</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, <a class="el" href="a06302.html#l00193">NL3D::CQuadGridClipClusterQTreeNode::clip()</a>, <a class="el" href="a05870.html#l00143">NL3D::CLandscapeModel::clipAndRenderLandscape()</a>, <a class="el" href="a06393.html#l00972">NL3D::CSkeletonModel::computeDisplayLodCharacterPriority()</a>, <a class="el" href="a06583.html#l00109">NL3D::CTravCameraScene::CTravCameraScene()</a>, <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06302.html#l00268">NL3D::CQuadGridClipClusterQTreeNode::noFrustumClip()</a>, <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a06348.html#l00300">NL3D::CScene::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06393.html#l01295">NL3D::CSkeletonModel::renderCLod()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, <a class="el" href="a06372.html#l00880">NL3D::CShadowMapManager::selectShadowMapsToGenerate()</a>, <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, <a class="el" href="a06570.html#l00274">NL3D::CTransformShape::traverseLoadBalancingPass0()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a06583.html#l00122">NL3D::CTravCameraScene::update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravo2" doxytag="NL3D::CClipTrav::CurrentDate" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a12">sint64</a> <a class="el" href="a02353.html#NL3D_1_1CClipTravo2">NL3D::CClipTrav::CurrentDate</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00151">151</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a06148.html#l00516">NL3D::CParticleSystemModel::traverseAnimDetail()</a>, <a class="el" href="a06568.html#l00806">NL3D::CTransform::traverseClip()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, and <a class="el" href="a05870.html#l00105">NL3D::CLandscapeModel::traverseClip()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_4" doxytag="NL3D::CClipTrav::Far" ></a><p> +<table class="mdTable" 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="a02354.html#NL3D_1_1CTravCameraScenez1097_4">NL3D::CTravCameraScene::Far</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="a06583.html#l00075">75</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06583.html#l00086">NL3D::CTravCameraScene::setFrustum()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravo3" doxytag="NL3D::CClipTrav::ForceNoFrustumClip" ></a><p> +<table class="mdTable" 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="a02353.html#NL3D_1_1CClipTravo3">NL3D::CClipTrav::ForceNoFrustumClip</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +for CQuadGridClipClusterClip only. This flag means models traversed do not need to clip, they are sure to be visible. +<p> +Definition at line <a class="el" href="a05556.html#l00161">161</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00055">CClipTrav()</a>, <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, and <a class="el" href="a06302.html#l00193">NL3D::CQuadGridClipClusterQTreeNode::clip()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_5" doxytag="NL3D::CClipTrav::Left" ></a><p> +<table class="mdTable" 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="a02354.html#NL3D_1_1CTravCameraScenez1097_5">NL3D::CTravCameraScene::Left</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="a06583.html#l00075">75</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_6" doxytag="NL3D::CClipTrav::Near" ></a><p> +<table class="mdTable" 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="a02354.html#NL3D_1_1CTravCameraScenez1097_6">NL3D::CTravCameraScene::Near</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="a06583.html#l00075">75</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06583.html#l00086">NL3D::CTravCameraScene::setFrustum()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_7" doxytag="NL3D::CClipTrav::Perspective" ></a><p> +<table class="mdTable" 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="a02354.html#NL3D_1_1CTravCameraScenez1097_7">NL3D::CTravCameraScene::Perspective</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="a06583.html#l00076">76</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06583.html#l00086">NL3D::CTravCameraScene::setFrustum()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_8" doxytag="NL3D::CClipTrav::Right" ></a><p> +<table class="mdTable" 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="a02354.html#NL3D_1_1CTravCameraScenez1097_8">NL3D::CTravCameraScene::Right</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="a06583.html#l00075">75</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06583.html#l00086">NL3D::CTravCameraScene::setFrustum()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravo4" doxytag="NL3D::CClipTrav::RootCluster" ></a><p> +<table class="mdTable" 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="a02362.html">CCluster</a>* <a class="el" href="a02353.html#NL3D_1_1CClipTravo4">NL3D::CClipTrav::RootCluster</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00153">153</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00249">NL3D::CScene::initDefaultRoots()</a>, <a class="el" href="a06302.html#l00086">NL3D::CQuadGridClipClusterListDist::resetSons()</a>, and <a class="el" href="a05555.html#l00120">traverse()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTraversalo0" doxytag="NL3D::CClipTrav::Scene" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03348.html">CScene</a>* <a class="el" href="a02214.html#NL3D_1_1CTraversalo0">NL3D::CTraversal::Scene</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="a06583.html#l00055">55</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00134">NL3D::CScene::CScene()</a>, <a class="el" href="a06011.html#l01288">NL3D::CMeshMRMSkinnedGeom::profileSceneRender()</a>, <a class="el" href="a06005.html#l02600">NL3D::CMeshMRMGeom::profileSceneRender()</a>, and <a class="el" href="a05989.html#l01932">NL3D::CMeshGeom::profileSceneRender()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_9" doxytag="NL3D::CClipTrav::Top" ></a><p> +<table class="mdTable" 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="a02354.html#NL3D_1_1CTravCameraScenez1097_9">NL3D::CTravCameraScene::Top</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="a06583.html#l00075">75</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CTravCameraScenez1097_10" doxytag="NL3D::CClipTrav::ViewMatrix" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02851.html">NLMISC::CMatrix</a> <a class="el" href="a02354.html#NL3D_1_1CTravCameraScenez1097_10">NL3D::CTravCameraScene::ViewMatrix</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="a06583.html#l00078">78</a> of file <a class="el" href="a06583.html">trav_scene.h</a>. +<p> +Referenced by <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06148.html#l00619">NL3D::CParticleSystemModel::doAnimate()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz67_0" doxytag="NL3D::CClipTrav::ViewPyramid" ></a><p> +<table class="mdTable" 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="a03082.html">CPlane</a>> <a class="el" href="a02353.html#NL3D_1_1CClipTravz67_0">NL3D::CClipTrav::ViewPyramid</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Vision Pyramid (6 normalized planes) in the view basis. +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00145">145</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a05555.html#l00120">traverse()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz67_1" doxytag="NL3D::CClipTrav::WorldFrustumPyramid" ></a><p> +<table class="mdTable" 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="a03082.html">CPlane</a>> <a class="el" href="a02353.html#NL3D_1_1CClipTravz67_1">NL3D::CClipTrav::WorldFrustumPyramid</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Vision Pyramid (6 normalized planes) in the world basis. NB: NOT modified by the ClusterSystem. +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00147">147</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a05870.html#l00143">NL3D::CLandscapeModel::clipAndRenderLandscape()</a>, <a class="el" href="a05555.html#l00532">clipSkeletonShadowMaps()</a>, <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06737.html#l01026">NL3D::CWaterModel::computeSimpleClippedPoly()</a>, <a class="el" href="a06348.html#l00300">NL3D::CScene::render()</a>, <a class="el" href="a05555.html#l00120">traverse()</a>, and <a class="el" href="a05870.html#l00105">NL3D::CLandscapeModel::traverseClip()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CClipTravz67_2" doxytag="NL3D::CClipTrav::WorldPyramid" ></a><p> +<table class="mdTable" 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="a03082.html">CPlane</a>> <a class="el" href="a02353.html#NL3D_1_1CClipTravz67_2">NL3D::CClipTrav::WorldPyramid</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Vision Pyramid in the world basis. NB: may be modified by the ClusterSystem. +<p> + +<p> +Definition at line <a class="el" href="a05556.html#l00149">149</a> of file <a class="el" href="a05556.html">clip_trav.h</a>. +<p> +Referenced by <a class="el" href="a06570.html#l00141">NL3D::CTransformShape::clip()</a>, <a class="el" href="a06302.html#l00193">NL3D::CQuadGridClipClusterQTreeNode::clip()</a>, <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>, <a class="el" href="a05555.html#l00120">traverse()</a>, <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>, and <a class="el" href="a05870.html#l00105">NL3D::CLandscapeModel::traverseClip()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a05556.html">clip_trav.h</a><li><a class="el" href="a05555.html">clip_trav.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:45:03 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> |