diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a02157.html | 1813 |
1 files changed, 1813 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02157.html b/docs/doxygen/nel/a02157.html new file mode 100644 index 00000000..5a409875 --- /dev/null +++ b/docs/doxygen/nel/a02157.html @@ -0,0 +1,1813 @@ +<!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::CAABBoxExt 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::CAABBoxExt Class Reference</h1><code>#include <<a class="el" href="a05385.html">aabbox.h</a>></code> +<p> +<p>Inheritance diagram for NLMISC::CAABBoxExt: +<p><center><img src="a02157.png" usemap="#NLMISC::CAABBoxExt_map" border="0" alt=""></center> +<map name="NLMISC::CAABBoxExt_map"> +<area href="a02156.html" alt="NLMISC::CAABBox" shape="rect" coords="0,0,138,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +An Extended Axis Aligned Bouding Box. Sphere Min/Max Radius is stored for improved clip test. <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#l00159">159</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>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>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="a02157.html#NLMISC_1_1CAABBoxExta0">CAABBoxExt</a> (const <a class="el" href="a02156.html">CAABBox</a> &o)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor from a normal BBox. <a href="#NLMISC_1_1CAABBoxExta0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02157.html#NLMISC_1_1CAABBoxExta1">CAABBoxExt</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Empty bbox Constructor. <a href="#NLMISC_1_1CAABBoxExta1"></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="a02157.html#NLMISC_1_1CAABBoxExta2">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">Clip</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1914_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?? p MUST be normalized. <a href="#NLMISC_1_1CAABBoxExtz1914_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="a02157.html#NLMISC_1_1CAABBoxExtz1914_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?? p MUST be normalized. <a href="#NLMISC_1_1CAABBoxExtz1914_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="a02157.html#NLMISC_1_1CAABBoxExtz1914_2">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_1CAABBoxExtz1914_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="a02157.html#NLMISC_1_1CAABBoxExtz1914_3">intersect</a> (const <a class="el" href="a02157.html">CAABBoxExt</a> &box) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the bbox intersect the bbox box. <a href="#NLMISC_1_1CAABBoxExtz1914_3"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Gets.</div></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="a02157.html#NLMISC_1_1CAABBoxExtz1912_0">getAABBox</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a simple Axis Aligned Bounding Box (no radius inside). <a href="#NLMISC_1_1CAABBoxExtz1912_0"></a><br><br></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="a02157.html#NLMISC_1_1CAABBoxExtz1912_1">getCenter</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a simple Axis Aligned Bounding Box (no radius inside). <a href="#NLMISC_1_1CAABBoxExtz1912_1"></a><br><br></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="a02157.html#NLMISC_1_1CAABBoxExtz1912_2">getHalfSize</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a simple Axis Aligned Bounding Box (no radius inside). <a href="#NLMISC_1_1CAABBoxExtz1912_2"></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="a02157.html#NLMISC_1_1CAABBoxExtz1912_3">getMax</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a simple Axis Aligned Bounding Box (no radius inside). <a href="#NLMISC_1_1CAABBoxExtz1912_3"></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="a02157.html#NLMISC_1_1CAABBoxExtz1912_4">getMin</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a simple Axis Aligned Bounding Box (no radius inside). <a href="#NLMISC_1_1CAABBoxExtz1912_4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_5">getRadius</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the (stored!!) radius of the bbox. <a href="#NLMISC_1_1CAABBoxExtz1912_5"></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="a02157.html#NLMISC_1_1CAABBoxExtz1912_6">getSize</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the size of the bbox. <a href="#NLMISC_1_1CAABBoxExtz1912_6"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Builds.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02157.html">CAABBoxExt</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1910_0">operator=</a> (const <a class="el" href="a02156.html">CAABBox</a> &o)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtz1910_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="a02157.html#NLMISC_1_1CAABBoxExtz1910_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="a02157.html#NLMISC_1_1CAABBoxExtz1910_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_1CAABBoxExtz1910_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="a02157.html#NLMISC_1_1CAABBoxExtz1910_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_1CAABBoxExtz1910_4"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtb0">updateRadius</a> ()</td></tr> + +<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtp0">RadiusMax</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtp1">RadiusMin</a></td></tr> + +<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr> +<tr><td colspan="2"><div class="groupHeader">Clip</div></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_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"><div class="groupHeader">Builds.</div></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 colspan="2"><div class="groupHeader">Gets.</div></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>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>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 colspan=2><br><h2>Private 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_1CAABBoxExta1" doxytag="NLMISC::CAABBoxExt::CAABBoxExt" ></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::CAABBoxExt::CAABBoxExt </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. +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00174">174</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00162">RadiusMax</a>, and <a class="el" href="a05385.html#l00162">RadiusMin</a>. +<p> +<div class="fragment"><pre>00174 {<a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp1">RadiusMin</a>= <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp0">RadiusMax</a>=0;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExta0" doxytag="NLMISC::CAABBoxExt::CAABBoxExt" ></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::CAABBoxExt::CAABBoxExt </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>o</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> +Constructor from a normal BBox. +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00176">176</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00162">RadiusMax</a>, and <a class="el" href="a05385.html#l00162">RadiusMin</a>. +<p> +<div class="fragment"><pre>00176 {<a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp1">RadiusMin</a>= <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp0">RadiusMax</a>=0; *<span class="keyword">this</span>=o;} +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1914_0" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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 MUST be normalized. +<p> + +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1906_0">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05384.html#l00319">319</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00162">RadiusMax</a>, and <a class="el" href="a05385.html#l00162">RadiusMin</a>. +<p> +Referenced by <a class="el" href="a06758.html#l00922">NL3D::CZone::clip()</a>, <a class="el" href="a06302.html#l00193">NL3D::CQuadGridClipClusterQTreeNode::clip()</a>, <a class="el" href="a06011.html#l00505">NL3D::CMeshMRMSkinnedGeom::clip()</a>, <a class="el" href="a06005.html#l00856">NL3D::CMeshMRMGeom::clip()</a>, and <a class="el" href="a05989.html#l00482">NL3D::CMeshGeom::clip()</a>. +<p> +<div class="fragment"><pre>00320 { +00321 <span class="comment">// Assume normalized planes.</span> +00322 +00323 <span class="comment">// if( SpherMax OUT ) return false.</span> +00324 <span class="keywordtype">float</span> d= p*<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>; +00325 <span class="keywordflow">if</span>(d><a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp0">RadiusMax</a>) +00326 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00327 <span class="comment">// if( SphereMin IN ) return true;</span> +00328 <span class="keywordflow">if</span>(d<<a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp1">RadiusMin</a>) +00329 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00330 +00331 <span class="comment">// else, standard clip box.</span> +00332 <span class="keywordflow">return</span> CAABBox::clipBack(p); +00333 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1914_1" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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 MUST be normalized. +<p> + +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1906_1">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05384.html#l00301">301</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a05385.html#l00162">RadiusMax</a>, and <a class="el" href="a05385.html#l00162">RadiusMin</a>. +<p> +Referenced by <a class="el" href="a06758.html#l00922">NL3D::CZone::clip()</a>, and <a class="el" href="a06302.html#l00193">NL3D::CQuadGridClipClusterQTreeNode::clip()</a>. +<p> +<div class="fragment"><pre>00302 { +00303 <span class="comment">// Assume normalized planes.</span> +00304 +00305 <span class="comment">// if( SpherMax OUT ) return false.</span> +00306 <span class="keywordtype">float</span> d= p*<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>; +00307 <span class="keywordflow">if</span>(d<-<a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp0">RadiusMax</a>) +00308 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00309 <span class="comment">// if( SphereMin IN ) return true;</span> +00310 <span class="keywordflow">if</span>(d>-<a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp1">RadiusMin</a>) +00311 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00312 +00313 <span class="comment">// else, standard clip box.</span> +00314 <span class="keywordflow">return</span> CAABBox::clipFront(p); +00315 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1906_0" doxytag="NLMISC::CAABBoxExt::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<code> [inherited]</code></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">NLMISC::CAABBox::include()</a>, <a class="el" href="a05384.html#l00194">NLMISC::CAABBox::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::CAABBoxExt::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, inherited]</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">NLMISC::CAABBox::getMax()</a>, <a class="el" href="a05385.html#l00086">NLMISC::CAABBox::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">NLMISC::CAABBox::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::CAABBoxExt::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"><code> [inherited]</code></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">NLMISC::CAABBox::getMax()</a>, <a class="el" href="a05385.html#l00086">NLMISC::CAABBox::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">NLMISC::CAABBox::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="a02157.html#NLMISC_1_1CAABBoxExtz1910_3">setMinMax</a>(minr, maxr); +00258 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1902_0" doxytag="NLMISC::CAABBoxExt::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><code> [inherited]</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> +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">NLMISC::CAABBox::getMax()</a>, <a class="el" href="a05385.html#l00086">NLMISC::CAABBox::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">NLMISC::CAABBox::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="a02157.html#NLMISC_1_1CAABBoxExtz1912_4">getMin</a>(), bmax= <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_3">getMax</a>(); +00218 +00219 bmin.minof(bmin, v); +00220 bmax.maxof(bmax, v); +00221 <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtz1910_3">setMinMax</a>(bmin, bmax); +00222 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1912_0" doxytag="NLMISC::CAABBoxExt::getAABBox" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02156.html">CAABBox</a> NLMISC::CAABBoxExt::getAABBox </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> +Return a simple Axis Aligned Bounding Box (no radius inside). +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00206">206</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00199">getCenter()</a>, <a class="el" href="a05385.html#l00200">getHalfSize()</a>, <a class="el" href="a05385.html#l00066">NLMISC::CAABBox::setCenter()</a>, and <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>. +<p> +Referenced by <a class="el" href="a05862.html#l00385">NL3D::CLandscape::addZone()</a>, <a class="el" href="a06768.html#l02045">NL3D::CZoneLighter::buildZoneInformation()</a>, <a class="el" href="a06361.html#l00127">NL3D::CSegRemanenceShape::getAABBox()</a>, <a class="el" href="a06012.html#l00726">NL3D::CMeshMRMSkinned::getAABBox()</a>, <a class="el" href="a06006.html#l00746">NL3D::CMeshMRM::getAABBox()</a>, <a class="el" href="a05990.html#l00271">NL3D::CMesh::getAABBox()</a>, and <a class="el" href="a05862.html#l00447">NL3D::CLandscape::removeZone()</a>. +<p> +<div class="fragment"><pre>00206 { <a class="code" href="a02156.html#NLMISC_1_1CAABBoxa0">CAABBox</a> box; box.setCenter(<a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_1">getCenter</a>()); box.setHalfSize(<a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_2">getHalfSize</a>()); <span class="keywordflow">return</span> box; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1912_1" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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> +Return a simple Axis Aligned Bounding Box (no radius inside). +<p> + +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_0">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00199">199</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a06034.html#l00116">NL3D::CMiniCol::addZone()</a>, <a class="el" href="a05862.html#l02380">NL3D::CLandscape::buildCollideFaces()</a>, <a class="el" href="a06360.html#l00312">NL3D::CSegRemanenceShape::clip()</a>, <a class="el" href="a06302.html#l00193">NL3D::CQuadGridClipClusterQTreeNode::clip()</a>, <a class="el" href="a06011.html#l00505">NL3D::CMeshMRMSkinnedGeom::clip()</a>, <a class="el" href="a06005.html#l00856">NL3D::CMeshMRMGeom::clip()</a>, <a class="el" href="a05989.html#l00482">NL3D::CMeshGeom::clip()</a>, <a class="el" href="a06758.html#l00099">NL3D::CZone::computeBBScaleBias()</a>, <a class="el" href="a05385.html#l00206">getAABBox()</a>, <a class="el" href="a06768.html#l00920">NL3D::CZoneLighter::light()</a>, and <a class="el" href="a06302.html#l00268">NL3D::CQuadGridClipClusterQTreeNode::noFrustumClip()</a>. +<p> +<div class="fragment"><pre>00199 {<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_1CAABBoxExtz1912_2" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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> +Return a simple Axis Aligned Bounding Box (no radius inside). +<p> + +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_1">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00200">200</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a06758.html#l00099">NL3D::CZone::computeBBScaleBias()</a>, and <a class="el" href="a05385.html#l00206">getAABBox()</a>. +<p> +<div class="fragment"><pre>00200 {<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::CAABBoxExt::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, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="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">NLMISC::CAABBox::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_1CAABBoxExtz1912_3" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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> +Return a simple Axis Aligned Bounding Box (no radius inside). +<p> + +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_3">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00198">198</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a06768.html#l00741">InitZBuffer()</a>. +<p> +<div class="fragment"><pre>00198 {<span class="keywordflow">return</span> CAABBox::getMax();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1904_1" doxytag="NLMISC::CAABBoxExt::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, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="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">NLMISC::CAABBox::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_1CAABBoxExtz1912_4" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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> +Return a simple Axis Aligned Bounding Box (no radius inside). +<p> + +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_5">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00197">197</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a06768.html#l00741">InitZBuffer()</a>. +<p> +<div class="fragment"><pre>00197 {<span class="keywordflow">return</span> CAABBox::getMin();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1912_5" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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 (stored!!) radius of the bbox. +<p> + +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_6">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00204">204</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00162">RadiusMax</a>. +<p> +Referenced by <a class="el" href="a06034.html#l00116">NL3D::CMiniCol::addZone()</a>, <a class="el" href="a05862.html#l02380">NL3D::CLandscape::buildCollideFaces()</a>, <a class="el" href="a06360.html#l00312">NL3D::CSegRemanenceShape::clip()</a>, <a class="el" href="a06302.html#l00193">NL3D::CQuadGridClipClusterQTreeNode::clip()</a>, <a class="el" href="a06011.html#l00505">NL3D::CMeshMRMSkinnedGeom::clip()</a>, <a class="el" href="a06005.html#l00856">NL3D::CMeshMRMGeom::clip()</a>, <a class="el" href="a05989.html#l00482">NL3D::CMeshGeom::clip()</a>, <a class="el" href="a06011.html#l01273">NL3D::CMeshMRMSkinnedGeom::compileRunTime()</a>, <a class="el" href="a06005.html#l02554">NL3D::CMeshMRMGeom::compileRunTime()</a>, <a class="el" href="a05989.html#l01062">NL3D::CMeshGeom::compileRunTime()</a>, and <a class="el" href="a06302.html#l00268">NL3D::CQuadGridClipClusterQTreeNode::noFrustumClip()</a>. +<p> +<div class="fragment"><pre>00204 {<span class="keywordflow">return</span> <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp0">RadiusMax</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1904_2" doxytag="NLMISC::CAABBoxExt::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, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="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">NLMISC::CAABBox::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_1CAABBoxExtz1912_6" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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 from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1904_8">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00202">202</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +<div class="fragment"><pre>00202 {<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::CAABBoxExt::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<code> [inherited]</code></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">NLMISC::CAABBox::Center</a>, <a class="el" href="a05385.html#l00056">NLMISC::CAABBox::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::CAABBoxExt::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<code> [inherited]</code></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">NLMISC::CAABBox::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">NLMISC::CAABBox::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">NLMISC::CAABBox::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::CAABBoxExt::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<code> [inherited]</code></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">NLMISC::CAABBox::include()</a>, <a class="el" href="a05384.html#l00194">NLMISC::CAABBox::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::CAABBoxExt::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<code> [inherited]</code></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">NLMISC::CAABBox::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_1CAABBoxExtz1906_5" doxytag="NLMISC::CAABBoxExt::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<code> [inherited]</code></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">NLMISC::CAABBox::getMax()</a>, <a class="el" href="a05385.html#l00086">NLMISC::CAABBox::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="a02157.html#NLMISC_1_1CAABBoxExtz1912_4">getMin</a>(), maxa = <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtz1912_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_1CAABBoxExtz1914_2" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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<code> [inline]</code></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 from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1906_7">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00219">219</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +<div class="fragment"><pre>00220 {<span class="keywordflow">return</span> CAABBox::intersect(a,b,c);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1914_3" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::intersect </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02157.html">CAABBoxExt</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>box</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> +Does the bbox intersect the bbox box. +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00216">216</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a05862.html#l02380">NL3D::CLandscape::buildCollideFaces()</a>. +<p> +<div class="fragment"><pre>00217 {<span class="keywordflow">return</span> CAABBox::intersect(box);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1908_1" doxytag="NLMISC::CAABBoxExt::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<code> [inherited]</code></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">NLMISC::CAABBox::HalfSize</a>, and <a class="el" href="a06170.html#l00036">NLMISC::CPlane::make()</a>. +<p> +Referenced by <a class="el" href="a05384.html#l00156">NLMISC::CAABBox::clipSegment()</a>, and <a class="el" href="a05384.html#l00121">NLMISC::CAABBox::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_1CAABBoxExtz1910_0" doxytag="NLMISC::CAABBoxExt::operator=" ></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="a02157.html">CAABBoxExt</a>& NLMISC::CAABBoxExt::operator= </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>o</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00191">191</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a05385.html#l00091">NLMISC::CAABBox::getHalfSize()</a>, and <a class="el" href="a05385.html#l00164">updateRadius()</a>. +<p> +<div class="fragment"><pre>00191 {<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>= o.getCenter(); <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>= o.getHalfSize(); <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtb0">updateRadius</a>(); <span class="keywordflow">return</span> (*this);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExta2" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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 from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxa1">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05384.html#l00337">337</a> of file <a class="el" href="a05384.html">aabbox.cpp</a>. +<p> +References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, and <a class="el" href="a05385.html#l00164">updateRadius()</a>. +<p> +<div class="fragment"><pre>00338 { +00339 CAABBox::serial(f); +00340 <span class="keywordflow">if</span>(f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00341 <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtb0">updateRadius</a>(); +00342 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1910_1" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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="a02157.html#NLMISC_1_1CAABBoxExtz1910_1">setCenter()</a> or else the bbox will be the extension of v and (0,0,0)... +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00181">181</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a06011.html#l00206">NL3D::CMeshMRMSkinnedGeom::build()</a>, <a class="el" href="a06005.html#l00246">NL3D::CMeshMRMGeom::build()</a>, <a class="el" href="a05989.html#l00172">NL3D::CMeshGeom::build()</a>, and <a class="el" href="a06360.html#l00041">NL3D::CSegRemanenceShape::CSegRemanenceShape()</a>. +<p> +<div class="fragment"><pre>00181 {<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>= center;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1910_2" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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="a02157.html#NLMISC_1_1CAABBoxExtz1910_1">setCenter()</a> or else the bbox will be the extension of v and (0,0,0)... +<p> +Reimplemented from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00182">182</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00164">updateRadius()</a>. +<p> +Referenced by <a class="el" href="a06758.html#l00099">NL3D::CZone::computeBBScaleBias()</a>, and <a class="el" href="a06360.html#l00041">NL3D::CSegRemanenceShape::CSegRemanenceShape()</a>. +<p> +<div class="fragment"><pre>00182 {<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>= hs; <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtb0">updateRadius</a>();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1910_3" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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 from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_3">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00185">185</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05385.html#l00164">updateRadius()</a>. +<p> +<div class="fragment"><pre>00186 { +00187 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>= (bmin+bmax)/2; +00188 <a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>= bmax-<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr0">Center</a>; +00189 <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtb0">updateRadius</a>(); +00190 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1910_4" doxytag="NLMISC::CAABBoxExt::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::CAABBoxExt::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 from <a class="el" href="a02156.html#NLMISC_1_1CAABBoxz1902_4">NLMISC::CAABBox</a>. +<p> +Definition at line <a class="el" href="a05385.html#l00183">183</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05646.html#l00977">s</a>, and <a class="el" href="a05385.html#l00164">updateRadius()</a>. +<p> +Referenced by <a class="el" href="a06011.html#l00206">NL3D::CMeshMRMSkinnedGeom::build()</a>, <a class="el" href="a06005.html#l00246">NL3D::CMeshMRMGeom::build()</a>, and <a class="el" href="a05989.html#l00172">NL3D::CMeshGeom::build()</a>. +<p> +<div class="fragment"><pre>00183 {<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>= <a class="code" href="a04223.html#a626">s</a>/2; <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtb0">updateRadius</a>();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtz1908_3" doxytag="NLMISC::CAABBoxExt::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, inherited]</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">NLMISC::CAABBox::getMax()</a>, <a class="el" href="a05385.html#l00086">NLMISC::CAABBox::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">NLMISC::CAABBox::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> +<a class="anchor" name="NLMISC_1_1CAABBoxExtb0" doxytag="NLMISC::CAABBoxExt::updateRadius" ></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::CAABBoxExt::updateRadius </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected]</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#l00164">164</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +References <a class="el" href="a05587.html#l00124">NLMISC::minof()</a>, <a class="el" href="a05385.html#l00162">RadiusMax</a>, <a class="el" href="a05385.html#l00162">RadiusMin</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="a05385.html#l00191">operator=()</a>, <a class="el" href="a05384.html#l00337">serial()</a>, <a class="el" href="a05385.html#l00182">setHalfSize()</a>, <a class="el" href="a05385.html#l00185">setMinMax()</a>, and <a class="el" href="a05385.html#l00183">setSize()</a>. +<p> +<div class="fragment"><pre>00165 { +00166 <span class="comment">// The bounding sphere.</span> +00167 <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp0">RadiusMax</a>= CAABBox::getRadius(); +00168 <span class="comment">// The including sphere.</span> +00169 <a class="code" href="a02157.html#NLMISC_1_1CAABBoxExtp1">RadiusMin</a>= <a class="code" href="a05378.html#a375">NLMISC::minof</a>((<span class="keywordtype">float</span>)fabs(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.x), (<span class="keywordtype">float</span>)fabs(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.y), (<span class="keywordtype">float</span>)fabs(<a class="code" href="a02156.html#NLMISC_1_1CAABBoxExtr1">HalfSize</a>.z)); +00170 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NLMISC_1_1CAABBoxExtr0" doxytag="NLMISC::CAABBoxExt::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, inherited]</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">NLMISC::CAABBox::include()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtr1" doxytag="NLMISC::CAABBoxExt::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, inherited]</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">NLMISC::CAABBox::CAABBox()</a>, <a class="el" href="a05384.html#l00059">NLMISC::CAABBox::clipBack()</a>, <a class="el" href="a05384.html#l00039">NLMISC::CAABBox::clipFront()</a>, <a class="el" href="a05385.html#l00091">NLMISC::CAABBox::getHalfSize()</a>, <a class="el" href="a05385.html#l00087">NLMISC::CAABBox::getMax()</a>, <a class="el" href="a05385.html#l00086">NLMISC::CAABBox::getMin()</a>, <a class="el" href="a05385.html#l00096">NLMISC::CAABBox::getRadius()</a>, <a class="el" href="a05385.html#l00093">NLMISC::CAABBox::getSize()</a>, <a class="el" href="a05384.html#l00081">NLMISC::CAABBox::include()</a>, <a class="el" href="a05384.html#l00178">NLMISC::CAABBox::intersect()</a>, <a class="el" href="a05384.html#l00194">NLMISC::CAABBox::makePyramid()</a>, <a class="el" href="a05384.html#l00206">NLMISC::CAABBox::serial()</a>, <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>, <a class="el" href="a05385.html#l00071">NLMISC::CAABBox::setMinMax()</a>, and <a class="el" href="a05385.html#l00069">NLMISC::CAABBox::setSize()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtp0" doxytag="NLMISC::CAABBoxExt::RadiusMax" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtp0">NLMISC::CAABBoxExt::RadiusMax</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00162">162</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a05385.html#l00174">CAABBoxExt()</a>, <a class="el" href="a05384.html#l00319">clipBack()</a>, <a class="el" href="a05384.html#l00301">clipFront()</a>, <a class="el" href="a05385.html#l00204">getRadius()</a>, and <a class="el" href="a05385.html#l00164">updateRadius()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CAABBoxExtp1" doxytag="NLMISC::CAABBoxExt::RadiusMin" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float <a class="el" href="a02157.html#NLMISC_1_1CAABBoxExtp1">NLMISC::CAABBoxExt::RadiusMin</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05385.html#l00162">162</a> of file <a class="el" href="a05385.html">aabbox.h</a>. +<p> +Referenced by <a class="el" href="a05385.html#l00174">CAABBoxExt()</a>, <a class="el" href="a05384.html#l00319">clipBack()</a>, <a class="el" href="a05384.html#l00301">clipFront()</a>, and <a class="el" href="a05385.html#l00164">updateRadius()</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:01:16 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> |