aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02353.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02353.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a02353.html')
-rw-r--r--docs/doxygen/nel/a02353.html2296
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&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NL3D::CClipTrav Class Reference</h1><code>#include &lt;<a class="el" href="a05556.html">clip_trav.h</a>&gt;</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-&gt;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&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_1">fullSearch</a> (std::vector&lt; <a class="el" href="a02362.html">CCluster</a> * &gt; &amp;result, <a class="el" href="a02671.html">CInstanceGroup</a> *pIG, const <a class="el" href="a03128.html">CVector</a> &amp;pos)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_2">getClusterVisibilityTracking</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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&lt; <a class="el" href="a02362.html">CCluster</a> * &gt; &amp;&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_5">_TrackClusterVisibility</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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&lt; <a class="el" href="a02362.html">CCluster</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz65_6">_VisibleClusters</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTrava0">CClipTrav</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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> *&nbsp;</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&nbsp;</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&nbsp;</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> &amp;camMatrix)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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">&nbsp;</td><td class="mdescRight">Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be &gt;0 (if perspective). <a href="#NL3D_1_1CTravCameraScenea2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</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">&nbsp;</td><td class="mdescRight">Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be &gt;0 (if perspective). <a href="#NL3D_1_1CTravCameraScenea3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTrava7">traverse</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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>&nbsp;</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&nbsp;</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&nbsp;</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>&lt; <a class="el" href="a02362.html">CCluster</a> * &gt;&nbsp;</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> *&nbsp;</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>&nbsp;</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&nbsp;</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> *&nbsp;</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> *&nbsp;</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&lt; <a class="el" href="a03082.html">CPlane</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz67_0">ViewPyramid</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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&lt; <a class="el" href="a03082.html">CPlane</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz67_1">WorldFrustumPyramid</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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&lt; <a class="el" href="a03082.html">CPlane</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravz67_2">WorldPyramid</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02354.html#NL3D_1_1CTravCameraSceneb0">update</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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&nbsp;</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>&nbsp;</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> *&nbsp;</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&lt; <a class="el" href="a02355.html">CSkeletonKey</a> &gt;&nbsp;</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&lt; <a class="el" href="a02316.html">CTransform</a> * &gt;&nbsp;</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&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02353.html#NL3D_1_1CClipTravn0">CTransform</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; 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">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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&lt; CCluster * &gt;::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">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02362.html">CCluster</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cluster</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>model</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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-&gt;_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">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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>-&gt;getEllapsedTime();
+00539 <span class="keywordtype">float</span> distFadeStart= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;getShadowMapDistFadeStart();
+00540 <span class="keywordtype">float</span> distFadeEnd= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;getShadowMapDistFadeEnd();
+00541 <span class="keywordtype">float</span> OODeltaDistFade;
+00542 <span class="keywordflow">if</span>(distFadeEnd-distFadeStart&gt;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>-&gt;getShadowMapMaxCasterInScreen();
+00547 <a class="code" href="a04558.html#a15">uint</a> maxCastAround= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;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&lt;CFadeShadowMapSort&gt; aroundCastSkeletons;
+00553 <span class="keyword">static</span> std::vector&lt;CFadeShadowMapSort&gt; 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>-&gt;getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;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-&gt;canCastShadowMap() )
+00564 {
+00565 CShadowMap *shadowMap= sm-&gt;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-&gt;_AncestorSkeletonModel==NULL &amp;&amp; sm-&gt;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-&gt;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-&gt;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>-&gt;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&lt;<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&gt;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>-&gt;getRenderTrav().getShadowMapManager().addShadowCaster(sm);
+00605
+00606 <span class="comment">// update Fading.</span>
+00607 CFadeShadowMapSort fsms;
+00608 fsms.Model= sm;
+00609 fsms.Dist= (sm-&gt;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-&gt;DistanceFade= (fsms.Dist-distFadeStart)*OODeltaDistFade;
+00616 <span class="comment">// Increment the TemporalFadeOut by default (see below)</span>
+00617 shadowMap-&gt;TemporalOutScreenFade+= dFade;
+00618 <span class="comment">// if !visible, increment the InScreenFadeAccum</span>
+00619 <span class="keywordflow">if</span>(!visible)
+00620 shadowMap-&gt;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-&gt;TemporalOutScreenFade+= dFade;
+00628 <span class="comment">// Since not visible, increment the InScreenFadeAccum</span>
+00629 shadowMap-&gt;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&lt;numNearCast;i++)
+00643 {
+00644 <a class="code" href="a02353.html#NL3D_1_1CClipTravn0">CTransform</a> *model= aroundCastSkeletons[i].Model;
+00645 CShadowMap *shadowMap= model-&gt;getShadowMap();
+00646 <span class="comment">// Decrement the fade. *2 because default incremented above.</span>
+00647 shadowMap-&gt;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&lt;numNearCast;i++)
+00654 {
+00655 CShadowMap *shadowMap= screenCastSkeletons[i].Model-&gt;getShadowMap();
+00656 <span class="comment">// Decrement the fade.</span>
+00657 shadowMap-&gt;TemporalInScreenFade-= dFade + shadowMap-&gt;InScreenFadeAccum;
+00658 <span class="comment">// Since visible and resolved, reset accum</span>
+00659 shadowMap-&gt;InScreenFadeAccum= 0;
+00660 }
+00661 <span class="comment">// farthest: increment fadeInScreen, and append accum</span>
+00662 <span class="keywordflow">for</span>(i=numNearCast;i&lt;screenCastSkeletons.size();i++)
+00663 {
+00664 CShadowMap *shadowMap= screenCastSkeletons[i].Model-&gt;getShadowMap();
+00665 <span class="comment">// Increment the fade.</span>
+00666 shadowMap-&gt;TemporalInScreenFade+= dFade + shadowMap-&gt;InScreenFadeAccum;
+00667 <span class="comment">// Since visible and resolved, reset accum</span>
+00668 shadowMap-&gt;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>-&gt;getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;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-&gt;canCastShadowMap() )
+00678 {
+00679 CShadowMap *shadowMap= sm-&gt;getShadowMap();
+00680 shadowMap-&gt;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>-&gt;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>-&gt;getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;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-&gt;isGeneratingShadowMap() &amp;&amp; !sm-&gt;isClipVisible() )
+00702 {
+00703 <a class="code" href="a04199.html#a6">nlassert</a>(sm-&gt;_AncestorSkeletonModel==NULL);
+00704 <span class="comment">// Add it only to the lightTrav and AnimDetailTrav</span>
+00705 <span class="keywordflow">if</span>( sm-&gt;isLightable() )
+00706 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;getLightTrav().addLightedModel(sm);
+00707 <span class="keywordflow">if</span>( sm-&gt;isAnimDetailable() )
+00708 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;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">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; <a class="el" href="a02362.html">CCluster</a> * &gt; &amp;&nbsp;</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> *&nbsp;</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> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>pos</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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 &lt; pIG-&gt;_ClusterInstances.size(); ++i)
+00077 {
+00078 <span class="keywordflow">for</span> (j = 0; j &lt; pIG-&gt;_ClusterInstances[i]-&gt;Children.size(); ++j)
+00079 {
+00080 <span class="keywordflow">if</span> (<a class="code" href="a02353.html#NL3D_1_1CClipTravz65_1">fullSearch</a> (result, pIG-&gt;_ClusterInstances[i]-&gt;Children[j]-&gt;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 &lt; pIG-&gt;_ClusterInstances.size(); ++i)
+00086 {
+00087 <span class="keywordflow">if</span> (pIG-&gt;_ClusterInstances[i]-&gt;isIn(pos))
+00088 result.push_back (pIG-&gt;_ClusterInstances[i]);
+00089 }
+00090 <span class="keywordflow">if</span> (result.size() &gt; 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">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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&lt; <a class="el" href="a02362.html">CCluster</a> * &gt; &amp; NL3D::CClipTrav::getVisibleClusters </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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>-&gt;getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;getSkeletonModelListEnd(); itSkel++)
+00464 {
+00465 CSkeletonModel *sm= *itSkel;
+00466 <span class="keywordtype">float</span> pr= sm-&gt;computeDisplayLodCharacterPriority();
+00467 <span class="comment">// If valid priority (CLOd enabled, and skeleton visible)</span>
+00468 <span class="keywordflow">if</span>(pr&gt;0)
+00469 {
+00470 <span class="comment">// if the priority is &gt;1, then display as CLod</span>
+00471 <span class="keywordflow">if</span>(pr&gt;1)
+00472 sm-&gt;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&lt;pr&lt;=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>-&gt;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()&gt;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&lt;n;i++)
+00498 {
+00499 <a class="code" href="a02353.html#NL3D_1_1CClipTravr2">_TmpSortSkeletons</a>[i].SkeletonModel-&gt;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&lt;<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-&gt;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">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02362.html">CCluster</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pCluster</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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&lt; CCluster * &gt;::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-&gt;AccelIt = <a class="code" href="a02353.html#NL3D_1_1CClipTravo0">Accel</a>.insert (pCluster-&gt;getBBox().getMin(), pCluster-&gt;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">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>numModels</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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&gt;<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">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>camMatrix</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>track</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
+ <td class="mdname" nowrap> <em>perspective</em> = true</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</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>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be &gt;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">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
+ <td class="mdname" nowrap> <em>perspective</em> = true</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</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>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be &gt;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">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03287.html">CQuadGridClipManager</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mgr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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&lt; CCluster * &gt;::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&lt; CCluster * &gt;::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&lt; CCluster * &gt;::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>-&gt;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 &lt; 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>-&gt;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>-&gt;getAnimDetailTrav().clearVisibleList();
+00186 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;getLoadBalancingTrav().clearVisibleList();
+00187 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;getLightTrav().clearLightedList();
+00188 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;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&lt;<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]-&gt;_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]-&gt;_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&lt;CCluster*&gt; vCluster;
+00226
+00227 vCluster.clear();
+00228 sceneRoot-&gt;clipDelChild(RootCluster);
+00229
+00230 <span class="comment">// In which cluster is the camera ?</span>
+00231 CQuadGrid&lt;CCluster*&gt;::CIterator itAcc;
+00232 <span class="keywordflow">if</span> (<a class="code" href="a02353.html#NL3D_1_1CClipTravo1">Camera</a>-&gt;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>-&gt;Group, CamPos);
+00235 <span class="keywordflow">for</span> (i = 0; i &lt; vCluster.size(); ++i)
+00236 sceneRoot-&gt;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-&gt;Group == <a class="code" href="a02353.html#NL3D_1_1CClipTravo1">Camera</a>-&gt;getClusterSystem())
+00247 <span class="keywordflow">if</span> (pCluster-&gt;isIn (CamPos))
+00248 {
+00249 sceneRoot-&gt;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-&gt;clipAddChild(RootCluster);
+00259 vCluster.push_back (RootCluster);
+00260 }
+00261 }
+00262
+00264 <span class="keywordflow">for</span>(i=0;i&lt;vCluster.size();i++)
+00265 {
+00266 vCluster[i]-&gt;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 &amp;hrcTrav= <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;getHrcTrav();
+00279 <span class="keywordflow">for</span> (i = 0; i &lt; hrcTrav._MovingObjects.size(); ++i)
+00280 {
+00281 CTransformShape *pTfmShp = hrcTrav._MovingObjects[i];
+00282
+00283 <span class="keyword">static</span> vector&lt;CTransform*&gt; vModels;
+00284 vModels.clear();
+00285 <a class="code" href="a04558.html#a15">uint</a> numClipParents= pTfmShp-&gt;clipGetNumParents();
+00286 <span class="keywordflow">for</span>(j=0;j&lt;numClipParents;j++)
+00287 {
+00288 <a class="code" href="a02353.html#NL3D_1_1CClipTravn0">CTransform</a> *pFather = pTfmShp-&gt;clipGetParent(j);
+00289
+00290 <span class="comment">// Does the father is a cluster ??</span>
+00291 <span class="keywordflow">if</span> ( pFather-&gt;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 &lt; vModels.size(); ++j)
+00298 {
+00299 vModels[j]-&gt;clipDelChild(pTfmShp);
+00300 }
+00301 <span class="comment">// Remove me from Root Too</span>
+00302 sceneRoot-&gt;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 &lt; 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-&gt;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 &amp;wm = pTfmShp-&gt;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-&gt;Group == pTfmShp-&gt;getClusterSystem())
+00329 <span class="keywordflow">if</span> (pCluster-&gt;isIn (c,s))
+00330 {
+00331 pCluster-&gt;clipAddChild(pTfmShp);
+00332 bInWorld = <span class="keyword">false</span>;
+00333 }
+00334 ++itAcc;
+00335 }
+00336
+00337 <span class="comment">// Moving object in the world -&gt; 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> &amp;&amp; pTfmShp-&gt;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>-&gt;linkModel(pTfmShp))
+00344 <span class="comment">// if fails, link to "root".</span>
+00345 <a class="code" href="a02353.html#NL3D_1_1CClipTravo4">RootCluster</a>-&gt;clipAddChild(pTfmShp);
+00346 }
+00347 <span class="keywordflow">else</span>
+00348 {
+00349 <a class="code" href="a02353.html#NL3D_1_1CClipTravo4">RootCluster</a>-&gt;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-&gt;traverseClip();
+00364
+00365
+00366 <span class="comment">// Unlink the cluster where we are</span>
+00367 <span class="keywordflow">for</span> (i = 0; i &lt; vCluster.size(); ++i)
+00368 {
+00369 <span class="comment">// reset Camera In Flag.</span>
+00370 vCluster[i]-&gt;setCameraIn(<span class="keyword">false</span>);
+00371
+00372 <span class="comment">// remove from Clip Root</span>
+00373 sceneRoot-&gt;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>-&gt;SonsOfAncestorSkeletonModelGroup)
+00394 <a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;SonsOfAncestorSkeletonModelGroup-&gt;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>-&gt;getSkeletonModelListBegin(); itSkel!=<a class="code" href="a02214.html#NL3D_1_1CTraversalo0">Scene</a>-&gt;getSkeletonModelListEnd(); itSkel++)
+00417 {
+00418 CSkeletonModel *sm= *itSkel;
+00419 sm-&gt;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">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02362.html">CCluster</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pCluster</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </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&lt; CCluster * &gt;::begin()</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_2">NL3D::CQuadGrid&lt; CCluster * &gt;::end()</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_1">NL3D::CQuadGrid&lt; CCluster * &gt;::erase()</a>, and <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_4">NL3D::CQuadGrid&lt; CCluster * &gt;::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&lt;CCluster*&gt;::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">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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&lt;<a class="el" href="a02355.html">CSkeletonKey</a>&gt; <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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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&lt;<a class="el" href="a02362.html">CCluster</a>*&gt; <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>
+ &nbsp;
+ </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&lt;<a class="el" href="a02316.html">CTransform</a>*&gt; <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>
+ &nbsp;
+ </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>&lt;<a class="el" href="a02362.html">CCluster</a>*&gt; <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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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>
+ &nbsp;
+ </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&lt;<a class="el" href="a03082.html">CPlane</a>&gt; <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>
+ &nbsp;
+ </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&lt;<a class="el" href="a03082.html">CPlane</a>&gt; <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>
+ &nbsp;
+ </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&lt;<a class="el" href="a03082.html">CPlane</a>&gt; <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>
+ &nbsp;
+ </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>