<!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: csBoxClipper 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>csBoxClipper Class Reference<br> <small> [<a class="el" href="group__geom__utils.html">Geometry utilities</a>]</small> </h1><!-- doxytag: class="csBoxClipper" --><!-- doxytag: inherits="csClipper" -->The <a class="el" href="classcsBoxClipper.html" title="The csBoxClipper class is able to clip convex polygons to a rectangle (such as the...">csBoxClipper</a> class is able to clip convex polygons to a rectangle (such as the screen). <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="polyclip_8h-source.html">csgeom/polyclip.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for csBoxClipper:</div> <div class="dynsection"> <p><center><img src="classcsBoxClipper__inherit__graph.png" border="0" usemap="#csBoxClipper__inherit__map" alt="Inheritance graph"></center> <map name="csBoxClipper__inherit__map"> <area shape="rect" href="classcsClipper.html" title="The csClipper class is an abstract parent to all 2D clipping objects." alt="" coords="171,239,251,265"><area shape="rect" href="classscfImplementation1.html" title="scfImplementation1\< csClipper, iClipper2D \>" alt="" coords="55,161,367,188"><area shape="rect" href="classscfImplementation.html" title="scfImplementation\< csClipper \>" alt="" coords="5,84,235,111"><area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="264,7,320,33"><area shape="rect" href="structiClipper2D.html" title="This interfaces represents a 2D clipper for polygons." alt="" coords="259,84,347,111"><area shape="rect" href="classCS_1_1Memory_1_1CustomAllocated.html" title="Class that overrides operator new/operator delete/etc." alt="" coords="9,7,231,33"></map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div> <p> <a href="classcsBoxClipper-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">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#e82274ff1ada152fee90c95f54a6c186">ClassifyBox</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Classify some bounding box against this clipper. <a href="#e82274ff1ada152fee90c95f54a6c186"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#bf805b74f50108126961506e91954ba0">Clip</a> (<a class="el" href="classcsVector2.html">csVector2</a> *InPolygon, size_t InCount, <a class="el" href="classcsVector2.html">csVector2</a> *OutPolygon, size_t &OutCount, <a class="el" href="structcsVertexStatus.html">csVertexStatus</a> *OutStatus)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clip and return additional information about each vertex. <a href="#bf805b74f50108126961506e91954ba0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#f8ee886f4239788ea434479f66ed661d">Clip</a> (<a class="el" href="classcsVector2.html">csVector2</a> *InPolygon, size_t InCount, <a class="el" href="classcsVector2.html">csVector2</a> *OutPolygon, size_t &OutCount, <a class="el" href="classcsBox2.html">csBox2</a> &BoundingBox)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clip and compute the bounding box. <a href="#f8ee886f4239788ea434479f66ed661d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#07ef433b9e974ef0cc17b54a158fe7bc">Clip</a> (<a class="el" href="classcsVector2.html">csVector2</a> *InPolygon, size_t InCount, <a class="el" href="classcsVector2.html">csVector2</a> *OutPolygon, size_t &OutCount)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Simple clipping. <a href="#07ef433b9e974ef0cc17b54a158fe7bc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#9570593534dd1a20fcbad29b02b0bf61">csBoxClipper</a> (float x1, float y1, float x2, float y2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes the clipper object to a rectangle with the given coords. <a href="#9570593534dd1a20fcbad29b02b0bf61"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#72a74d9d24995199da33cadae780fc79">csBoxClipper</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes the clipper object to the given bounding region. <a href="#72a74d9d24995199da33cadae780fc79"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiClipper2D.html#03ed976bdb8cd014a5dabccc06bd3730">ClipperType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#f352d510f25cd20537cf3edeffd00d27">GetClipperType</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the type of this clipper. <a href="#f352d510f25cd20537cf3edeffd00d27"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsVector2.html">csVector2</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#7872039688f9938fbbccb5bfe64c6451">GetClipPoly</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return a pointer to the array of csVector2's. <a href="#7872039688f9938fbbccb5bfe64c6451"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#139cf60f2685caac6a254e81dce75c27">GetVertexCount</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return number of vertices for this clipper polygon. <a href="#139cf60f2685caac6a254e81dce75c27"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBoxClipper.html#105c6e61ad5943647a4163c73b312123">IsInside</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return true if given point is inside (or on bound) of clipper polygon. <a href="#105c6e61ad5943647a4163c73b312123"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> The <a class="el" href="classcsBoxClipper.html" title="The csBoxClipper class is able to clip convex polygons to a rectangle (such as the...">csBoxClipper</a> class is able to clip convex polygons to a rectangle (such as the screen). <p>Definition at line <a class="el" href="polyclip_8h-source.html#l00078">78</a> of file <a class="el" href="polyclip_8h-source.html">polyclip.h</a>.</p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="72a74d9d24995199da33cadae780fc79"></a><!-- doxytag: member="csBoxClipper::csBoxClipper" ref="72a74d9d24995199da33cadae780fc79" args="(const csBox2 &b)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csBoxClipper::csBoxClipper </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>b</em> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initializes the clipper object to the given bounding region. <p> <p>Definition at line <a class="el" href="polyclip_8h-source.html#l00096">96</a> of file <a class="el" href="polyclip_8h-source.html">polyclip.h</a>.</p> </div> </div><p> <a class="anchor" name="9570593534dd1a20fcbad29b02b0bf61"></a><!-- doxytag: member="csBoxClipper::csBoxClipper" ref="9570593534dd1a20fcbad29b02b0bf61" args="(float x1, float y1, float x2, float y2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csBoxClipper::csBoxClipper </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>x1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>y1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>x2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>y2</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> Initializes the clipper object to a rectangle with the given coords. <p> <p>Definition at line <a class="el" href="polyclip_8h-source.html#l00099">99</a> of file <a class="el" href="polyclip_8h-source.html">polyclip.h</a>.</p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="e82274ff1ada152fee90c95f54a6c186"></a><!-- doxytag: member="csBoxClipper::ClassifyBox" ref="e82274ff1ada152fee90c95f54a6c186" args="(const csBox2 &box)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual int csBoxClipper::ClassifyBox </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box</em> </td> <td> ) </td> <td width="100%"><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Classify some bounding box against this clipper. <p> <p>Implements <a class="el" href="structiClipper2D.html#f79ddb0aa5da86b8fe78d25395385de6">iClipper2D</a>.</p> </div> </div><p> <a class="anchor" name="bf805b74f50108126961506e91954ba0"></a><!-- doxytag: member="csBoxClipper::Clip" ref="bf805b74f50108126961506e91954ba0" args="(csVector2 *InPolygon, size_t InCount, csVector2 *OutPolygon, size_t &OutCount, csVertexStatus *OutStatus)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> csBoxClipper::Clip </td> <td>(</td> <td class="paramtype"><a class="el" href="classcsVector2.html">csVector2</a> * </td> <td class="paramname"> <em>InPolygon</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>InCount</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classcsVector2.html">csVector2</a> * </td> <td class="paramname"> <em>OutPolygon</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t & </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> * </td> <td class="paramname"> <em>OutStatus</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Clip and return additional information about each vertex. <p> <p>Implements <a class="el" href="structiClipper2D.html#3bd59eeae178ed2b3af653f88b71e9aa">iClipper2D</a>.</p> </div> </div><p> <a class="anchor" name="f8ee886f4239788ea434479f66ed661d"></a><!-- doxytag: member="csBoxClipper::Clip" ref="f8ee886f4239788ea434479f66ed661d" args="(csVector2 *InPolygon, size_t InCount, csVector2 *OutPolygon, size_t &OutCount, csBox2 &BoundingBox)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> csBoxClipper::Clip </td> <td>(</td> <td class="paramtype"><a class="el" href="classcsVector2.html">csVector2</a> * </td> <td class="paramname"> <em>InPolygon</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>InCount</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classcsVector2.html">csVector2</a> * </td> <td class="paramname"> <em>OutPolygon</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t & </td> <td class="paramname"> <em>OutCount</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>BoundingBox</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Clip and compute the bounding box. <p> <p>Implements <a class="el" href="structiClipper2D.html#5868f2ecb9b6de52cb9a2fb27901ea66">iClipper2D</a>.</p> </div> </div><p> <a class="anchor" name="07ef433b9e974ef0cc17b54a158fe7bc"></a><!-- doxytag: member="csBoxClipper::Clip" ref="07ef433b9e974ef0cc17b54a158fe7bc" args="(csVector2 *InPolygon, size_t InCount, csVector2 *OutPolygon, size_t &OutCount)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> csBoxClipper::Clip </td> <td>(</td> <td class="paramtype"><a class="el" href="classcsVector2.html">csVector2</a> * </td> <td class="paramname"> <em>InPolygon</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>InCount</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classcsVector2.html">csVector2</a> * </td> <td class="paramname"> <em>OutPolygon</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t & </td> <td class="paramname"> <em>OutCount</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Simple clipping. <p> <p>Implements <a class="el" href="structiClipper2D.html#2b9dcd9f97500ea210e434a2f5f02299">iClipper2D</a>.</p> </div> </div><p> <a class="anchor" name="f352d510f25cd20537cf3edeffd00d27"></a><!-- doxytag: member="csBoxClipper::GetClipperType" ref="f352d510f25cd20537cf3edeffd00d27" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="structiClipper2D.html#03ed976bdb8cd014a5dabccc06bd3730">ClipperType</a> csBoxClipper::GetClipperType </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retrieve the type of this clipper. <p> <p>Implements <a class="el" href="structiClipper2D.html#7016695a49e465211d75df6224a17979">iClipper2D</a>.</p> <p>Definition at line <a class="el" href="polyclip_8h-source.html#l00129">129</a> of file <a class="el" href="polyclip_8h-source.html">polyclip.h</a>.</p> </div> </div><p> <a class="anchor" name="7872039688f9938fbbccb5bfe64c6451"></a><!-- doxytag: member="csBoxClipper::GetClipPoly" ref="7872039688f9938fbbccb5bfe64c6451" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classcsVector2.html">csVector2</a>* csBoxClipper::GetClipPoly </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return a pointer to the array of csVector2's. <p> <p>Implements <a class="el" href="structiClipper2D.html#8210d2f967bdd837630a6caccea43169">iClipper2D</a>.</p> <p>Definition at line <a class="el" href="polyclip_8h-source.html#l00126">126</a> of file <a class="el" href="polyclip_8h-source.html">polyclip.h</a>.</p> </div> </div><p> <a class="anchor" name="139cf60f2685caac6a254e81dce75c27"></a><!-- doxytag: member="csBoxClipper::GetVertexCount" ref="139cf60f2685caac6a254e81dce75c27" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual size_t csBoxClipper::GetVertexCount </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return number of vertices for this clipper polygon. <p> <p>Implements <a class="el" href="structiClipper2D.html#624994070bdb107a90f8902ba332a937">iClipper2D</a>.</p> <p>Definition at line <a class="el" href="polyclip_8h-source.html#l00122">122</a> of file <a class="el" href="polyclip_8h-source.html">polyclip.h</a>.</p> </div> </div><p> <a class="anchor" name="105c6e61ad5943647a4163c73b312123"></a><!-- doxytag: member="csBoxClipper::IsInside" ref="105c6e61ad5943647a4163c73b312123" args="(const csVector2 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool csBoxClipper::IsInside </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>v</em> </td> <td> ) </td> <td width="100%"><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return true if given point is inside (or on bound) of clipper polygon. <p> <p>Implements <a class="el" href="structiClipper2D.html#c0b0813e21123d4211d8cd093b8dd3ba">iClipper2D</a>.</p> <p>Definition at line <a class="el" href="polyclip_8h-source.html#l00118">118</a> of file <a class="el" href="polyclip_8h-source.html">polyclip.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> <hr>The documentation for this class was generated from the following file:<ul> <li>csgeom/<a class="el" href="polyclip_8h-source.html">polyclip.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>