<!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: csPlane2 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 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 Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <h1>csPlane2 Class Reference<br> <small> [<a class="el" href="group__geom__utils.html">Geometry utilities</a>]</small> </h1><!-- doxytag: class="csPlane2" -->A plane in 2D space. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="plane2_8h-source.html">csgeom/plane2.h</a>></code> <p> <p> <a href="classcsPlane2-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 & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#e4cdaa0690600bef79a37340c2a09900">A</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the A component of this plane. <a href="#e4cdaa0690600bef79a37340c2a09900"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#3fb7dad98d4453e8b094abc13899b874">A</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the A component of this plane. <a href="#3fb7dad98d4453e8b094abc13899b874"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#80ae8a1676eb3af520b848807fb0f6f5">B</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the B component of this plane. <a href="#80ae8a1676eb3af520b848807fb0f6f5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#4c833b9a366372e0babb4dd5848c492f">B</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the B component of this plane. <a href="#4c833b9a366372e0babb4dd5848c492f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#405dd8243192053f8292a9a5299ba6b8">C</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the C component of this plane. <a href="#405dd8243192053f8292a9a5299ba6b8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#dd884e0845743c574bfcc5f4887aef4a">C</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the C component of this plane. <a href="#dd884e0845743c574bfcc5f4887aef4a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#2c5c2f025ea5ee025346e454b7e8476d">Classify</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &pt) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Classify the given vector with regards to this plane. <a href="#2c5c2f025ea5ee025346e454b7e8476d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#f798d8bb97167e8ee495e1326756ca91">csPlane2</a> (const <a class="el" href="classcsSegment2.html">csSegment2</a> &s)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the plane given a segment. <a href="#f798d8bb97167e8ee495e1326756ca91"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#1e44c1215b01fb4317a497b517042c0c">csPlane2</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v1, const <a class="el" href="classcsVector2.html">csVector2</a> &v2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the plane given two vectors. <a href="#1e44c1215b01fb4317a497b517042c0c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#f75a260e2fbf07779368724ea6d91293">csPlane2</a> (float a, float b, float c=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the plane. <a href="#f75a260e2fbf07779368724ea6d91293"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#bb0d125943ad847d6ff565d39884b0ba">csPlane2</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &plane_norm, float c=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the plane. <a href="#bb0d125943ad847d6ff565d39884b0ba"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#654b2688023ba968993c4c3e77cf3451">csPlane2</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize to the xy plane. <a href="#654b2688023ba968993c4c3e77cf3451"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#c4c6e9a1558c408c7205929d50aab6d6">Distance</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &pt) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the distance from the given vector to this plane. <a href="#c4c6e9a1558c408c7205929d50aab6d6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector2.html">csVector2</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#b9f995e5b9b9e5429ef29dc16a8f8fff">GetNormal</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the normal vector of this plane (const version). <a href="#b9f995e5b9b9e5429ef29dc16a8f8fff"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#c032481110e4ecf03b24b6dd5353c49b">Invert</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Reverses the direction of the plane while maintianing the plane itself. <a href="#c032481110e4ecf03b24b6dd5353c49b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector2.html">csVector2</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#f757fe82384edc4756abc5ee2e5ad2b7">Normal</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the normal vector of this plane. <a href="#f757fe82384edc4756abc5ee2e5ad2b7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#5c942978977e9852da5460c5b6b7c05f">Normalize</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Normalizes the plane equation so that 'norm' is a unit vector. <a href="#5c942978977e9852da5460c5b6b7c05f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#4775b232506aa179e542e7ba5e4f056b">Set</a> (float a, float b, float c)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the value of the four plane components. <a href="#4775b232506aa179e542e7ba5e4f056b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#77a3a1e084aa3440162e8c297ec6fb7d">Set</a> (const <a class="el" href="classcsSegment2.html">csSegment2</a> &s)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the plane given a segment. <a href="#77a3a1e084aa3440162e8c297ec6fb7d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#5dc161e80fc0902ff3504a06b5545e02">Set</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v1, const <a class="el" href="classcsVector2.html">csVector2</a> &v2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the plane given two vectors. <a href="#5dc161e80fc0902ff3504a06b5545e02"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#5ddaa9e973408c73789f58f921b0448c">SquaredDistance</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &pt) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the squared distance between the given vector and this plane. <a href="#5ddaa9e973408c73789f58f921b0448c"></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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#816d8f4b4fb20d35a0d9c3850e8e9967">Classify</a> (float A, float B, float C, const <a class="el" href="classcsVector2.html">csVector2</a> &pt)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Classify a vector with regards to three plane components. <a href="#816d8f4b4fb20d35a0d9c3850e8e9967"></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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#ab7d543d13d9838854e5fb14d71176b2">CC</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The C component of the plane. <a href="#ab7d543d13d9838854e5fb14d71176b2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector2.html">csVector2</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPlane2.html#d42196ae41ef4a76048f20bf752cfce7">norm</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The normal vector (or the (A,B) components). <a href="#d42196ae41ef4a76048f20bf752cfce7"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A plane in 2D space. <p> The plane is given by the equation AAx + BBy + CC = 0, Where (AA,BB) is given by the vector 'norm'. <p>Definition at line <a class="el" href="plane2_8h-source.html#l00048">48</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="654b2688023ba968993c4c3e77cf3451"></a><!-- doxytag: member="csPlane2::csPlane2" ref="654b2688023ba968993c4c3e77cf3451" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csPlane2::csPlane2 </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize to the xy plane. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00058">58</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> </div> </div><p> <a class="anchor" name="bb0d125943ad847d6ff565d39884b0ba"></a><!-- doxytag: member="csPlane2::csPlane2" ref="bb0d125943ad847d6ff565d39884b0ba" args="(const csVector2 &plane_norm, float c=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csPlane2::csPlane2 </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>plane_norm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>c</em> = <code>0</code></td><td> </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. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00061">61</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> </div> </div><p> <a class="anchor" name="f75a260e2fbf07779368724ea6d91293"></a><!-- doxytag: member="csPlane2::csPlane2" ref="f75a260e2fbf07779368724ea6d91293" args="(float a, float b, float c=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csPlane2::csPlane2 </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>b</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>c</em> = <code>0</code></td><td> </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. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00065">65</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> </div> </div><p> <a class="anchor" name="1e44c1215b01fb4317a497b517042c0c"></a><!-- doxytag: member="csPlane2::csPlane2" ref="1e44c1215b01fb4317a497b517042c0c" args="(const csVector2 &v1, const csVector2 &v2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csPlane2::csPlane2 </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>v1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>v2</em></td><td> </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 given two vectors. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00082">82</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00068">Set()</a>.</p> </div> </div><p> <a class="anchor" name="f798d8bb97167e8ee495e1326756ca91"></a><!-- doxytag: member="csPlane2::csPlane2" ref="f798d8bb97167e8ee495e1326756ca91" args="(const csSegment2 &s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csPlane2::csPlane2 </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsSegment2.html">csSegment2</a> & </td> <td class="paramname"> <em>s</em> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize the plane given a segment. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00088">88</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00068">Set()</a>.</p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="e4cdaa0690600bef79a37340c2a09900"></a><!-- doxytag: member="csPlane2::A" ref="e4cdaa0690600bef79a37340c2a09900" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float& csPlane2::A </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="plane2_8h-source.html#l00107">107</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00052">norm</a>, and <a class="el" href="vector2_8h-source.html#l00041">csVector2::x</a>.</p> </div> </div><p> <a class="anchor" name="3fb7dad98d4453e8b094abc13899b874"></a><!-- doxytag: member="csPlane2::A" ref="3fb7dad98d4453e8b094abc13899b874" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csPlane2::A </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="plane2_8h-source.html#l00100">100</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00052">norm</a>, and <a class="el" href="vector2_8h-source.html#l00041">csVector2::x</a>.</p> </div> </div><p> <a class="anchor" name="80ae8a1676eb3af520b848807fb0f6f5"></a><!-- doxytag: member="csPlane2::B" ref="80ae8a1676eb3af520b848807fb0f6f5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float& csPlane2::B </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="plane2_8h-source.html#l00109">109</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00052">norm</a>, and <a class="el" href="vector2_8h-source.html#l00043">csVector2::y</a>.</p> </div> </div><p> <a class="anchor" name="4c833b9a366372e0babb4dd5848c492f"></a><!-- doxytag: member="csPlane2::B" ref="4c833b9a366372e0babb4dd5848c492f" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csPlane2::B </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="plane2_8h-source.html#l00102">102</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00052">norm</a>, and <a class="el" href="vector2_8h-source.html#l00043">csVector2::y</a>.</p> </div> </div><p> <a class="anchor" name="405dd8243192053f8292a9a5299ba6b8"></a><!-- doxytag: member="csPlane2::C" ref="405dd8243192053f8292a9a5299ba6b8" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float& csPlane2::C </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="plane2_8h-source.html#l00111">111</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00055">CC</a>.</p> </div> </div><p> <a class="anchor" name="dd884e0845743c574bfcc5f4887aef4a"></a><!-- doxytag: member="csPlane2::C" ref="dd884e0845743c574bfcc5f4887aef4a" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csPlane2::C </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="plane2_8h-source.html#l00104">104</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00055">CC</a>.</p> </div> </div><p> <a class="anchor" name="816d8f4b4fb20d35a0d9c3850e8e9967"></a><!-- doxytag: member="csPlane2::Classify" ref="816d8f4b4fb20d35a0d9c3850e8e9967" args="(float A, float B, float C, const csVector2 &pt)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static float csPlane2::Classify </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>B</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>pt</em></td><td> </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> Classify a vector with regards to three plane components. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00121">121</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="vector2_8h-source.html#l00041">csVector2::x</a>, and <a class="el" href="vector2_8h-source.html#l00043">csVector2::y</a>.</p> </div> </div><p> <a class="anchor" name="2c5c2f025ea5ee025346e454b7e8476d"></a><!-- doxytag: member="csPlane2::Classify" ref="2c5c2f025ea5ee025346e454b7e8476d" args="(const csVector2 &pt) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csPlane2::Classify </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>pt</em> </td> <td> ) </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> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00118">118</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00055">CC</a>, and <a class="el" href="plane2_8h-source.html#l00052">norm</a>.</p> <p>Referenced by <a class="el" href="plane2_8h-source.html#l00130">Distance()</a>, <a class="el" href="plane2_8h-source.html#l00139">SquaredDistance()</a>, and <a class="el" href="math2d_8h-source.html#l00129">csMath2::Visible()</a>.</p> </div> </div><p> <a class="anchor" name="c4c6e9a1558c408c7205929d50aab6d6"></a><!-- doxytag: member="csPlane2::Distance" ref="c4c6e9a1558c408c7205929d50aab6d6" args="(const csVector2 &pt) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csPlane2::Distance </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>pt</em> </td> <td> ) </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'. <p>Definition at line <a class="el" href="plane2_8h-source.html#l00130">130</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="math3d__d_8h-source.html#l00036">ABS</a>, and <a class="el" href="plane2_8h-source.html#l00118">Classify()</a>.</p> </div> </div><p> <a class="anchor" name="b9f995e5b9b9e5429ef29dc16a8f8fff"></a><!-- doxytag: member="csPlane2::GetNormal" ref="b9f995e5b9b9e5429ef29dc16a8f8fff" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsVector2.html">csVector2</a> csPlane2::GetNormal </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return the normal vector of this plane (const version). <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00097">97</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00052">norm</a>.</p> </div> </div><p> <a class="anchor" name="c032481110e4ecf03b24b6dd5353c49b"></a><!-- doxytag: member="csPlane2::Invert" ref="c032481110e4ecf03b24b6dd5353c49b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csPlane2::Invert </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Reverses the direction of the plane while maintianing the plane itself. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00145">145</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00055">CC</a>, and <a class="el" href="plane2_8h-source.html#l00052">norm</a>.</p> </div> </div><p> <a class="anchor" name="f757fe82384edc4756abc5ee2e5ad2b7"></a><!-- doxytag: member="csPlane2::Normal" ref="f757fe82384edc4756abc5ee2e5ad2b7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsVector2.html">csVector2</a>& csPlane2::Normal </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="plane2_8h-source.html#l00094">94</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00052">norm</a>.</p> </div> </div><p> <a class="anchor" name="5c942978977e9852da5460c5b6b7c05f"></a><!-- doxytag: member="csPlane2::Normalize" ref="5c942978977e9852da5460c5b6b7c05f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csPlane2::Normalize </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="plane2_8h-source.html#l00148">148</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00055">CC</a>, <a class="el" href="classcsVector2.html#5fd419d758e521c6a94337b85a1ede70">csVector2::Norm()</a>, and <a class="el" href="plane2_8h-source.html#l00052">norm</a>.</p> </div> </div><p> <a class="anchor" name="4775b232506aa179e542e7ba5e4f056b"></a><!-- doxytag: member="csPlane2::Set" ref="4775b232506aa179e542e7ba5e4f056b" args="(float a, float b, float c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csPlane2::Set </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>b</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>c</em></td><td> </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="plane2_8h-source.html#l00114">114</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00055">CC</a>, <a class="el" href="plane2_8h-source.html#l00052">norm</a>, <a class="el" href="vector2_8h-source.html#l00041">csVector2::x</a>, and <a class="el" href="vector2_8h-source.html#l00043">csVector2::y</a>.</p> </div> </div><p> <a class="anchor" name="77a3a1e084aa3440162e8c297ec6fb7d"></a><!-- doxytag: member="csPlane2::Set" ref="77a3a1e084aa3440162e8c297ec6fb7d" args="(const csSegment2 &s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csPlane2::Set </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsSegment2.html">csSegment2</a> & </td> <td class="paramname"> <em>s</em> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize the plane given a segment. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00076">76</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="segment_8h-source.html#l00067">csSegment2::End()</a>, <a class="el" href="plane2_8h-source.html#l00068">Set()</a>, and <a class="el" href="segment_8h-source.html#l00064">csSegment2::Start()</a>.</p> </div> </div><p> <a class="anchor" name="5dc161e80fc0902ff3504a06b5545e02"></a><!-- doxytag: member="csPlane2::Set" ref="5dc161e80fc0902ff3504a06b5545e02" args="(const csVector2 &v1, const csVector2 &v2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csPlane2::Set </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>v1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>v2</em></td><td> </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 given two vectors. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00068">68</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00055">CC</a>, <a class="el" href="plane2_8h-source.html#l00052">norm</a>, <a class="el" href="vector2_8h-source.html#l00041">csVector2::x</a>, and <a class="el" href="vector2_8h-source.html#l00043">csVector2::y</a>.</p> <p>Referenced by <a class="el" href="plane2_8h-source.html#l00082">csPlane2()</a>, and <a class="el" href="plane2_8h-source.html#l00076">Set()</a>.</p> </div> </div><p> <a class="anchor" name="5ddaa9e973408c73789f58f921b0448c"></a><!-- doxytag: member="csPlane2::SquaredDistance" ref="5ddaa9e973408c73789f58f921b0448c" args="(const csVector2 &pt) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csPlane2::SquaredDistance </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>pt</em> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Compute the squared distance between the given vector and this plane. <p> This function works even if the plane is not normalized. Note that the returned distance will be negative if the point is left of the plane and positive otherwise. <p>Definition at line <a class="el" href="plane2_8h-source.html#l00139">139</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>References <a class="el" href="plane2_8h-source.html#l00118">Classify()</a>, <a class="el" href="plane2_8h-source.html#l00052">norm</a>, and <a class="el" href="vector2_8h-source.html#l00090">csVector2::SquaredNorm()</a>.</p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="ab7d543d13d9838854e5fb14d71176b2"></a><!-- doxytag: member="csPlane2::CC" ref="ab7d543d13d9838854e5fb14d71176b2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float <a class="el" href="classcsPlane2.html#ab7d543d13d9838854e5fb14d71176b2">csPlane2::CC</a> </td> </tr> </table> </div> <div class="memdoc"> <p> The C component of the plane. <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00055">55</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>Referenced by <a class="el" href="plane2_8h-source.html#l00104">C()</a>, <a class="el" href="plane2_8h-source.html#l00118">Classify()</a>, <a class="el" href="plane2_8h-source.html#l00145">Invert()</a>, <a class="el" href="plane2_8h-source.html#l00148">Normalize()</a>, <a class="el" href="math2d_8h-source.html#l00138">csMath2::PlanesEqual()</a>, <a class="el" href="math2d_8h-source.html#l00237">csIntersect2::SegmentPlaneNoTest()</a>, and <a class="el" href="plane2_8h-source.html#l00068">Set()</a>.</p> </div> </div><p> <a class="anchor" name="d42196ae41ef4a76048f20bf752cfce7"></a><!-- doxytag: member="csPlane2::norm" ref="d42196ae41ef4a76048f20bf752cfce7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsVector2.html">csVector2</a> <a class="el" href="classcsPlane2.html#d42196ae41ef4a76048f20bf752cfce7">csPlane2::norm</a> </td> </tr> </table> </div> <div class="memdoc"> <p> The normal vector (or the (A,B) components). <p> <p>Definition at line <a class="el" href="plane2_8h-source.html#l00052">52</a> of file <a class="el" href="plane2_8h-source.html">plane2.h</a>.</p> <p>Referenced by <a class="el" href="plane2_8h-source.html#l00100">A()</a>, <a class="el" href="plane2_8h-source.html#l00102">B()</a>, <a class="el" href="plane2_8h-source.html#l00118">Classify()</a>, <a class="el" href="plane2_8h-source.html#l00097">GetNormal()</a>, <a class="el" href="plane2_8h-source.html#l00145">Invert()</a>, <a class="el" href="plane2_8h-source.html#l00094">Normal()</a>, <a class="el" href="plane2_8h-source.html#l00148">Normalize()</a>, <a class="el" href="math2d_8h-source.html#l00138">csMath2::PlanesEqual()</a>, <a class="el" href="math2d_8h-source.html#l00237">csIntersect2::SegmentPlaneNoTest()</a>, <a class="el" href="plane2_8h-source.html#l00068">Set()</a>, and <a class="el" href="plane2_8h-source.html#l00139">SquaredDistance()</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li>csgeom/<a class="el" href="plane2_8h-source.html">plane2.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>