Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 851

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: csPlane3 Class Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>csPlane3 Class Reference<br>
<small>
[<a class="el" href="group__geom__utils.html">Geometry utilities</a>]</small>
</h1><!-- doxytag: class="csPlane3" -->A plane in 3D space.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="plane3_8h-source.html">csgeom/plane3.h</a>&gt;</code>
<p>

<p>
<a href="classcsPlane3-members.html">List of all members.</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">float &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#322f1399c7dab771302884a812823e77">A</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the A component of this plane.  <a href="#322f1399c7dab771302884a812823e77"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#00dce801f6eb76b494971df85cc985f1">A</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the A component of this plane.  <a href="#00dce801f6eb76b494971df85cc985f1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#4e055f9dcd3aac04995094df9b18e5d9">B</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the B component of this plane.  <a href="#4e055f9dcd3aac04995094df9b18e5d9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#3e2d4078d72c4e1187e00c3487517dae">B</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the B component of this plane.  <a href="#3e2d4078d72c4e1187e00c3487517dae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#8357b3af89a63ceb24ea65e5f9108afc">C</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the C component of this plane.  <a href="#8357b3af89a63ceb24ea65e5f9108afc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#90b10f5b2d4e797229a2514a49240695">C</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the C component of this plane.  <a href="#90b10f5b2d4e797229a2514a49240695"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#4fc26da8112f45f27271c6faf244ab65">Classify</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pt) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Classify the given vector with regards to this plane.  <a href="#4fc26da8112f45f27271c6faf244ab65"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#35d00bcb895f9bc4922297509c69bb66">ClipPolygon</a> (const <a class="el" href="classcsVector3.html">csVector3</a> *InVerts, size_t InCount, <a class="el" href="classcsVector3.html">csVector3</a> *OutPolygon, size_t &amp;OutCount, <a class="el" href="structcsVertexStatus.html">csVertexStatus</a> *OutStatus, bool reversed=false) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clip the polygon in <code>InVerts</code> (having <code>InCount</code> vertices) to this plane.  <a href="#35d00bcb895f9bc4922297509c69bb66"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#11c8da18d3b71a7a2ec23e8c0119b1bf">ClipPolygon</a> (<a class="el" href="classcsVector3.html">csVector3</a> *&amp;pverts, int &amp;num_verts, bool reversed=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clip the polygon in pverts (having num_verts vertices) to this plane.  <a href="#11c8da18d3b71a7a2ec23e8c0119b1bf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#03687cdc4003b2ab584b1338716ce595">csPlane3</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v2, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v3)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the plane through 0 and the two given points.  <a href="#03687cdc4003b2ab584b1338716ce595"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#b4e899f91774541041fe457593c8f7f9">csPlane3</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v1, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v2, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v3)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the plane through the three given points.  <a href="#b4e899f91774541041fe457593c8f7f9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#637829a15e07e02fcdeb0d1126067141">csPlane3</a> (float a, float b, float c, float d=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the plane to the given components.  <a href="#637829a15e07e02fcdeb0d1126067141"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#862e44343cc7d3a234c41253895d4a09">csPlane3</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;plane_norm, float d=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the plane with the given norm and D component.  <a href="#862e44343cc7d3a234c41253895d4a09"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#17c5dccf5a9ca336e8f73585d09ce5be">csPlane3</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize to the xy plane (0,0,1,0).  <a href="#17c5dccf5a9ca336e8f73585d09ce5be"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#bf89786dea3318b33e97d1ff9e5a1eac">D</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the D component of this plane.  <a href="#bf89786dea3318b33e97d1ff9e5a1eac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#fcd31cd64e035095884afd1f08dc9e78">D</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the D component of this plane.  <a href="#fcd31cd64e035095884afd1f08dc9e78"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsString.html">csString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#7a73e6724a6682050c195d3a484eeacc">Description</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a textual representation of the plane in the form "aa,bb,cc,dd".  <a href="#7a73e6724a6682050c195d3a484eeacc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#e787fb54a67451b35d5c99d72c701231">Distance</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pt) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the distance from the given vector to this plane.  <a href="#e787fb54a67451b35d5c99d72c701231"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#d37a02e27c8893e3dec9f1469ce53d1a">FindPoint</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a point on this plane.  <a href="#d37a02e27c8893e3dec9f1469ce53d1a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#2397ca07d62c70735afe4d04e5de2007">GetNormal</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the normal of this plane.  <a href="#2397ca07d62c70735afe4d04e5de2007"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#159706aa44c4a25bb77a37346eb0d586">Invert</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reverses the direction of the plane while maintaining the plane itself.  <a href="#159706aa44c4a25bb77a37346eb0d586"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#3226998cbe7051d458d8aad10cecf0d3">Normal</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the normal vector of this plane.  <a href="#3226998cbe7051d458d8aad10cecf0d3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#a4f497ef2c2265ab1460bca8bff38cf9">Normal</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the normal vector of this plane.  <a href="#a4f497ef2c2265ab1460bca8bff38cf9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#6e1eb948d8f0b5fdf2b4fd51c58c3536">Normalize</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Normalizes the plane equation so that 'norm' is a unit vector.  <a href="#6e1eb948d8f0b5fdf2b4fd51c58c3536"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#ad9a320825b733696f5875cac0a28d4c">Set</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v2, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v3)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the plane through 0 and the two given points.  <a href="#ad9a320825b733696f5875cac0a28d4c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#b213562ef8e16b563753f3f122b184c3">Set</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v1, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v2, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v3)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the plane through the three given points.  <a href="#b213562ef8e16b563753f3f122b184c3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#b3c713a71cbdd11d3a1e01657680e945">Set</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;normal, float d)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of the plane using a normal and D component.  <a href="#b3c713a71cbdd11d3a1e01657680e945"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#8b34f21844051a64a6726911679043d4">Set</a> (float a, float b, float c, float d)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of the four plane components.  <a href="#8b34f21844051a64a6726911679043d4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#da16f3255a6d8d1ce932263d669f2bcf">SetOrigin</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set one point ("origin") through which the plane goes.  <a href="#da16f3255a6d8d1ce932263d669f2bcf"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#4f24bd29e237c556de38d60201bd306d">Classify</a> (float A, float B, float C, float D, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This static function classifies a vector with regards to four given plane components.  <a href="#4f24bd29e237c556de38d60201bd306d"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#a217e665f4f80f7fdb0d792e0d7b86d9">DD</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The D component of the plane.  <a href="#a217e665f4f80f7fdb0d792e0d7b86d9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane3.html#234f9daa8ee7fbb77ba431ac11e1d88c">norm</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The normal vector (or the (A,B,C) components).  <a href="#234f9daa8ee7fbb77ba431ac11e1d88c"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A plane in 3D space. 
<p>
The plane is given by the equation AAx + BBy + CCz + DD = 0, Where (AA,BB,CC) is given by the vector 'norm'. 
<p>Definition at line <a class="el" href="plane3_8h-source.html#l00042">42</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="17c5dccf5a9ca336e8f73585d09ce5be"></a><!-- doxytag: member="csPlane3::csPlane3" ref="17c5dccf5a9ca336e8f73585d09ce5be" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csPlane3::csPlane3           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize to the xy plane (0,0,1,0). 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00054">54</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="862e44343cc7d3a234c41253895d4a09"></a><!-- doxytag: member="csPlane3::csPlane3" ref="862e44343cc7d3a234c41253895d4a09" args="(const csVector3 &amp;plane_norm, float d=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csPlane3::csPlane3           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>plane_norm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>d</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the plane with the given norm and D component. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00059">59</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="637829a15e07e02fcdeb0d1126067141"></a><!-- doxytag: member="csPlane3::csPlane3" ref="637829a15e07e02fcdeb0d1126067141" args="(float a, float b, float c, float d=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csPlane3::csPlane3           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>d</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the plane to the given components. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00064">64</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b4e899f91774541041fe457593c8f7f9"></a><!-- doxytag: member="csPlane3::csPlane3" ref="b4e899f91774541041fe457593c8f7f9" args="(const csVector3 &amp;v1, const csVector3 &amp;v2, const csVector3 &amp;v3)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csPlane3::csPlane3           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v3</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the plane through the three given points. 
<p>
If the plane is expressed as (N,D) with N the A,B,C components of the plane then this will initialize the plane to (N',-N'*v1) with N' equal to (v1-v2)%(v1-v3). 
</div>
</div><p>
<a class="anchor" name="03687cdc4003b2ab584b1338716ce595"></a><!-- doxytag: member="csPlane3::csPlane3" ref="03687cdc4003b2ab584b1338716ce595" args="(const csVector3 &amp;v2, const csVector3 &amp;v3)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csPlane3::csPlane3           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v3</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the plane through 0 and the two given points. 
<p>
If the plane is expressed as (N,D) with N the A,B,C components of the plane then this will initialize the plane to (v2v3,0). 
<p>Definition at line <a class="el" href="plane3_8h-source.html#l00079">79</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="322f1399c7dab771302884a812823e77"></a><!-- doxytag: member="csPlane3::A" ref="322f1399c7dab771302884a812823e77" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float&amp; csPlane3::A           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the A component of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00099">99</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="00dce801f6eb76b494971df85cc985f1"></a><!-- doxytag: member="csPlane3::A" ref="00dce801f6eb76b494971df85cc985f1" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csPlane3::A           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the A component of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00090">90</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

<p>References <a class="el" href="vector3_8h-source.html#l00067">csVector3::x</a>.</p>

</div>
</div><p>
<a class="anchor" name="4e055f9dcd3aac04995094df9b18e5d9"></a><!-- doxytag: member="csPlane3::B" ref="4e055f9dcd3aac04995094df9b18e5d9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float&amp; csPlane3::B           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the B component of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00101">101</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="3e2d4078d72c4e1187e00c3487517dae"></a><!-- doxytag: member="csPlane3::B" ref="3e2d4078d72c4e1187e00c3487517dae" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csPlane3::B           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the B component of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00092">92</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8357b3af89a63ceb24ea65e5f9108afc"></a><!-- doxytag: member="csPlane3::C" ref="8357b3af89a63ceb24ea65e5f9108afc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float&amp; csPlane3::C           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the C component of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00103">103</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="90b10f5b2d4e797229a2514a49240695"></a><!-- doxytag: member="csPlane3::C" ref="90b10f5b2d4e797229a2514a49240695" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csPlane3::C           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the C component of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00094">94</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="4f24bd29e237c556de38d60201bd306d"></a><!-- doxytag: member="csPlane3::Classify" ref="4f24bd29e237c556de38d60201bd306d" args="(float A, float B, float C, float D, const csVector3 &amp;pt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static float csPlane3::Classify           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>B</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>C</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pt</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This static function classifies a vector with regards to four given plane components. 
<p>
This will calculate and return A*pt.x+B*pt.y+C*pt.z+D. 
<p>Definition at line <a class="el" href="plane3_8h-source.html#l00161">161</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

<p>References <a class="el" href="vector3_8h-source.html#l00067">csVector3::x</a>, <a class="el" href="vector3_8h-source.html#l00069">csVector3::y</a>, and <a class="el" href="vector3_8h-source.html#l00071">csVector3::z</a>.</p>

</div>
</div><p>
<a class="anchor" name="4fc26da8112f45f27271c6faf244ab65"></a><!-- doxytag: member="csPlane3::Classify" ref="4fc26da8112f45f27271c6faf244ab65" args="(const csVector3 &amp;pt) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csPlane3::Classify           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pt</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Classify the given vector with regards to this plane. 
<p>
If the plane is expressed as (N,D) with N the A,B,C components of the plane then this will calculate and return N*pt+D. Note that in the Crystal Space engine this function will return negative if used on the visible side of a polygon. i.e. if you take the world space plane of the polygon, then <a class="el" href="classcsPlane3.html#4fc26da8112f45f27271c6faf244ab65" title="Classify the given vector with regards to this plane.">Classify()</a> will return a negative value if the camera is located at a point from which you can see the polygon. Back-face culling will make the polygon invisible on the other side. 
<p>Definition at line <a class="el" href="plane3_8h-source.html#l00155">155</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

<p>Referenced by <a class="el" href="math3d_8h-source.html#l00243">csSquaredDist::PointPlane()</a>, and <a class="el" href="math3d_8h-source.html#l00089">csMath3::Visible()</a>.</p>

</div>
</div><p>
<a class="anchor" name="35d00bcb895f9bc4922297509c69bb66"></a><!-- doxytag: member="csPlane3::ClipPolygon" ref="35d00bcb895f9bc4922297509c69bb66" args="(const csVector3 *InVerts, size_t InCount, csVector3 *OutPolygon, size_t &amp;OutCount, csVertexStatus *OutStatus, bool reversed=false) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> csPlane3::ClipPolygon           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td>
          <td class="paramname"> <em>InVerts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>InCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td>
          <td class="paramname"> <em>OutPolygon</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&nbsp;</td>
          <td class="paramname"> <em>OutCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcsVertexStatus.html">csVertexStatus</a> *&nbsp;</td>
          <td class="paramname"> <em>OutStatus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>reversed</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clip the polygon in <code>InVerts</code> (having <code>InCount</code> vertices) to this plane. 
<p>
Method returns one of <a class="el" href="group__geom__utils.html#gg109bfaad92bd6d348dab484aec11edbb327d20023b6a973b24df4878ac1ca2a9" title="The input polygon is completely outside of clipper polygon.">CS_CLIP_OUTSIDE</a>, <a class="el" href="group__geom__utils.html#gg109bfaad92bd6d348dab484aec11edbb75e75d608a45eea6c9fda90b04aeefbd" title="The input polygon is completely inside (thus has not changed).">CS_CLIP_INSIDE</a>, <a class="el" href="group__geom__utils.html#gg109bfaad92bd6d348dab484aec11edbb5545e595302e89c3de51ec06a09ad73f" title="The input polygon was partially inside, partially outside.">CS_CLIP_CLIPPED</a> depending on whether all, none or some vertices were clipped. If the polygon is clipped, the resulting polygon is returned in <code>OutPolygon</code> and the number of vertices in <code>OutCount</code>. <code>OutCount</code> must be initialized with the maximum number of output vertices. <code>OutStatus</code> will return additional information for clipped vertices. Normally this function will consider the polygon visible if it is on the negative side of the plane (<a class="el" href="classcsPlane3.html#4fc26da8112f45f27271c6faf244ab65" title="Classify the given vector with regards to this plane.">Classify()</a>). If <code>reversed</code> is set to true then the positive side will be used instead. 
</div>
</div><p>
<a class="anchor" name="11c8da18d3b71a7a2ec23e8c0119b1bf"></a><!-- doxytag: member="csPlane3::ClipPolygon" ref="11c8da18d3b71a7a2ec23e8c0119b1bf" args="(csVector3 *&amp;pverts, int &amp;num_verts, bool reversed=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csPlane3::ClipPolygon           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsVector3.html">csVector3</a> *&amp;&nbsp;</td>
          <td class="paramname"> <em>pverts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>num_verts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>reversed</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clip the polygon in pverts (having num_verts vertices) to this plane. 
<p>
Method returns true if there is something visible, false otherwise. Note that this function returns a pointer to a static array in <a class="el" href="classcsPlane3.html" title="A plane in 3D space.">csPlane3</a>. The contents of this array will only be valid until the next call to ClipPolygon. Normally this function will consider the polygon visible if it is on the negative side of the plane (<a class="el" href="classcsPlane3.html#4fc26da8112f45f27271c6faf244ab65" title="Classify the given vector with regards to this plane.">Classify()</a>). If 'reversed' is set to true then the positive side will be used instead. 
</div>
</div><p>
<a class="anchor" name="bf89786dea3318b33e97d1ff9e5a1eac"></a><!-- doxytag: member="csPlane3::D" ref="bf89786dea3318b33e97d1ff9e5a1eac" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float&amp; csPlane3::D           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the D component of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00105">105</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="fcd31cd64e035095884afd1f08dc9e78"></a><!-- doxytag: member="csPlane3::D" ref="fcd31cd64e035095884afd1f08dc9e78" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csPlane3::D           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the D component of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00096">96</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="7a73e6724a6682050c195d3a484eeacc"></a><!-- doxytag: member="csPlane3::Description" ref="7a73e6724a6682050c195d3a484eeacc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsString.html">csString</a> csPlane3::Description           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a textual representation of the plane in the form "aa,bb,cc,dd". 
<p>

</div>
</div><p>
<a class="anchor" name="e787fb54a67451b35d5c99d72c701231"></a><!-- doxytag: member="csPlane3::Distance" ref="e787fb54a67451b35d5c99d72c701231" args="(const csVector3 &amp;pt) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csPlane3::Distance           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pt</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compute the distance from the given vector to this plane. 
<p>
This function assumes that 'norm' is a unit vector. If not, the function returns distance times the magnitude of 'norm'. This function corresponds exactly to the absolute value of <a class="el" href="classcsPlane3.html#4fc26da8112f45f27271c6faf244ab65" title="Classify the given vector with regards to this plane.">Classify()</a>. 
<p>Definition at line <a class="el" href="plane3_8h-source.html#l00173">173</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

<p>References <a class="el" href="math3d__d_8h-source.html#l00036">ABS</a>.</p>

</div>
</div><p>
<a class="anchor" name="d37a02e27c8893e3dec9f1469ce53d1a"></a><!-- doxytag: member="csPlane3::FindPoint" ref="d37a02e27c8893e3dec9f1469ce53d1a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csPlane3::FindPoint           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Find a point on this plane. 
<p>

</div>
</div><p>
<a class="anchor" name="2397ca07d62c70735afe4d04e5de2007"></a><!-- doxytag: member="csPlane3::GetNormal" ref="2397ca07d62c70735afe4d04e5de2007" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classcsVector3.html">csVector3</a>&amp; csPlane3::GetNormal           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the normal of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00108">108</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="159706aa44c4a25bb77a37346eb0d586"></a><!-- doxytag: member="csPlane3::Invert" ref="159706aa44c4a25bb77a37346eb0d586" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csPlane3::Invert           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reverses the direction of the plane while maintaining the plane itself. 
<p>
This will basically reverse the result of <a class="el" href="classcsPlane3.html#4fc26da8112f45f27271c6faf244ab65" title="Classify the given vector with regards to this plane.">Classify()</a>. 
<p>Definition at line <a class="el" href="plane3_8h-source.html#l00180">180</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="3226998cbe7051d458d8aad10cecf0d3"></a><!-- doxytag: member="csPlane3::Normal" ref="3226998cbe7051d458d8aad10cecf0d3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classcsVector3.html">csVector3</a>&amp; csPlane3::Normal           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the normal vector of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00087">87</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a4f497ef2c2265ab1460bca8bff38cf9"></a><!-- doxytag: member="csPlane3::Normal" ref="a4f497ef2c2265ab1460bca8bff38cf9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a>&amp; csPlane3::Normal           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the normal vector of this plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00085">85</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="6e1eb948d8f0b5fdf2b4fd51c58c3536"></a><!-- doxytag: member="csPlane3::Normalize" ref="6e1eb948d8f0b5fdf2b4fd51c58c3536" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csPlane3::Normalize           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Normalizes the plane equation so that 'norm' is a unit vector. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00185">185</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="ad9a320825b733696f5875cac0a28d4c"></a><!-- doxytag: member="csPlane3::Set" ref="ad9a320825b733696f5875cac0a28d4c" args="(const csVector3 &amp;v2, const csVector3 &amp;v3)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csPlane3::Set           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v3</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the plane through 0 and the two given points. 
<p>
If the plane is expressed as (N,D) with N the A,B,C components of the plane then this will initialize the plane to (v2v3,0). 
<p>Definition at line <a class="el" href="plane3_8h-source.html#l00131">131</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b213562ef8e16b563753f3f122b184c3"></a><!-- doxytag: member="csPlane3::Set" ref="b213562ef8e16b563753f3f122b184c3" args="(const csVector3 &amp;v1, const csVector3 &amp;v2, const csVector3 &amp;v3)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csPlane3::Set           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v3</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the plane through the three given points. 
<p>
If the plane is expressed as (N,D) with N the A,B,C components of the plane then this will initialize the plane to (N',-N'*v1) with N' equal to (v1-v2)%(v1-v3). 
</div>
</div><p>
<a class="anchor" name="b3c713a71cbdd11d3a1e01657680e945"></a><!-- doxytag: member="csPlane3::Set" ref="b3c713a71cbdd11d3a1e01657680e945" args="(const csVector3 &amp;normal, float d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csPlane3::Set           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>normal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the value of the plane using a normal and D component. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00115">115</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8b34f21844051a64a6726911679043d4"></a><!-- doxytag: member="csPlane3::Set" ref="8b34f21844051a64a6726911679043d4" args="(float a, float b, float c, float d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csPlane3::Set           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the value of the four plane components. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00111">111</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="da16f3255a6d8d1ce932263d669f2bcf"></a><!-- doxytag: member="csPlane3::SetOrigin" ref="da16f3255a6d8d1ce932263d669f2bcf" args="(const csVector3 &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csPlane3::SetOrigin           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set one point ("origin") through which the plane goes. 
<p>
This is equal to setting DD = -N'*p where N' is the normal 
<p>Definition at line <a class="el" href="plane3_8h-source.html#l00140">140</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="a217e665f4f80f7fdb0d792e0d7b86d9"></a><!-- doxytag: member="csPlane3::DD" ref="a217e665f4f80f7fdb0d792e0d7b86d9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classcsPlane3.html#a217e665f4f80f7fdb0d792e0d7b86d9">csPlane3::DD</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The D component of the plane. 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00049">49</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

<p>Referenced by <a class="el" href="math3d_8h-source.html#l00182">csMath3::PlanesEqual()</a>.</p>

</div>
</div><p>
<a class="anchor" name="234f9daa8ee7fbb77ba431ac11e1d88c"></a><!-- doxytag: member="csPlane3::norm" ref="234f9daa8ee7fbb77ba431ac11e1d88c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> <a class="el" href="classcsPlane3.html#234f9daa8ee7fbb77ba431ac11e1d88c">csPlane3::norm</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The normal vector (or the (A,B,C) components). 
<p>

<p>Definition at line <a class="el" href="plane3_8h-source.html#l00046">46</a> of file <a class="el" href="plane3_8h-source.html">plane3.h</a>.</p>

<p>Referenced by <a class="el" href="math3d_8h-source.html#l00182">csMath3::PlanesEqual()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csgeom/<a class="el" href="plane3_8h-source.html">plane3.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>