aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03082.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a03082.html')
-rw-r--r--docs/doxygen/nel/a03082.html1203
1 files changed, 1203 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03082.html b/docs/doxygen/nel/a03082.html
new file mode 100644
index 00000000..3be8a59b
--- /dev/null
+++ b/docs/doxygen/nel/a03082.html
@@ -0,0 +1,1203 @@
+<!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::CPlane class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLMISC::CPlane Class Reference</h1><code>#include &lt;<a class="el" href="a06171.html">plane.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Class <a class="el" href="a03082.html">CPlane</a>. a 3D Plane.<p>
+A vector v is said "front" of a plane p if p*v&gt;0.<p>
+A "front segment" or a "front polygon" have all their vertices in front of the plane. <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="a06171.html#l00049">49</a> of file <a class="el" href="a06171.html">plane.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Projection / clipping.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_0">clipPolygonBack</a> (<a class="el" href="a03128.html">CVector</a> <a class="el" href="a04223.html#a647">in</a>[], <a class="el" href="a03128.html">CVector</a> out[], <a class="el" href="a04558.html#a14">sint</a> nIn) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_1">clipPolygonFront</a> (<a class="el" href="a03128.html">CVector</a> <a class="el" href="a04223.html#a647">in</a>[], <a class="el" href="a03128.html">CVector</a> out[], <a class="el" href="a04558.html#a14">sint</a> nIn) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_2">clipSegmentBack</a> (<a class="el" href="a03128.html">CVector</a> &amp;p0, <a class="el" href="a03128.html">CVector</a> &amp;p1) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_3">clipSegmentFront</a> (<a class="el" href="a03128.html">CVector</a> &amp;p0, <a class="el" href="a03128.html">CVector</a> &amp;p1) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_4">distance</a> (const <a class="el" href="a03128.html">CVector</a> &amp;p) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_5">intersect</a> (const <a class="el" href="a03128.html">CVector</a> &amp;p0, const <a class="el" href="a03128.html">CVector</a> &amp;p1) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Intersect a line onto a plane. p1 is returned if line // to plane. <a href="#NLMISC_1_1CPlanez1992_5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_6">operator *</a> (const <a class="el" href="a03128.html">CVector</a> &amp;p) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return plane*vector. <a href="#NLMISC_1_1CPlanez1992_6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_7">project</a> (const <a class="el" href="a03128.html">CVector</a> &amp;p0) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Project a point onto a plane. <a href="#NLMISC_1_1CPlanez1992_7"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Object.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1988_0">CPlane</a> (const <a class="el" href="a03082.html">CPlane</a> &amp;<a class="el" href="a04223.html#a576">v</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy Constructor. <a href="#NLMISC_1_1CPlanez1988_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1988_1">CPlane</a> (float _a, float _b, float _c, float _d)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor . <a href="#NLMISC_1_1CPlanez1988_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1988_2">CPlane</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor that does nothing. <a href="#NLMISC_1_1CPlanez1988_2"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Construction/Get.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_0">getNormal</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_1">make</a> (const <a class="el" href="a03128.html">CVector</a> &amp;p0, const <a class="el" href="a03128.html">CVector</a> &amp;p1, const <a class="el" href="a03128.html">CVector</a> &amp;p2)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a> (const <a class="el" href="a03128.html">CVector</a> &amp;normal, const <a class="el" href="a03128.html">CVector</a> &amp;pos)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_3">normalize</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03082.html">CPlane</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_4">normed</a> () const </td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">normal inversion</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1994_0">invert</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">invert this plane (same position, but inverted normal) <a href="#NLMISC_1_1CPlanez1994_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03082.html">CPlane</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1994_1">inverted</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the inverted version of this plane (same position, but inverted normal) <a href="#NLMISC_1_1CPlanez1994_1"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Misc</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1996_0">operator==</a> (const <a class="el" href="a03082.html">CPlane</a> &amp;o) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlanez1996_1">serial</a> (<a class="el" href="a02270.html">IStream</a> &amp;f)</td></tr>
+
+<tr><td colspan=2><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlaneo0">a</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlaneo1">b</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlaneo2">c</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03082.html#NLMISC_1_1CPlaneo3">d</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CPlanez1988_2" doxytag="NLMISC::CPlane::CPlane" ></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::CPlane::CPlane </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor that does nothing.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00059">59</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+Referenced by <a class="el" href="a06170.html#l00154">inverted()</a>.
+<p>
+<div class="fragment"><pre>00059 {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1988_1" doxytag="NLMISC::CPlane::CPlane" ></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::CPlane::CPlane </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>_a</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>_b</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>_c</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>_d</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor .
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00061">61</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, and <a class="el" href="a06171.html#l00052">d</a>.
+<p>
+<div class="fragment"><pre>00061 : <a class="code" href="a03082.html#NLMISC_1_1CPlaneo0">a</a>(_a), <a class="code" href="a03082.html#NLMISC_1_1CPlaneo1">b</a>(_b), <a class="code" href="a03082.html#NLMISC_1_1CPlaneo2">c</a>(_c), <a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a>(_d) {}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1988_0" doxytag="NLMISC::CPlane::CPlane" ></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::CPlane::CPlane </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03082.html">CPlane</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>v</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Copy Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00063">63</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, <a class="el" href="a06171.html#l00052">d</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00063 : <a class="code" href="a03082.html#NLMISC_1_1CPlaneo0">a</a>(<a class="code" href="a04223.html#a576">v</a>.a), <a class="code" href="a03082.html#NLMISC_1_1CPlaneo1">b</a>(<a class="code" href="a04223.html#a576">v</a>.b), <a class="code" href="a03082.html#NLMISC_1_1CPlaneo2">c</a>(<a class="code" href="a04223.html#a576">v</a>.c), <a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a>(<a class="code" href="a04223.html#a576">v</a>.d) {}
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CPlanez1992_0" doxytag="NLMISC::CPlane::clipPolygonBack" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> NLMISC::CPlane::clipPolygonBack </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>in</em>[], </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">CVector</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>out</em>[], </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nIn</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Clip a polygon by a plane. The "back polygon" is returned. Nb: Out must be allocated to nIn+1 (at less). <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>in</em>&nbsp;</td><td>the input polygon </td></tr>
+ <tr><td valign=top><em>out</em>&nbsp;</td><td>the clipped back polygon </td></tr>
+ <tr><td valign=top><em>nIn</em>&nbsp;</td><td>number of vertices of input polygon </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>number of vertices of out. 0 is returned if In polygon entirely front, or if nIn&lt;=2.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06170.html#l00097">97</a> of file <a class="el" href="a06170.html">plane.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01122">in</a>, <a class="el" href="a06172.html#l00051">intersect()</a>, <a class="el" href="a05646.html#l00977">s</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+Referenced by <a class="el" href="a06190.html#l00056">NLMISC::CPolygon::clip()</a>, and <a class="el" href="a05532.html#l00131">NL3D::CCameraCol::minimizeDistanceAgainstTri()</a>.
+<p>
+<div class="fragment"><pre>00098 {
+00099 <a class="code" href="a04558.html#a14">sint</a> nOut=0,<a class="code" href="a04223.html#a626">s</a>,p,i;
+00100 <span class="keywordflow">if</span>(nIn&lt;=2) <span class="keywordflow">return</span> 0;
+00101
+00102 <a class="code" href="a04223.html#a626">s</a>=nIn-1;
+00103
+00104 <span class="keywordflow">for</span> (i=0;i&lt;nIn;i++)
+00105 {
+00106 p=i;
+00107 <span class="keywordflow">if</span> ( (*this)*<a class="code" href="a04223.html#a647">in</a>[p] &lt; 0 )
+00108 {
+00109 <span class="keywordflow">if</span> ( (*this)*<a class="code" href="a04223.html#a647">in</a>[<a class="code" href="a04223.html#a626">s</a>] &gt; 0 )
+00110 out[nOut++]= <a class="code" href="a03082.html#NLMISC_1_1CPlanez1992_5">intersect</a>(in[s],in[p]);
+00111 out[nOut++]=<a class="code" href="a04223.html#a647">in</a>[p];
+00112 }
+00113 <span class="keywordflow">else</span>
+00114 {
+00115 <span class="keywordflow">if</span> ( (*this)*<a class="code" href="a04223.html#a647">in</a>[<a class="code" href="a04223.html#a626">s</a>] &lt; 0 )
+00116 out[nOut++]= <a class="code" href="a03082.html#NLMISC_1_1CPlanez1992_5">intersect</a>(in[s],in[p]);
+00117 }
+00118 <a class="code" href="a04223.html#a626">s</a>=p;
+00119 }
+00120
+00121 <span class="keywordflow">return</span> nOut;
+00122 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1992_1" doxytag="NLMISC::CPlane::clipPolygonFront" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> NLMISC::CPlane::clipPolygonFront </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>in</em>[], </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">CVector</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>out</em>[], </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nIn</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Clip a polygon by a plane. The "front polygon" is returned. Nb: Out must be allocated to nIn+1 (at less). <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>in</em>&nbsp;</td><td>the input polygon </td></tr>
+ <tr><td valign=top><em>out</em>&nbsp;</td><td>the clipped front polygon </td></tr>
+ <tr><td valign=top><em>nIn</em>&nbsp;</td><td>number of vertices of input polygon </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>number of vertices of out. 0 is returned if In polygon entirely back, or if nIn&lt;=2.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06170.html#l00125">125</a> of file <a class="el" href="a06170.html">plane.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01122">in</a>, <a class="el" href="a06172.html#l00051">intersect()</a>, <a class="el" href="a05646.html#l00977">s</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+Referenced by <a class="el" href="a05618.html#l00337">NL3D::CCubeGrid&lt; TCell &gt;::project()</a>.
+<p>
+<div class="fragment"><pre>00126 {
+00127 <a class="code" href="a04558.html#a14">sint</a> nOut=0,<a class="code" href="a04223.html#a626">s</a>,p,i;
+00128 <span class="keywordflow">if</span>(nIn&lt;=2) <span class="keywordflow">return</span> 0;
+00129
+00130 <a class="code" href="a04223.html#a626">s</a>=nIn-1;
+00131
+00132 <span class="keywordflow">for</span> (i=0;i&lt;nIn;i++)
+00133 {
+00134 p=i;
+00135 <span class="keywordflow">if</span> ( (*this)*<a class="code" href="a04223.html#a647">in</a>[p] &gt; 0 )
+00136 {
+00137 <span class="keywordflow">if</span> ( (*this)*<a class="code" href="a04223.html#a647">in</a>[<a class="code" href="a04223.html#a626">s</a>] &lt; 0 )
+00138 out[nOut++]= <a class="code" href="a03082.html#NLMISC_1_1CPlanez1992_5">intersect</a>(in[s],in[p]);
+00139 out[nOut++]=<a class="code" href="a04223.html#a647">in</a>[p];
+00140 }
+00141 <span class="keywordflow">else</span>
+00142 {
+00143 <span class="keywordflow">if</span> ( (*this)*<a class="code" href="a04223.html#a647">in</a>[<a class="code" href="a04223.html#a626">s</a>] &gt; 0 )
+00144 out[nOut++]= <a class="code" href="a03082.html#NLMISC_1_1CPlanez1992_5">intersect</a>(in[s],in[p]);
+00145 }
+00146 <a class="code" href="a04223.html#a626">s</a>=p;
+00147 }
+00148
+00149 <span class="keywordflow">return</span> nOut;
+00150 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1992_2" doxytag="NLMISC::CPlane::clipSegmentBack" ></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::CPlane::clipSegmentBack </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p0</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> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p1</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Clip a segment onto a plane. The "back segment" is written in (p1,p2). If segment is entirely "front", (p1,p2) is not modified. <dl compact><dt><b>Returns:</b></dt><dd>false if segment entirely front, or true. </dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_3">clipSegmentFront()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06170.html#l00054">54</a> of file <a class="el" href="a06170.html">plane.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05384.html#l00156">NLMISC::CAABBox::clipSegment()</a>, and <a class="el" href="a05384.html#l00137">NLMISC::CAABBox::intersect()</a>.
+<p>
+<div class="fragment"><pre>00055 {
+00056 <span class="keywordtype">float</span> d0,d1,decal;
+00057 CVector proj;
+00058
+00059 d0= (*this)*p0;
+00060 d1= (*this)*p1;
+00061 <span class="keywordflow">if</span>(d0&lt;0 &amp;&amp; d1&lt;0)
+00062 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00063 <span class="keywordflow">if</span>(d0&gt;=0 &amp;&amp; d1&gt;=0)
+00064 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00065 <span class="comment">// Clip line.</span>
+00066 decal= (0-d0) / (d1-d0);
+00067 proj= p0+ (p1-p0)*decal;
+00068 <span class="keywordflow">if</span>(d0&gt;=0)
+00069 p0=proj;
+00070 <span class="keywordflow">else</span>
+00071 p1=proj;
+00072 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00073 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1992_3" doxytag="NLMISC::CPlane::clipSegmentFront" ></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::CPlane::clipSegmentFront </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p0</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> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p1</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Clip a segment onto a plane. The "front segment" is written in (p1,p2). If segment is entirely "back", (p1,p2) is not modified. <dl compact><dt><b>Returns:</b></dt><dd>false if segment entirely back, or true. </dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_2">clipSegmentBack()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06170.html#l00074">74</a> of file <a class="el" href="a06170.html">plane.cpp</a>.
+<p>
+<div class="fragment"><pre>00075 {
+00076 <span class="keywordtype">float</span> d0,d1,decal;
+00077 CVector proj;
+00078
+00079 d0= (*this)*p0;
+00080 d1= (*this)*p1;
+00081 <span class="keywordflow">if</span>(d0&gt;=0 &amp;&amp; d1&gt;=0)
+00082 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00083 <span class="keywordflow">if</span>(d0&lt;0 &amp;&amp; d1&lt;0)
+00084 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00085 <span class="comment">// Clip line.</span>
+00086 decal= (0-d0) / (d1-d0);
+00087 proj= p0+ (p1-p0)*decal;
+00088 <span class="keywordflow">if</span>(d0&lt;0)
+00089 p0=proj;
+00090 <span class="keywordflow">else</span>
+00091 p1=proj;
+00092 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00093 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1992_4" doxytag="NLMISC::CPlane::distance" ></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::CPlane::distance </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>p</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the distance of p from the plane. Hence, the result is &gt;=0. Since the plane normal may not be normalized, <a class="el" href="a03082.html#NLMISC_1_1CPlanez1992_4">distance()</a> compute the distance with the normalized normal of plane. If you are sure that your plane has a normalized normal, it is much faster to do a <code>fabs(p*v)</code>.
+<p>
+Definition at line <a class="el" href="a06172.html#l00040">40</a> of file <a class="el" href="a06172.html">plane_inline.h</a>.
+<p>
+References <a class="el" href="a06172.html#l00081">normed()</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00041 {
+00042 <a class="code" href="a03082.html#NLMISC_1_1CPlanez1988_2">CPlane</a> p= <a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_4">normed</a>();
+00043 <span class="keywordflow">return</span> (<span class="keywordtype">float</span>)fabs(p*v);
+00044 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1990_0" doxytag="NLMISC::CPlane::getNormal" ></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::CPlane::getNormal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the normal vector of the plane. Since the normal of the plane may not be normalized (if setuped without <a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_2">make()</a>), the returned normal may NOT be normalized.
+<p>
+Definition at line <a class="el" href="a06172.html#l00035">35</a> of file <a class="el" href="a06172.html">plane_inline.h</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, and <a class="el" href="a06171.html#l00052">c</a>.
+<p>
+Referenced by <a class="el" href="a06768.html#l02045">NL3D::CZoneLighter::buildZoneInformation()</a>, <a class="el" href="a06193.html#l00262">NL3D::CPortal::clipRay()</a>, <a class="el" href="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, <a class="el" href="a06034.html#l00341">NL3D::CMiniCol::getGroundNormal()</a>, <a class="el" href="a05565.html#l01098">NLSOUND::CClusteredSound::getPolyNearestPos()</a>, <a class="el" href="a05532.html#l00131">NL3D::CCameraCol::minimizeDistanceAgainstTri()</a>, <a class="el" href="a06172.html#l00068">normalize()</a>, <a class="el" href="a06287.html#l01275">NL3D::CPSZoneRectangle::performMotion()</a>, <a class="el" href="a06287.html#l00533">NL3D::CPSZoneDisc::performMotion()</a>, <a class="el" href="a06287.html#l00215">NL3D::CPSZonePlane::performMotion()</a>, <a class="el" href="a06172.html#l00062">project()</a>, and <a class="el" href="a06768.html#l00633">NL3D::CRenderZBuffer::run()</a>.
+<p>
+<div class="fragment"><pre>00036 {
+00037 <span class="keywordflow">return</span> CVector(a,b,c);
+00038 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1992_5" doxytag="NLMISC::CPlane::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"> <a class="el" href="a03128.html">CVector</a> NLMISC::CPlane::intersect </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p1</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</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>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Intersect a line onto a plane. p1 is returned if line // to plane.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06172.html#l00051">51</a> of file <a class="el" href="a06172.html">plane_inline.h</a>.
+<p>
+Referenced by <a class="el" href="a06170.html#l00097">clipPolygonBack()</a>, <a class="el" href="a06170.html#l00125">clipPolygonFront()</a>, <a class="el" href="a06034.html#l00341">NL3D::CMiniCol::getGroundNormal()</a>, <a class="el" href="a05929.html#l01479">NLPACS::CLocalRetriever::getHeight()</a>, <a class="el" href="a06190.html#l00219">NLMISC::CBSPNode2v::insert()</a>, <a class="el" href="a05686.html#l00089">NL3D::CEvent3dMouseListener::operator()()</a>, <a class="el" href="a06172.html#l00062">project()</a>, <a class="el" href="a05618.html#l00337">NL3D::CCubeGrid&lt; TCell &gt;::project()</a>, <a class="el" href="a05618.html#l00253">NL3D::CCubeGrid&lt; TCell &gt;::select()</a>, <a class="el" href="a06034.html#l00242">NL3D::CMiniCol::snapToGround()</a>, <a class="el" href="a05929.html#l01413">NLPACS::CLocalRetriever::snapToInteriorGround()</a>, and <a class="el" href="a06725.html#l00366">NL3D::CVisualCollisionEntity::triangleIntersect()</a>.
+<p>
+<div class="fragment"><pre>00052 {
+00053 <span class="keywordtype">float</span> decal;
+00054 <span class="keywordtype">float</span> da= (*this)*p0;
+00055 <span class="keywordtype">float</span> db= (*this)*p1;
+00056 <span class="keywordflow">if</span>(db-da == 0)
+00057 <span class="keywordflow">return</span> p0;
+00058 decal= ( 0-da ) / ( db - da );
+00059 <span class="keywordflow">return</span> p0 + (p1-p0)*decal;
+00060 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1994_0" doxytag="NLMISC::CPlane::invert" ></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::CPlane::invert </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+invert this plane (same position, but inverted normal)
+<p>
+
+<p>
+Definition at line <a class="el" href="a06170.html#l00160">160</a> of file <a class="el" href="a06170.html">plane.cpp</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, and <a class="el" href="a06171.html#l00052">d</a>.
+<p>
+<div class="fragment"><pre>00161 {
+00162 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo0">a</a> = -<a class="code" href="a03082.html#NLMISC_1_1CPlaneo0">a</a>;
+00163 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo1">b</a> = -<a class="code" href="a03082.html#NLMISC_1_1CPlaneo1">b</a>;
+00164 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo2">c</a> = -<a class="code" href="a03082.html#NLMISC_1_1CPlaneo2">c</a>;
+00165 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a> = -<a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a>;
+00166 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1994_1" doxytag="NLMISC::CPlane::inverted" ></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="a03082.html">CPlane</a> NLMISC::CPlane::inverted </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the inverted version of this plane (same position, but inverted normal)
+<p>
+
+<p>
+Definition at line <a class="el" href="a06170.html#l00154">154</a> of file <a class="el" href="a06170.html">plane.cpp</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, <a class="el" href="a06171.html#l00059">CPlane()</a>, and <a class="el" href="a06171.html#l00052">d</a>.
+<p>
+<div class="fragment"><pre>00155 {
+00156 <span class="keywordflow">return</span> <a class="code" href="a03082.html#NLMISC_1_1CPlanez1988_2">CPlane</a>(-a, -b, -c, -d);
+00157 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1990_1" doxytag="NLMISC::CPlane::make" ></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::CPlane::make </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Make a plane with 3 vertices. NB: the plane normal is normalized by <a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_2">make()</a>.
+<p>
+Definition at line <a class="el" href="a06170.html#l00044">44</a> of file <a class="el" href="a06170.html">plane.cpp</a>.
+<p>
+References <a class="el" href="a06170.html#l00036">make()</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00045 {
+00046 CVector <a class="code" href="a04223.html#a576">v</a>;
+00047
+00048 <a class="code" href="a04223.html#a576">v</a>=(p1-p0)^(p2-p1);
+00049 <a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>(v,p1);
+00050 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1990_2" doxytag="NLMISC::CPlane::make" ></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::CPlane::make </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>normal</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>pos</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Make a plane with a normal and a vertex. NB: the plane normal is normalized by <a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_2">make()</a>.
+<p>
+Definition at line <a class="el" href="a06170.html#l00036">36</a> of file <a class="el" href="a06170.html">plane.cpp</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, <a class="el" href="a06171.html#l00052">d</a>, <a class="el" href="a06682.html#l00125">NLMISC::CVector::normed()</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="a05532.html#l00048">NL3D::CCameraCol::build()</a>, <a class="el" href="a06768.html#l02045">NL3D::CZoneLighter::buildZoneInformation()</a>, <a class="el" href="a05503.html#l00087">NL3D::CBSPTree&lt; T &gt;::CBSPNode::CBSPNode()</a>, <a class="el" href="a06193.html#l00262">NL3D::CPortal::clipRay()</a>, <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a05929.html#l01479">NLPACS::CLocalRetriever::getHeight()</a>, <a class="el" href="a05565.html#l01098">NLSOUND::CClusteredSound::getPolyNearestPos()</a>, <a class="el" href="a05618.html#l00172">NL3D::CCubeGrid&lt; TCell &gt;::insert()</a>, <a class="el" href="a06190.html#l00798">NLMISC::CPolygon2D::isConvex()</a>, <a class="el" href="a06768.html#l00920">NL3D::CZoneLighter::light()</a>, <a class="el" href="a05824.html#l00305">NL3D::CInstanceLighter::light()</a>, <a class="el" href="a06170.html#l00044">make()</a>, <a class="el" href="a05384.html#l00194">NLMISC::CAABBox::makePyramid()</a>, <a class="el" href="a05563.html#l00156">NL3D::CCluster::makeVolume()</a>, <a class="el" href="a05532.html#l00131">NL3D::CCameraCol::minimizeDistanceAgainstTri()</a>, <a class="el" href="a05686.html#l00089">NL3D::CEvent3dMouseListener::operator()()</a>, <a class="el" href="a05783.html#l00051">NL3D::CHeatHaze::performHeatHaze()</a>, <a class="el" href="a06287.html#l01275">NL3D::CPSZoneRectangle::performMotion()</a>, <a class="el" href="a06287.html#l00533">NL3D::CPSZoneDisc::performMotion()</a>, <a class="el" href="a06287.html#l00215">NL3D::CPSZonePlane::performMotion()</a>, <a class="el" href="a05618.html#l00253">NL3D::CCubeGrid&lt; TCell &gt;::select()</a>, <a class="el" href="a06306.html#l00817">NL3D::CQuadTree&lt; T &gt;::selectRay()</a>, <a class="el" href="a06306.html#l00848">NL3D::CQuadTree&lt; T &gt;::selectSegment()</a>, <a class="el" href="a06193.html#l00167">NL3D::CPortal::setPoly()</a>, <a class="el" href="a05929.html#l01413">NLPACS::CLocalRetriever::snapToInteriorGround()</a>, <a class="el" href="a06190.html#l00392">NLMISC::CPolygon::toConvexPolygonsLocalAndBSP()</a>, and <a class="el" href="a06725.html#l00366">NL3D::CVisualCollisionEntity::triangleIntersect()</a>.
+<p>
+<div class="fragment"><pre>00037 {
+00038 CVector <a class="code" href="a04223.html#a576">v</a>= normal.normed();
+00039 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo0">a</a>= <a class="code" href="a04223.html#a576">v</a>.x;
+00040 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo1">b</a>= <a class="code" href="a04223.html#a576">v</a>.y;
+00041 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo2">c</a>= <a class="code" href="a04223.html#a576">v</a>.z;
+00042 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a>=-(<a class="code" href="a04223.html#a576">v</a>*p); <span class="comment">// d=- (ax+by+cz).</span>
+00043 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1990_3" doxytag="NLMISC::CPlane::normalize" ></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::CPlane::normalize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Normalize the plane, such that <a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_0">getNormal()</a> return a normalized vector.
+<p>
+Definition at line <a class="el" href="a06172.html#l00068">68</a> of file <a class="el" href="a06172.html">plane_inline.h</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, <a class="el" href="a06171.html#l00052">d</a>, <a class="el" href="a06172.html#l00035">getNormal()</a>, and <a class="el" href="a06682.html#l00115">NLMISC::CVector::norm()</a>.
+<p>
+Referenced by <a class="el" href="a05503.html#l00087">NL3D::CBSPTree&lt; T &gt;::CBSPNode::CBSPNode()</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="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, <a class="el" href="a05563.html#l00156">NL3D::CCluster::makeVolume()</a>, <a class="el" href="a06172.html#l00081">normed()</a>, and <a class="el" href="a06193.html#l00167">NL3D::CPortal::setPoly()</a>.
+<p>
+<div class="fragment"><pre>00069 {
+00070 <span class="keywordtype">float</span> n= <a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_0">getNormal</a>().norm();
+00071 <span class="keywordflow">if</span>(n)
+00072 {
+00073 <span class="keywordtype">float</span> oon= 1.0f/n;
+00074 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo0">a</a>*= oon;
+00075 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo1">b</a>*= oon;
+00076 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo2">c</a>*= oon;
+00077 <a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a>*= oon;
+00078 }
+00079 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1990_4" doxytag="NLMISC::CPlane::normed" ></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="a03082.html">CPlane</a> NLMISC::CPlane::normed </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the normalized version of a plane. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03082.html#NLMISC_1_1CPlanez1990_3">normalize()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06172.html#l00081">81</a> of file <a class="el" href="a06172.html">plane_inline.h</a>.
+<p>
+References <a class="el" href="a06172.html#l00068">normalize()</a>.
+<p>
+Referenced by <a class="el" href="a06172.html#l00040">distance()</a>.
+<p>
+<div class="fragment"><pre>00082 {
+00083 <a class="code" href="a03082.html#NLMISC_1_1CPlanez1988_2">CPlane</a> ret= *<span class="keyword">this</span>;
+00084 ret.normalize();
+00085 <span class="keywordflow">return</span> ret;
+00086 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1992_6" doxytag="NLMISC::CPlane::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"> float NLMISC::CPlane::operator * </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>p</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return plane*vector.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06172.html#l00046">46</a> of file <a class="el" href="a06172.html">plane_inline.h</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, <a class="el" href="a06171.html#l00052">d</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>00047 {
+00048 <span class="keywordflow">return</span> <a class="code" href="a03082.html#NLMISC_1_1CPlaneo0">a</a>*p.x + <a class="code" href="a03082.html#NLMISC_1_1CPlaneo1">b</a>*p.y + <a class="code" href="a03082.html#NLMISC_1_1CPlaneo2">c</a>*p.z + <a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a>;
+00049 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1996_0" doxytag="NLMISC::CPlane::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"> bool NLMISC::CPlane::operator== </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03082.html">CPlane</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>o</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00161">161</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, and <a class="el" href="a06171.html#l00052">d</a>.
+<p>
+<div class="fragment"><pre>00162 {
+00163 <span class="keywordflow">return</span> <a class="code" href="a03082.html#NLMISC_1_1CPlaneo0">a</a>==o.a &amp;&amp; <a class="code" href="a03082.html#NLMISC_1_1CPlaneo1">b</a>==o.b &amp;&amp; <a class="code" href="a03082.html#NLMISC_1_1CPlaneo2">c</a>==o.c &amp;&amp; <a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a>==o.d;
+00164 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1992_7" doxytag="NLMISC::CPlane::project" ></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::CPlane::project </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>p0</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Project a point onto a plane.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06172.html#l00062">62</a> of file <a class="el" href="a06172.html">plane_inline.h</a>.
+<p>
+References <a class="el" href="a06172.html#l00035">getNormal()</a>, and <a class="el" href="a06172.html#l00051">intersect()</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, and <a class="el" href="a05565.html#l01098">NLSOUND::CClusteredSound::getPolyNearestPos()</a>.
+<p>
+<div class="fragment"><pre>00063 {
+00064 <span class="keywordflow">return</span> <a class="code" href="a03082.html#NLMISC_1_1CPlanez1992_5">intersect</a>(p0, p0+<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_0">getNormal</a>());
+00065 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlanez1996_1" doxytag="NLMISC::CPlane::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::CPlane::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02270.html">IStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>f</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00155">155</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+References <a class="el" href="a06171.html#l00052">a</a>, <a class="el" href="a06171.html#l00052">b</a>, <a class="el" href="a06171.html#l00052">c</a>, <a class="el" href="a06171.html#l00052">d</a>, and <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00156 {
+00157 f.serial(a,b,c,d);
+00158 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CPlaneo0" doxytag="NLMISC::CPlane::a" ></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="a03082.html#NLMISC_1_1CPlaneo0">NLMISC::CPlane::a</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00052">52</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+Referenced by <a class="el" href="a06171.html#l00061">CPlane()</a>, <a class="el" href="a06172.html#l00035">getNormal()</a>, <a class="el" href="a06170.html#l00160">invert()</a>, <a class="el" href="a06170.html#l00154">inverted()</a>, <a class="el" href="a06170.html#l00036">make()</a>, <a class="el" href="a06172.html#l00068">normalize()</a>, <a class="el" href="a06172.html#l00046">operator *()</a>, <a class="el" href="a05972.html#l01308">NLMISC::operator *()</a>, <a class="el" href="a06171.html#l00161">operator==()</a>, <a class="el" href="a05783.html#l00051">NL3D::CHeatHaze::performHeatHaze()</a>, and <a class="el" href="a06171.html#l00155">serial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlaneo1" doxytag="NLMISC::CPlane::b" ></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="a03082.html#NLMISC_1_1CPlaneo1">NLMISC::CPlane::b</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00052">52</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+Referenced by <a class="el" href="a06171.html#l00061">CPlane()</a>, <a class="el" href="a06172.html#l00035">getNormal()</a>, <a class="el" href="a06170.html#l00160">invert()</a>, <a class="el" href="a06170.html#l00154">inverted()</a>, <a class="el" href="a06170.html#l00036">make()</a>, <a class="el" href="a06172.html#l00068">normalize()</a>, <a class="el" href="a06172.html#l00046">operator *()</a>, <a class="el" href="a05972.html#l01308">NLMISC::operator *()</a>, <a class="el" href="a06171.html#l00161">operator==()</a>, and <a class="el" href="a06171.html#l00155">serial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlaneo2" doxytag="NLMISC::CPlane::c" ></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="a03082.html#NLMISC_1_1CPlaneo2">NLMISC::CPlane::c</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00052">52</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+Referenced by <a class="el" href="a06171.html#l00061">CPlane()</a>, <a class="el" href="a06172.html#l00035">getNormal()</a>, <a class="el" href="a06170.html#l00160">invert()</a>, <a class="el" href="a06170.html#l00154">inverted()</a>, <a class="el" href="a06170.html#l00036">make()</a>, <a class="el" href="a06172.html#l00068">normalize()</a>, <a class="el" href="a06172.html#l00046">operator *()</a>, <a class="el" href="a05972.html#l01308">NLMISC::operator *()</a>, <a class="el" href="a06171.html#l00161">operator==()</a>, <a class="el" href="a05783.html#l00051">NL3D::CHeatHaze::performHeatHaze()</a>, and <a class="el" href="a06171.html#l00155">serial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CPlaneo3" doxytag="NLMISC::CPlane::d" ></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="a03082.html#NLMISC_1_1CPlaneo3">NLMISC::CPlane::d</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06171.html#l00052">52</a> of file <a class="el" href="a06171.html">plane.h</a>.
+<p>
+Referenced by <a class="el" href="a06193.html#l00262">NL3D::CPortal::clipRay()</a>, <a class="el" href="a06737.html#l01054">NL3D::CWaterModel::computeClippedPoly()</a>, <a class="el" href="a06171.html#l00061">CPlane()</a>, <a class="el" href="a06170.html#l00160">invert()</a>, <a class="el" href="a06170.html#l00154">inverted()</a>, <a class="el" href="a06170.html#l00036">make()</a>, <a class="el" href="a05532.html#l00131">NL3D::CCameraCol::minimizeDistanceAgainstTri()</a>, <a class="el" href="a06172.html#l00068">normalize()</a>, <a class="el" href="a06172.html#l00046">operator *()</a>, <a class="el" href="a05972.html#l01308">NLMISC::operator *()</a>, <a class="el" href="a06171.html#l00161">operator==()</a>, <a class="el" href="a05783.html#l00051">NL3D::CHeatHaze::performHeatHaze()</a>, and <a class="el" href="a06171.html#l00155">serial()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06171.html">plane.h</a><li><a class="el" href="a06170.html">plane.cpp</a><li><a class="el" href="a06172.html">plane_inline.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:27:45 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>