diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a02156.html | 1564 |
1 files changed, 1564 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02156.html b/docs/doxygen/nel/a02156.html new file mode 100644 index 00000000..6982f62e --- /dev/null +++ b/docs/doxygen/nel/a02156.html @@ -0,0 +1,1564 @@ +<!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: NLMISC::CAABBox class Reference</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.3.6 --> +<div class="qindex"> <form class="search" action="search.php" method="get"> +<a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLMISC::CAABBox Class Reference</h1><code>#include <<a class="el" href="a05385.html">aabbox.h</a>></code> +<p> +<p>Inheritance diagram for NLMISC::CAABBox: +<p><center><img src="a02156.png" usemap="#NLMISC::CAABBox_map" border="0" alt=""></center> +<map name="NLMISC::CAABBox_map"> +<area href="a02157.html" alt="NLMISC::CAABBoxExt" shape="rect" coords="0,56,138,80"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +An Axis Aligned Bouding Box. Note: Center/HalfSize set to private, to have same manipulation for <a class="el" href="a02156.html">CAABBox</a> and <a class="el" href="a02157.html">CAABBoxExt</a>. <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="a05385.html#l00050">50</a> of file <a class="el" href="a05385.html">aabbox.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Clip</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1906_0">clipBack</a> (const <a class="el" href="a03082.html">CPlane</a> &p) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Is the bbox partially in back of the plane?? <a href="#NLMISC_1_1CAABBoxz1906_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1906_1">clipFront</a> (const <a class="el" href="a03082.html">CPlane</a> &p) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Is the bbox partially in front of the plane?? <a href="#NLMISC_1_1CAABBoxz1906_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_0">clipSegment</a> (<a class="el" href="a03128.html">CVector</a> &a, <a class="el" href="a03128.html">CVector</a> &b) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">clip the segment by the bbox. return false if don't intersect. a and b are modified. <a href="#NLMISC_1_1CAABBoxExtz1906_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_1">include</a> (const <a class="el" href="a02156.html">CAABBox</a> &box) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the bbox include entirely this bbox. <a href="#NLMISC_1_1CAABBoxExtz1906_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_2">include</a> (const <a class="el" href="a03128.html">CVector</a> &a) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the bbox include this point. <a href="#NLMISC_1_1CAABBoxExtz1906_2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_3">intersect</a> (const <a class="el" href="a03128.html">CVector</a> &a, const <a class="el" href="a03128.html">CVector</a> &b) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the bbox instersect the segment AB. <a href="#NLMISC_1_1CAABBoxExtz1906_3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_4">intersect</a> (const <a class="el" href="a02291.html">CBSphere</a> &<a class="el" href="a04223.html#a626">s</a>) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the bbox instersect the sphere s. <a href="#NLMISC_1_1CAABBoxExtz1906_4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1906_7">intersect</a> (const <a class="el" href="a03128.html">CVector</a> &a, const <a class="el" href="a03128.html">CVector</a> &b, const <a class="el" href="a03128.html">CVector</a> &c) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the bbox intersect the triangle ABC. <a href="#NLMISC_1_1CAABBoxz1906_7"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_5">intersect</a> (const <a class="el" href="a02156.html">CAABBox</a> &box) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the bbox intersect the bbox box. <a href="#NLMISC_1_1CAABBoxExtz1906_5"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Misc</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1908_0">computeIntersection</a> (const <a class="el" href="a02156.html">CAABBox</a> &b1, const <a class="el" href="a02156.html">CAABBox</a> &b2)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1908_1">makePyramid</a> (<a class="el" href="a03082.html">CPlane</a> planes[6]) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Build the equivalent polytope of planes. <a href="#NLMISC_1_1CAABBoxExtz1908_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02156.html">CAABBox</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1908_2">computeAABBoxUnion</a> (const <a class="el" href="a02156.html">CAABBox</a> &b1, const <a class="el" href="a02156.html">CAABBox</a> &b2)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02156.html">CAABBox</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1908_3">transformAABBox</a> (const <a class="el" href="a02851.html">CMatrix</a> &mat, const <a class="el" href="a02156.html">CAABBox</a> &box)</td></tr> + +<tr><td colspan=2><br><h2>Builds.</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1902_0">extend</a> (const <a class="el" href="a03128.html">CVector</a> &<a class="el" href="a04223.html#a576">v</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a> (const <a class="el" href="a03128.html">CVector</a> &center)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">setHalfSize</a> (const <a class="el" href="a03128.html">CVector</a> &hs)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_3">setMinMax</a> (const <a class="el" href="a03128.html">CVector</a> &bmin, const <a class="el" href="a03128.html">CVector</a> &bmax)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Build the bbox, with a min/max style bbox. <a href="#NLMISC_1_1CAABBoxz1902_3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_4">setSize</a> (const <a class="el" href="a03128.html">CVector</a> &<a class="el" href="a04223.html#a626">s</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the size of the bbox (ie 2* the halfSize). <a href="#NLMISC_1_1CAABBoxz1902_4"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Gets.</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">CVector</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_0">getCenter</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">CVector</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_1">getHalfSize</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1904_0">getMax</a> (<a class="el" href="a03128.html">CVector</a> &ret) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_3">getMax</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1904_1">getMin</a> (<a class="el" href="a03128.html">CVector</a> &ret) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_5">getMin</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_6">getRadius</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the radius of the bbox. <a href="#NLMISC_1_1CAABBoxz1904_6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1904_2">getSize</a> (<a class="el" href="a03128.html">CVector</a> &ret) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_8">getSize</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the size of the bbox. <a href="#NLMISC_1_1CAABBoxz1904_8"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxa0">CAABBox</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Empty bbox Constructor. (for AABBoxExt::getRadius() correctness). <a href="#NLMISC_1_1CAABBoxa0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxa1">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f)</td></tr> + +<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The center of the bbox. <a href="#NLMISC_1_1CAABBoxExtr0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The size/2 of the bbox. <a href="#NLMISC_1_1CAABBoxExtr1"></a><br><br></td></tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NLMISC_1_1CAABBoxa0" doxytag="NLMISC::CAABBox::CAABBox" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> NLMISC::CAABBox::CAABBox </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Empty bbox Constructor. (for AABBoxExt::getRadius() correctness). +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00061">61</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +<div class="fragment"><pre>00061 : <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>(0,0,0), <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>(0,0,0) {} +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLMISC_1_1CAABBoxz1906_0" doxytag="NLMISC::CAABBox::clipBack" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::clipBack </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03082.html">CPlane</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>p</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Is the bbox partially in back of the plane?? +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1914_0">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05384.html#l00059">59</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>, <a class="el" href="a06682.html#l00136">NLMISC::CVector::set()</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +Referenced by <a class="el" href="a06148.html#l00490">NL3D::CParticleSystemModel::checkAgainstPyramid()</a>, <a class="el" href="a06741.html#l00507">NL3D::CWaterShape::clip()</a>, <a class="el" href="a05563.html#l00205">NL3D::CCluster::isIn()</a>, and <a class="el" href="a06148.html#l00726">NL3D::CParticleSystemModel::traverseClip()</a>. +<p> +<div class="fragment"><pre>00060 { +00061 CVector hswap; +00062 +00063 <span class="comment">// The bbox is back of the plane if only one of his vertex is in back.</span> +00064 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> + <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>) < 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00065 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> - <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>) < 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00066 hswap.set(-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x, <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y, <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z); +00067 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> + hswap) < 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00068 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> - hswap) < 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00069 hswap.set(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x, -<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y, <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z); +00070 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> + hswap) < 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00071 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> - hswap) < 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00072 hswap.set(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x, <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y, -<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z); +00073 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> + hswap) < 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00074 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> - hswap) < 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00075 +00076 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00077 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1906_1" doxytag="NLMISC::CAABBox::clipFront" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::clipFront </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03082.html">CPlane</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>p</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Is the bbox partially in front of the plane?? +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1914_1">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05384.html#l00039">39</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>, <a class="el" href="a06682.html#l00136">NLMISC::CVector::set()</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +<div class="fragment"><pre>00040 { +00041 CVector hswap; +00042 +00043 <span class="comment">// The bbox is front of the plane if only one of his vertex is in front.</span> +00044 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> + <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>) > 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00045 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> - <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>) > 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00046 hswap.set(-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x, <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y, <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z); +00047 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> + hswap) > 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00048 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> - hswap) > 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00049 hswap.set(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x, -<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y, <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z); +00050 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> + hswap) > 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00051 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> - hswap) > 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00052 hswap.set(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x, <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y, -<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z); +00053 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> + hswap) > 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00054 <span class="keywordflow">if</span>(p*(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a> - hswap) > 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +00055 +00056 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00057 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1906_0" doxytag="NLMISC::CAABBox::clipSegment" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::clipSegment </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>a</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> & </td> + <td class="mdname" nowrap> <em>b</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +clip the segment by the bbox. return false if don't intersect. a and b are modified. +<p> + +<p> +Definition at line <a class="el" href="a05384.html#l00156">156</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a06170.html#l00054">NLMISC::CPlane::clipSegmentBack()</a>, <a class="el" href="a05384.html#l00081">include()</a>, <a class="el" href="a05384.html#l00194">makePyramid()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00157 { +00158 <span class="comment">// Trivial test. If both are in, they are inchanged</span> +00159 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_2">include</a>(a) && <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_2">include</a>(b)) +00160 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00161 <span class="comment">// Else, must clip the segment againts the pyamid.</span> +00162 CPlane planes[6]; +00163 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1908_1">makePyramid</a>(planes); +00164 CVector p0=a , p1=b; +00165 <span class="comment">// clip the segment against all planes</span> +00166 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<6;i++) +00167 { +00168 <span class="keywordflow">if</span>(!planes[i].clipSegmentBack(p0, p1)) +00169 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00170 } +00171 <span class="comment">// get result</span> +00172 a= p0; +00173 b= p1; +00174 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00175 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1908_2" doxytag="NLMISC::CAABBox::computeAABBoxUnion" ></a><p> +<table class="mdTable" 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="a02156.html">CAABBox</a> NLMISC::CAABBox::computeAABBoxUnion </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02156.html">CAABBox</a> & </td> + <td class="mdname" nowrap> <em>b1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02156.html">CAABBox</a> & </td> + <td class="mdname" nowrap> <em>b2</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Compute the union of 2 bboxs, that is the aabbox that contains the 2 others. Should end up in <a class="el" href="a05378.html">NLMISC</a> +<p> +Definition at line <a class="el" href="a05384.html#l00231">231</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00087">getMax()</a>, <a class="el" href="a05385.html#l00086">getMin()</a>, <a class="el" href="a06682.html#l00192">NLMISC::CVector::maxof()</a>, <a class="el" href="a05484.html#l00038">min</a>, and <a class="el" href="a05385.html#l00071">setMinMax()</a>. +<p> +Referenced by <a class="el" href="a06246.html#l01716">NL3D::CPSLocated::computeBBox()</a>, <a class="el" href="a06393.html#l01987">NL3D::CSkeletonModel::computeWorldBBoxForShadow()</a>, and <a class="el" href="a06142.html#l00897">NL3D::CParticleSystem::forceComputeBBox()</a>. +<p> +<div class="fragment"><pre>00232 { +00233 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxa0">CAABBox</a> result; +00234 CVector <a class="code" href="a04061.html#a0">min</a>, max; +00235 CVector min1 = b1.getMin() +00236 ,max1 = b1.getMax() +00237 ,min2 = b2.getMin() +00238 ,max2 = b2.getMax(); +00239 max.maxof(max1, max2); +00240 <a class="code" href="a04061.html#a0">min</a>.minof(min1, min2); +00241 result.setMinMax(min, max); +00242 <span class="keywordflow">return</span> result; +00243 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1908_0" doxytag="NLMISC::CAABBox::computeIntersection" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::computeIntersection </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02156.html">CAABBox</a> & </td> + <td class="mdname" nowrap> <em>b1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02156.html">CAABBox</a> & </td> + <td class="mdname" nowrap> <em>b2</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Compute the intersection of 2 bboxs. NB: this methods suppose the intersection exist, and doesn't check it (use <a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_5">intersect()</a> to check). If !intersect, *this is still modified and the result bbox is big chit. +<p> +Definition at line <a class="el" href="a05384.html#l00247">247</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00087">getMax()</a>, <a class="el" href="a05385.html#l00086">getMin()</a>, <a class="el" href="a06682.html#l00192">NLMISC::CVector::maxof()</a>, <a class="el" href="a06682.html#l00186">NLMISC::CVector::minof()</a>, and <a class="el" href="a05385.html#l00071">setMinMax()</a>. +<p> +<div class="fragment"><pre>00248 { +00249 CVector min1 = b1.getMin(), max1 = b1.getMax(), +00250 min2 = b2.getMin(), max2 = b2.getMax(); +00251 CVector minr, maxr; +00252 +00253 <span class="comment">// don't test if intersect or not.</span> +00254 maxr.minof(max1, max2); +00255 minr.maxof(min1, min2); +00256 +00257 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_3">setMinMax</a>(minr, maxr); +00258 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1902_0" doxytag="NLMISC::CAABBox::extend" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::extend </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>v</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +extend the bbox so it contains v. Warning!! By default, a bbox is the vector 0,0,0. So set the first vertex with <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter()</a> or else the bbox will be the extension of v and (0,0,0)... +<p> +Definition at line <a class="el" href="a05384.html#l00215">215</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00087">getMax()</a>, <a class="el" href="a05385.html#l00086">getMin()</a>, <a class="el" href="a06682.html#l00192">NLMISC::CVector::maxof()</a>, <a class="el" href="a06682.html#l00186">NLMISC::CVector::minof()</a>, <a class="el" href="a05385.html#l00071">setMinMax()</a>, and <a class="el" href="a05646.html#l00237">v</a>. +<p> +Referenced by <a class="el" href="a06034.html#l00056">NL3D::CMiniCol::addFaces()</a>, <a class="el" href="a06155.html#l00335">NL3D::CPatch::addTileTrianglesInBBox()</a>, <a class="el" href="a06374.html#l00057">NL3D::CShadowPolyReceiver::addTriangle()</a>, <a class="el" href="a06758.html#l01452">NL3D::CZone::applyHeightField()</a>, <a class="el" href="a06758.html#l00122">NL3D::CZone::build()</a>, <a class="el" href="a06729.html#l00370">NL3D::CVisualCollisionManager::CMeshCol::build()</a>, <a class="el" href="a05666.html#l00130">NLPACS::CEdgeQuad::build()</a>, <a class="el" href="a05541.html#l00122">NLPACS::CChainQuad::build()</a>, <a class="el" href="a05532.html#l00048">NL3D::CCameraCol::build()</a>, <a class="el" href="a06370.html#l00098">NL3D::CShadowMap::buildClipInfoFromMatrix()</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="a06393.html#l01665">NL3D::CSkeletonModel::computeCurrentBBox()</a>, <a class="el" href="a06393.html#l01620">NL3D::CSkeletonModel::computeRenderedBBox()</a>, <a class="el" href="a05522.html#l00627">NLPACS::computeRetriever()</a>, <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>, <a class="el" href="a05522.html#l00331">NLPACS::computeSurfaceQuadTree()</a>, <a class="el" href="a06768.html#l03563">NL3D::CZoneLighter::computeTileFlagsForPositionTowardWater()</a>, <a class="el" href="a05579.html#l00169">NLPACS::CCollisionMeshBuild::computeTrivialTranslation()</a>, <a class="el" href="a05761.html#l02028">NLPACS::CGlobalRetriever::doMove()</a>, <a class="el" href="a06690.html#l00045">NL3D::CVegetableClipBlock::extendBBoxOnly()</a>, <a class="el" href="a06491.html#l00115">NL3D::CTessBlock::extendSphereAdd()</a>, <a class="el" href="a06163.html#l00214">NL3D::CPatchDLMContext::generate()</a>, <a class="el" href="a06034.html#l00341">NL3D::CMiniCol::getGroundNormal()</a>, <a class="el" href="a05929.html#l01393">NLPACS::CLocalRetriever::initFaceGrid()</a>, <a class="el" href="a06302.html#l00301">NL3D::CQuadGridClipClusterQTreeNode::insertModel()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a05989.html#l00058">NL3D::makeBBox()</a>, <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>, <a class="el" href="a05563.html#l00156">NL3D::CCluster::makeVolume()</a>, <a class="el" href="a05761.html#l01937">NLPACS::CGlobalRetriever::testBBoxMove()</a>, <a class="el" href="a05761.html#l02236">NLPACS::CGlobalRetriever::testBBoxRot()</a>, and <a class="el" href="a05761.html#l01864">NLPACS::CGlobalRetriever::testCylinderMove()</a>. +<p> +<div class="fragment"><pre>00216 { +00217 CVector bmin= <a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_5">getMin</a>(), bmax= <a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_3">getMax</a>(); +00218 +00219 bmin.minof(bmin, v); +00220 bmax.maxof(bmax, v); +00221 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_3">setMinMax</a>(bmin, bmax); +00222 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1904_0" doxytag="NLMISC::CAABBox::getCenter" ></a><p> +<table class="mdTable" 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="a03128.html">CVector</a>& NLMISC::CAABBox::getCenter </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_1">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00090">90</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a06477.html#l00096">NLPACS::CSurfaceQuadTree::addVertex()</a>, <a class="el" href="a06395.html#l00216">NL3D::CSkeletonShape::clip()</a>, <a class="el" href="a06758.html#l00499">NL3D::CZone::compile()</a>, <a class="el" href="a05522.html#l00331">NLPACS::computeSurfaceQuadTree()</a>, <a class="el" href="a05579.html#l00169">NLPACS::CCollisionMeshBuild::computeTrivialTranslation()</a>, <a class="el" href="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, <a class="el" href="a06491.html#l00122">NL3D::CTessBlock::extendSphereCompile()</a>, <a class="el" href="a05761.html#l01177">NLPACS::CGlobalRetriever::findCollisionChains()</a>, <a class="el" href="a06163.html#l00214">NL3D::CPatchDLMContext::generate()</a>, <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a05761.html#l00275">NLPACS::CGlobalRetriever::getBorders()</a>, <a class="el" href="a06302.html#l00125">NL3D::CQuadGridClipClusterQTreeNode::init()</a>, <a class="el" href="a06302.html#l00301">NL3D::CQuadGridClipClusterQTreeNode::insertModel()</a>, <a class="el" href="a05824.html#l00305">NL3D::CInstanceLighter::light()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a06337.html#l00109">NLPACS::CRetrieverInstance::make()</a>, <a class="el" href="a05385.html#l00191">NLMISC::CAABBoxExt::operator=()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>, <a class="el" href="a06478.html#l00184">NLPACS::CSurfaceQuadTree::translate()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>, and <a class="el" href="a06690.html#l00055">NL3D::CVegetableClipBlock::updateSphere()</a>. +<p> +<div class="fragment"><pre>00090 {<span class="keywordflow">return</span> <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1904_1" doxytag="NLMISC::CAABBox::getHalfSize" ></a><p> +<table class="mdTable" 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="a03128.html">CVector</a>& NLMISC::CAABBox::getHalfSize </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_2">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00091">91</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00179">NL3D::CPSUtil::addRadiusToAABBox()</a>, <a class="el" href="a06477.html#l00096">NLPACS::CSurfaceQuadTree::addVertex()</a>, <a class="el" href="a05862.html#l00385">NL3D::CLandscape::addZone()</a>, <a class="el" href="a05532.html#l00048">NL3D::CCameraCol::build()</a>, <a class="el" href="a06370.html#l00135">NL3D::CShadowMap::buildCasterCameraMatrix()</a>, <a class="el" href="a05522.html#l00627">NLPACS::computeRetriever()</a>, <a class="el" href="a05522.html#l00331">NLPACS::computeSurfaceQuadTree()</a>, <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a05761.html#l00275">NLPACS::CGlobalRetriever::getBorders()</a>, <a class="el" href="a06302.html#l00125">NL3D::CQuadGridClipClusterQTreeNode::init()</a>, <a class="el" href="a06302.html#l00301">NL3D::CQuadGridClipClusterQTreeNode::insertModel()</a>, <a class="el" href="a05824.html#l00305">NL3D::CInstanceLighter::light()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a06337.html#l00109">NLPACS::CRetrieverInstance::make()</a>, <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>, <a class="el" href="a05385.html#l00191">NLMISC::CAABBoxExt::operator=()</a>, <a class="el" href="a05862.html#l00447">NL3D::CLandscape::removeZone()</a>, <a class="el" href="a06725.html#l00403">NL3D::CVisualCollisionEntity::testComputeLandscape()</a>, <a class="el" href="a05555.html#l00120">NL3D::CClipTrav::traverse()</a>, and <a class="el" href="a05565.html#l00270">NLSOUND::CClusteredSound::update()</a>. +<p> +<div class="fragment"><pre>00091 {<span class="keywordflow">return</span> <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1904_0" doxytag="NLMISC::CAABBox::getMax" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::getMax </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>ret</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00089">89</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +<div class="fragment"><pre>00089 {ret= <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>+<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1904_3" doxytag="NLMISC::CAABBox::getMax" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> NLMISC::CAABBox::getMax </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_3">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00087">87</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +Referenced by <a class="el" href="a06729.html#l00200">NL3D::CVisualCollisionManager::CStaticGrid::add()</a>, <a class="el" href="a06034.html#l00056">NL3D::CMiniCol::addFaces()</a>, <a class="el" href="a06729.html#l00401">NL3D::CVisualCollisionManager::addMeshCollision()</a>, <a class="el" href="a06372.html#l00223">NL3D::CShadowMapManager::addShadowReceiver()</a>, <a class="el" href="a06374.html#l00057">NL3D::CShadowPolyReceiver::addTriangle()</a>, <a class="el" href="a05862.html#l00385">NL3D::CLandscape::addZone()</a>, <a class="el" href="a05666.html#l00130">NLPACS::CEdgeQuad::build()</a>, <a class="el" href="a05541.html#l00122">NLPACS::CChainQuad::build()</a>, <a class="el" href="a05862.html#l02340">NL3D::CLandscape::buildPatchBlocksInBBox()</a>, <a class="el" href="a05862.html#l02307">NL3D::CLandscape::buildTrianglesInBBox()</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="a05384.html#l00231">computeAABBoxUnion()</a>, <a class="el" href="a05862.html#l03489">NL3D::CLandscape::computeDynamicLighting()</a>, <a class="el" href="a05384.html#l00247">computeIntersection()</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="a06285.html#l00118">NL3D::CPSUtil::displayBBox()</a>, <a class="el" href="a05384.html#l00215">extend()</a>, <a class="el" href="a05565.html#l01155">NLSOUND::CClusteredSound::getAABoxNearestPos()</a>, <a class="el" href="a06729.html#l00144">NL3D::CVisualCollisionManager::getCameraCollision()</a>, <a class="el" href="a06374.html#l00308">NL3D::CShadowPolyReceiver::getCameraCollision()</a>, <a class="el" href="a06034.html#l00467">NL3D::CMiniCol::getFaces()</a>, <a class="el" href="a06302.html#l00125">NL3D::CQuadGridClipClusterQTreeNode::init()</a>, <a class="el" href="a05929.html#l01393">NLPACS::CLocalRetriever::initFaceGrid()</a>, <a class="el" href="a05384.html#l00107">intersect()</a>, <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>, <a class="el" href="a06768.html#l03067">NL3D::CZoneLighter::makeQuadGridFromWaterShapes()</a>, <a class="el" href="a05555.html#l00433">NL3D::CClipTrav::registerCluster()</a>, <a class="el" href="a06034.html#l00085">NL3D::CMiniCol::removeLandScapePart()</a>, <a class="el" href="a05862.html#l00447">NL3D::CLandscape::removeZone()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>, <a class="el" href="a05929.html#l01238">NLPACS::CLocalRetriever::retrieveAccuratePosition()</a>, <a class="el" href="a05929.html#l01064">NLPACS::CLocalRetriever::retrievePosition()</a>, <a class="el" href="a06729.html#l00279">NL3D::CVisualCollisionManager::CStaticGrid::select()</a>, <a class="el" href="a05666.html#l00410">NLPACS::CEdgeQuad::selectEdges()</a>, <a class="el" href="a05541.html#l00289">NLPACS::CChainQuad::selectEdges()</a>, <a class="el" href="a05761.html#l00109">NLPACS::CGlobalRetriever::selectInstances()</a>, and <a class="el" href="a05384.html#l00262">transformAABBox()</a>. +<p> +<div class="fragment"><pre>00087 {<span class="keywordflow">return</span> <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>+<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1904_1" doxytag="NLMISC::CAABBox::getMin" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::getMin </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>ret</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00088">88</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +<div class="fragment"><pre>00088 {ret= <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1904_5" doxytag="NLMISC::CAABBox::getMin" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> NLMISC::CAABBox::getMin </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_4">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00086">86</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +Referenced by <a class="el" href="a06729.html#l00200">NL3D::CVisualCollisionManager::CStaticGrid::add()</a>, <a class="el" href="a06034.html#l00056">NL3D::CMiniCol::addFaces()</a>, <a class="el" href="a06729.html#l00401">NL3D::CVisualCollisionManager::addMeshCollision()</a>, <a class="el" href="a06372.html#l00223">NL3D::CShadowMapManager::addShadowReceiver()</a>, <a class="el" href="a06374.html#l00057">NL3D::CShadowPolyReceiver::addTriangle()</a>, <a class="el" href="a05862.html#l00385">NL3D::CLandscape::addZone()</a>, <a class="el" href="a05666.html#l00130">NLPACS::CEdgeQuad::build()</a>, <a class="el" href="a05541.html#l00122">NLPACS::CChainQuad::build()</a>, <a class="el" href="a06370.html#l00135">NL3D::CShadowMap::buildCasterCameraMatrix()</a>, <a class="el" href="a05862.html#l02340">NL3D::CLandscape::buildPatchBlocksInBBox()</a>, <a class="el" href="a05862.html#l02307">NL3D::CLandscape::buildTrianglesInBBox()</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="a05384.html#l00231">computeAABBoxUnion()</a>, <a class="el" href="a05862.html#l03489">NL3D::CLandscape::computeDynamicLighting()</a>, <a class="el" href="a05384.html#l00247">computeIntersection()</a>, <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>, <a class="el" href="a06729.html#l00172">NL3D::CVisualCollisionManager::CStaticGrid::create()</a>, <a class="el" href="a06285.html#l00118">NL3D::CPSUtil::displayBBox()</a>, <a class="el" href="a05384.html#l00215">extend()</a>, <a class="el" href="a05565.html#l01155">NLSOUND::CClusteredSound::getAABoxNearestPos()</a>, <a class="el" href="a06729.html#l00144">NL3D::CVisualCollisionManager::getCameraCollision()</a>, <a class="el" href="a06374.html#l00308">NL3D::CShadowPolyReceiver::getCameraCollision()</a>, <a class="el" href="a06034.html#l00467">NL3D::CMiniCol::getFaces()</a>, <a class="el" href="a06302.html#l00125">NL3D::CQuadGridClipClusterQTreeNode::init()</a>, <a class="el" href="a05929.html#l01393">NLPACS::CLocalRetriever::initFaceGrid()</a>, <a class="el" href="a05384.html#l00107">intersect()</a>, <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>, <a class="el" href="a06768.html#l03067">NL3D::CZoneLighter::makeQuadGridFromWaterShapes()</a>, <a class="el" href="a05555.html#l00433">NL3D::CClipTrav::registerCluster()</a>, <a class="el" href="a06034.html#l00085">NL3D::CMiniCol::removeLandScapePart()</a>, <a class="el" href="a05862.html#l00447">NL3D::CLandscape::removeZone()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>, <a class="el" href="a05929.html#l01238">NLPACS::CLocalRetriever::retrieveAccuratePosition()</a>, <a class="el" href="a05929.html#l01064">NLPACS::CLocalRetriever::retrievePosition()</a>, <a class="el" href="a06729.html#l00279">NL3D::CVisualCollisionManager::CStaticGrid::select()</a>, <a class="el" href="a05666.html#l00410">NLPACS::CEdgeQuad::selectEdges()</a>, <a class="el" href="a05541.html#l00289">NLPACS::CChainQuad::selectEdges()</a>, <a class="el" href="a05761.html#l00109">NLPACS::CGlobalRetriever::selectInstances()</a>, and <a class="el" href="a05384.html#l00262">transformAABBox()</a>. +<p> +<div class="fragment"><pre>00086 {<span class="keywordflow">return</span> <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1904_6" doxytag="NLMISC::CAABBox::getRadius" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::getRadius </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the radius of the bbox. +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_5">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00096">96</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>, and <a class="el" href="a06682.html#l00115">NLMISC::CVector::norm()</a>. +<p> +Referenced by <a class="el" href="a06395.html#l00216">NL3D::CSkeletonShape::clip()</a>, <a class="el" href="a06758.html#l00499">NL3D::CZone::compile()</a>, <a class="el" href="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, <a class="el" href="a06491.html#l00122">NL3D::CTessBlock::extendSphereCompile()</a>, <a class="el" href="a06163.html#l00214">NL3D::CPatchDLMContext::generate()</a>, <a class="el" href="a06570.html#l00316">NL3D::CTransformShape::getLightHotSpotInWorld()</a>, and <a class="el" href="a06690.html#l00055">NL3D::CVegetableClipBlock::updateSphere()</a>. +<p> +<div class="fragment"><pre>00096 {<span class="keywordflow">return</span> <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.norm();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1904_2" doxytag="NLMISC::CAABBox::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" nowrap valign="top"> void NLMISC::CAABBox::getSize </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>ret</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00094">94</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +<div class="fragment"><pre>00094 {ret= <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>*2;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1904_8" doxytag="NLMISC::CAABBox::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" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> NLMISC::CAABBox::getSize </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the size of the bbox. +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_6">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00093">93</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +Referenced by <a class="el" href="a06370.html#l00135">NL3D::CShadowMap::buildCasterCameraMatrix()</a>, <a class="el" href="a06729.html#l00172">NL3D::CVisualCollisionManager::CStaticGrid::create()</a>, and <a class="el" href="a06304.html#l00319">NL3D::CQuadGridClipManager::profile()</a>. +<p> +<div class="fragment"><pre>00093 {<span class="keywordflow">return</span> <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>*2;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1906_1" doxytag="NLMISC::CAABBox::include" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::include </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02156.html">CAABBox</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>box</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Does the bbox include entirely this bbox. +<p> + +<p> +Definition at line <a class="el" href="a05384.html#l00094">94</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00054">Center</a>, <a class="el" href="a05385.html#l00056">HalfSize</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +<div class="fragment"><pre>00095 { +00096 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.x+<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x < box.Center.x+box.HalfSize.x) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00097 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.x-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x > box.Center.x-box.HalfSize.x) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00098 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.y+<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y < box.Center.y+box.HalfSize.y) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00099 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.y-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y > box.Center.y-box.HalfSize.y) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00100 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.z+<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z < box.Center.z+box.HalfSize.z) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00101 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.z-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z > box.Center.z-box.HalfSize.z) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00102 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00103 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1906_2" doxytag="NLMISC::CAABBox::include" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::include </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>a</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Does the bbox include this point. +<p> + +<p> +Definition at line <a class="el" href="a05384.html#l00081">81</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +Referenced by <a class="el" href="a06477.html#l00096">NLPACS::CSurfaceQuadTree::addVertex()</a>, <a class="el" href="a05862.html#l00385">NL3D::CLandscape::addZone()</a>, <a class="el" href="a05384.html#l00156">clipSegment()</a>, <a class="el" href="a06690.html#l00045">NL3D::CVegetableClipBlock::extendBBoxOnly()</a>, <a class="el" href="a06491.html#l00115">NL3D::CTessBlock::extendSphereAdd()</a>, <a class="el" href="a06034.html#l00341">NL3D::CMiniCol::getGroundNormal()</a>, <a class="el" href="a06477.html#l00384">NLPACS::CSurfaceQuadTree::getInterpZ()</a>, <a class="el" href="a06477.html#l00304">NLPACS::CSurfaceQuadTree::getLeaf()</a>, <a class="el" href="a05384.html#l00121">intersect()</a>, <a class="el" href="a05761.html#l00493">NLPACS::CGlobalRetriever::retrievePosition()</a>, <a class="el" href="a06725.html#l00403">NL3D::CVisualCollisionEntity::testComputeLandscape()</a>, and <a class="el" href="a05762.html#l00305">NLPACS::CGlobalRetriever::testPosition()</a>. +<p> +<div class="fragment"><pre>00082 { +00083 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.x+<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x<a.x) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00084 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.x-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x>a.x) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00085 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.y+<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y<a.y) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00086 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.y-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y>a.y) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00087 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.z+<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z<a.z) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00088 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.z-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z>a.z) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00089 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00090 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1906_3" doxytag="NLMISC::CAABBox::intersect" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::intersect </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>a</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>b</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Does the bbox instersect the segment AB. +<p> + +<p> +Definition at line <a class="el" href="a05384.html#l00137">137</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a06170.html#l00054">NLMISC::CPlane::clipSegmentBack()</a>, <a class="el" href="a05384.html#l00081">include()</a>, <a class="el" href="a05384.html#l00194">makePyramid()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00138 { +00139 <span class="comment">// Trivial test.</span> +00140 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_2">include</a>(a) || <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_2">include</a>(b)) +00141 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00142 <span class="comment">// Else, must test if the segment intersect the pyamid.</span> +00143 CPlane planes[6]; +00144 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1908_1">makePyramid</a>(planes); +00145 CVector p0=a , p1=b; +00146 <span class="comment">// clip the segment against all planes</span> +00147 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i<6;i++) +00148 { +00149 <span class="keywordflow">if</span>(!planes[i].clipSegmentBack(p0, p1)) +00150 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00151 } +00152 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00153 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1906_4" doxytag="NLMISC::CAABBox::intersect" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::intersect </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02291.html">CBSphere</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>s</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Does the bbox instersect the sphere s. +<p> + +<p> +Definition at line <a class="el" href="a05384.html#l00178">178</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>, <a class="el" href="a05646.html#l00977">s</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +<div class="fragment"><pre>00179 { +00180 <span class="keywordflow">if</span> (<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.x + <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x < <a class="code" href="a04223.html#a626">s</a>.Center.x - <a class="code" href="a04223.html#a626">s</a>.Radius) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00181 <span class="keywordflow">if</span> (<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.y + <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y < <a class="code" href="a04223.html#a626">s</a>.Center.y - <a class="code" href="a04223.html#a626">s</a>.Radius) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00182 <span class="keywordflow">if</span> (<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.z + <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z < <a class="code" href="a04223.html#a626">s</a>.Center.z - <a class="code" href="a04223.html#a626">s</a>.Radius) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00183 +00184 <span class="keywordflow">if</span> (<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.x - <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x > <a class="code" href="a04223.html#a626">s</a>.Center.x + <a class="code" href="a04223.html#a626">s</a>.Radius) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00185 <span class="keywordflow">if</span> (<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.y - <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y > <a class="code" href="a04223.html#a626">s</a>.Center.y + <a class="code" href="a04223.html#a626">s</a>.Radius) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00186 <span class="keywordflow">if</span> (<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>.z - <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z > <a class="code" href="a04223.html#a626">s</a>.Center.z + <a class="code" href="a04223.html#a626">s</a>.Radius) <span class="keywordflow">return</span> <span class="keyword">false</span>; +00187 +00188 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00189 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1906_7" doxytag="NLMISC::CAABBox::intersect" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::intersect </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>a</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>b</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>c</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Does the bbox intersect the triangle ABC. +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1914_2">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05384.html#l00121">121</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a06190.html#l00056">NLMISC::CPolygon::clip()</a>, <a class="el" href="a06191.html#l00064">NLMISC::CPolygon::getNumVertices()</a>, <a class="el" href="a05384.html#l00081">include()</a>, and <a class="el" href="a05384.html#l00194">makePyramid()</a>. +<p> +<div class="fragment"><pre>00122 { +00123 <span class="comment">// Trivial test.</span> +00124 <span class="keywordflow">if</span>(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_2">include</a>(a) || <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_2">include</a>(b) || <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1906_2">include</a>(c)) +00125 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00126 <span class="comment">// Else, must test if the polygon intersect the pyamid.</span> +00127 CPlane planes[6]; +00128 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtz1908_1">makePyramid</a>(planes); +00129 CPolygon poly(a,b,c); +00130 poly.clip(planes, 6); +00131 <span class="keywordflow">if</span>(poly.getNumVertices()==0) +00132 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00133 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00134 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1906_5" doxytag="NLMISC::CAABBox::intersect" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::intersect </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02156.html">CAABBox</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>box</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Does the bbox intersect the bbox box. +<p> + +<p> +Definition at line <a class="el" href="a05384.html#l00107">107</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00087">getMax()</a>, <a class="el" href="a05385.html#l00086">getMin()</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +Referenced by <a class="el" href="a06155.html#l00514">NL3D::CPatch::addPatchBlocksInBBoxRecurs()</a>, <a class="el" href="a06155.html#l00335">NL3D::CPatch::addTileTrianglesInBBox()</a>, <a class="el" href="a06155.html#l00280">NL3D::CPatch::addTrianglesInBBoxRecurs()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a06729.html#l00330">NL3D::CVisualCollisionManager::CMeshCol::getCameraCollision()</a>, <a class="el" href="a06034.html#l00467">NL3D::CMiniCol::getFaces()</a>, and <a class="el" href="a06768.html#l03067">NL3D::CZoneLighter::makeQuadGridFromWaterShapes()</a>. +<p> +<div class="fragment"><pre>00108 { +00109 CVector mina = <a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_5">getMin</a>(), maxa = <a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_3">getMax</a>(), +00110 minb = box.getMin(), maxb = box.getMax(); +00111 +00112 <span class="keywordflow">return</span> ! ( mina.x > maxb.x || +00113 mina.y > maxb.y || +00114 mina.z > maxb.z || +00115 minb.x > maxa.x || +00116 minb.y > maxa.y || +00117 minb.z > maxa.z); +00118 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1908_1" doxytag="NLMISC::CAABBox::makePyramid" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::makePyramid </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03082.html">CPlane</a> </td> + <td class="mdname1" valign="top" nowrap> <em>planes</em>[6] </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Build the equivalent polytope of planes. +<p> + +<p> +Definition at line <a class="el" href="a05384.html#l00194">194</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>, and <a class="el" href="a06170.html#l00036">NLMISC::CPlane::make()</a>. +<p> +Referenced by <a class="el" href="a05384.html#l00156">clipSegment()</a>, and <a class="el" href="a05384.html#l00121">intersect()</a>. +<p> +<div class="fragment"><pre>00195 { +00196 planes[0].make(CVector(-1,0,0), Center-HalfSize); +00197 planes[1].make(CVector(+1,0,0), Center+HalfSize); +00198 planes[2].make(CVector(0,-1,0), Center-HalfSize); +00199 planes[3].make(CVector(0,+1,0), Center+HalfSize); +00200 planes[4].make(CVector(0,0,-1), Center-HalfSize); +00201 planes[5].make(CVector(0,0,+1), Center+HalfSize); +00202 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxa1" doxytag="NLMISC::CAABBox::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CAABBox::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExta2">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05384.html#l00206">206</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>. +<p> +<div class="fragment"><pre>00207 { +00208 (<span class="keywordtype">void</span>)f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a>(0); +00209 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(Center); +00210 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(HalfSize); +00211 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1902_1" doxytag="NLMISC::CAABBox::setCenter" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::setCenter </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>center</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +extend the bbox so it contains v. Warning!! By default, a bbox is the vector 0,0,0. So set the first vertex with <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter()</a> or else the bbox will be the extension of v and (0,0,0)... +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1910_1">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00066">66</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a06034.html#l00056">NL3D::CMiniCol::addFaces()</a>, <a class="el" href="a06155.html#l00335">NL3D::CPatch::addTileTrianglesInBBox()</a>, <a class="el" href="a06374.html#l00057">NL3D::CShadowPolyReceiver::addTriangle()</a>, <a class="el" href="a06758.html#l01452">NL3D::CZone::applyHeightField()</a>, <a class="el" href="a06758.html#l00122">NL3D::CZone::build()</a>, <a class="el" href="a06729.html#l00370">NL3D::CVisualCollisionManager::CMeshCol::build()</a>, <a class="el" href="a05666.html#l00130">NLPACS::CEdgeQuad::build()</a>, <a class="el" href="a05541.html#l00122">NLPACS::CChainQuad::build()</a>, <a class="el" href="a05532.html#l00048">NL3D::CCameraCol::build()</a>, <a class="el" href="a06370.html#l00098">NL3D::CShadowMap::buildClipInfoFromMatrix()</a>, <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</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="a06393.html#l01665">NL3D::CSkeletonModel::computeCurrentBBox()</a>, <a class="el" href="a06393.html#l01620">NL3D::CSkeletonModel::computeRenderedBBox()</a>, <a class="el" href="a05522.html#l00627">NLPACS::computeRetriever()</a>, <a class="el" href="a05824.html#l00633">NL3D::CInstanceLighter::computeSunContribution()</a>, <a class="el" href="a05522.html#l00331">NLPACS::computeSurfaceQuadTree()</a>, <a class="el" href="a05579.html#l00169">NLPACS::CCollisionMeshBuild::computeTrivialTranslation()</a>, <a class="el" href="a06395.html#l00051">NL3D::CSkeletonShape::CSkeletonShape()</a>, <a class="el" href="a06477.html#l00037">NLPACS::CSurfaceQuadTree::CSurfaceQuadTree()</a>, <a class="el" href="a06725.html#l00414">NL3D::CVisualCollisionEntity::doComputeLandscape()</a>, <a class="el" href="a05761.html#l02028">NLPACS::CGlobalRetriever::doMove()</a>, <a class="el" href="a06690.html#l00062">NL3D::CVegetableClipBlock::extendSphere()</a>, <a class="el" href="a06491.html#l00102">NL3D::CTessBlock::extendSphereFirst()</a>, <a class="el" href="a05761.html#l01177">NLPACS::CGlobalRetriever::findCollisionChains()</a>, <a class="el" href="a06142.html#l00897">NL3D::CParticleSystem::forceComputeBBox()</a>, <a class="el" href="a06163.html#l00214">NL3D::CPatchDLMContext::generate()</a>, <a class="el" href="a06741.html#l00710">NL3D::CWaveMakerShape::getAABBox()</a>, <a class="el" href="a06570.html#l00083">NL3D::CTransformShape::getAABBox()</a>, <a class="el" href="a06568.html#l00514">NL3D::CTransform::getAABBox()</a>, <a class="el" href="a06376.html#l00076">NL3D::IShape::getAABBox()</a>, <a class="el" href="a06152.html#l00167">NL3D::CParticleSystemShape::getAABBox()</a>, <a class="el" href="a05714.html#l00132">NL3D::CFlareShape::getAABBox()</a>, <a class="el" href="a05385.html#l00206">NLMISC::CAABBoxExt::getAABBox()</a>, <a class="el" href="a06478.html#l00062">NLPACS::IQuadNode::getBBox()</a>, <a class="el" href="a05761.html#l00260">NLPACS::CGlobalRetriever::getBorders()</a>, <a class="el" href="a06034.html#l00341">NL3D::CMiniCol::getGroundNormal()</a>, <a class="el" href="a06568.html#l01328">NL3D::CTransform::getReceiverBBox()</a>, <a class="el" href="a05870.html#l00284">NL3D::CLandscapeModel::getReceiverBBox()</a>, <a class="el" href="a05761.html#l00061">H_AUTO_DECL()</a>, <a class="el" href="a06477.html#l00086">NLPACS::CSurfaceQuadTree::init()</a>, <a class="el" href="a06302.html#l00125">NL3D::CQuadGridClipClusterQTreeNode::init()</a>, <a class="el" href="a05929.html#l01393">NLPACS::CLocalRetriever::initFaceGrid()</a>, <a class="el" href="a05824.html#l00305">NL3D::CInstanceLighter::light()</a>, <a class="el" href="a06304.html#l00204">NL3D::CQuadGridClipManager::linkModel()</a>, <a class="el" href="a06337.html#l00109">NLPACS::CRetrieverInstance::make()</a>, <a class="el" href="a05989.html#l00058">NL3D::makeBBox()</a>, <a class="el" href="a05563.html#l00156">NL3D::CCluster::makeVolume()</a>, <a class="el" href="a05761.html#l02448">NLPACS::CGlobalRetriever::refreshLrAround()</a>, <a class="el" href="a05761.html#l02554">NLPACS::CGlobalRetriever::refreshLrAroundNow()</a>, <a class="el" href="a06034.html#l00085">NL3D::CMiniCol::removeLandScapePart()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>, <a class="el" href="a05761.html#l00493">NLPACS::CGlobalRetriever::retrievePosition()</a>, <a class="el" href="a05761.html#l01937">NLPACS::CGlobalRetriever::testBBoxMove()</a>, <a class="el" href="a05761.html#l02236">NLPACS::CGlobalRetriever::testBBoxRot()</a>, <a class="el" href="a05761.html#l01864">NLPACS::CGlobalRetriever::testCylinderMove()</a>, and <a class="el" href="a06478.html#l00184">NLPACS::CSurfaceQuadTree::translate()</a>. +<p> +<div class="fragment"><pre>00066 {<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>= center;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1902_2" doxytag="NLMISC::CAABBox::setHalfSize" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::setHalfSize </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>hs</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +extend the bbox so it contains v. Warning!! By default, a bbox is the vector 0,0,0. So set the first vertex with <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter()</a> or else the bbox will be the extension of v and (0,0,0)... +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1910_2">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00067">67</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +Referenced by <a class="el" href="a06286.html#l00179">NL3D::CPSUtil::addRadiusToAABBox()</a>, <a class="el" href="a05862.html#l00385">NL3D::CLandscape::addZone()</a>, <a class="el" href="a06758.html#l01452">NL3D::CZone::applyHeightField()</a>, <a class="el" href="a06758.html#l00122">NL3D::CZone::build()</a>, <a class="el" href="a05532.html#l00048">NL3D::CCameraCol::build()</a>, <a class="el" href="a06370.html#l00135">NL3D::CShadowMap::buildCasterCameraMatrix()</a>, <a class="el" href="a06370.html#l00098">NL3D::CShadowMap::buildClipInfoFromMatrix()</a>, <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</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="a06393.html#l01665">NL3D::CSkeletonModel::computeCurrentBBox()</a>, <a class="el" href="a06393.html#l01620">NL3D::CSkeletonModel::computeRenderedBBox()</a>, <a class="el" href="a05522.html#l00627">NLPACS::computeRetriever()</a>, <a class="el" href="a06725.html#l00056">NL3D::CVisualCollisionEntity::CVisualCollisionEntity()</a>, <a class="el" href="a06725.html#l00414">NL3D::CVisualCollisionEntity::doComputeLandscape()</a>, <a class="el" href="a06690.html#l00062">NL3D::CVegetableClipBlock::extendSphere()</a>, <a class="el" href="a06491.html#l00102">NL3D::CTessBlock::extendSphereFirst()</a>, <a class="el" href="a06142.html#l00897">NL3D::CParticleSystem::forceComputeBBox()</a>, <a class="el" href="a06741.html#l00710">NL3D::CWaveMakerShape::getAABBox()</a>, <a class="el" href="a06570.html#l00083">NL3D::CTransformShape::getAABBox()</a>, <a class="el" href="a06568.html#l00514">NL3D::CTransform::getAABBox()</a>, <a class="el" href="a06376.html#l00076">NL3D::IShape::getAABBox()</a>, <a class="el" href="a06152.html#l00167">NL3D::CParticleSystemShape::getAABBox()</a>, <a class="el" href="a05714.html#l00132">NL3D::CFlareShape::getAABBox()</a>, <a class="el" href="a05385.html#l00206">NLMISC::CAABBoxExt::getAABBox()</a>, <a class="el" href="a06478.html#l00062">NLPACS::IQuadNode::getBBox()</a>, <a class="el" href="a05761.html#l00260">NLPACS::CGlobalRetriever::getBorders()</a>, <a class="el" href="a06568.html#l01328">NL3D::CTransform::getReceiverBBox()</a>, <a class="el" href="a05870.html#l00284">NL3D::CLandscapeModel::getReceiverBBox()</a>, <a class="el" href="a05761.html#l00061">H_AUTO_DECL()</a>, <a class="el" href="a06477.html#l00086">NLPACS::CSurfaceQuadTree::init()</a>, <a class="el" href="a05824.html#l00305">NL3D::CInstanceLighter::light()</a>, <a class="el" href="a06337.html#l00109">NLPACS::CRetrieverInstance::make()</a>, <a class="el" href="a05761.html#l02448">NLPACS::CGlobalRetriever::refreshLrAround()</a>, <a class="el" href="a05761.html#l02554">NLPACS::CGlobalRetriever::refreshLrAroundNow()</a>, <a class="el" href="a06034.html#l00085">NL3D::CMiniCol::removeLandScapePart()</a>, <a class="el" href="a05862.html#l00447">NL3D::CLandscape::removeZone()</a>, and <a class="el" href="a05761.html#l00493">NLPACS::CGlobalRetriever::retrievePosition()</a>. +<p> +<div class="fragment"><pre>00067 {<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>= hs;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1902_3" doxytag="NLMISC::CAABBox::setMinMax" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::setMinMax </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>bmin</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>bmax</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Build the bbox, with a min/max style bbox. +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1910_3">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00071">71</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>. +<p> +Referenced by <a class="el" href="a06155.html#l00221">NL3D::CPatch::buildBBoxFromBezierPatch()</a>, <a class="el" href="a05384.html#l00231">computeAABBoxUnion()</a>, <a class="el" href="a06741.html#l00410">NL3D::CWaterShape::computeBBox()</a>, <a class="el" href="a06246.html#l01716">NL3D::CPSLocated::computeBBox()</a>, <a class="el" href="a05384.html#l00247">computeIntersection()</a>, <a class="el" href="a06768.html#l03563">NL3D::CZoneLighter::computeTileFlagsForPositionTowardWater()</a>, <a class="el" href="a06393.html#l01987">NL3D::CSkeletonModel::computeWorldBBoxForShadow()</a>, <a class="el" href="a05384.html#l00215">extend()</a>, <a class="el" href="a05929.html#l01238">NLPACS::CLocalRetriever::retrieveAccuratePosition()</a>, <a class="el" href="a05929.html#l01064">NLPACS::CLocalRetriever::retrievePosition()</a>, <a class="el" href="a05384.html#l00262">transformAABBox()</a>, and <a class="el" href="a06304.html#l00112">NL3D::CQuadGridClipManager::updateClustersFromCamera()</a>. +<p> +<div class="fragment"><pre>00072 { +00073 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>= (bmin+bmax)/2; +00074 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>= bmax-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>; +00075 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxz1902_4" doxytag="NLMISC::CAABBox::setSize" ></a><p> +<table class="mdTable" 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 NLMISC::CAABBox::setSize </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>s</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the size of the bbox (ie 2* the halfSize). +<p> + +<p> +Reimplemented in <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1910_4">NLMISC::CAABBoxExt</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00069">69</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00056">HalfSize</a>, and <a class="el" href="a05646.html#l00977">s</a>. +<p> +Referenced by <a class="el" href="a06395.html#l00051">NL3D::CSkeletonShape::CSkeletonShape()</a>, <a class="el" href="a06477.html#l00037">NLPACS::CSurfaceQuadTree::CSurfaceQuadTree()</a>, and <a class="el" href="a06302.html#l00125">NL3D::CQuadGridClipClusterQTreeNode::init()</a>. +<p> +<div class="fragment"><pre>00069 {<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>= <a class="code" href="a04223.html#a626">s</a>/2;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1908_3" doxytag="NLMISC::CAABBox::transformAABBox" ></a><p> +<table class="mdTable" 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="a02156.html">CAABBox</a> NLMISC::CAABBox::transformAABBox </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> & </td> + <td class="mdname" nowrap> <em>mat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02156.html">CAABBox</a> & </td> + <td class="mdname" nowrap> <em>box</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a matrix on an aabbox <dl compact><dt><b>Returns:</b></dt><dd>an aabbox, bigger or equal to parameter, after the matrix multiplication</dd></dl> + +<p> +Definition at line <a class="el" href="a05384.html#l00262">262</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00087">getMax()</a>, <a class="el" href="a05385.html#l00086">getMin()</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a06682.html#l00136">NLMISC::CVector::set()</a>, <a class="el" href="a05385.html#l00071">setMinMax()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>. +<p> +Referenced by <a class="el" href="a05563.html#l00477">NL3D::CCluster::applyMatrix()</a>, <a class="el" href="a06370.html#l00135">NL3D::CShadowMap::buildCasterCameraMatrix()</a>, <a class="el" href="a06001.html#l00352">NL3D::CMeshInstance::computeWorldBBoxForShadow()</a>, <a class="el" href="a06142.html#l00897">NL3D::CParticleSystem::forceComputeBBox()</a>, <a class="el" href="a06768.html#l03067">NL3D::CZoneLighter::makeQuadGridFromWaterShapes()</a>, and <a class="el" href="a05563.html#l00311">NL3D::CCluster::setWorldMatrix()</a>. +<p> +<div class="fragment"><pre>00263 { +00264 <span class="comment">// TODO : optimize this a bit if possible...</span> +00265 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxa0">CAABBox</a> result; +00266 +00267 <span class="comment">/* OMG. Old code was false!! </span> +00268 <span class="comment"> if we have ht= M * h</span> +00269 <span class="comment"> then CVector(-ht.x, ht.y, ht.z) != M * CVector(-h.x, h.y, h.z) !!!!</span> +00270 <span class="comment"> */</span> +00271 <span class="comment">// compute corners.</span> +00272 CVector p[8]; +00273 CVector <a class="code" href="a04061.html#a0">min</a>= box.getMin(); +00274 CVector max= box.getMax(); +00275 p[0].set(<a class="code" href="a04061.html#a0">min</a>.x, <a class="code" href="a04061.html#a0">min</a>.y, <a class="code" href="a04061.html#a0">min</a>.z); +00276 p[1].set(max.x, <a class="code" href="a04061.html#a0">min</a>.y, <a class="code" href="a04061.html#a0">min</a>.z); +00277 p[2].set(<a class="code" href="a04061.html#a0">min</a>.x, max.y, <a class="code" href="a04061.html#a0">min</a>.z); +00278 p[3].set(max.x, max.y, <a class="code" href="a04061.html#a0">min</a>.z); +00279 p[4].set(<a class="code" href="a04061.html#a0">min</a>.x, <a class="code" href="a04061.html#a0">min</a>.y, max.z); +00280 p[5].set(max.x, <a class="code" href="a04061.html#a0">min</a>.y, max.z); +00281 p[6].set(<a class="code" href="a04061.html#a0">min</a>.x, max.y, max.z); +00282 p[7].set(max.x, max.y, max.z); +00283 CVector tmp; +00284 <a class="code" href="a04061.html#a0">min</a> = max = mat * p[0]; +00285 <span class="comment">// transform corners.</span> +00286 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=1;i<8;i++) +00287 { +00288 tmp= mat * p[i]; +00289 <a class="code" href="a04061.html#a0">min</a>.minof(min, tmp); +00290 max.maxof(max, tmp); +00291 } +00292 +00293 result.setMinMax(min, max); +00294 +00295 <span class="keywordflow">return</span> result; +00296 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NLMISC_1_1CAABBoxExtr0" doxytag="NLMISC::CAABBox::Center" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> <a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtr0">NLMISC::CAABBox::Center</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The center of the bbox. +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00054">54</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a05384.html#l00094">include()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtr1" doxytag="NLMISC::CAABBox::HalfSize" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> <a class="el" href="a02156.html#NLMISC_1_1CAABBoxExtr1">NLMISC::CAABBox::HalfSize</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The size/2 of the bbox. +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00056">56</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a05385.html#l00061">CAABBox()</a>, <a class="el" href="a05384.html#l00059">clipBack()</a>, <a class="el" href="a05384.html#l00039">clipFront()</a>, <a class="el" href="a05385.html#l00091">getHalfSize()</a>, <a class="el" href="a05385.html#l00087">getMax()</a>, <a class="el" href="a05385.html#l00086">getMin()</a>, <a class="el" href="a05385.html#l00096">getRadius()</a>, <a class="el" href="a05385.html#l00093">getSize()</a>, <a class="el" href="a05384.html#l00081">include()</a>, <a class="el" href="a05384.html#l00178">intersect()</a>, <a class="el" href="a05384.html#l00194">makePyramid()</a>, <a class="el" href="a05384.html#l00206">serial()</a>, <a class="el" href="a05385.html#l00067">setHalfSize()</a>, <a class="el" href="a05385.html#l00071">setMinMax()</a>, and <a class="el" href="a05385.html#l00069">setSize()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a05385.html">aabbox.h</a><li><a class="el" href="a05384.html">aabbox.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:00:55 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> |