aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03273.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/a03273.html1600
1 files changed, 1600 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03273.html b/docs/doxygen/nel/a03273.html
new file mode 100644
index 00000000..2f04d163
--- /dev/null
+++ b/docs/doxygen/nel/a03273.html
@@ -0,0 +1,1600 @@
+<!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: TemplateNL3D::CQuadGrid&lt; T &gt; 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::CQuadGrid&lt; T &gt; Class Template Reference</h1><code>#include &lt;<a class="el" href="a06300.html">quad_grid.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;class T&gt;<br>
+ class NL3D::CQuadGrid&lt; T &gt;</h3>
+
+This container is a simple grid, used to quickly find elements. His purpose is similiar to <a class="el" href="a03289.html">CQuadTree</a>, but it is a simple grid, so test are in O(1), not in O(log n). It is perfect for local lookup (like in collisions). Use it if you want to select small area, not large. Also, for best use, elements should have approximatively the same size, and this size should be little smaller than the size of a grid element...<p>
+By default, the quad grid is aligned on XY. (unlike the quadtree!!!)<p>
+Unlike the quadtree, the quadgrid is NOT geographicly delimited, ie, its limits "tiles"!! This is why no "center" is required. As a direct consequence, when you select something, you are REALLY not sure that what you select is not a mile away from your selection :) ....<p>
+Also, for memory optimisation, no bbox is stored in the quadgrid. Hence no particular selection is made on the Z components...<p>
+For maximum allocation speed Efficiency, it uses a CBlockMemory&lt;CNode&gt; to allocate elements at <a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_2">insert()</a>. DefaultBlockSize is 16, but you can change it at construction.<p>
+because elements may lies in multiples squares, QuadGrid use lists per square which points on elements. For faster allocation, it uses a CSTLBlockList&lt;&gt;. The entire quadGrid has its own CBlockMemory for the CSTLBlockLists. memoryBlockSize is the same than the blockSize for allocation of nodes.<p>
+<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="a06300.html#l00076">76</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGrida0">CQuadGrid</a> (<a class="el" href="a04558.html#a15">uint</a> memoryBlockSize=16)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor, use axes XY!!!, has a size of 16, and EltSize is 1. <a href="#NL3D_1_1CQuadGrida0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGrida1">~CQuadGrid</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">dtor. <a href="#NL3D_1_1CQuadGrida1"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Selection</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03278.html">CIterator</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_0">begin</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_1">clearSelection</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03278.html">CIterator</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_2">end</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_3">select</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;bboxmin, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;bboxmax)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_4">selectAll</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Initialization</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz772_0">changeBase</a> (const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &amp;base)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz772_1">create</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a587">size</a>, float eltSize)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz772_2">getBasis</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz772_3">getEltSize</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz772_4">getSize</a> () const </td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Container operation</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_0">clear</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03278.html">CIterator</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_1">erase</a> (<a class="el" href="a03278.html">CIterator</a> it)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03278.html">CIterator</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_2">insert</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;bboxmin, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;bboxmax, const T &amp;val)</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="a03273.html#NL3D_1_1CQuadGridd0">addQuadNodeToSelection</a> (<a class="el" href="a03283.html">CQuadNode</a> &amp;quad)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridd1">addToSelection</a> (<a class="el" href="a03280.html">CNode</a> *ptr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridd2">linkToRoot</a> (<a class="el" href="a03274.html">CBaseNode</a> &amp;root, <a class="el" href="a03274.html">CBaseNode</a> *ptr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridd3">selectQuads</a> (<a class="el" href="a03128.html">CVector</a> bmin, <a class="el" href="a03128.html">CVector</a> bmax, <a class="el" href="a04558.html#a14">sint</a> &amp;x0, <a class="el" href="a04558.html#a14">sint</a> &amp;x1, <a class="el" href="a04558.html#a14">sint</a> &amp;y0, <a class="el" href="a04558.html#a14">sint</a> &amp;y1)</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="a02851.html">NLMISC::CMatrix</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr1">_EltSize</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03283.html">CQuadNode</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr2">_Grid</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02274.html">NLMISC::CBlockMemory</a>&lt; <a class="el" href="a03280.html">CNode</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr3">_NodeBlockMemory</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02274.html">NLMISC::CBlockMemory</a>&lt; <a class="el" href="a03280.html">CNode</a> *,<br>
+ false &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr4">_NodeListBlockMemory</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03274.html">CBaseNode</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr5">_SelectedList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03274.html">CBaseNode</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03273.html#NL3D_1_1CQuadGridr8">_UnSelectedList</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="a03273.html#NL3D_1_1CQuadGridn0">CIterator</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CQuadGrida0" doxytag="NL3D::CQuadGrid::CQuadGrid" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html">CQuadGrid</a> </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>memoryBlockSize</em> = 16 </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>
+Default constructor, use axes XY!!!, has a size of 16, and EltSize is 1.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00412">412</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00238">NL3D::CQuadGrid&lt; T &gt;::_ChangeBasis</a>, <a class="el" href="a06300.html#l00237">NL3D::CQuadGrid&lt; T &gt;::_EltSize</a>, <a class="el" href="a05972.html#l00200">NLMISC::CMatrix::identity()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00412 :
+00413 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr3">_NodeBlockMemory</a>(memoryBlockSize), <a class="code" href="a03273.html#NL3D_1_1CQuadGridr4">_NodeListBlockMemory</a>(memoryBlockSize)
+00414 {
+00415 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</a>=4;
+00416 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>=1&lt;&lt;<a class="code" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</a>;
+00417 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr1">_EltSize</a>=1;
+00418 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</a>.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+00419 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGrida1" doxytag="NL3D::CQuadGrid::~CQuadGrid" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::~<a class="el" href="a03273.html">CQuadGrid</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>
+dtor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00421">421</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00454">NL3D::CQuadGrid&lt; T &gt;::clear()</a>.
+<p>
+<div class="fragment"><pre>00422 {
+00423 <a class="code" href="a03273.html#NL3D_1_1CQuadGridz774_0">clear</a>();
+00424 <span class="comment">// must clear the array, before _NodeListBlockMemory.purge() is called.</span>
+00425 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr2">_Grid</a>.clear();
+00426 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CQuadGridd0" doxytag="NL3D::CQuadGrid::addQuadNodeToSelection" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::addQuadNodeToSelection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03283.html">CQuadNode</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>quad</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, 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="a06300.html#l00322">322</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00613">NL3D::CQuadGrid&lt; T &gt;::select()</a>.
+<p>
+<div class="fragment"><pre>00323 {
+00324 <span class="keyword">typename</span> <a class="code" href="a03445.html">NLMISC::CSTLBlockList&lt;CNode*&gt;</a>::iterator itNode;
+00325 <span class="keywordflow">for</span>(itNode= quad.Nodes.begin();itNode!=quad.Nodes.end();itNode++)
+00326 {
+00327 <a class="code" href="a03273.html#NL3D_1_1CQuadGridd1">addToSelection</a>(*itNode);
+00328 }
+00329 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridd1" doxytag="NL3D::CQuadGrid::addToSelection" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::addToSelection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03280.html">CNode</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, 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="a06300.html#l00303">303</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00322">NL3D::CQuadGrid&lt; CWaterShape * &gt;::addQuadNodeToSelection()</a>.
+<p>
+<div class="fragment"><pre>00304 {
+00305 <span class="comment">// if not selected</span>
+00306 <span class="keywordflow">if</span>(!ptr-&gt;Selected)
+00307 {
+00308 <span class="comment">// remove from the unselected list.</span>
+00309 ptr-&gt;Prev-&gt;Next= ptr-&gt;Next;
+00310 <span class="keywordflow">if</span>(ptr-&gt;Next)
+00311 ptr-&gt;Next-&gt;Prev= ptr-&gt;Prev;
+00312
+00313 <span class="comment">// Append to front of the _Selected list.</span>
+00314 <a class="code" href="a03273.html#NL3D_1_1CQuadGridd2">linkToRoot</a>(_SelectedList, ptr);
+00315
+00316 <span class="comment">// mark it</span>
+00317 ptr-&gt;Selected= <span class="keyword">true</span>;
+00318 }
+00319 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz776_0" doxytag="NL3D::CQuadGrid::begin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03273.html">CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03278.html">CIterator</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::begin </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 first iterator of the selected element list. begin and end are valid till the next insert. Speed is in O(1)
+<p>
+Definition at line <a class="el" href="a06300.html#l00641">641</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00240">NL3D::CQuadGrid&lt; T &gt;::_SelectedList</a>, <a class="el" href="a06300.html#l00081">NL3D::CQuadGrid&lt; T &gt;::CIterator</a>, and <a class="el" href="a06300.html#l00212">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Next</a>.
+<p>
+Referenced by <a class="el" href="a06436.html#l00181">NL3D::CStaticQuadGrid&lt; T &gt;::build()</a>, <a class="el" href="a06300.html#l00454">NL3D::CQuadGrid&lt; T &gt;::clear()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l01023">NL3D::CInstanceLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>, <a class="el" href="a06768.html#l03563">NL3D::CZoneLighter::computeTileFlagsForPositionTowardWater()</a>, <a class="el" href="a06374.html#l00308">NL3D::CShadowPolyReceiver::getCameraCollision()</a>, <a class="el" href="a05901.html#l00525">NL3D::CLightingManager::getDynamicPointLightList()</a>, <a class="el" href="a06034.html#l00467">NL3D::CMiniCol::getFaces()</a>, <a class="el" href="a06034.html#l00341">NL3D::CMiniCol::getGroundNormal()</a>, <a class="el" href="a06034.html#l00085">NL3D::CMiniCol::removeLandScapePart()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, and <a class="el" href="a06034.html#l00242">NL3D::CMiniCol::snapToGround()</a>.
+<p>
+<div class="fragment"><pre>00642 {
+00643 <span class="keywordflow">return</span> <a class="code" href="a03273.html#NL3D_1_1CQuadGridn0">CIterator</a>((CNode*)(<a class="code" href="a03273.html#NL3D_1_1CQuadGridr5">_SelectedList</a>.<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>));
+00644 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz772_0" doxytag="NL3D::CQuadGrid::changeBase" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::changeBase </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>base</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>
+Change the base matrix of the quad grid. For exemple this code init the grid tree in the plane XZ: <pre class="fragment"><div> <a class="code" href="a03273.html#NL3D_1_1CQuadGrida0">CQuadGrid</a> grid;
+ <a class="code" href="a02851.html">NLMISC::CMatrix</a> tmp;
+ <a class="code" href="a03128.html">NLMISC::CVector</a> I(1,0,0);
+ <a class="code" href="a03128.html">NLMISC::CVector</a> J(0,0,1);
+ <a class="code" href="a03128.html">NLMISC::CVector</a> K(0,-1,0);
+
+ tmp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+ tmp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a>(I,J,K, <span class="keyword">true</span>);
+ quadTree.changeBase (tmp);
+</div></pre><p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>base</em>&nbsp;</td><td>Base of the quad grid</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00428">428</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00238">NL3D::CQuadGrid&lt; T &gt;::_ChangeBasis</a>.
+<p>
+Referenced by <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>.
+<p>
+<div class="fragment"><pre>00429 {
+00430 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</a>= base;
+00431 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz774_0" doxytag="NL3D::CQuadGrid::clear" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::clear </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>
+Clear the container. Elements are deleted, but the quadgrid is not erased. Speed is in O(Nelts)
+<p>
+Definition at line <a class="el" href="a06300.html#l00454">454</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00240">NL3D::CQuadGrid&lt; T &gt;::_SelectedList</a>, <a class="el" href="a06300.html#l00241">NL3D::CQuadGrid&lt; T &gt;::_UnSelectedList</a>, <a class="el" href="a06300.html#l00641">NL3D::CQuadGrid&lt; T &gt;::begin()</a>, <a class="el" href="a06300.html#l00646">NL3D::CQuadGrid&lt; T &gt;::end()</a>, <a class="el" href="a06300.html#l00468">NL3D::CQuadGrid&lt; T &gt;::erase()</a>, <a class="el" href="a06300.html#l00212">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Next</a>, and <a class="el" href="a06300.html#l00589">NL3D::CQuadGrid&lt; T &gt;::selectAll()</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00433">NL3D::CQuadGrid&lt; T &gt;::create()</a>, and <a class="el" href="a06300.html#l00421">NL3D::CQuadGrid&lt; T &gt;::~CQuadGrid()</a>.
+<p>
+<div class="fragment"><pre>00455 {
+00456 <a class="code" href="a03273.html#NL3D_1_1CQuadGridn0">CIterator</a> it;
+00457 <a class="code" href="a03273.html#NL3D_1_1CQuadGridz776_4">selectAll</a>();
+00458 <span class="keywordflow">while</span>( (it=<a class="code" href="a03273.html#NL3D_1_1CQuadGridz776_0">begin</a>())!=<a class="code" href="a03273.html#NL3D_1_1CQuadGridz776_2">end</a>())
+00459 {
+00460 <a class="code" href="a03273.html#NL3D_1_1CQuadGridz774_1">erase</a>(it);
+00461 }
+00462
+00463 <span class="comment">// Clear the 2 selection...</span>
+00464 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr5">_SelectedList</a>.<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>= NULL;
+00465 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr8">_UnSelectedList</a>.<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>= NULL;
+00466 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz776_1" doxytag="NL3D::CQuadGrid::clearSelection" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::clearSelection </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>
+Clear the selection list Speed is in O(Nelts)
+<p>
+Definition at line <a class="el" href="a06300.html#l00567">567</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00240">NL3D::CQuadGrid&lt; T &gt;::_SelectedList</a>, <a class="el" href="a06300.html#l00241">NL3D::CQuadGrid&lt; T &gt;::_UnSelectedList</a>, <a class="el" href="a06300.html#l00251">NL3D::CQuadGrid&lt; T &gt;::linkToRoot()</a>, <a class="el" href="a06300.html#l00212">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Next</a>, and <a class="el" href="a06300.html#l00213">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Selected</a>.
+<p>
+Referenced by <a class="el" href="a06436.html#l00181">NL3D::CStaticQuadGrid&lt; T &gt;::build()</a>, <a class="el" href="a06768.html#l03563">NL3D::CZoneLighter::computeTileFlagsForPositionTowardWater()</a>, and <a class="el" href="a06300.html#l00613">NL3D::CQuadGrid&lt; T &gt;::select()</a>.
+<p>
+<div class="fragment"><pre>00568 {
+00569 CBaseNode *ptr= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr5">_SelectedList</a>.<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>;
+00570 <span class="keywordflow">while</span>(ptr)
+00571 {
+00572 <span class="comment">// next selected.</span>
+00573 CBaseNode *nextSelected= ptr-&gt;<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>;
+00574
+00575 <span class="comment">// Link to _Unselected list.</span>
+00576 <a class="code" href="a03273.html#NL3D_1_1CQuadGridd2">linkToRoot</a>(_UnSelectedList, ptr);
+00577
+00578 <span class="comment">// mark as not selected.</span>
+00579 ptr-&gt;Selected= <span class="keyword">false</span>;
+00580
+00581 <span class="comment">// next.</span>
+00582 ptr= nextSelected;
+00583 }
+00584
+00585 <span class="comment">// the selected list is now empty.</span>
+00586 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr5">_SelectedList</a>.<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>= NULL;
+00587 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz772_1" doxytag="NL3D::CQuadGrid::create" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::create </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="mdname" nowrap> <em>size</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>eltSize</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>
+Init the container. container is first <a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_0">clear()</a> ed.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>size</em>&nbsp;</td><td>is the width and the height of the initial quad tree, in number of square. For performance view, this should be a power of 2, and &lt;=32768. (eg: 256,512, 8, 16 ...) </td></tr>
+ <tr><td valign=top><em>eltSize</em>&nbsp;</td><td>is the width and height of an element. Must be &gt;0. Notice that the quadgrid MUST be square!!</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00433">433</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00237">NL3D::CQuadGrid&lt; T &gt;::_EltSize</a>, <a class="el" href="a06300.html#l00245">NL3D::CQuadGrid&lt; T &gt;::_NodeListBlockMemory</a>, <a class="el" href="a06300.html#l00454">NL3D::CQuadGrid&lt; T &gt;::clear()</a>, <a class="el" href="a05586.html#l00358">NLMISC::getPowerOf2()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05646.html#l00645">size</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06034.html#l00047">NL3D::CMiniCol::CMiniCol()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l01023">NL3D::CInstanceLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>, <a class="el" href="a06374.html#l00043">NL3D::CShadowPolyReceiver::CShadowPolyReceiver()</a>, and <a class="el" href="a06768.html#l03067">NL3D::CZoneLighter::makeQuadGridFromWaterShapes()</a>.
+<p>
+<div class="fragment"><pre>00434 {
+00435 <a class="code" href="a03273.html#NL3D_1_1CQuadGridz774_0">clear</a>();
+00436
+00437 <a class="code" href="a04199.html#a6">nlassert</a>(NLMISC::isPowerOf2(size));
+00438 <a class="code" href="a04199.html#a6">nlassert</a>(size&lt;=32768);
+00439 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</a>= <a class="code" href="a05378.html#a263">NLMISC::getPowerOf2</a>(size);
+00440 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>=1&lt;&lt;<a class="code" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</a>;
+00441 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr2">_Grid</a>.resize(_Size*_Size, CQuadNode(&amp;_NodeListBlockMemory));
+00442
+00443 <a class="code" href="a04199.html#a6">nlassert</a>(eltSize&gt;0);
+00444 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr1">_EltSize</a>= eltSize;
+00445 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz776_2" doxytag="NL3D::CQuadGrid::end" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03273.html">CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03278.html">CIterator</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::end </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 end iterator of the selected element list. begin and end are valid till the next insert. Speed is in O(1)
+<p>
+Definition at line <a class="el" href="a06300.html#l00646">646</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00081">NL3D::CQuadGrid&lt; T &gt;::CIterator</a>.
+<p>
+Referenced by <a class="el" href="a05901.html#l00151">NL3D::CLightingManager::addDynamicLight()</a>, <a class="el" href="a06436.html#l00181">NL3D::CStaticQuadGrid&lt; T &gt;::build()</a>, <a class="el" href="a06300.html#l00454">NL3D::CQuadGrid&lt; T &gt;::clear()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l01023">NL3D::CInstanceLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>, <a class="el" href="a06768.html#l03563">NL3D::CZoneLighter::computeTileFlagsForPositionTowardWater()</a>, <a class="el" href="a06300.html#l00468">NL3D::CQuadGrid&lt; T &gt;::erase()</a>, <a class="el" href="a06374.html#l00308">NL3D::CShadowPolyReceiver::getCameraCollision()</a>, <a class="el" href="a05901.html#l00525">NL3D::CLightingManager::getDynamicPointLightList()</a>, <a class="el" href="a06034.html#l00467">NL3D::CMiniCol::getFaces()</a>, <a class="el" href="a06034.html#l00341">NL3D::CMiniCol::getGroundNormal()</a>, <a class="el" href="a06034.html#l00085">NL3D::CMiniCol::removeLandScapePart()</a>, <a class="el" href="a06374.html#l00113">NL3D::CShadowPolyReceiver::removeTriangle()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, and <a class="el" href="a06034.html#l00242">NL3D::CMiniCol::snapToGround()</a>.
+<p>
+<div class="fragment"><pre>00647 {
+00648 <span class="keywordflow">return</span> <a class="code" href="a03273.html#NL3D_1_1CQuadGridn0">CIterator</a>(NULL);
+00649 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz774_1" doxytag="NL3D::CQuadGrid::erase" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03273.html">CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03278.html">CIterator</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::erase </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03278.html">CIterator</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>it</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>
+Erase an interator from the container Speed is in O(1 * L*H) where L*H is the number of squares surrounded by the element<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>it</em>&nbsp;</td><td>is the iterator to erase. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>if element is currently selected, the next selected element is returned, (or <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_2">end()</a>). if the element is not selected, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz776_2">end()</a> is returned.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00468">468</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00243">NL3D::CQuadGrid&lt; T &gt;::_NodeBlockMemory</a>, <a class="el" href="a06300.html#l00081">NL3D::CQuadGrid&lt; T &gt;::CIterator</a>, <a class="el" href="a06300.html#l00646">NL3D::CQuadGrid&lt; T &gt;::end()</a>, <a class="el" href="a05490.html#l00147">NLMISC::CBlockMemory&lt; CNode &gt;::free()</a>, <a class="el" href="a06300.html#l00212">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Next</a>, <a class="el" href="a06300.html#l00228">NL3D::CQuadGrid&lt; T &gt;::CQuadNode::Nodes</a>, <a class="el" href="a06300.html#l00212">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Prev</a>, <a class="el" href="a06300.html#l00213">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Selected</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05646.html#l00236">x</a>, <a class="el" href="a06300.html#l00221">NL3D::CQuadGrid&lt; T &gt;::CNode::x0</a>, <a class="el" href="a06300.html#l00221">NL3D::CQuadGrid&lt; T &gt;::CNode::x1</a>, <a class="el" href="a05646.html#l00236">y</a>, <a class="el" href="a06300.html#l00222">NL3D::CQuadGrid&lt; T &gt;::CNode::y0</a>, and <a class="el" href="a06300.html#l00222">NL3D::CQuadGrid&lt; T &gt;::CNode::y1</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00454">NL3D::CQuadGrid&lt; T &gt;::clear()</a>, <a class="el" href="a06034.html#l00085">NL3D::CMiniCol::removeLandScapePart()</a>, and <a class="el" href="a06374.html#l00113">NL3D::CShadowPolyReceiver::removeTriangle()</a>.
+<p>
+<div class="fragment"><pre>00469 {
+00470 <a class="code" href="a04558.html#a14">sint</a> <a class="code" href="a04223.html#a572">x</a>,<a class="code" href="a04223.html#a573">y</a>;
+00471 CNode *ptr= it._Ptr;
+00472
+00473 <span class="keywordflow">if</span>(!ptr)
+00474 <span class="keywordflow">return</span> <a class="code" href="a03273.html#NL3D_1_1CQuadGridz776_2">end</a>();
+00475
+00476 <span class="comment">// First erase all references to it.</span>
+00477 <span class="comment">//==================================</span>
+00478 <span class="keywordflow">for</span>(<a class="code" href="a04223.html#a573">y</a>= ptr-&gt;y0;<a class="code" href="a04223.html#a573">y</a>&lt;ptr-&gt;y1;<a class="code" href="a04223.html#a573">y</a>++)
+00479 {
+00480 <a class="code" href="a04558.html#a14">sint</a> xe,ye;
+00481 ye= <a class="code" href="a04223.html#a573">y</a> &amp;(<a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>-1);
+00482 <span class="keywordflow">for</span>(<a class="code" href="a04223.html#a572">x</a>= ptr-&gt;x0;<a class="code" href="a04223.html#a572">x</a>&lt;ptr-&gt;x1;<a class="code" href="a04223.html#a572">x</a>++)
+00483 {
+00484 xe= <a class="code" href="a04223.html#a572">x</a> &amp;(<a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>-1);
+00485 CQuadNode &amp;quad= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr2">_Grid</a>[(ye&lt;&lt;<a class="code" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</a>)+xe];
+00486 <span class="keyword">typename</span> <a class="code" href="a03445.html">NLMISC::CSTLBlockList&lt;CNode*&gt;</a>::iterator itNode;
+00487 <span class="keywordflow">for</span>(itNode= quad.Nodes.begin();itNode!=quad.Nodes.end();itNode++)
+00488 {
+00489 <span class="keywordflow">if</span>((*itNode)==ptr)
+00490 {
+00491 quad.Nodes.erase(itNode);
+00492 <span class="keywordflow">break</span>;
+00493 }
+00494 }
+00495 }
+00496 }
+00497
+00498 <span class="comment">// Then delete it..., and update selection linked list.</span>
+00499 <span class="comment">//=====================================================</span>
+00500 <span class="comment">// remove it from _SelectedList or _UnSelectedList</span>
+00501 CBaseNode *next= NULL;
+00502 next= ptr-&gt;Next;
+00503 <span class="keywordflow">if</span>(next)
+00504 next-&gt;Prev=ptr-&gt;Prev;
+00505 ptr-&gt;Prev-&gt;Next= next;
+00506 <span class="comment">// if not selected, then must return NULL</span>
+00507 <span class="keywordflow">if</span>(!ptr-&gt;Selected)
+00508 next= NULL;
+00509 <span class="comment">// delete the object.</span>
+00510 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr3">_NodeBlockMemory</a>.<a class="code" href="a02274.html#NLMISC_1_1CBlockMemorya5">free</a>(ptr);
+00511
+00512
+00513 <span class="keywordflow">return</span> <a class="code" href="a03273.html#NL3D_1_1CQuadGridn0">CIterator</a>((CNode*)next);
+00514 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz772_2" doxytag="NL3D::CQuadGrid::getBasis" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">NLMISC::CMatrix</a>&amp; <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::getBasis </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>
+Change the base matrix of the quad grid. For exemple this code init the grid tree in the plane XZ: <pre class="fragment"><div> <a class="code" href="a03273.html#NL3D_1_1CQuadGrida0">CQuadGrid</a> grid;
+ <a class="code" href="a02851.html">NLMISC::CMatrix</a> tmp;
+ <a class="code" href="a03128.html">NLMISC::CVector</a> I(1,0,0);
+ <a class="code" href="a03128.html">NLMISC::CVector</a> J(0,0,1);
+ <a class="code" href="a03128.html">NLMISC::CVector</a> K(0,-1,0);
+
+ tmp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+ tmp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a>(I,J,K, <span class="keyword">true</span>);
+ quadTree.changeBase (tmp);
+</div></pre><p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>base</em>&nbsp;</td><td>Base of the quad grid</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00119">119</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06436.html#l00181">NL3D::CStaticQuadGrid&lt; T &gt;::build()</a>.
+<p>
+<div class="fragment"><pre>00119 {<span class="keywordflow">return</span> <a class="code" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz772_3" doxytag="NL3D::CQuadGrid::getEltSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::getEltSize </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>
+Change the base matrix of the quad grid. For exemple this code init the grid tree in the plane XZ: <pre class="fragment"><div> <a class="code" href="a03273.html#NL3D_1_1CQuadGrida0">CQuadGrid</a> grid;
+ <a class="code" href="a02851.html">NLMISC::CMatrix</a> tmp;
+ <a class="code" href="a03128.html">NLMISC::CVector</a> I(1,0,0);
+ <a class="code" href="a03128.html">NLMISC::CVector</a> J(0,0,1);
+ <a class="code" href="a03128.html">NLMISC::CVector</a> K(0,-1,0);
+
+ tmp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+ tmp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a>(I,J,K, <span class="keyword">true</span>);
+ quadTree.changeBase (tmp);
+</div></pre><p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>base</em>&nbsp;</td><td>Base of the quad grid</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00121">121</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06436.html#l00181">NL3D::CStaticQuadGrid&lt; T &gt;::build()</a>.
+<p>
+<div class="fragment"><pre>00121 {<span class="keywordflow">return</span> <a class="code" href="a03273.html#NL3D_1_1CQuadGridr1">_EltSize</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz772_4" doxytag="NL3D::CQuadGrid::getSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::getSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&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>
+Change the base matrix of the quad grid. For exemple this code init the grid tree in the plane XZ: <pre class="fragment"><div> <a class="code" href="a03273.html#NL3D_1_1CQuadGrida0">CQuadGrid</a> grid;
+ <a class="code" href="a02851.html">NLMISC::CMatrix</a> tmp;
+ <a class="code" href="a03128.html">NLMISC::CVector</a> I(1,0,0);
+ <a class="code" href="a03128.html">NLMISC::CVector</a> J(0,0,1);
+ <a class="code" href="a03128.html">NLMISC::CVector</a> K(0,-1,0);
+
+ tmp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>();
+ tmp.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_10">setRot</a>(I,J,K, <span class="keyword">true</span>);
+ quadTree.changeBase (tmp);
+</div></pre><p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>base</em>&nbsp;</td><td>Base of the quad grid</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00120">120</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06436.html#l00181">NL3D::CStaticQuadGrid&lt; T &gt;::build()</a>.
+<p>
+<div class="fragment"><pre>00120 {<span class="keywordflow">return</span> <a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz774_2" doxytag="NL3D::CQuadGrid::insert" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03273.html">CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03278.html">CIterator</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::insert </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>bboxmin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>bboxmax</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>val</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>
+Insert a new element in the container. Speed is in O(1 * L*H) where L*H is the number of squares surrounded by the element<p>
+Warning! : bboxmin and bboxmax are multiplied by matrix setuped by changeBase. This work for any matrix with 90deg rotations (min and max are recomputed internally), but not with any rotation (43° ...) because of the nature of AABBox. To do this correclty you should compute the bbox min and max in the basis given in changeBase, and <a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_2">insert()</a> with multiplying min and max with inverse of this basis. eg: CMatrix base= getSomeBase(); CMatrix invBase= base.inverted(); // create quadGrid. CQuadGrid&lt;CTriangle&gt; quadGrid; quadGrid.changeBase(base); quadGrid.create(...); // Insert a triangle tri correctly CAABBox bbox; bbox.setCenter(base * tri.V0); bbox.extend(base * tri.V1); bbox.extend(base * tri.V2); quadGrid.insert(invBase*bbox.getMin(), invBase*bbox.getMax(), tri);<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bboxmin</em>&nbsp;</td><td>is the corner of the bounding box of the element to insert with minimal coordinates. </td></tr>
+ <tr><td valign=top><em>bboxmax</em>&nbsp;</td><td>is the corner of the bounding box of the element to insert with maximal coordinates. </td></tr>
+ <tr><td valign=top><em>val</em>&nbsp;</td><td>is a reference on the value to insert.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00516">516</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00238">NL3D::CQuadGrid&lt; T &gt;::_ChangeBasis</a>, <a class="el" href="a06300.html#l00243">NL3D::CQuadGrid&lt; T &gt;::_NodeBlockMemory</a>, <a class="el" href="a06300.html#l00241">NL3D::CQuadGrid&lt; T &gt;::_UnSelectedList</a>, <a class="el" href="a05490.html#l00097">NLMISC::CBlockMemory&lt; CNode &gt;::allocate()</a>, <a class="el" href="a06300.html#l00081">NL3D::CQuadGrid&lt; T &gt;::CIterator</a>, <a class="el" href="a06300.html#l00220">NL3D::CQuadGrid&lt; T &gt;::CNode::Elt</a>, <a class="el" href="a06300.html#l00251">NL3D::CQuadGrid&lt; T &gt;::linkToRoot()</a>, <a class="el" href="a06300.html#l00228">NL3D::CQuadGrid&lt; T &gt;::CQuadNode::Nodes</a>, <a class="el" href="a06300.html#l00213">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Selected</a>, <a class="el" href="a06300.html#l00261">NL3D::CQuadGrid&lt; T &gt;::selectQuads()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05646.html#l00236">x</a>, <a class="el" href="a06300.html#l00221">NL3D::CQuadGrid&lt; T &gt;::CNode::x0</a>, <a class="el" href="a06300.html#l00221">NL3D::CQuadGrid&lt; T &gt;::CNode::x1</a>, <a class="el" href="a05646.html#l00236">y</a>, <a class="el" href="a06300.html#l00222">NL3D::CQuadGrid&lt; T &gt;::CNode::y0</a>, and <a class="el" href="a06300.html#l00222">NL3D::CQuadGrid&lt; T &gt;::CNode::y1</a>.
+<p>
+Referenced by <a class="el" href="a06034.html#l00056">NL3D::CMiniCol::addFaces()</a>, <a class="el" href="a06374.html#l00057">NL3D::CShadowPolyReceiver::addTriangle()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l01023">NL3D::CInstanceLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>, and <a class="el" href="a06768.html#l03067">NL3D::CZoneLighter::makeQuadGridFromWaterShapes()</a>.
+<p>
+<div class="fragment"><pre>00517 {
+00518 CVector bmin,bmax;
+00519 bmin= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</a>*bboxmin;
+00520 bmax= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</a>*bboxmax;
+00521
+00522 <span class="comment">// init the object.</span>
+00523 CNode *ptr= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr3">_NodeBlockMemory</a>.<a class="code" href="a02274.html#NLMISC_1_1CBlockMemorya2">allocate</a>();
+00524 ptr-&gt;Elt= val;
+00525 <span class="comment">// Link to _Unselected list.</span>
+00526 <a class="code" href="a03273.html#NL3D_1_1CQuadGridd2">linkToRoot</a>(_UnSelectedList, ptr);
+00527 <span class="comment">// mark as not selected.</span>
+00528 ptr-&gt;Selected= <span class="keyword">false</span>;
+00529
+00530
+00531 <span class="comment">// Find which quad include the object.</span>
+00532 <span class="comment">//===================================</span>
+00533 <a class="code" href="a04558.html#a14">sint</a> x0,y0;
+00534 <a class="code" href="a04558.html#a14">sint</a> x1,y1;
+00535 <a class="code" href="a03273.html#NL3D_1_1CQuadGridd3">selectQuads</a>(bmin, bmax, x0,x1, y0,y1);
+00536
+00537 ptr-&gt;x0= x0;
+00538 ptr-&gt;x1= x1;
+00539 ptr-&gt;y0= y0;
+00540 ptr-&gt;y1= y1;
+00541
+00542 <span class="comment">// Then for all of them, insert the node in their list.</span>
+00543 <span class="comment">//=====================================================</span>
+00544 <a class="code" href="a04558.html#a14">sint</a> <a class="code" href="a04223.html#a572">x</a>,<a class="code" href="a04223.html#a573">y</a>;
+00545 <span class="keywordflow">for</span>(<a class="code" href="a04223.html#a573">y</a>= ptr-&gt;y0;<a class="code" href="a04223.html#a573">y</a>&lt;ptr-&gt;y1;<a class="code" href="a04223.html#a573">y</a>++)
+00546 {
+00547 <a class="code" href="a04558.html#a14">sint</a> xe,ye;
+00548 ye= <a class="code" href="a04223.html#a573">y</a> &amp;(<a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>-1);
+00549 <span class="keywordflow">for</span>(<a class="code" href="a04223.html#a572">x</a>= ptr-&gt;x0;<a class="code" href="a04223.html#a572">x</a>&lt;ptr-&gt;x1;<a class="code" href="a04223.html#a572">x</a>++)
+00550 {
+00551 xe= <a class="code" href="a04223.html#a572">x</a> &amp;(<a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>-1);
+00552 CQuadNode &amp;quad= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr2">_Grid</a>[(ye&lt;&lt;<a class="code" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</a>)+xe];
+00553 quad.Nodes.push_back(ptr);
+00554 }
+00555 }
+00556
+00557 <span class="keywordflow">return</span> <a class="code" href="a03273.html#NL3D_1_1CQuadGridn0">CIterator</a>(ptr);
+00558 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridd2" doxytag="NL3D::CQuadGrid::linkToRoot" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::linkToRoot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03274.html">CBaseNode</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>root</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03274.html">CBaseNode</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>ptr</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, 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="a06300.html#l00251">251</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00303">NL3D::CQuadGrid&lt; CWaterShape * &gt;::addToSelection()</a>, <a class="el" href="a06300.html#l00567">NL3D::CQuadGrid&lt; T &gt;::clearSelection()</a>, <a class="el" href="a06300.html#l00516">NL3D::CQuadGrid&lt; T &gt;::insert()</a>, and <a class="el" href="a06300.html#l00589">NL3D::CQuadGrid&lt; T &gt;::selectAll()</a>.
+<p>
+<div class="fragment"><pre>00252 {
+00253 ptr-&gt;Prev= &amp;root;
+00254 ptr-&gt;Next= root.Next;
+00255 ptr-&gt;Prev-&gt;Next= ptr;
+00256 <span class="keywordflow">if</span>(ptr-&gt;Next)
+00257 ptr-&gt;Next-&gt;Prev= ptr;
+00258 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz776_3" doxytag="NL3D::CQuadGrid::select" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::select </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>bboxmin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>bboxmax</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>
+Select element intersecting a bounding box. Clear the selection first. Speed is in O(Nelts * L*H), where L*H is the number of squares surrounded by the selection<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bboxmin</em>&nbsp;</td><td>is the corner of the bounding box used to select </td></tr>
+ <tr><td valign=top><em>bboxmax</em>&nbsp;</td><td>is the corner of the bounding box used to select</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06300.html#l00613">613</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00238">NL3D::CQuadGrid&lt; T &gt;::_ChangeBasis</a>, <a class="el" href="a06300.html#l00322">NL3D::CQuadGrid&lt; T &gt;::addQuadNodeToSelection()</a>, <a class="el" href="a06300.html#l00567">NL3D::CQuadGrid&lt; T &gt;::clearSelection()</a>, <a class="el" href="a06300.html#l00261">NL3D::CQuadGrid&lt; T &gt;::selectQuads()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05646.html#l00236">x</a>, and <a class="el" href="a05646.html#l00236">y</a>.
+<p>
+Referenced by <a class="el" href="a06436.html#l00181">NL3D::CStaticQuadGrid&lt; T &gt;::build()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l01023">NL3D::CInstanceLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>, <a class="el" href="a06768.html#l03563">NL3D::CZoneLighter::computeTileFlagsForPositionTowardWater()</a>, <a class="el" href="a06374.html#l00308">NL3D::CShadowPolyReceiver::getCameraCollision()</a>, <a class="el" href="a05901.html#l00525">NL3D::CLightingManager::getDynamicPointLightList()</a>, <a class="el" href="a06034.html#l00467">NL3D::CMiniCol::getFaces()</a>, <a class="el" href="a06034.html#l00341">NL3D::CMiniCol::getGroundNormal()</a>, <a class="el" href="a06034.html#l00085">NL3D::CMiniCol::removeLandScapePart()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, and <a class="el" href="a06034.html#l00242">NL3D::CMiniCol::snapToGround()</a>.
+<p>
+<div class="fragment"><pre>00614 {
+00615 CVector bmin,bmax;
+00616 bmin= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</a>*bboxmin;
+00617 bmax= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</a>*bboxmax;
+00618
+00619 <a class="code" href="a03273.html#NL3D_1_1CQuadGridz776_1">clearSelection</a>();
+00620
+00621 <span class="comment">// What are the quads to access?</span>
+00622 <a class="code" href="a04558.html#a14">sint</a> x0,y0;
+00623 <a class="code" href="a04558.html#a14">sint</a> x1,y1;
+00624 <a class="code" href="a03273.html#NL3D_1_1CQuadGridd3">selectQuads</a>(bmin, bmax, x0,x1, y0,y1);
+00625
+00626 <a class="code" href="a04558.html#a14">sint</a> <a class="code" href="a04223.html#a572">x</a>,<a class="code" href="a04223.html#a573">y</a>;
+00627 <span class="keywordflow">for</span>(<a class="code" href="a04223.html#a573">y</a>= y0;<a class="code" href="a04223.html#a573">y</a>&lt;y1;<a class="code" href="a04223.html#a573">y</a>++)
+00628 {
+00629 <a class="code" href="a04558.html#a14">sint</a> xe,ye;
+00630 ye= <a class="code" href="a04223.html#a573">y</a> &amp;(<a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>-1);
+00631 <span class="keywordflow">for</span>(<a class="code" href="a04223.html#a572">x</a>= x0;<a class="code" href="a04223.html#a572">x</a>&lt;x1;<a class="code" href="a04223.html#a572">x</a>++)
+00632 {
+00633 xe= <a class="code" href="a04223.html#a572">x</a> &amp;(<a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>-1);
+00634 CQuadNode &amp;quad= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr2">_Grid</a>[(ye&lt;&lt;<a class="code" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</a>)+xe];
+00635 <a class="code" href="a03273.html#NL3D_1_1CQuadGridd0">addQuadNodeToSelection</a>(quad);
+00636 }
+00637 }
+00638
+00639 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridz776_4" doxytag="NL3D::CQuadGrid::selectAll" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::selectAll </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>
+Select all the container. Speed is in O(Nelts)
+<p>
+Definition at line <a class="el" href="a06300.html#l00589">589</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+References <a class="el" href="a06300.html#l00240">NL3D::CQuadGrid&lt; T &gt;::_SelectedList</a>, <a class="el" href="a06300.html#l00241">NL3D::CQuadGrid&lt; T &gt;::_UnSelectedList</a>, <a class="el" href="a06300.html#l00251">NL3D::CQuadGrid&lt; T &gt;::linkToRoot()</a>, <a class="el" href="a06300.html#l00212">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Next</a>, and <a class="el" href="a06300.html#l00213">NL3D::CQuadGrid&lt; T &gt;::CBaseNode::Selected</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00454">NL3D::CQuadGrid&lt; T &gt;::clear()</a>.
+<p>
+<div class="fragment"><pre>00590 {
+00591 <span class="comment">// This is the opposite of clearSelection(). get all that are in _UnSelectedList,</span>
+00592 <span class="comment">// and put them in _SelectedList</span>
+00593 CBaseNode *ptr= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr8">_UnSelectedList</a>.<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>;
+00594 <span class="keywordflow">while</span>(ptr)
+00595 {
+00596 <span class="comment">// next selected.</span>
+00597 CBaseNode *nextUnSelected= ptr-&gt;<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>;
+00598
+00599 <span class="comment">// Link to _Selected list.</span>
+00600 <a class="code" href="a03273.html#NL3D_1_1CQuadGridd2">linkToRoot</a>(_SelectedList, ptr);
+00601
+00602 <span class="comment">// mark as selected.</span>
+00603 ptr-&gt;Selected= <span class="keyword">true</span>;
+00604
+00605 <span class="comment">// next.</span>
+00606 ptr= nextUnSelected;
+00607 }
+00608
+00609 <span class="comment">// the Unselected list is now empty.</span>
+00610 <a class="code" href="a03273.html#NL3D_1_1CQuadGridr8">_UnSelectedList</a>.<a class="code" href="a03274.html#NL3D_1_1CQuadGrid_1_1CNodeo1">Next</a>= NULL;
+00611 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridd3" doxytag="NL3D::CQuadGrid::selectQuads" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::selectQuads </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>bmin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">CVector</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>bmax</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>x0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>x1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>y0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>y1</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, 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="a06300.html#l00261">261</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00516">NL3D::CQuadGrid&lt; T &gt;::insert()</a>, and <a class="el" href="a06300.html#l00613">NL3D::CQuadGrid&lt; T &gt;::select()</a>.
+<p>
+<div class="fragment"><pre>00262 {
+00263 CVector bminp, bmaxp;
+00264 bminp= bmin;
+00265 bmaxp= bmax;
+00266 bmin.minof(bminp, bmaxp);
+00267 bmax.maxof(bminp, bmaxp);
+00268 bmin/= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr1">_EltSize</a>;
+00269 bmax/= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr1">_EltSize</a>;
+00270 x0= (<a class="code" href="a04558.html#a14">sint</a>)(floor(bmin.x));
+00271 x1= (<a class="code" href="a04558.html#a14">sint</a>)(ceil(bmax.x));
+00272 y0= (<a class="code" href="a04558.html#a14">sint</a>)(floor(bmin.y));
+00273 y1= (<a class="code" href="a04558.html#a14">sint</a>)(ceil(bmax.y));
+00274
+00275 <span class="comment">// Very special case where the bbox.size==0 AND position is JUST on an edge of a case.</span>
+00276 <span class="keywordflow">if</span>(x0==x1)
+00277 x1++;
+00278 <span class="keywordflow">if</span>(y0==y1)
+00279 y1++;
+00280
+00281 <span class="comment">// Manage tiling.</span>
+00282 <span class="keywordflow">if</span>(x1-x0&gt;=<a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>)
+00283 x0=0, x1= <a class="code" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</a>;
+00284 <span class="keywordflow">else</span>
+00285 {
+00286 x0&amp;= _Size-1;
+00287 x1&amp;= _Size-1;
+00288 <span class="keywordflow">if</span>(x1&lt;=x0)
+00289 x1+=_Size;
+00290 }
+00291 <span class="keywordflow">if</span>(y1-y0&gt;=_Size)
+00292 y0=0, y1= _Size;
+00293 <span class="keywordflow">else</span>
+00294 {
+00295 y0&amp;= _Size-1;
+00296 y1&amp;= _Size-1;
+00297 <span class="keywordflow">if</span>(y1&lt;=y0)
+00298 y1+=_Size;
+00299 }
+00300 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CQuadGridn0" doxytag="NL3D::CQuadGrid::CIterator" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> friend class <a class="el" href="a03278.html">CIterator</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="a06300.html#l00081">81</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00641">NL3D::CQuadGrid&lt; T &gt;::begin()</a>, <a class="el" href="a06300.html#l00646">NL3D::CQuadGrid&lt; T &gt;::end()</a>, <a class="el" href="a06300.html#l00468">NL3D::CQuadGrid&lt; T &gt;::erase()</a>, and <a class="el" href="a06300.html#l00516">NL3D::CQuadGrid&lt; T &gt;::insert()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CQuadGridr0" doxytag="NL3D::CQuadGrid::_ChangeBasis" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02851.html">NLMISC::CMatrix</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr0">_ChangeBasis</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="a06300.html#l00238">238</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00428">NL3D::CQuadGrid&lt; T &gt;::changeBase()</a>, <a class="el" href="a06300.html#l00412">NL3D::CQuadGrid&lt; T &gt;::CQuadGrid()</a>, <a class="el" href="a06300.html#l00516">NL3D::CQuadGrid&lt; T &gt;::insert()</a>, and <a class="el" href="a06300.html#l00613">NL3D::CQuadGrid&lt; T &gt;::select()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridr1" doxytag="NL3D::CQuadGrid::_EltSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr1">_EltSize</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="a06300.html#l00237">237</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00412">NL3D::CQuadGrid&lt; T &gt;::CQuadGrid()</a>, and <a class="el" href="a06300.html#l00433">NL3D::CQuadGrid&lt; T &gt;::create()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridr2" doxytag="NL3D::CQuadGrid::_Grid" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt;<a class="el" href="a03283.html">CQuadNode</a>&gt; <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr2">_Grid</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="a06300.html#l00234">234</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridr3" doxytag="NL3D::CQuadGrid::_NodeBlockMemory" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02274.html">NLMISC::CBlockMemory</a>&lt;<a class="el" href="a03280.html">CNode</a>&gt; <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr3">_NodeBlockMemory</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="a06300.html#l00243">243</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00468">NL3D::CQuadGrid&lt; T &gt;::erase()</a>, and <a class="el" href="a06300.html#l00516">NL3D::CQuadGrid&lt; T &gt;::insert()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridr4" doxytag="NL3D::CQuadGrid::_NodeListBlockMemory" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02274.html">NLMISC::CBlockMemory</a>&lt;<a class="el" href="a03280.html">CNode</a>*, false&gt; <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr4">_NodeListBlockMemory</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="a06300.html#l00245">245</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00433">NL3D::CQuadGrid&lt; T &gt;::create()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridr5" doxytag="NL3D::CQuadGrid::_SelectedList" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03274.html">CBaseNode</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr5">_SelectedList</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="a06300.html#l00240">240</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00641">NL3D::CQuadGrid&lt; T &gt;::begin()</a>, <a class="el" href="a06300.html#l00454">NL3D::CQuadGrid&lt; T &gt;::clear()</a>, <a class="el" href="a06300.html#l00567">NL3D::CQuadGrid&lt; T &gt;::clearSelection()</a>, and <a class="el" href="a06300.html#l00589">NL3D::CQuadGrid&lt; T &gt;::selectAll()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridr6" doxytag="NL3D::CQuadGrid::_Size" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr6">_Size</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="a06300.html#l00235">235</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridr7" doxytag="NL3D::CQuadGrid::_SizePower" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr7">_SizePower</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="a06300.html#l00236">236</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CQuadGridr8" doxytag="NL3D::CQuadGrid::_UnSelectedList" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03274.html">CBaseNode</a> <a class="el" href="a03273.html">NL3D::CQuadGrid</a>&lt; T &gt;::<a class="el" href="a03273.html#NL3D_1_1CQuadGridr8">_UnSelectedList</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="a06300.html#l00241">241</a> of file <a class="el" href="a06300.html">3d/quad_grid.h</a>.
+<p>
+Referenced by <a class="el" href="a06300.html#l00454">NL3D::CQuadGrid&lt; T &gt;::clear()</a>, <a class="el" href="a06300.html#l00567">NL3D::CQuadGrid&lt; T &gt;::clearSelection()</a>, <a class="el" href="a06300.html#l00516">NL3D::CQuadGrid&lt; T &gt;::insert()</a>, and <a class="el" href="a06300.html#l00589">NL3D::CQuadGrid&lt; T &gt;::selectAll()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="a06300.html">3d/quad_grid.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 07:33:41 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>