<!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: csBox2 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>csBox2 Class Reference<br> <small> [<a class="el" href="group__geom__utils.html">Geometry utilities</a>]</small> </h1><!-- doxytag: class="csBox2" -->A bounding box in 2D space. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="box_8h-source.html">csgeom/box.h</a>></code> <p> <p> <a href="classcsBox2-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">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#58bddfa115d8dd5e43f51aaa480bb55c">AddBoundingVertex</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new vertex and recalculate the bounding box. <a href="#58bddfa115d8dd5e43f51aaa480bb55c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#90a589f9c1a205f3e63a9a3f676db3d8">AddBoundingVertex</a> (float x, float y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new vertex and recalculate the bounding box. <a href="#90a589f9c1a205f3e63a9a3f676db3d8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#a90dc8464eead700cf9611f0db213382">AddBoundingVertexSmart</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new vertex and recalculate the bounding box. <a href="#a90dc8464eead700cf9611f0db213382"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#965a607e4f38c5bbb79996607e91d02d">AddBoundingVertexSmart</a> (float x, float y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new vertex and recalculate the bounding box. <a href="#965a607e4f38c5bbb79996607e91d02d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#c4a3210cfff0ca4d819b86454c827181">AddBoundingVertexSmartTest</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new vertex and recalculate the bounding box. <a href="#c4a3210cfff0ca4d819b86454c827181"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#6f5707215ffea25ecaff44162a13353d">AddBoundingVertexSmartTest</a> (float x, float y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new vertex and recalculate the bounding box. <a href="#6f5707215ffea25ecaff44162a13353d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#1f70312c977b0edc53feaa4254c0bd6a">AddBoundingVertexTest</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new vertex and recalculate the bounding box. <a href="#1f70312c977b0edc53feaa4254c0bd6a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#839c478dde215e0f9127622365fc4f6f">AddBoundingVertexTest</a> (float x, float y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new vertex and recalculate the bounding box. <a href="#839c478dde215e0f9127622365fc4f6f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#122d53146b6b4e5c73d33710773787e2">Area</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute area of box. <a href="#122d53146b6b4e5c73d33710773787e2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#a146277921e3a8691fc8903293b0c69d">Contains</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if this box contains the other box. <a href="#a146277921e3a8691fc8903293b0c69d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#9107334c90a7ade49c91144b228c6cdf">csBox2</a> (const <a class="el" href="classcsRect.html">csRect</a> &r)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize this box from the given <a class="el" href="classcsRect.html" title="Rectangle class: simple class for manipulating 2D rectangles.">csRect</a>. <a href="#9107334c90a7ade49c91144b228c6cdf"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#d71952d735caaea4a32d1580a4483afd">csBox2</a> (float x1, float y1, float x2, float y2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize this box with the given values. <a href="#d71952d735caaea4a32d1580a4483afd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#397f792dd79ddd0159d7e36db8687323">csBox2</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize this box with one point. <a href="#397f792dd79ddd0159d7e36db8687323"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#6bc73f0688cb0b7e7647a03b38a6c662">csBox2</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize this box to empty. <a href="#6bc73f0688cb0b7e7647a03b38a6c662"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsString.html">csString</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#f3ebca7bf3120f5a867190bd1791e5e7">Description</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return a textual representation of the box in the form "(minx,miny)-(maxx,maxy)". <a href="#f3ebca7bf3120f5a867190bd1791e5e7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#cefe955042628a510ad3027615f0677d">Empty</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if this box is empty. <a href="#cefe955042628a510ad3027615f0677d"></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="classcsBox2.html#b289b67dbc6b710bdae79242b7290c97">GetCenter</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the center of this box. <a href="#b289b67dbc6b710bdae79242b7290c97"></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="classcsBox2.html#bab16fdf3533f20f0d8a210ae6195f0f">GetCorner</a> (int corner) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return every corner of this bounding box from 0 to 3. <a href="#bab16fdf3533f20f0d8a210ae6195f0f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#d2cf246368703114e9755870cbfc99f8">GetEdge</a> (int edge, <a class="el" href="classcsSegment2.html">csSegment2</a> &e) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return every edge (segment) of this bounding box from 0 to 7 (<a class="el" href="group__geom__utils.html#ggdf764cbdea00d65edcd07bb9953ad2b7b42077b10139d5a537a31773f9d82116" title="from min X, min Y to max X, min Y">CS_BOX_EDGE_xy_Xy</a> etc. <a href="#d2cf246368703114e9755870cbfc99f8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsSegment2.html">csSegment2</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#ec05e28ce46e689f29221bd154173e79">GetEdge</a> (int edge) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return every edge (segment) of this bounding box from 0 to 7 (<a class="el" href="group__geom__utils.html#ggdf764cbdea00d65edcd07bb9953ad2b7b42077b10139d5a537a31773f9d82116" title="from min X, min Y to max X, min Y">CS_BOX_EDGE_xy_Xy</a> etc. <a href="#ec05e28ce46e689f29221bd154173e79"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#8c2869cb8bb4139ab185dc48e14994cc">GetEdgeInfo</a> (int edge, int &v1, int &v2) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given an edge index (<a class="el" href="group__geom__utils.html#ggdf764cbdea00d65edcd07bb9953ad2b7b42077b10139d5a537a31773f9d82116" title="from min X, min Y to max X, min Y">CS_BOX_EDGE_xy_Xy</a> etc. <a href="#8c2869cb8bb4139ab185dc48e14994cc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#fd0262c20c072f3d4a26d7d4b5bb54c3">In</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if the given coordinate is in this box. <a href="#fd0262c20c072f3d4a26d7d4b5bb54c3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#76da66a15f400e06a72fc2118e352cfc">In</a> (float x, float y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if the given coordinate is in this box. <a href="#76da66a15f400e06a72fc2118e352cfc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#436ff414e5aea85fac6a8bc85709c057">Intersect</a> (<a class="el" href="classcsVector2.html">csVector2</a> *poly, int num_poly) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if a polygon if visible in the box. <a href="#436ff414e5aea85fac6a8bc85709c057"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsVector2.html">csVector2</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#3ba36010b4f6e15338441b901d87cb76">Max</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the 2d vector of maximum (x, y) values. <a href="#3ba36010b4f6e15338441b901d87cb76"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#77f1d249a0497714dc72861f2b3efa83">Max</a> (int idx) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get Max component for 0 (x) or 1 (y). <a href="#77f1d249a0497714dc72861f2b3efa83"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#585a8b74a51abfb5a3fe48770b7066c1">MaxX</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum X value of the box. <a href="#585a8b74a51abfb5a3fe48770b7066c1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#3f3a575263c091c1133fe38c9e14a243">MaxY</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum Y value of the box. <a href="#3f3a575263c091c1133fe38c9e14a243"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsVector2.html">csVector2</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#f93fb22fcae0af80693753666ed422c2">Min</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the 2d vector of minimum (x, y) values. <a href="#f93fb22fcae0af80693753666ed422c2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#5542b7fe190a03f8a767129e860f3e9c">Min</a> (int idx) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get Min component for 0 (x) or 1 (y). <a href="#5542b7fe190a03f8a767129e860f3e9c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#58888738bc7cfc684a1b028885ee9604">MinX</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the minimum X value of the box. <a href="#58888738bc7cfc684a1b028885ee9604"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#3b5cf3877904eac184ebe0c125e46e8d">MinY</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the minimum Y value of the box. <a href="#3b5cf3877904eac184ebe0c125e46e8d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox2.html">csBox2</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#edbc5d24ca59f3798bc3268836fad73b">operator *=</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the intersection of two bounding boxes. <a href="#edbc5d24ca59f3798bc3268836fad73b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox2.html">csBox2</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#63978c2df40aa66a9a556476729bf07a">operator+=</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &point)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the union of a point with this bounding box. <a href="#63978c2df40aa66a9a556476729bf07a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox2.html">csBox2</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#e3aedb99b2ca692c47ee8fbd893be8f3">operator+=</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the union of two bounding boxes. <a href="#e3aedb99b2ca692c47ee8fbd893be8f3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#e2d522ca57877c46d0c5247683a42764">Overlap</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if this box overlaps with the given box. <a href="#e2d522ca57877c46d0c5247683a42764"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#28658717968654d2bcff233ddce5b8f6">Set</a> (float x1, float y1, float x2, float y2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the bounds of the box with the given values. <a href="#28658717968654d2bcff233ddce5b8f6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#70fe6baa8ccbd1b4cf58f9069c5cdc46">Set</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &bmin, const <a class="el" href="classcsVector2.html">csVector2</a> &bmax)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the bounds of the box with the given values. <a href="#70fe6baa8ccbd1b4cf58f9069c5cdc46"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#3053fbb9ae225f3f82361376765be5de">SetCenter</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &c)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the center of this box. <a href="#3053fbb9ae225f3f82361376765be5de"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#f8623398b562fc7090adc8a9d23a32f6">SetMax</a> (int idx, float val)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set Max component for 0 (x) or 1 (y). <a href="#f8623398b562fc7090adc8a9d23a32f6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#b69c8a2da728fe6d8174c8279e849124">SetMin</a> (int idx, float val)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set Min component for 0 (x) or 1 (y). <a href="#b69c8a2da728fe6d8174c8279e849124"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#2527d41d7466c9c56d0ec1d541f79b4a">SetSize</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &s)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the size of the box but keep the center intact. <a href="#2527d41d7466c9c56d0ec1d541f79b4a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#9f92eb9bc9aef7535547c703cd957fcc">SquaredOriginDist</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculate the squared distance between (0,0) and the box This routine is extremely efficient. <a href="#9f92eb9bc9aef7535547c703cd957fcc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#a84ba7539d7940a02d177ba67df96bd5">SquaredOriginMaxDist</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculate the squared distance between (0,0) and the point on the box which is furthest away from (0,0). <a href="#a84ba7539d7940a02d177ba67df96bd5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#11638417e3033164b2d209f7b1b76a91">SquaredPosDist</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &pos) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculate the squared distance between pos and the box This routine is extremely efficient. <a href="#11638417e3033164b2d209f7b1b76a91"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#1425f1d279e6a67fb0b814899ed3feb3">SquaredPosMaxDist</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &pos) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculate the squared distance between pos and the point on the box which is furthest away from pos. <a href="#1425f1d279e6a67fb0b814899ed3feb3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#ab3971efb0a2c246be7d31e38b567c35">StartBoundingBox</a> (float x, float y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Same but given some coordinates. <a href="#ab3971efb0a2c246be7d31e38b567c35"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#a3d1f68b38442ff98899897252f3ac89">StartBoundingBox</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize this box to one vertex. <a href="#a3d1f68b38442ff98899897252f3ac89"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#65223106f5a2917780888909c5059577">StartBoundingBox</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize this box to empty. <a href="#65223106f5a2917780888909c5059577"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#888b68fd89965ac071406964f28fb6d7">TestIntersect</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if the two boxes have an intersection. <a href="#888b68fd89965ac071406964f28fb6d7"></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 bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#87153809c7caffe73a5e990e271c1148">Intersect</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &<a class="el" href="classcsBox2.html#65894f8736795b462a4d3f7f3e1d28bc">minbox</a>, const <a class="el" href="classcsVector2.html">csVector2</a> &<a class="el" href="classcsBox2.html#482fc16bd7c5a45ebd30d11e874cd2c3">maxbox</a>, <a class="el" href="classcsVector2.html">csVector2</a> *poly, int num_poly)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if a polygon if visible in the box. <a href="#87153809c7caffe73a5e990e271c1148"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#eb8998585d6c0d77a5688e5965e7a208">Intersect</a> (float minx, float miny, float maxx, float maxy, <a class="el" href="classcsVector2.html">csVector2</a> *poly, int num_poly)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if a polygon if visible in the box. <a href="#eb8998585d6c0d77a5688e5965e7a208"></a><br></td></tr> <tr><td colspan="2"><br><h2>Protected Attributes</h2></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="classcsBox2.html#482fc16bd7c5a45ebd30d11e874cd2c3">maxbox</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The bottom-right coordinate of the bounding box. <a href="#482fc16bd7c5a45ebd30d11e874cd2c3"></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="classcsBox2.html#65894f8736795b462a4d3f7f3e1d28bc">minbox</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The top-left coordinate of the bounding box. <a href="#65894f8736795b462a4d3f7f3e1d28bc"></a><br></td></tr> <tr><td colspan="2"><br><h2>Friends</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox2.html">csBox2</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#9ef0b8622986d1d9eae62dba3ddae6a0">operator *</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box1, const <a class="el" href="classcsBox2.html">csBox2</a> &box2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the intersection of two bounding boxes. <a href="#9ef0b8622986d1d9eae62dba3ddae6a0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#f7b7f6ecc5a371cc0b2abc51d422d926">operator!=</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box1, const <a class="el" href="classcsBox2.html">csBox2</a> &box2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if two bounding boxes are unequal. <a href="#f7b7f6ecc5a371cc0b2abc51d422d926"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox2.html">csBox2</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#ce841ef009e707dcacabd88fa67e9a66">operator+</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box, const <a class="el" href="classcsVector2.html">csVector2</a> &point)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the union of a bounding box and a point. <a href="#ce841ef009e707dcacabd88fa67e9a66"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox2.html">csBox2</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#fc3d6e0ec9365a9874750dd9d55a2488">operator+</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box1, const <a class="el" href="classcsBox2.html">csBox2</a> &box2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the union of two bounding boxes. <a href="#fc3d6e0ec9365a9874750dd9d55a2488"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#f47c97f4dce0e6623df2d20b123e32da">operator<</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &point, const <a class="el" href="classcsBox2.html">csBox2</a> &box)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if a point is contained in a box. <a href="#f47c97f4dce0e6623df2d20b123e32da"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#72d1a956a49e2e4ce58f6e79d983c134">operator<</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box1, const <a class="el" href="classcsBox2.html">csBox2</a> &box2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if box1 is a subset of box2. <a href="#72d1a956a49e2e4ce58f6e79d983c134"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#9ec2a4f26b5e0f00f0e61d21e03ecdf5">operator==</a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box1, const <a class="el" href="classcsBox2.html">csBox2</a> &box2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if two bounding boxes are equal. <a href="#9ec2a4f26b5e0f00f0e61d21e03ecdf5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox2.html#9412de11530ac6b13a62d10d1fe7a985">operator></a> (const <a class="el" href="classcsBox2.html">csBox2</a> &box1, const <a class="el" href="classcsBox2.html">csBox2</a> &box2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if box1 is a superset of box2. <a href="#9412de11530ac6b13a62d10d1fe7a985"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A bounding box in 2D space. <p> In order to operate correctly, this bounding box assumes that all values entered or compared against lie within the range (-<a class="el" href="group__geom__utils.html#g5acebae804990b2e4fc030a61c662e48" title="The maximum value that a coordinate in the bounding box can use.">CS_BOUNDINGBOX_MAXVALUE</a>, <a class="el" href="group__geom__utils.html#g5acebae804990b2e4fc030a61c662e48" title="The maximum value that a coordinate in the bounding box can use.">CS_BOUNDINGBOX_MAXVALUE</a>). It is not recommended to use points outside of this range. <p>Definition at line <a class="el" href="box_8h-source.html#l00101">101</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="6bc73f0688cb0b7e7647a03b38a6c662"></a><!-- doxytag: member="csBox2::csBox2" ref="6bc73f0688cb0b7e7647a03b38a6c662" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csBox2::csBox2 </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize this box to empty. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00394">394</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="397f792dd79ddd0159d7e36db8687323"></a><!-- doxytag: member="csBox2::csBox2" ref="397f792dd79ddd0159d7e36db8687323" args="(const csVector2 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csBox2::csBox2 </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]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize this box with one point. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00399">399</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="d71952d735caaea4a32d1580a4483afd"></a><!-- doxytag: member="csBox2::csBox2" ref="d71952d735caaea4a32d1580a4483afd" args="(float x1, float y1, float x2, float y2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csBox2::csBox2 </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> Initialize this box with the given values. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00403">403</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="9107334c90a7ade49c91144b228c6cdf"></a><!-- doxytag: member="csBox2::csBox2" ref="9107334c90a7ade49c91144b228c6cdf" args="(const csRect &r)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csBox2::csBox2 </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsRect.html">csRect</a> & </td> <td class="paramname"> <em>r</em> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize this box from the given <a class="el" href="classcsRect.html" title="Rectangle class: simple class for manipulating 2D rectangles.">csRect</a>. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00408">408</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="58bddfa115d8dd5e43f51aaa480bb55c"></a><!-- doxytag: member="csBox2::AddBoundingVertex" ref="58bddfa115d8dd5e43f51aaa480bb55c" args="(const csVector2 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::AddBoundingVertex </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]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Add a new vertex and recalculate the bounding box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00317">317</a> of file <a class="el" href="box_8h-source.html">box.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="90a589f9c1a205f3e63a9a3f676db3d8"></a><!-- doxytag: member="csBox2::AddBoundingVertex" ref="90a589f9c1a205f3e63a9a3f676db3d8" args="(float x, float y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::AddBoundingVertex </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>y</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> Add a new vertex and recalculate the bounding box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00310">310</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="a90dc8464eead700cf9611f0db213382"></a><!-- doxytag: member="csBox2::AddBoundingVertexSmart" ref="a90dc8464eead700cf9611f0db213382" args="(const csVector2 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::AddBoundingVertexSmart </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]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Add a new vertex and recalculate the bounding box. <p> This version is a little more optimal. It assumes however that at least one point has been added to the bounding box. <p>Definition at line <a class="el" href="box_8h-source.html#l00338">338</a> of file <a class="el" href="box_8h-source.html">box.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="965a607e4f38c5bbb79996607e91d02d"></a><!-- doxytag: member="csBox2::AddBoundingVertexSmart" ref="965a607e4f38c5bbb79996607e91d02d" args="(float x, float y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::AddBoundingVertexSmart </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>y</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> Add a new vertex and recalculate the bounding box. <p> This version is a little more optimal. It assumes however that at least one point has been added to the bounding box. <p>Definition at line <a class="el" href="box_8h-source.html#l00327">327</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="c4a3210cfff0ca4d819b86454c827181"></a><!-- doxytag: member="csBox2::AddBoundingVertexSmartTest" ref="c4a3210cfff0ca4d819b86454c827181" args="(const csVector2 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::AddBoundingVertexSmartTest </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]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Add a new vertex and recalculate the bounding box. <p> This version is a little more optimal. It assumes however that at least one point has been added to the bounding box. Return true if the box was modified. <p>Definition at line <a class="el" href="box_8h-source.html#l00388">388</a> of file <a class="el" href="box_8h-source.html">box.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="6f5707215ffea25ecaff44162a13353d"></a><!-- doxytag: member="csBox2::AddBoundingVertexSmartTest" ref="6f5707215ffea25ecaff44162a13353d" args="(float x, float y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::AddBoundingVertexSmartTest </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>y</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> Add a new vertex and recalculate the bounding box. <p> This version is a little more optimal. It assumes however that at least one point has been added to the bounding box. Return true if the box was modified. <p>Definition at line <a class="el" href="box_8h-source.html#l00372">372</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="1f70312c977b0edc53feaa4254c0bd6a"></a><!-- doxytag: member="csBox2::AddBoundingVertexTest" ref="1f70312c977b0edc53feaa4254c0bd6a" args="(const csVector2 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::AddBoundingVertexTest </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]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Add a new vertex and recalculate the bounding box. <p> Return true if the box was modified. <p>Definition at line <a class="el" href="box_8h-source.html#l00361">361</a> of file <a class="el" href="box_8h-source.html">box.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="839c478dde215e0f9127622365fc4f6f"></a><!-- doxytag: member="csBox2::AddBoundingVertexTest" ref="839c478dde215e0f9127622365fc4f6f" args="(float x, float y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::AddBoundingVertexTest </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>y</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> Add a new vertex and recalculate the bounding box. <p> Return true if the box was modified. <p>Definition at line <a class="el" href="box_8h-source.html#l00347">347</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="122d53146b6b4e5c73d33710773787e2"></a><!-- doxytag: member="csBox2::Area" ref="122d53146b6b4e5c73d33710773787e2" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::Area </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Compute area of box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00136">136</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="a146277921e3a8691fc8903293b0c69d"></a><!-- doxytag: member="csBox2::Contains" ref="a146277921e3a8691fc8903293b0c69d" args="(const csBox2 &box) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::Contains </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%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Test if this box contains the other box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00248">248</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> <p>References <a class="el" href="box_8h-source.html#l00116">maxbox</a>, <a class="el" href="box_8h-source.html#l00114">minbox</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="f3ebca7bf3120f5a867190bd1791e5e7"></a><!-- doxytag: member="csBox2::Description" ref="f3ebca7bf3120f5a867190bd1791e5e7" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsString.html">csString</a> csBox2::Description </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Return a textual representation of the box in the form "(minx,miny)-(maxx,maxy)". <p> </div> </div><p> <a class="anchor" name="cefe955042628a510ad3027615f0677d"></a><!-- doxytag: member="csBox2::Empty" ref="cefe955042628a510ad3027615f0677d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::Empty </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Test if this box is empty. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00255">255</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="b289b67dbc6b710bdae79242b7290c97"></a><!-- doxytag: member="csBox2::GetCenter" ref="b289b67dbc6b710bdae79242b7290c97" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsVector2.html">csVector2</a> csBox2::GetCenter </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the center of this box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00151">151</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="bab16fdf3533f20f0d8a210ae6195f0f"></a><!-- doxytag: member="csBox2::GetCorner" ref="bab16fdf3533f20f0d8a210ae6195f0f" args="(int corner) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsVector2.html">csVector2</a> csBox2::GetCorner </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>corner</em> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Return every corner of this bounding box from 0 to 3. <p> This contrasts with <a class="el" href="classcsBox2.html#5542b7fe190a03f8a767129e860f3e9c" title="Get Min component for 0 (x) or 1 (y).">Min()</a> and <a class="el" href="classcsBox2.html#77f1d249a0497714dc72861f2b3efa83" title="Get Max component for 0 (x) or 1 (y).">Max()</a> because those are only the min and max corners. Corner 0 = xy, 1 = xY, 2 = Xy, 3 = XY. Use <a class="el" href="group__geom__utils.html#gg06fc87d81c62e9abb8790b6e5713c55b86d75fcdcc57f10b7e00afa9571b2d56" title="min X, min Y">CS_BOX_CORNER_xy</a> etc. defines. <a class="el" href="group__geom__utils.html#gg06fc87d81c62e9abb8790b6e5713c55b26daf5755b88f571d2f8b44b8a4eb1f2" title="center">CS_BOX_CENTER2</a> also works. </div> </div><p> <a class="anchor" name="d2cf246368703114e9755870cbfc99f8"></a><!-- doxytag: member="csBox2::GetEdge" ref="d2cf246368703114e9755870cbfc99f8" args="(int edge, csSegment2 &e) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::GetEdge </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>edge</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classcsSegment2.html">csSegment2</a> & </td> <td class="paramname"> <em>e</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return every edge (segment) of this bounding box from 0 to 7 (<a class="el" href="group__geom__utils.html#ggdf764cbdea00d65edcd07bb9953ad2b7b42077b10139d5a537a31773f9d82116" title="from min X, min Y to max X, min Y">CS_BOX_EDGE_xy_Xy</a> etc. <p> ). <p>Definition at line <a class="el" href="box_8h-source.html#l00187">187</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> <p>References <a class="el" href="segment_8h-source.html#l00061">csSegment2::SetEnd()</a>, and <a class="el" href="segment_8h-source.html#l00058">csSegment2::SetStart()</a>.</p> </div> </div><p> <a class="anchor" name="ec05e28ce46e689f29221bd154173e79"></a><!-- doxytag: member="csBox2::GetEdge" ref="ec05e28ce46e689f29221bd154173e79" args="(int edge) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsSegment2.html">csSegment2</a> csBox2::GetEdge </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>edge</em> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return every edge (segment) of this bounding box from 0 to 7 (<a class="el" href="group__geom__utils.html#ggdf764cbdea00d65edcd07bb9953ad2b7b42077b10139d5a537a31773f9d82116" title="from min X, min Y to max X, min Y">CS_BOX_EDGE_xy_Xy</a> etc. <p> ). <p>Definition at line <a class="el" href="box_8h-source.html#l00178">178</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="8c2869cb8bb4139ab185dc48e14994cc"></a><!-- doxytag: member="csBox2::GetEdgeInfo" ref="8c2869cb8bb4139ab185dc48e14994cc" args="(int edge, int &v1, int &v2) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::GetEdgeInfo </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>edge</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"> <em>v1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"> <em>v2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Given an edge index (<a class="el" href="group__geom__utils.html#ggdf764cbdea00d65edcd07bb9953ad2b7b42077b10139d5a537a31773f9d82116" title="from min X, min Y to max X, min Y">CS_BOX_EDGE_xy_Xy</a> etc. <p> ) return the two vertices (index <a class="el" href="group__geom__utils.html#gg06fc87d81c62e9abb8790b6e5713c55b86d75fcdcc57f10b7e00afa9571b2d56" title="min X, min Y">CS_BOX_CORNER_xy</a> etc.). <p>Definition at line <a class="el" href="box_8h-source.html#l00168">168</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="fd0262c20c072f3d4a26d7d4b5bb54c3"></a><!-- doxytag: member="csBox2::In" ref="fd0262c20c072f3d4a26d7d4b5bb54c3" args="(const csVector2 &v) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::In </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%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Test if the given coordinate is in this box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00234">234</a> of file <a class="el" href="box_8h-source.html">box.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="76da66a15f400e06a72fc2118e352cfc"></a><!-- doxytag: member="csBox2::In" ref="76da66a15f400e06a72fc2118e352cfc" args="(float x, float y) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::In </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Test if the given coordinate is in this box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00226">226</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="436ff414e5aea85fac6a8bc85709c057"></a><!-- doxytag: member="csBox2::Intersect" ref="436ff414e5aea85fac6a8bc85709c057" args="(csVector2 *poly, int num_poly) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::Intersect </td> <td>(</td> <td class="paramtype"><a class="el" href="classcsVector2.html">csVector2</a> * </td> <td class="paramname"> <em>poly</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>num_poly</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Test if a polygon if visible in the box. <p> This function does not test the case where the box is fully contained in the polygon. But all other cases are tested. <p>Definition at line <a class="el" href="box_8h-source.html#l00220">220</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="87153809c7caffe73a5e990e271c1148"></a><!-- doxytag: member="csBox2::Intersect" ref="87153809c7caffe73a5e990e271c1148" args="(const csVector2 &minbox, const csVector2 &maxbox, csVector2 *poly, int num_poly)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool csBox2::Intersect </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>minbox</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>maxbox</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>poly</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>num_poly</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> Test if a polygon if visible in the box. <p> This function does not test the case where the box is fully contained in the polygon. But all other cases are tested. <p>Definition at line <a class="el" href="box_8h-source.html#l00208">208</a> of file <a class="el" href="box_8h-source.html">box.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="eb8998585d6c0d77a5688e5965e7a208"></a><!-- doxytag: member="csBox2::Intersect" ref="eb8998585d6c0d77a5688e5965e7a208" args="(float minx, float miny, float maxx, float maxy, csVector2 *poly, int num_poly)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool csBox2::Intersect </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>minx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>miny</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>maxx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>maxy</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>poly</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>num_poly</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Test if a polygon if visible in the box. <p> This function does not test the case where the box is fully contained in the polygon. But all other cases are tested. </div> </div><p> <a class="anchor" name="3ba36010b4f6e15338441b901d87cb76"></a><!-- doxytag: member="csBox2::Max" ref="3ba36010b4f6e15338441b901d87cb76" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classcsVector2.html">csVector2</a>& csBox2::Max </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the 2d vector of maximum (x, y) values. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00134">134</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="77f1d249a0497714dc72861f2b3efa83"></a><!-- doxytag: member="csBox2::Max" ref="77f1d249a0497714dc72861f2b3efa83" args="(int idx) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::Max </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>idx</em> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get Max component for 0 (x) or 1 (y). <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00130">130</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="585a8b74a51abfb5a3fe48770b7066c1"></a><!-- doxytag: member="csBox2::MaxX" ref="585a8b74a51abfb5a3fe48770b7066c1" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::MaxX </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the maximum X value of the box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00124">124</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="3f3a575263c091c1133fe38c9e14a243"></a><!-- doxytag: member="csBox2::MaxY" ref="3f3a575263c091c1133fe38c9e14a243" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::MaxY </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the maximum Y value of the box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00126">126</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="f93fb22fcae0af80693753666ed422c2"></a><!-- doxytag: member="csBox2::Min" ref="f93fb22fcae0af80693753666ed422c2" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classcsVector2.html">csVector2</a>& csBox2::Min </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the 2d vector of minimum (x, y) values. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00132">132</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="5542b7fe190a03f8a767129e860f3e9c"></a><!-- doxytag: member="csBox2::Min" ref="5542b7fe190a03f8a767129e860f3e9c" args="(int idx) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::Min </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>idx</em> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get Min component for 0 (x) or 1 (y). <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00128">128</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="58888738bc7cfc684a1b028885ee9604"></a><!-- doxytag: member="csBox2::MinX" ref="58888738bc7cfc684a1b028885ee9604" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::MinX </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the minimum X value of the box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00120">120</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="3b5cf3877904eac184ebe0c125e46e8d"></a><!-- doxytag: member="csBox2::MinY" ref="3b5cf3877904eac184ebe0c125e46e8d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::MinY </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the minimum Y value of the box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00122">122</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="edbc5d24ca59f3798bc3268836fad73b"></a><!-- doxytag: member="csBox2::operator *=" ref="edbc5d24ca59f3798bc3268836fad73b" args="(const csBox2 &box)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsBox2.html">csBox2</a>& csBox2::operator *= </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%"></td> </tr> </table> </div> <div class="memdoc"> <p> Compute the intersection of two bounding boxes. <p> </div> </div><p> <a class="anchor" name="63978c2df40aa66a9a556476729bf07a"></a><!-- doxytag: member="csBox2::operator+=" ref="63978c2df40aa66a9a556476729bf07a" args="(const csVector2 &point)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsBox2.html">csBox2</a>& csBox2::operator+= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>point</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Compute the union of a point with this bounding box. <p> </div> </div><p> <a class="anchor" name="e3aedb99b2ca692c47ee8fbd893be8f3"></a><!-- doxytag: member="csBox2::operator+=" ref="e3aedb99b2ca692c47ee8fbd893be8f3" args="(const csBox2 &box)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsBox2.html">csBox2</a>& csBox2::operator+= </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%"></td> </tr> </table> </div> <div class="memdoc"> <p> Compute the union of two bounding boxes. <p> </div> </div><p> <a class="anchor" name="e2d522ca57877c46d0c5247683a42764"></a><!-- doxytag: member="csBox2::Overlap" ref="e2d522ca57877c46d0c5247683a42764" args="(const csBox2 &box) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::Overlap </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%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Test if this box overlaps with the given box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00240">240</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> <p>References <a class="el" href="box_8h-source.html#l00116">maxbox</a>, <a class="el" href="box_8h-source.html#l00114">minbox</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="28658717968654d2bcff233ddce5b8f6"></a><!-- doxytag: member="csBox2::Set" ref="28658717968654d2bcff233ddce5b8f6" args="(float x1, float y1, float x2, float y2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::Set </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> Sets the bounds of the box with the given values. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00419">419</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="70fe6baa8ccbd1b4cf58f9069c5cdc46"></a><!-- doxytag: member="csBox2::Set" ref="70fe6baa8ccbd1b4cf58f9069c5cdc46" args="(const csVector2 &bmin, const csVector2 &bmax)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::Set </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>bmin</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>bmax</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> Sets the bounds of the box with the given values. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00412">412</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="3053fbb9ae225f3f82361376765be5de"></a><!-- doxytag: member="csBox2::SetCenter" ref="3053fbb9ae225f3f82361376765be5de" args="(const csVector2 &c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::SetCenter </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>c</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Set the center of this box. <p> This will not change the size of the box but just relocate the center. </div> </div><p> <a class="anchor" name="f8623398b562fc7090adc8a9d23a32f6"></a><!-- doxytag: member="csBox2::SetMax" ref="f8623398b562fc7090adc8a9d23a32f6" args="(int idx, float val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::SetMax </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>idx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>val</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 Max component for 0 (x) or 1 (y). <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00433">433</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="b69c8a2da728fe6d8174c8279e849124"></a><!-- doxytag: member="csBox2::SetMin" ref="b69c8a2da728fe6d8174c8279e849124" args="(int idx, float val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::SetMin </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>idx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>val</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 Min component for 0 (x) or 1 (y). <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00426">426</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="2527d41d7466c9c56d0ec1d541f79b4a"></a><!-- doxytag: member="csBox2::SetSize" ref="2527d41d7466c9c56d0ec1d541f79b4a" args="(const csVector2 &s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::SetSize </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>s</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Set the size of the box but keep the center intact. <p> </div> </div><p> <a class="anchor" name="9f92eb9bc9aef7535547c703cd957fcc"></a><!-- doxytag: member="csBox2::SquaredOriginDist" ref="9f92eb9bc9aef7535547c703cd957fcc" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::SquaredOriginDist </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Calculate the squared distance between (0,0) and the box This routine is extremely efficient. <p> </div> </div><p> <a class="anchor" name="a84ba7539d7940a02d177ba67df96bd5"></a><!-- doxytag: member="csBox2::SquaredOriginMaxDist" ref="a84ba7539d7940a02d177ba67df96bd5" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::SquaredOriginMaxDist </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Calculate the squared distance between (0,0) and the point on the box which is furthest away from (0,0). <p> This routine is extremely efficient. </div> </div><p> <a class="anchor" name="11638417e3033164b2d209f7b1b76a91"></a><!-- doxytag: member="csBox2::SquaredPosDist" ref="11638417e3033164b2d209f7b1b76a91" args="(const csVector2 &pos) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::SquaredPosDist </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>pos</em> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Calculate the squared distance between pos and the box This routine is extremely efficient. <p> </div> </div><p> <a class="anchor" name="1425f1d279e6a67fb0b814899ed3feb3"></a><!-- doxytag: member="csBox2::SquaredPosMaxDist" ref="1425f1d279e6a67fb0b814899ed3feb3" args="(const csVector2 &pos) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float csBox2::SquaredPosMaxDist </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>pos</em> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Calculate the squared distance between pos and the point on the box which is furthest away from pos. <p> This routine is extremely efficient. </div> </div><p> <a class="anchor" name="ab3971efb0a2c246be7d31e38b567c35"></a><!-- doxytag: member="csBox2::StartBoundingBox" ref="ab3971efb0a2c246be7d31e38b567c35" args="(float x, float y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::StartBoundingBox </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>y</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> Same but given some coordinates. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00303">303</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> <p>References <a class="el" href="vector2_8h-source.html#l00041">csVector2::x</a>.</p> </div> </div><p> <a class="anchor" name="a3d1f68b38442ff98899897252f3ac89"></a><!-- doxytag: member="csBox2::StartBoundingBox" ref="a3d1f68b38442ff98899897252f3ac89" args="(const csVector2 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::StartBoundingBox </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]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize this box to one vertex. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00296">296</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> </div> </div><p> <a class="anchor" name="65223106f5a2917780888909c5059577"></a><!-- doxytag: member="csBox2::StartBoundingBox" ref="65223106f5a2917780888909c5059577" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csBox2::StartBoundingBox </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize this box to empty. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00289">289</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> <p>References <a class="el" href="box_8h-source.html#l00049">CS_BOUNDINGBOX_MAXVALUE</a>.</p> </div> </div><p> <a class="anchor" name="888b68fd89965ac071406964f28fb6d7"></a><!-- doxytag: member="csBox2::TestIntersect" ref="888b68fd89965ac071406964f28fb6d7" args="(const csBox2 &box) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool csBox2::TestIntersect </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%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Test if the two boxes have an intersection. <p> </div> </div><p> <hr><h2>Friends And Related Function Documentation</h2> <a class="anchor" name="9ef0b8622986d1d9eae62dba3ddae6a0"></a><!-- doxytag: member="csBox2::operator *" ref="9ef0b8622986d1d9eae62dba3ddae6a0" args="(const csBox2 &box1, const csBox2 &box2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsBox2.html">csBox2</a> operator * </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Compute the intersection of two bounding boxes. <p> </div> </div><p> <a class="anchor" name="f7b7f6ecc5a371cc0b2abc51d422d926"></a><!-- doxytag: member="csBox2::operator!=" ref="f7b7f6ecc5a371cc0b2abc51d422d926" args="(const csBox2 &box1, const csBox2 &box2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool operator!= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Tests if two bounding boxes are unequal. <p> </div> </div><p> <a class="anchor" name="ce841ef009e707dcacabd88fa67e9a66"></a><!-- doxytag: member="csBox2::operator+" ref="ce841ef009e707dcacabd88fa67e9a66" args="(const csBox2 &box, const csVector2 &point)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsBox2.html">csBox2</a> operator+ </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box</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>point</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Compute the union of a bounding box and a point. <p> </div> </div><p> <a class="anchor" name="fc3d6e0ec9365a9874750dd9d55a2488"></a><!-- doxytag: member="csBox2::operator+" ref="fc3d6e0ec9365a9874750dd9d55a2488" args="(const csBox2 &box1, const csBox2 &box2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsBox2.html">csBox2</a> operator+ </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Compute the union of two bounding boxes. <p> </div> </div><p> <a class="anchor" name="f47c97f4dce0e6623df2d20b123e32da"></a><!-- doxytag: member="csBox2::operator<" ref="f47c97f4dce0e6623df2d20b123e32da" args="(const csVector2 &point, const csBox2 &box)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool operator< </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> & </td> <td class="paramname"> <em>point</em>, </td> </tr> <tr> <td class="paramkey"></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> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Tests if a point is contained in a box. <p> </div> </div><p> <a class="anchor" name="72d1a956a49e2e4ce58f6e79d983c134"></a><!-- doxytag: member="csBox2::operator<" ref="72d1a956a49e2e4ce58f6e79d983c134" args="(const csBox2 &box1, const csBox2 &box2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool operator< </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Tests if box1 is a subset of box2. <p> </div> </div><p> <a class="anchor" name="9ec2a4f26b5e0f00f0e61d21e03ecdf5"></a><!-- doxytag: member="csBox2::operator==" ref="9ec2a4f26b5e0f00f0e61d21e03ecdf5" args="(const csBox2 &box1, const csBox2 &box2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool operator== </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Tests if two bounding boxes are equal. <p> </div> </div><p> <a class="anchor" name="9412de11530ac6b13a62d10d1fe7a985"></a><!-- doxytag: member="csBox2::operator>" ref="9412de11530ac6b13a62d10d1fe7a985" args="(const csBox2 &box1, const csBox2 &box2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool operator> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classcsBox2.html">csBox2</a> & </td> <td class="paramname"> <em>box2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Tests if box1 is a superset of box2. <p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="482fc16bd7c5a45ebd30d11e874cd2c3"></a><!-- doxytag: member="csBox2::maxbox" ref="482fc16bd7c5a45ebd30d11e874cd2c3" 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="classcsBox2.html#482fc16bd7c5a45ebd30d11e874cd2c3">csBox2::maxbox</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The bottom-right coordinate of the bounding box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00116">116</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> <p>Referenced by <a class="el" href="box_8h-source.html#l00248">Contains()</a>, and <a class="el" href="box_8h-source.html#l00240">Overlap()</a>.</p> </div> </div><p> <a class="anchor" name="65894f8736795b462a4d3f7f3e1d28bc"></a><!-- doxytag: member="csBox2::minbox" ref="65894f8736795b462a4d3f7f3e1d28bc" 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="classcsBox2.html#65894f8736795b462a4d3f7f3e1d28bc">csBox2::minbox</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The top-left coordinate of the bounding box. <p> <p>Definition at line <a class="el" href="box_8h-source.html#l00114">114</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p> <p>Referenced by <a class="el" href="box_8h-source.html#l00248">Contains()</a>, and <a class="el" href="box_8h-source.html#l00240">Overlap()</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li>csgeom/<a class="el" href="box_8h-source.html">box.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>