aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03103.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a03103.html')
-rw-r--r--docs/doxygen/nel/a03103.html1389
1 files changed, 1389 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03103.html b/docs/doxygen/nel/a03103.html
new file mode 100644
index 00000000..88ea4947
--- /dev/null
+++ b/docs/doxygen/nel/a03103.html
@@ -0,0 +1,1389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NL3D::CPortal class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NL3D::CPortal Class Reference</h1><code>#include &lt;<a class="el" href="a06194.html">portal.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<a class="el" href="a03103.html">CPortal</a><p>
+<dl compact><dt><b>Author:</b></dt><dd>Matthieu Besson <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00055">55</a> of file <a class="el" href="a06194.html">portal.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala0">clipPyramid</a> (<a class="el" href="a03128.html">NLMISC::CVector</a> &amp;observer, std::vector&lt; <a class="el" href="a03082.html">NLMISC::CPlane</a> &gt; &amp;pyramid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala1">clipRay</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;start, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;end)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return true if the portal clip the segment <a href="#NL3D_1_1CPortala1"></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="a03103.html#NL3D_1_1CPortala2">CPortal</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02362.html">CCluster</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala3">getCluster</a> (<a class="el" href="a04558.html#a15">uint</a> pos)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the cluster linked to the portal <a href="#NL3D_1_1CPortala3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala4">getName</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala5">getNbCluster</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the number of clusters linked to the portal <a href="#NL3D_1_1CPortala5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala6">getPoly</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala7">getPoly</a> (std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;dest) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get this cluster poly in local coordinates <a href="#NL3D_1_1CPortala7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala8">isInFront</a> (<a class="el" href="a03128.html">NLMISC::CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the vertex v is in front of the portal. <a href="#NL3D_1_1CPortala8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala9">isOpened</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala10">open</a> (bool opened)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala11">resetClusterLinks</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set all link to clusters to NULL. <a href="#NL3D_1_1CPortala11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala12">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &amp;f)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serial. <a href="#NL3D_1_1CPortala12"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala13">setCluster</a> (<a class="el" href="a02362.html">CCluster</a> *cluster)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return false if more than 2 clusters added <a href="#NL3D_1_1CPortala13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala14">setName</a> (std::string &amp;name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala15">setPoly</a> (const std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;poly)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return false if the polygon is not convex <a href="#NL3D_1_1CPortala15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortala16">setWorldMatrix</a> (const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &amp;WM)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const std::string &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalz698_0">getOcclusionModel</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalz698_1">getOcclusionModelId</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const std::string &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalz698_2">getOpenOcclusionModel</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalz698_3">getOpenOcclusionModelId</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalz698_4">setOcclusionModel</a> (const std::string &amp;occlusionModel)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalz698_5">setOpenOcclusionModel</a> (const std::string &amp;occlusionModel)</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="a02362.html">CCluster</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a> [2]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalr1">_LocalPoly</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalr2">_Name</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a236">NLMISC::TStringId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalr3">_OcclusionModelId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalr4">_Opened</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a236">NLMISC::TStringId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalr5">_OpenOcclusionModelId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a></td></tr>
+
+<tr><td colspan=2><br><h2>Friends</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03103.html#NL3D_1_1CPortaln0">CInstanceGroup</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Friend class. <a href="#NL3D_1_1CPortaln0"></a><br><br></td></tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPortala2" doxytag="NL3D::CPortal::CPortal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NL3D::CPortal::CPortal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00048">48</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00131">_OcclusionModelId</a>, <a class="el" href="a06194.html#l00124">_Opened</a>, and <a class="el" href="a06194.html#l00132">_OpenOcclusionModelId</a>.
+<p>
+<div class="fragment"><pre>00049 {
+00050 <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[0] = <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[1] = NULL;
+00051 <a class="code" href="a03103.html#NL3D_1_1CPortalr4">_Opened</a> = <span class="keyword">true</span>;
+00052 <a class="code" href="a03103.html#NL3D_1_1CPortalr3">_OcclusionModelId</a> = CStringMapper::map(<span class="stringliteral">"no occlusion"</span>);
+00053 <a class="code" href="a03103.html#NL3D_1_1CPortalr5">_OpenOcclusionModelId</a> = CStringMapper::map(<span class="stringliteral">"no occlusion"</span>);
+00054 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPortala0" doxytag="NL3D::CPortal::clipPyramid" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CPortal::clipPyramid </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>observer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::vector&lt; <a class="el" href="a03082.html">NLMISC::CPlane</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>pyramid</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>
+Clip the view pyramid (all planes pass through observer point) against the portal <dl compact><dt><b>Returns:</b></dt><dd>false if the pyramid is completly clipped</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00083">83</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00124">_Opened</a>, <a class="el" href="a06194.html#l00127">_Poly</a>, <a class="el" href="a06190.html#l00056">NLMISC::CPolygon::clip()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a06191.html#l00055">NLMISC::CPolygon::Vertices</a>.
+<p>
+Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>.
+<p>
+<div class="fragment"><pre>00084 {
+00085 <span class="keywordflow">if</span> (!<a class="code" href="a03103.html#NL3D_1_1CPortalr4">_Opened</a> || <a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a>.size()&lt;3)
+00086 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00087 <span class="comment">// Clip portal with pyramid</span>
+00088 <a class="code" href="a03100.html">CPolygon</a> p;
+00089 p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a> = <a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a>;
+00090 p.<a class="code" href="a03100.html#NLMISC_1_1CPolygona3">clip</a>( &amp;pyramid[1], pyramid.size()-1 );
+00091
+00092 <span class="comment">// Construct pyramid with clipped portal</span>
+00093 <span class="keywordflow">if</span>( p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size() &gt; 2 )
+00094 {
+00095 <a class="code" href="a04558.html#a15">uint</a> i;
+00096 <span class="comment">// Found the right orientation</span>
+00097 CVector n = (p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[1]-p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[0])^(p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[2]-p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[0]);
+00098 <span class="keywordflow">if</span>( ((observer-p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[0])*n) &lt; 0.0f )
+00099 {
+00100 <span class="comment">// Invert vertices</span>
+00101 <span class="keywordflow">for</span>( i = 0; i &lt; (p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()/2); ++i )
+00102 {
+00103 CVector tmp = p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[i];
+00104 p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[i] = p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()-1-i];
+00105 p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()-1-i] = tmp;
+00106 }
+00107 }
+00108 <span class="comment">// Make pyramid : preserve 0 and 1 plane which are near and far plane</span>
+00109 pyramid.resize (p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()+2);
+00110 <span class="keywordflow">for</span>( i = 0; i &lt; (p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()); ++i )
+00111 {
+00112 pyramid[i+2].make( observer, p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[i], p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[(i+1)%p.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()] );
+00113 }
+00114 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00115 }
+00116
+00117 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00118 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala1" doxytag="NL3D::CPortal::clipRay" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CPortal::clipRay </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>start</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>end</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>
+return true if the portal clip the segment
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00262">262</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00127">_Poly</a>, <a class="el" href="a06171.html#l00052">NLMISC::CPlane::d</a>, <a class="el" href="a06172.html#l00035">NLMISC::CPlane::getNormal()</a>, <a class="el" href="a06170.html#l00036">NLMISC::CPlane::make()</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05563.html#l00498">NL3D::CCluster::cameraRayClip()</a>.
+<p>
+<div class="fragment"><pre>00263 {
+00264 <span class="keywordflow">if</span>(<a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a>.size()&lt;3)
+00265 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00266
+00267 <span class="comment">// Avoid precision problem, make local to poly</span>
+00268 <span class="keyword">const</span> CVector &amp;refVert= <a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a>[0];
+00269 CVector start= startWorld - refVert;
+00270 CVector end= endWorld - refVert;
+00271
+00272 <span class="comment">// compute the plane of this poly, local to polygon </span>
+00273 <a class="code" href="a03082.html">CPlane</a> plane;
+00274 plane.<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>(CVector::Null, _Poly[1] - refVert, _Poly[2] - refVert);
+00275 CVector normal = plane.<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_0">getNormal</a>();
+00276
+00277 <span class="keywordtype">float</span> np1 = normal*end;
+00278 <span class="keywordtype">float</span> np2 = np1-normal*start;
+00279
+00280 <span class="keywordflow">if</span> (np2 == 0.0f)
+00281 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00282
+00283 <span class="keywordtype">float</span> lambda = (plane.<a class="code" href="a03082.html#NLMISC_1_1CPlaneo3">d</a>+np1)/np2;
+00284
+00285 <span class="comment">// Checks the intersection belongs to the segment</span>
+00286 <span class="keywordflow">if</span> (lambda &lt; 0 || lambda &gt; 1.0f)
+00287 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00288
+00289 <span class="comment">// The intersection on the plane</span>
+00290 CVector hit = start*lambda+end*(1.0f-lambda);
+00291
+00292 <span class="comment">// Do convex test on each border</span>
+00293 <a class="code" href="a04558.html#a14">sint</a> sign= 0;
+00294 <a class="code" href="a04558.html#a15">uint</a> polySize= _Poly.size();
+00295 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;polySize;i++)
+00296 {
+00297 <span class="keyword">const</span> CVector v0= _Poly[i] - refVert;
+00298 <span class="keyword">const</span> CVector v1= _Poly[(i+1)%polySize] - refVert;
+00299 <span class="keywordtype">float</span> d = ((v1-v0)^normal)*(hit-v0);
+00300 <span class="keywordflow">if</span>(d&lt;0)
+00301 {
+00302 <span class="keywordflow">if</span>(sign==1)
+00303 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00304 <span class="keywordflow">else</span>
+00305 sign=-1;
+00306 }
+00307 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(d&gt;0)
+00308 {
+00309 <span class="keywordflow">if</span>(sign==-1)
+00310 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00311 <span class="keywordflow">else</span>
+00312 sign=1;
+00313 }
+00314 <span class="keywordflow">else</span>
+00315 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00316 }
+00317
+00318 <span class="comment">// all on same side, ok!</span>
+00319 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00320 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala3" doxytag="NL3D::CPortal::getCluster" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02362.html">CCluster</a>* NL3D::CPortal::getCluster </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</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>
+return the cluster linked to the portal
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00084">84</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05563.html#l00498">NL3D::CCluster::cameraRayClip()</a>, and <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>.
+<p>
+<div class="fragment"><pre>00084 { <span class="keywordflow">return</span> <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[pos]; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala4" doxytag="NL3D::CPortal::getName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NL3D::CPortal::getName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><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="a06194.html#l00101">101</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+<div class="fragment"><pre>00101 { <span class="keywordflow">return</span> <a class="code" href="a03103.html#NL3D_1_1CPortalr2">_Name</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala5" doxytag="NL3D::CPortal::getNbCluster" ></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#a7">uint8</a> NL3D::CPortal::getNbCluster </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the number of clusters linked to the portal
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00156">156</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00157 {
+00158 <a class="code" href="a04558.html#a7">uint8</a> nRet = 0;
+00159 <span class="keywordflow">if</span>( <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[0] != NULL )
+00160 nRet++;
+00161 <span class="keywordflow">if</span>( <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[1] != NULL )
+00162 nRet++;
+00163 <span class="keywordflow">return</span> nRet;
+00164 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalz698_0" doxytag="NL3D::CPortal::getOcclusionModel" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const std::string &amp; NL3D::CPortal::getOcclusionModel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00060">60</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00131">_OcclusionModelId</a>.
+<p>
+<div class="fragment"><pre>00061 {
+00062 <span class="keywordflow">return</span> CStringMapper::unmap(_OcclusionModelId);
+00063 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalz698_1" doxytag="NL3D::CPortal::getOcclusionModelId" ></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#a15">uint</a> NL3D::CPortal::getOcclusionModelId </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00064">64</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00131">_OcclusionModelId</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00065 {
+00066 <span class="keywordflow">return</span> <a class="code" href="a03103.html#NL3D_1_1CPortalr3">_OcclusionModelId</a>;
+00067 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalz698_2" doxytag="NL3D::CPortal::getOpenOcclusionModel" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const std::string &amp; NL3D::CPortal::getOpenOcclusionModel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00072">72</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00132">_OpenOcclusionModelId</a>.
+<p>
+<div class="fragment"><pre>00073 {
+00074 <span class="keywordflow">return</span> CStringMapper::unmap(_OpenOcclusionModelId);
+00075 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalz698_3" doxytag="NL3D::CPortal::getOpenOcclusionModelId" ></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#a15">uint</a> NL3D::CPortal::getOpenOcclusionModelId </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00076">76</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00132">_OpenOcclusionModelId</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00077 {
+00078 <span class="keywordflow">return</span> <a class="code" href="a03103.html#NL3D_1_1CPortalr5">_OpenOcclusionModelId</a>;
+00079 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala6" doxytag="NL3D::CPortal::getPoly" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const std::vector&lt;<a class="el" href="a03128.html">NLMISC::CVector</a>&gt;&amp; NL3D::CPortal::getPoly </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>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00091">91</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+References <a class="el" href="a06194.html#l00126">_LocalPoly</a>.
+<p>
+<div class="fragment"><pre>00091 {<span class="keywordflow">return</span> <a class="code" href="a03103.html#NL3D_1_1CPortalr1">_LocalPoly</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala7" doxytag="NL3D::CPortal::getPoly" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPortal::getPoly </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>dest</em> </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 this cluster poly in local coordinates
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00209">209</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00126">_LocalPoly</a>.
+<p>
+<div class="fragment"><pre>00210 {
+00211 dest = <a class="code" href="a03103.html#NL3D_1_1CPortalr1">_LocalPoly</a>;
+00212 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala8" doxytag="NL3D::CPortal::isInFront" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CPortal::isInFront </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</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></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return true if the vertex v is in front of the portal.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00121">121</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00127">_Poly</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+Referenced by <a class="el" href="a05563.html#l00405">NL3D::CCluster::recursTraverseClip()</a>.
+<p>
+<div class="fragment"><pre>00122 {
+00123 <span class="keywordflow">if</span>( <a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a>.size()&lt;3 )
+00124 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00125 CVector v1 = <a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a>[1] - _Poly[0];
+00126 CVector v2 = _Poly[2] - _Poly[0];
+00127 CVector n = v1^v2;
+00128 CVector pv = <a class="code" href="a04223.html#a576">v</a> - _Poly[0];
+00129 <span class="keywordflow">return</span> ((n*pv) &gt; 0.0f);
+00130 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala9" doxytag="NL3D::CPortal::isOpened" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CPortal::isOpened </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>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00104">104</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+References <a class="el" href="a06194.html#l00124">_Opened</a>.
+<p>
+<div class="fragment"><pre>00104 { <span class="keywordflow">return</span> <a class="code" href="a03103.html#NL3D_1_1CPortalr4">_Opened</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala10" doxytag="NL3D::CPortal::open" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPortal::open </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>opened</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="a06194.html#l00103">103</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+References <a class="el" href="a06194.html#l00124">_Opened</a>.
+<p>
+<div class="fragment"><pre>00103 { <a class="code" href="a03103.html#NL3D_1_1CPortalr4">_Opened</a> = opened; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala11" doxytag="NL3D::CPortal::resetClusterLinks" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPortal::resetClusterLinks </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>
+set all link to clusters to NULL.
+<p>
+Accessors ---------
+<p>
+Definition at line <a class="el" href="a06193.html#l00134">134</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+<div class="fragment"><pre>00135 {
+00136 <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[0] = <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[1] = NULL;
+00137 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala12" doxytag="NL3D::CPortal::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 NL3D::CPortal::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::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></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serial.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00216">216</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00126">_LocalPoly</a>, <a class="el" href="a06194.html#l00131">_OcclusionModelId</a>, <a class="el" href="a06194.html#l00132">_OpenOcclusionModelId</a>, <a class="el" href="a06194.html#l00127">_Poly</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00324">NLMISC::IStream::serialCont()</a>, and <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>.
+<p>
+<div class="fragment"><pre>00217 {
+00218 <span class="keywordtype">int</span> version = f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (1);
+00219
+00220 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (_LocalPoly);
+00221 <span class="keywordflow">if</span> (f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00222 <a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a> = <a class="code" href="a03103.html#NL3D_1_1CPortalr1">_LocalPoly</a>;
+00223 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (_Name);
+00224
+00225 <span class="keywordflow">if</span> (version &gt;= 1)
+00226 {
+00227 <span class="keywordflow">if</span> (f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00228 {
+00229 std::string occName;
+00230 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(occName);
+00231 <span class="keywordflow">if</span> (occName.empty())
+00232 occName = <span class="stringliteral">"no occlusion"</span>;
+00233 <a class="code" href="a03103.html#NL3D_1_1CPortalr3">_OcclusionModelId</a> = CStringMapper::map(occName);
+00234
+00235 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(occName);
+00236 <span class="keywordflow">if</span> (occName.empty())
+00237 occName = <span class="stringliteral">"no occlusion"</span>;
+00238 <a class="code" href="a03103.html#NL3D_1_1CPortalr5">_OpenOcclusionModelId</a> = CStringMapper::map(occName);
+00239 }
+00240 <span class="keywordflow">else</span>
+00241 {
+00242 std::string occName = CStringMapper::unmap(_OcclusionModelId);
+00243 <span class="keywordflow">if</span> (occName == <span class="stringliteral">"no occlusion"</span>)
+00244 occName = <span class="stringliteral">""</span>;
+00245 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(occName);
+00246 occName = CStringMapper::unmap(_OpenOcclusionModelId);
+00247 <span class="keywordflow">if</span> (occName == <span class="stringliteral">"no occlusion"</span>)
+00248 occName = <span class="stringliteral">""</span>;
+00249 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(occName);
+00250 }
+00251 }
+00252 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala13" doxytag="NL3D::CPortal::setCluster" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CPortal::setCluster </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02362.html">CCluster</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cluster</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return false if more than 2 clusters added
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00140">140</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+<div class="fragment"><pre>00141 {
+00142 <span class="keywordflow">if</span>( <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[0] == NULL )
+00143 {
+00144 <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[0] = cluster;
+00145 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00146 }
+00147 <span class="keywordflow">if</span>( <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[1] == NULL )
+00148 {
+00149 <a class="code" href="a03103.html#NL3D_1_1CPortalr0">_Clusters</a>[1] = cluster;
+00150 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00151 }
+00152 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00153 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala14" doxytag="NL3D::CPortal::setName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPortal::setName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>name</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="a06194.html#l00099">99</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+<div class="fragment"><pre>00099 { <a class="code" href="a03103.html#NL3D_1_1CPortalr2">_Name</a> = name; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalz698_4" doxytag="NL3D::CPortal::setOcclusionModel" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPortal::setOcclusionModel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>occlusionModel</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00056">56</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00131">_OcclusionModelId</a>.
+<p>
+<div class="fragment"><pre>00057 {
+00058 <a class="code" href="a03103.html#NL3D_1_1CPortalr3">_OcclusionModelId</a> = CStringMapper::map(occlusionModel);
+00059 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalz698_5" doxytag="NL3D::CPortal::setOpenOcclusionModel" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPortal::setOpenOcclusionModel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>occlusionModel</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00068">68</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00132">_OpenOcclusionModelId</a>.
+<p>
+<div class="fragment"><pre>00069 {
+00070 <a class="code" href="a03103.html#NL3D_1_1CPortalr5">_OpenOcclusionModelId</a> = CStringMapper::map(occlusionModel);
+00071 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala15" doxytag="NL3D::CPortal::setPoly" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CPortal::setPoly </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>poly</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return false if the polygon is not convex
+<p>
+
+<p>
+<dl compact><dt><b><a class="el" href="todo.html#_todo000019">Todo:</a></b></dt><dd>check if the polygon has the good orientation</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00167">167</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00126">_LocalPoly</a>, <a class="el" href="a06194.html#l00127">_Poly</a>, <a class="el" href="a06170.html#l00036">NLMISC::CPlane::make()</a>, <a class="el" href="a06172.html#l00068">NLMISC::CPlane::normalize()</a>, <a class="el" href="a06193.html#l00045">PORTALPRECISION</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00168 {
+00169 <a class="code" href="a04558.html#a15">uint</a> i;
+00170
+00171 <span class="keywordflow">if</span>( poly.size() &lt; 3 )
+00172 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00173
+00174 <span class="comment">// Check if the polygon is a plane</span>
+00175 <a class="code" href="a03082.html">CPlane</a> p;
+00176 p.<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_2">make</a>( poly[0], poly[1], poly[2] );
+00177 p.<a class="code" href="a03082.html#NLMISC_1_1CPlanez1990_3">normalize</a>();
+00178 <span class="keywordtype">float</span> dist;
+00179 <span class="keywordflow">for</span>( i = 0; i &lt; (poly.size()-3); ++i )
+00180 {
+00181 dist = fabsf(p*poly[i+3]);
+00182 <span class="keywordflow">if</span>( dist &gt; <a class="code" href="a04770.html#a0">PORTALPRECISION</a> )
+00183 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00184 }
+00185
+00186 <span class="comment">// Check if the polygon is convex</span>
+00188 <span class="comment"></span> <span class="comment">/*</span>
+00189 <span class="comment"> CPlane p2;</span>
+00190 <span class="comment"> for( i = 0; i &lt; (poly.size()-1); ++i )</span>
+00191 <span class="comment"> {</span>
+00192 <span class="comment"> p2.make( poly[i], poly[i+1], poly[i]+p.getNormal() );</span>
+00193 <span class="comment"> for( j = 0; j &lt; poly.size(); ++j )</span>
+00194 <span class="comment"> if( (j != i) &amp;&amp; (j != i+1) )</span>
+00195 <span class="comment"> {</span>
+00196 <span class="comment"> if( p2*poly[j] &lt; 0.0f )</span>
+00197 <span class="comment"> return false;</span>
+00198 <span class="comment"> }</span>
+00199 <span class="comment"> }*/</span>
+00200
+00201 <span class="comment">// Set the value</span>
+00202 <a class="code" href="a03103.html#NL3D_1_1CPortalr1">_LocalPoly</a> = poly;
+00203 <a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a> = poly;
+00204
+00205 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00206 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortala16" doxytag="NL3D::CPortal::setWorldMatrix" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPortal::setWorldMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>WM</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06193.html#l00255">255</a> of file <a class="el" href="a06193.html">portal.cpp</a>.
+<p>
+References <a class="el" href="a06194.html#l00126">_LocalPoly</a>, <a class="el" href="a06194.html#l00127">_Poly</a>, <a class="el" href="a05972.html#l01261">NLMISC::CMatrix::mulPoint()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l00571">NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded()</a>, and <a class="el" href="a05563.html#l00369">NL3D::CCluster::traverseHrc()</a>.
+<p>
+<div class="fragment"><pre>00256 {
+00257 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> i = 0; i &lt; <a class="code" href="a03103.html#NL3D_1_1CPortalr1">_LocalPoly</a>.size(); ++i)
+00258 <a class="code" href="a03103.html#NL3D_1_1CPortalr6">_Poly</a>[i] = WM.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1968_0">mulPoint</a>(_LocalPoly[i]);
+00259 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPortaln0" doxytag="NL3D::CPortal::CInstanceGroup" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> friend class <a class="el" href="a02671.html">CInstanceGroup</a><code> [friend]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Friend class.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00136">136</a> of file <a class="el" href="a06194.html">portal.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPortalr0" doxytag="NL3D::CPortal::_Clusters" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02362.html">CCluster</a>* <a class="el" href="a03103.html#NL3D_1_1CPortalr0">NL3D::CPortal::_Clusters</a>[2]<code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00121">121</a> of file <a class="el" href="a06194.html">portal.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalr1" doxytag="NL3D::CPortal::_LocalPoly" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt;<a class="el" href="a03128.html">NLMISC::CVector</a>&gt; <a class="el" href="a03103.html#NL3D_1_1CPortalr1">NL3D::CPortal::_LocalPoly</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00126">126</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+Referenced by <a class="el" href="a06193.html#l00209">getPoly()</a>, <a class="el" href="a06193.html#l00216">serial()</a>, <a class="el" href="a06193.html#l00167">setPoly()</a>, and <a class="el" href="a06193.html#l00255">setWorldMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalr2" doxytag="NL3D::CPortal::_Name" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string <a class="el" href="a03103.html#NL3D_1_1CPortalr2">NL3D::CPortal::_Name</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00123">123</a> of file <a class="el" href="a06194.html">portal.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalr3" doxytag="NL3D::CPortal::_OcclusionModelId" ></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="a05378.html#a236">NLMISC::TStringId</a> <a class="el" href="a03103.html#NL3D_1_1CPortalr3">NL3D::CPortal::_OcclusionModelId</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00131">131</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+Referenced by <a class="el" href="a06193.html#l00048">CPortal()</a>, <a class="el" href="a06193.html#l00060">getOcclusionModel()</a>, <a class="el" href="a06193.html#l00064">getOcclusionModelId()</a>, <a class="el" href="a06193.html#l00216">serial()</a>, and <a class="el" href="a06193.html#l00056">setOcclusionModel()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalr4" doxytag="NL3D::CPortal::_Opened" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a03103.html#NL3D_1_1CPortalr4">NL3D::CPortal::_Opened</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00124">124</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+Referenced by <a class="el" href="a06193.html#l00083">clipPyramid()</a>, <a class="el" href="a06193.html#l00048">CPortal()</a>, <a class="el" href="a06194.html#l00104">isOpened()</a>, and <a class="el" href="a06194.html#l00103">open()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalr5" doxytag="NL3D::CPortal::_OpenOcclusionModelId" ></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="a05378.html#a236">NLMISC::TStringId</a> <a class="el" href="a03103.html#NL3D_1_1CPortalr5">NL3D::CPortal::_OpenOcclusionModelId</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00132">132</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+Referenced by <a class="el" href="a06193.html#l00048">CPortal()</a>, <a class="el" href="a06193.html#l00072">getOpenOcclusionModel()</a>, <a class="el" href="a06193.html#l00076">getOpenOcclusionModelId()</a>, <a class="el" href="a06193.html#l00216">serial()</a>, and <a class="el" href="a06193.html#l00068">setOpenOcclusionModel()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPortalr6" doxytag="NL3D::CPortal::_Poly" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt;<a class="el" href="a03128.html">NLMISC::CVector</a>&gt; <a class="el" href="a03103.html#NL3D_1_1CPortalr6">NL3D::CPortal::_Poly</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06194.html#l00127">127</a> of file <a class="el" href="a06194.html">portal.h</a>.
+<p>
+Referenced by <a class="el" href="a06193.html#l00083">clipPyramid()</a>, <a class="el" href="a06193.html#l00262">clipRay()</a>, <a class="el" href="a06193.html#l00121">isInFront()</a>, <a class="el" href="a06193.html#l00216">serial()</a>, <a class="el" href="a06193.html#l00167">setPoly()</a>, and <a class="el" href="a06193.html#l00255">setWorldMatrix()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06194.html">portal.h</a><li><a class="el" href="a06193.html">portal.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 07:03:00 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>