Sophie

Sophie

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

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

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

<p>
<a href="classcsBox3-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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#3231e5652743893e9e5bb97c8f0ba2cb">AddBoundingBox</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add another bounding box into this one, combining the two of them.  <a href="#3231e5652743893e9e5bb97c8f0ba2cb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#9afd44e57fa7ad90e6636029c570014d">AddBoundingVertex</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new vertex and recalculate the bounding box.  <a href="#9afd44e57fa7ad90e6636029c570014d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#8b6848ac4bfe8795d6f412cea3700368">AddBoundingVertex</a> (float x, float y, float z)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new vertex and recalculate the bounding box.  <a href="#8b6848ac4bfe8795d6f412cea3700368"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#fb321a08d1fa8449acb0205b9ca009e5">AddBoundingVertexSmart</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new vertex and recalculate the bounding box.  <a href="#fb321a08d1fa8449acb0205b9ca009e5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#9bb79f738a03a5b2713cbf4488048641">AddBoundingVertexSmart</a> (float x, float y, float z)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new vertex and recalculate the bounding box.  <a href="#9bb79f738a03a5b2713cbf4488048641"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#296a1e2ab3e5009b6e38161c1d1d3e30">AddBoundingVertexSmartTest</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new vertex and recalculate the bounding box.  <a href="#296a1e2ab3e5009b6e38161c1d1d3e30"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#ff72e127512dedf29b0ed6d1e21a4175">AddBoundingVertexSmartTest</a> (float x, float y, float z)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new vertex and recalculate the bounding box.  <a href="#ff72e127512dedf29b0ed6d1e21a4175"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#9f5eb4d09b0a7cc3092379318766bd9f">AddBoundingVertexTest</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new vertex and recalculate the bounding box.  <a href="#9f5eb4d09b0a7cc3092379318766bd9f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#5bdeae4b62a3ec7ace2cdd04afa5ba7a">AddBoundingVertexTest</a> (float x, float y, float z)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new vertex and recalculate the bounding box.  <a href="#5bdeae4b62a3ec7ace2cdd04afa5ba7a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#9735659c0bcda1248d9ef9bc4baed22e">Adjacent</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;other, float epsilon=SMALL_EPSILON) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box is adjacent to the other one.  <a href="#9735659c0bcda1248d9ef9bc4baed22e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#fc0821770bb9c02f4b0976ffd1fc549c">AdjacentX</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;other, float epsilon=SMALL_EPSILON) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box is adjacent to the other on the X side.  <a href="#fc0821770bb9c02f4b0976ffd1fc549c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#7fa3f91647e924f470d5e1e1c308c3ad">AdjacentY</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;other, float epsilon=SMALL_EPSILON) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box is adjacent to the other on the Y side.  <a href="#7fa3f91647e924f470d5e1e1c308c3ad"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#c6a8b840119f02e9394defc6c2594eee">AdjacentZ</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;other, float epsilon=SMALL_EPSILON) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box is adjacent to the other on the Z side.  <a href="#c6a8b840119f02e9394defc6c2594eee"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#3a1d3dbd4020f54f4c07b8063c48a3bf">Area</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute area of box.  <a href="#3a1d3dbd4020f54f4c07b8063c48a3bf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#a5f168cfb01d4b76875c022529f23059">Between</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box1, const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box2) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box is between two others.  <a href="#a5f168cfb01d4b76875c022529f23059"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#3e396bac5eadafa871b93608aee8716d">CalculatePointSegment</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pos) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assume that 3D space is divided into 27 areas.  <a href="#3e396bac5eadafa871b93608aee8716d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#07627740a824d7ab267b47d84cc941c3">Contains</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box contains the other box.  <a href="#07627740a824d7ab267b47d84cc941c3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#fdfeab82d5b2bd4730515ebd964f1280">csBox3</a> (float x1, float y1, float z1, float x2, float y2, float z2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize this box with the given values.  <a href="#fdfeab82d5b2bd4730515ebd964f1280"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#c707c7ef8d72029ae8995ed9bb1cd4b9">csBox3</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v1, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize this box with two points.  <a href="#c707c7ef8d72029ae8995ed9bb1cd4b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#026a5a0f026acad91c35b33293d21ccf">csBox3</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize this box with one point.  <a href="#026a5a0f026acad91c35b33293d21ccf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#470b19b9c15cb52381d58eeff54ed19b">csBox3</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize this box to empty.  <a href="#470b19b9c15cb52381d58eeff54ed19b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsString.html">csString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#831a8ace1bb7c8985a304697a1b55e5f">Description</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a textual representation of the box in the form "(minx,miny,minz)-(maxx,maxy,maxz)".  <a href="#831a8ace1bb7c8985a304697a1b55e5f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#5f5ea5715fcd1c3f6e872bd738003c46">Empty</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box is empty.  <a href="#5f5ea5715fcd1c3f6e872bd738003c46"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#ff1d01ebc997266a668ee7cc4ee740ae">GetAxisPlane</a> (int side, int &amp;axis, float &amp;where) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get axis aligned plane information from a side of this box.  <a href="#ff1d01ebc997266a668ee7cc4ee740ae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#3bb267ed23f663a3c24da8b74727ce8c">GetCenter</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the center of this box.  <a href="#3bb267ed23f663a3c24da8b74727ce8c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#480419ab9fd05251a381323a664097ea">GetConvexOutline</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pos, <a class="el" href="classcsVector3.html">csVector3</a> *array, int &amp;num_array, bool bVisible=false) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a convex outline (not a polygon unless projected to 2D) for for this box as seen from the given position.  <a href="#480419ab9fd05251a381323a664097ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#414acf5fe1fee22d056e65fd0aa89fd8">GetCorner</a> (int corner) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return every corner of this bounding box from 0 to 7.  <a href="#414acf5fe1fee22d056e65fd0aa89fd8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#3d070c73fa1552c5fd39988756bf9615">GetEdge</a> (int edge, <a class="el" href="classcsSegment3.html">csSegment3</a> &amp;e) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return every edge (segment) of this bounding box from 0 to 23 (use one of the <a class="el" href="group__geom__utils.html#ggdc29c2ff13d900c2f185ee95427fb06c28c05175d3a2a4c149f796f4c6f64b0f" title="from max X, min Y, min Z to min X, min Y, min Z">CS_BOX_EDGE_Xyz_xyz</a> etc.  <a href="#3d070c73fa1552c5fd39988756bf9615"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsSegment3.html">csSegment3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#6d6060eeddd8cc41c50dbafcd27e87aa">GetEdge</a> (int edge) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return every edge (segment) of this bounding box from 0 to 23 (use one of the <a class="el" href="group__geom__utils.html#ggdc29c2ff13d900c2f185ee95427fb06c28c05175d3a2a4c149f796f4c6f64b0f" title="from max X, min Y, min Z to min X, min Y, min Z">CS_BOX_EDGE_Xyz_xyz</a> etc.  <a href="#6d6060eeddd8cc41c50dbafcd27e87aa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#7dd86bf643bb17b8059dd75b93a11f76">GetEdgeInfo</a> (int edge, int &amp;v1, int &amp;v2, int &amp;fleft, int &amp;fright) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given an edge index (<a class="el" href="group__geom__utils.html#ggdc29c2ff13d900c2f185ee95427fb06c28c05175d3a2a4c149f796f4c6f64b0f" title="from max X, min Y, min Z to min X, min Y, min Z">CS_BOX_EDGE_Xyz_xyz</a> etc.  <a href="#7dd86bf643bb17b8059dd75b93a11f76"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#866c5f44a03ebc69478f05819647841f">GetFaceEdges</a> (int face) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a face index (<a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a> etc.  <a href="#866c5f44a03ebc69478f05819647841f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#76bf8a9c554cf277d949352426771117">GetMax</a> (size_t idx)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Max component for 0 (x), 1 (y), or 2 (z).  <a href="#76bf8a9c554cf277d949352426771117"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#14e7b7a8f332412a9405dd4eb59960d1">GetMin</a> (size_t idx)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Min component for 0 (x), 1 (y), or 2 (z).  <a href="#14e7b7a8f332412a9405dd4eb59960d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox2.html">csBox2</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#8c7d43af0ac4126c7ece33a794c8323f">GetSide</a> (int side) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a side of this box as a 2D box.  <a href="#8c7d43af0ac4126c7ece33a794c8323f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#302fc259562174887503f72a8e865d18">GetSize</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the size of the box.  <a href="#302fc259562174887503f72a8e865d18"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#8387b45783c4a8b3721016691d54947e">GetVisibleSides</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pos, int *visible_sides) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill the array (which should be three long at least) with all visible sides (<a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a> etc.  <a href="#8387b45783c4a8b3721016691d54947e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#d8e8a62251204aae1b1898534e21a759">In</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if the given coordinate is in this box.  <a href="#d8e8a62251204aae1b1898534e21a759"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#fd1f8ba93d546d19e9c00edaa855943c">In</a> (float x, float y, float z) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if the given coordinate is in this box.  <a href="#fd1f8ba93d546d19e9c00edaa855943c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#067ec5b8e9f6c16ba14ae2ab113972cd">ManhattanDistance</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;other, <a class="el" href="classcsVector3.html">csVector3</a> &amp;dist) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the minimum manhattan distance between this box and another one.  <a href="#067ec5b8e9f6c16ba14ae2ab113972cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#3086d59f7c2dd2d5ad71f5d0d911f001">Max</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the 3d vector of maximum (x, y, z) values.  <a href="#3086d59f7c2dd2d5ad71f5d0d911f001"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#894314a4dd8b904ca7ecb6167c270b35">Max</a> (size_t idx) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Max component for 0 (x), 1 (y), or 2 (z).  <a href="#894314a4dd8b904ca7ecb6167c270b35"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#c19067966974b9291d26295852e3add7">MaxX</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum X value of the box.  <a href="#c19067966974b9291d26295852e3add7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#c0738f597a36b7c8c17701e6fe48d5a2">MaxY</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum Y value of the box.  <a href="#c0738f597a36b7c8c17701e6fe48d5a2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#c391f4928f19f28e077442fe90a02f56">MaxZ</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum Z value of the box.  <a href="#c391f4928f19f28e077442fe90a02f56"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#57e7ebc42b8d8e0379dbde60a1443122">Min</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the 3d vector of minimum (x, y, z) values.  <a href="#57e7ebc42b8d8e0379dbde60a1443122"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#f6512ff73af759ee61dddfbaff1d7979">Min</a> (size_t idx) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Min component for 0 (x), 1 (y), or 2 (z).  <a href="#f6512ff73af759ee61dddfbaff1d7979"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#1684d10b3de0888c02113376bcf491b4">MinX</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum X value of the box.  <a href="#1684d10b3de0888c02113376bcf491b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#73cdfa54c11dca6eb943bda4a2b7e79c">MinY</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum Y value of the box.  <a href="#73cdfa54c11dca6eb943bda4a2b7e79c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#0ad994d08b9aeb5be8adf9a2eaefb605">MinZ</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum Z value of the box.  <a href="#0ad994d08b9aeb5be8adf9a2eaefb605"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#c07827a4c60a91de3f9b2424d7ecca0f">operator *=</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the intersection of two bounding boxes.  <a href="#c07827a4c60a91de3f9b2424d7ecca0f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#99d0177873da6b8c6eada02e479ec886">operator+=</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;point)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the union of a point with this bounding box.  <a href="#99d0177873da6b8c6eada02e479ec886"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#71339d82b1ba75b113199c4f7541726e">operator+=</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the union of two bounding boxes.  <a href="#71339d82b1ba75b113199c4f7541726e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#cba21deeca4e73ac49e175ec9077bb9b">Overlap</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box overlaps with the given box.  <a href="#cba21deeca4e73ac49e175ec9077bb9b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#d219d4fc40c7716fc35b1e16e77d5fc6">ProjectBox</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &amp;trans, float fov, float sx, float sy, <a class="el" href="classcsBox2.html">csBox2</a> &amp;sbox, float &amp;min_z, float &amp;max_z) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Project this box to a 2D bounding box given the view point transformation and also the field-of-view and shift values (for perspective projection).  <a href="#d219d4fc40c7716fc35b1e16e77d5fc6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#2c0dec575565da709a401ce2bae498b9">ProjectBoxAndOutline</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &amp;trans, float fov, float sx, float sy, <a class="el" href="classcsBox2.html">csBox2</a> &amp;sbox, <a class="el" href="classcsPoly2D.html">csPoly2D</a> &amp;poly, float &amp;min_z, float &amp;max_z) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Project this box to the 2D outline given the view point transformation and also the field-of-view and shift values (for perspective correction).  <a href="#2c0dec575565da709a401ce2bae498b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#caf48b519bbb8d746fe6997947c8881b">ProjectOutline</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;origin, int axis, float where, <a class="el" href="classcsPoly2D.html">csPoly2D</a> &amp;poly) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Project this box to the 2D outline given the origin and an axis aligned plane.  <a href="#caf48b519bbb8d746fe6997947c8881b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#f56e1410aa0c0f416b0b222f3d9dd933">ProjectOutline</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;origin, int axis, float where, <a class="el" href="classcsArray.html">csArray</a>&lt; <a class="el" href="classcsVector2.html">csVector2</a> &gt; &amp;poly) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Project this box to the 2D outline given the origin and an axis aligned plane.  <a href="#f56e1410aa0c0f416b0b222f3d9dd933"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#35c4c81d913de18ddbe19f4baaf016de">ProjectOutline</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &amp;trans, float fov, float sx, float sy, <a class="el" href="classcsPoly2D.html">csPoly2D</a> &amp;poly, float &amp;min_z, float &amp;max_z) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Project this box to the 2D outline given the view point transformation and also the field-of-view and shift values (for perspective correction).  <a href="#35c4c81d913de18ddbe19f4baaf016de"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#dd1fd1473a613636e920f0659b2fd22b">Set</a> (float x1, float y1, float z1, float x2, float y2, float z2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the bounds of the box with the given values.  <a href="#dd1fd1473a613636e920f0659b2fd22b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#5d2a0176797feec906f6d37849861f02">Set</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;bmin, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;bmax)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the bounds of the box with the given values.  <a href="#5d2a0176797feec906f6d37849861f02"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#81d9340a00e6c1c6a06e5aa7fc23434b">SetCenter</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the center of this box.  <a href="#81d9340a00e6c1c6a06e5aa7fc23434b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#ec1259ef528e1f661116ce3e11df3cdf">SetMax</a> (size_t idx, float val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Max component for 0 (x), 1 (y), or 2 (z).  <a href="#ec1259ef528e1f661116ce3e11df3cdf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#f4b672a75fe954c94a95cb1818872208">SetMin</a> (size_t idx, float val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Min component for 0 (x), 1 (y), or 2 (z).  <a href="#f4b672a75fe954c94a95cb1818872208"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#7045c1e7c84379c62797f52ee8b66109">SetSize</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the size of the box but keep the center intact.  <a href="#7045c1e7c84379c62797f52ee8b66109"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#41166c6d88202d8f90d3b53472225a9e">Split</a> (int axis, float where, <a class="el" href="classcsBox3.html">csBox3</a> &amp;bl, <a class="el" href="classcsBox3.html">csBox3</a> &amp;br) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split this box along an axis and construct two new boxes.  <a href="#41166c6d88202d8f90d3b53472225a9e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#c42856d771e6be888c110cc644cd9f15">SquaredOriginDist</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the squared distance between (0,0,0) and the box This routine is extremely efficient.  <a href="#c42856d771e6be888c110cc644cd9f15"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#b797ab62f59fc71e913168dd29b36799">SquaredOriginMaxDist</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the squared distance between (0,0,0) and the point on the box which is furthest away from (0,0,0).  <a href="#b797ab62f59fc71e913168dd29b36799"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#0686bc2665ce3190d453b4e5a043c937">SquaredPosDist</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pos) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the squared distance between pos and the box This routine is extremely efficient.  <a href="#0686bc2665ce3190d453b4e5a043c937"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#702a41f9189f58f65417cf7fc9b693aa">SquaredPosMaxDist</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pos) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the squared distance between pos and the point on the box which is furthest away from pos.  <a href="#702a41f9189f58f65417cf7fc9b693aa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#d75ddae9c8600e2d34ac29cfaa37c1a0">StartBoundingBox</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize this box to one vertex.  <a href="#d75ddae9c8600e2d34ac29cfaa37c1a0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#80242120b00afc06f7279bef87f08845">StartBoundingBox</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize this box to empty.  <a href="#80242120b00afc06f7279bef87f08845"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#39bdacf224add82c37748e380a558cd2">TestIntersect</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if the two boxes have an intersection.  <a href="#39bdacf224add82c37748e380a558cd2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#64c45728b4f1b626fb6bcb08c8b9350c">TestSplit</a> (int axis, float where) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this box intersects with the given axis aligned plane.  <a href="#64c45728b4f1b626fb6bcb08c8b9350c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#11197e83f7b098d6871b97acb2da741b">Volume</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute volume of box.  <a href="#11197e83f7b098d6871b97acb2da741b"></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 int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#d62b3cb9b9765edd9146eadc2f5ed2de">OtherSide</a> (int side)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Static function to get the 'other' side (i.e.  <a href="#d62b3cb9b9765edd9146eadc2f5ed2de"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#fe14501543994e0e1c0b61e0d29213f8">bFace</a> [4]</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indices of four clock-wise edges (0..23).  <a href="#fe14501543994e0e1c0b61e0d29213f8"></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="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#400fc087f1cf85700dec0f1d48e2842b">maxbox</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The bottom-right.  <a href="#400fc087f1cf85700dec0f1d48e2842b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#587f32cdcb29f9b068df8b6c873d4f87">minbox</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The top-left of this bounding box.  <a href="#587f32cdcb29f9b068df8b6c873d4f87"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="structcsBox3_1_1bEdge.html">bEdge</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#212b36732ec9788f638ce402f2a4e3f4">edges</a> [24]</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Index by edge number.  <a href="#212b36732ec9788f638ce402f2a4e3f4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="classcsBox3.html#fe14501543994e0e1c0b61e0d29213f8">bFace</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#431991e8b9fbe36382b3eb8dc5255433">faces</a> [6]</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Index by CS_BOX_SIDE_? number.  <a href="#431991e8b9fbe36382b3eb8dc5255433"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="structcsBox3_1_1Outline.html">Outline</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#4cf2e00bfe2908e3706af4b122bdc2ee">outlines</a> [27]</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structcsBox3_1_1Outline.html" title="This table also contains an array of sides visible from that region.">Outline</a> lookup table.  <a href="#4cf2e00bfe2908e3706af4b122bdc2ee"></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="classcsBox3.html">csBox3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#8850b2c8d94592376254e73f4a1f12b8">operator *</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box1, const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the intersection of two bounding boxes.  <a href="#8850b2c8d94592376254e73f4a1f12b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#e4c5328bb5179aae216fd1af2816abdb">operator!=</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box1, const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests if two bounding boxes are unequal.  <a href="#e4c5328bb5179aae216fd1af2816abdb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox3.html">csBox3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#07e11249f0a94add75fc8bc865070ce9">operator+</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;point)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the union of a bounding box and a point.  <a href="#07e11249f0a94add75fc8bc865070ce9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsBox3.html">csBox3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#d98ee83b7eb1d53cc48697562e274103">operator+</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box1, const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the union of two bounding boxes.  <a href="#d98ee83b7eb1d53cc48697562e274103"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#54f2ca4591081159072cb78b5e5c43c1">operator&lt;</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;point, const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests if a point is contained in a box.  <a href="#54f2ca4591081159072cb78b5e5c43c1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#d4a3f86a7260aa0f58c63a8b362dfd1a">operator&lt;</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box1, const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests if box1 is a subset of box2.  <a href="#d4a3f86a7260aa0f58c63a8b362dfd1a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#31e84ae705a79224f140d629f68a612b">operator==</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box1, const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests if two bounding boxes are equal.  <a href="#31e84ae705a79224f140d629f68a612b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsBox3.html#800db4b5b562663918a8481d7b41be21">operator&gt;</a> (const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box1, const <a class="el" href="classcsBox3.html">csBox3</a> &amp;box2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests if box1 is a superset of box2.  <a href="#800db4b5b562663918a8481d7b41be21"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcsBox3_1_1bEdge.html">bEdge</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcsBox3_1_1Outline.html">Outline</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This table also contains an array of sides visible from that region.  <a href="structcsBox3_1_1Outline.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A bounding box in 3D 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#l00595">595</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="fe14501543994e0e1c0b61e0d29213f8"></a><!-- doxytag: member="csBox3::bFace" ref="fe14501543994e0e1c0b61e0d29213f8" args="[4]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a> <a class="el" href="classcsBox3.html#fe14501543994e0e1c0b61e0d29213f8">csBox3::bFace</a>[4]<code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indices of four clock-wise edges (0..23). 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00611">611</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="470b19b9c15cb52381d58eeff54ed19b"></a><!-- doxytag: member="csBox3::csBox3" ref="470b19b9c15cb52381d58eeff54ed19b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csBox3::csBox3           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize this box to empty. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00932">932</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="026a5a0f026acad91c35b33293d21ccf"></a><!-- doxytag: member="csBox3::csBox3" ref="026a5a0f026acad91c35b33293d21ccf" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csBox3::csBox3           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</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#l00941">941</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Initialize this box with two points. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00945">945</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="fdfeab82d5b2bd4730515ebd964f1280"></a><!-- doxytag: member="csBox3::csBox3" ref="fdfeab82d5b2bd4730515ebd964f1280" args="(float x1, float y1, float z1, float x2, float y2, float z2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csBox3::csBox3           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize this box with the given values. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00950">950</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="3231e5652743893e9e5bb97c8f0ba2cb"></a><!-- doxytag: member="csBox3::AddBoundingBox" ref="3231e5652743893e9e5bb97c8f0ba2cb" args="(const csBox3 &amp;box)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::AddBoundingBox           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add another bounding box into this one, combining the two of them. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00920">920</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

<p>References <a class="el" href="math_8h-source.html#l00035">csMax()</a>, <a class="el" href="math_8h-source.html#l00045">csMin()</a>, <a class="el" href="box_8h-source.html#l00601">maxbox</a>, <a class="el" href="box_8h-source.html#l00599">minbox</a>, <a class="el" href="vector3_8h-source.html#l00067">csVector3::x</a>, <a class="el" href="vector3_8h-source.html#l00069">csVector3::y</a>, and <a class="el" href="vector3_8h-source.html#l00071">csVector3::z</a>.</p>

</div>
</div><p>
<a class="anchor" name="9afd44e57fa7ad90e6636029c570014d"></a><!-- doxytag: member="csBox3::AddBoundingVertex" ref="9afd44e57fa7ad90e6636029c570014d" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::AddBoundingVertex           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</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>Reimplemented in <a class="el" href="classcsOBB.html#7616cc00a44f0d9020606c180e516c01">csOBB</a>.</p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00836">836</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="8b6848ac4bfe8795d6f412cea3700368"></a><!-- doxytag: member="csBox3::AddBoundingVertex" ref="8b6848ac4bfe8795d6f412cea3700368" args="(float x, float y, float z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::AddBoundingVertex           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a new vertex and recalculate the bounding box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00828">828</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="fb321a08d1fa8449acb0205b9ca009e5"></a><!-- doxytag: member="csBox3::AddBoundingVertexSmart" ref="fb321a08d1fa8449acb0205b9ca009e5" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::AddBoundingVertexSmart           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</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#l00858">858</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="9bb79f738a03a5b2713cbf4488048641"></a><!-- doxytag: member="csBox3::AddBoundingVertexSmart" ref="9bb79f738a03a5b2713cbf4488048641" args="(float x, float y, float z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::AddBoundingVertexSmart           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
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#l00846">846</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="296a1e2ab3e5009b6e38161c1d1d3e30"></a><!-- doxytag: member="csBox3::AddBoundingVertexSmartTest" ref="296a1e2ab3e5009b6e38161c1d1d3e30" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::AddBoundingVertexSmartTest           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</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. Returns true if box was modified. 
<p>Definition at line <a class="el" href="box_8h-source.html#l00912">912</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="ff72e127512dedf29b0ed6d1e21a4175"></a><!-- doxytag: member="csBox3::AddBoundingVertexSmartTest" ref="ff72e127512dedf29b0ed6d1e21a4175" args="(float x, float y, float z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::AddBoundingVertexSmartTest           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
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. Returns true if box was modified. 
<p>Definition at line <a class="el" href="box_8h-source.html#l00894">894</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="9f5eb4d09b0a7cc3092379318766bd9f"></a><!-- doxytag: member="csBox3::AddBoundingVertexTest" ref="9f5eb4d09b0a7cc3092379318766bd9f" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::AddBoundingVertexTest           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</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>
Returns true if box was modified. 
<p>Definition at line <a class="el" href="box_8h-source.html#l00883">883</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="5bdeae4b62a3ec7ace2cdd04afa5ba7a"></a><!-- doxytag: member="csBox3::AddBoundingVertexTest" ref="5bdeae4b62a3ec7ace2cdd04afa5ba7a" args="(float x, float y, float z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::AddBoundingVertexTest           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a new vertex and recalculate the bounding box. 
<p>
Returns true if box was modified. 
<p>Definition at line <a class="el" href="box_8h-source.html#l00867">867</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="9735659c0bcda1248d9ef9bc4baed22e"></a><!-- doxytag: member="csBox3::Adjacent" ref="9735659c0bcda1248d9ef9bc4baed22e" args="(const csBox3 &amp;other, float epsilon=SMALL_EPSILON) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int csBox3::Adjacent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>epsilon</em> = <code>SMALL_EPSILON</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test if this box is adjacent to the other one. 
<p>
Return -1 if not adjacent or else any of the <a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a> etc. flags to indicate the side of this box that the other box is adjacent with. The epsilon value is used to decide when adjacency is ok. 
</div>
</div><p>
<a class="anchor" name="fc0821770bb9c02f4b0976ffd1fc549c"></a><!-- doxytag: member="csBox3::AdjacentX" ref="fc0821770bb9c02f4b0976ffd1fc549c" args="(const csBox3 &amp;other, float epsilon=SMALL_EPSILON) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::AdjacentX           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>epsilon</em> = <code>SMALL_EPSILON</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test if this box is adjacent to the other on the X side. 
<p>

</div>
</div><p>
<a class="anchor" name="7fa3f91647e924f470d5e1e1c308c3ad"></a><!-- doxytag: member="csBox3::AdjacentY" ref="7fa3f91647e924f470d5e1e1c308c3ad" args="(const csBox3 &amp;other, float epsilon=SMALL_EPSILON) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::AdjacentY           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>epsilon</em> = <code>SMALL_EPSILON</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test if this box is adjacent to the other on the Y side. 
<p>

</div>
</div><p>
<a class="anchor" name="c6a8b840119f02e9394defc6c2594eee"></a><!-- doxytag: member="csBox3::AdjacentZ" ref="c6a8b840119f02e9394defc6c2594eee" args="(const csBox3 &amp;other, float epsilon=SMALL_EPSILON) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::AdjacentZ           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>epsilon</em> = <code>SMALL_EPSILON</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test if this box is adjacent to the other on the Z side. 
<p>

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

<p>
Compute area of box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00656">656</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a5f168cfb01d4b76875c022529f23059"></a><!-- doxytag: member="csBox3::Between" ref="a5f168cfb01d4b76875c022529f23059" args="(const csBox3 &amp;box1, const csBox3 &amp;box2) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::Between           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test if this box is between two others. 
<p>

</div>
</div><p>
<a class="anchor" name="3e396bac5eadafa871b93608aee8716d"></a><!-- doxytag: member="csBox3::CalculatePointSegment" ref="3e396bac5eadafa871b93608aee8716d" args="(const csVector3 &amp;pos) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int csBox3::CalculatePointSegment           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pos</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Assume that 3D space is divided into 27 areas. 
<p>
One is inside the box. The other 26 are rectangular segments around the box. This function will calculate the right segment for a given point and return that. 
</div>
</div><p>
<a class="anchor" name="07627740a824d7ab267b47d84cc941c3"></a><!-- doxytag: member="csBox3::Contains" ref="07627740a824d7ab267b47d84cc941c3" args="(const csBox3 &amp;box) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::Contains           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>          </td>
          <td>&nbsp;)&nbsp;</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#l00794">794</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#l00601">maxbox</a>, <a class="el" href="box_8h-source.html#l00599">minbox</a>, <a class="el" href="vector3_8h-source.html#l00067">csVector3::x</a>, <a class="el" href="vector3_8h-source.html#l00069">csVector3::y</a>, and <a class="el" href="vector3_8h-source.html#l00071">csVector3::z</a>.</p>

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

<p>
Return a textual representation of the box in the form "(minx,miny,minz)-(maxx,maxy,maxz)". 
<p>

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

<p>
Test if this box is empty. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00802">802</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="ff1d01ebc997266a668ee7cc4ee740ae"></a><!-- doxytag: member="csBox3::GetAxisPlane" ref="ff1d01ebc997266a668ee7cc4ee740ae" args="(int side, int &amp;axis, float &amp;where) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::GetAxisPlane           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>side</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&nbsp;</td>
          <td class="paramname"> <em>where</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get axis aligned plane information from a side of this box. 
<p>
Side is one of <a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a>. Axis will be one of <a class="el" href="group__geom__utils.html#ggdb49720dc49f7d4e4cf9adbf2948e4098e81da4ab0c7c07c39847d17fb3a95b5" title="X axis.">CS_AXIS_X</a>, <a class="el" href="group__geom__utils.html#ggdb49720dc49f7d4e4cf9adbf2948e4099734b1073fe8f5572622f5e39120317d" title="Y axis.">CS_AXIS_Y</a> or <a class="el" href="group__geom__utils.html#ggdb49720dc49f7d4e4cf9adbf2948e4092524f76ec772151941164bee31d5d9f1" title="Z axis.">CS_AXIS_Z</a>. 
</div>
</div><p>
<a class="anchor" name="3bb267ed23f663a3c24da8b74727ce8c"></a><!-- doxytag: member="csBox3::GetCenter" ref="3bb267ed23f663a3c24da8b74727ce8c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csBox3::GetCenter           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the center of this box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00700">700</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="480419ab9fd05251a381323a664097ea"></a><!-- doxytag: member="csBox3::GetConvexOutline" ref="480419ab9fd05251a381323a664097ea" args="(const csVector3 &amp;pos, csVector3 *array, int &amp;num_array, bool bVisible=false) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::GetConvexOutline           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td>
          <td class="paramname"> <em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>num_array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>bVisible</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a convex outline (not a polygon unless projected to 2D) for for this box as seen from the given position. 
<p>
The coordinates returned are world space coordinates. Note that you need place for at least six vectors in the array. If you set bVisible true, you will get all visible corners - this could be up to 7. 
</div>
</div><p>
<a class="anchor" name="414acf5fe1fee22d056e65fd0aa89fd8"></a><!-- doxytag: member="csBox3::GetCorner" ref="414acf5fe1fee22d056e65fd0aa89fd8" args="(int corner) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csBox3::GetCorner           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>corner</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return every corner of this bounding box from 0 to 7. 
<p>
This contrasts with <a class="el" href="classcsBox3.html#f6512ff73af759ee61dddfbaff1d7979" title="Get Min component for 0 (x), 1 (y), or 2 (z).">Min()</a> and <a class="el" href="classcsBox3.html#894314a4dd8b904ca7ecb6167c270b35" title="Get Max component for 0 (x), 1 (y), or 2 (z).">Max()</a> because those are only the min and max corners. Corner 0 = xyz, 1 = xyZ, 2 = xYz, 3 = xYZ, 4 = Xyz, 5 = XyZ, 6 = XYz, 7 = XYZ. Use <a class="el" href="group__geom__utils.html#gg99fb83031ce9923c84392b4e92f956b589d329160331dbc52961462fa640e016" title="min X, min Y, min Z">CS_BOX_CORNER_xyz</a> etc. defines. <a class="el" href="group__geom__utils.html#gg99fb83031ce9923c84392b4e92f956b58240f71d83e88f58c9c7da2a583e3c03" title="center">CS_BOX_CENTER3</a> also works. 
<p>Reimplemented in <a class="el" href="classcsOBB.html#cc55bb882adf052b7342128c130ccf2a">csOBB</a>.</p>

<p>Referenced by <a class="el" href="csgeom_2trimesh_8h-source.html#l00201">csTriangleMeshBox::SetBox()</a>.</p>

</div>
</div><p>
<a class="anchor" name="3d070c73fa1552c5fd39988756bf9615"></a><!-- doxytag: member="csBox3::GetEdge" ref="3d070c73fa1552c5fd39988756bf9615" args="(int edge, csSegment3 &amp;e) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::GetEdge           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsSegment3.html">csSegment3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>e</em></td><td>&nbsp;</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 23 (use one of the <a class="el" href="group__geom__utils.html#ggdc29c2ff13d900c2f185ee95427fb06c28c05175d3a2a4c149f796f4c6f64b0f" title="from max X, min Y, min Z to min X, min Y, min Z">CS_BOX_EDGE_Xyz_xyz</a> etc. 
<p>
indices). The returned edge is undefined for any other index. 
<p>Definition at line <a class="el" href="box_8h-source.html#l00763">763</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#l00101">csSegment3::SetEnd()</a>, and <a class="el" href="segment_8h-source.html#l00098">csSegment3::SetStart()</a>.</p>

</div>
</div><p>
<a class="anchor" name="6d6060eeddd8cc41c50dbafcd27e87aa"></a><!-- doxytag: member="csBox3::GetEdge" ref="6d6060eeddd8cc41c50dbafcd27e87aa" args="(int edge) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsSegment3.html">csSegment3</a> csBox3::GetEdge           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>edge</em>          </td>
          <td>&nbsp;)&nbsp;</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 23 (use one of the <a class="el" href="group__geom__utils.html#ggdc29c2ff13d900c2f185ee95427fb06c28c05175d3a2a4c149f796f4c6f64b0f" title="from max X, min Y, min Z to min X, min Y, min Z">CS_BOX_EDGE_Xyz_xyz</a> etc. 
<p>
indices). The returned edge is undefined for any other index. 
<p>Definition at line <a class="el" href="box_8h-source.html#l00753">753</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="7dd86bf643bb17b8059dd75b93a11f76"></a><!-- doxytag: member="csBox3::GetEdgeInfo" ref="7dd86bf643bb17b8059dd75b93a11f76" args="(int edge, int &amp;v1, int &amp;v2, int &amp;fleft, int &amp;fright) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::GetEdgeInfo           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>fleft</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>fright</em></td><td>&nbsp;</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#ggdc29c2ff13d900c2f185ee95427fb06c28c05175d3a2a4c149f796f4c6f64b0f" title="from max X, min Y, min Z to min X, min Y, min Z">CS_BOX_EDGE_Xyz_xyz</a> etc. 
<p>
) return the two vertices (index <a class="el" href="group__geom__utils.html#gg99fb83031ce9923c84392b4e92f956b589d329160331dbc52961462fa640e016" title="min X, min Y, min Z">CS_BOX_CORNER_xyz</a>, etc.) and left/right faces (<a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a>, etc.). 
<p>Definition at line <a class="el" href="box_8h-source.html#l00680">680</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="866c5f44a03ebc69478f05819647841f"></a><!-- doxytag: member="csBox3::GetFaceEdges" ref="866c5f44a03ebc69478f05819647841f" args="(int face) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="group__util.html#gdde6aaee8457bee49c2a92621fe22b79">uint8</a>* csBox3::GetFaceEdges           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>face</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given a face index (<a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a> etc. 
<p>
) return the four edges oriented clockwise around this face (<a class="el" href="group__geom__utils.html#ggdc29c2ff13d900c2f185ee95427fb06c28c05175d3a2a4c149f796f4c6f64b0f" title="from max X, min Y, min Z to min X, min Y, min Z">CS_BOX_EDGE_Xyz_xyz</a> etc.). 
<p>Definition at line <a class="el" href="box_8h-source.html#l00692">692</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="76bf8a9c554cf277d949352426771117"></a><!-- doxytag: member="csBox3::GetMax" ref="76bf8a9c554cf277d949352426771117" args="(size_t idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csBox3::GetMax           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>idx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get Max component for 0 (x), 1 (y), or 2 (z). 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00991">991</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="14e7b7a8f332412a9405dd4eb59960d1"></a><!-- doxytag: member="csBox3::GetMin" ref="14e7b7a8f332412a9405dd4eb59960d1" args="(size_t idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csBox3::GetMin           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>idx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get Min component for 0 (x), 1 (y), or 2 (z). 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00985">985</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8c7d43af0ac4126c7ece33a794c8323f"></a><!-- doxytag: member="csBox3::GetSide" ref="8c7d43af0ac4126c7ece33a794c8323f" args="(int side) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsBox2.html">csBox2</a> csBox3::GetSide           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>side</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a side of this box as a 2D box. 
<p>
Use <a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a> etc. defines. 
</div>
</div><p>
<a class="anchor" name="302fc259562174887503f72a8e865d18"></a><!-- doxytag: member="csBox3::GetSize" ref="302fc259562174887503f72a8e865d18" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csBox3::GetSize           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the size of the box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00716">716</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8387b45783c4a8b3721016691d54947e"></a><!-- doxytag: member="csBox3::GetVisibleSides" ref="8387b45783c4a8b3721016691d54947e" args="(const csVector3 &amp;pos, int *visible_sides) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int csBox3::GetVisibleSides           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>visible_sides</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fill the array (which should be three long at least) with all visible sides (<a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a> etc. 
<p>
defines) as seen from the given point. Returns the number of visible sides. 
</div>
</div><p>
<a class="anchor" name="d8e8a62251204aae1b1898534e21a759"></a><!-- doxytag: member="csBox3::In" ref="d8e8a62251204aae1b1898534e21a759" args="(const csVector3 &amp;v) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::In           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</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#l00779">779</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="fd1f8ba93d546d19e9c00edaa855943c"></a><!-- doxytag: member="csBox3::In" ref="fd1f8ba93d546d19e9c00edaa855943c" args="(float x, float y, float z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::In           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</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#l00770">770</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="067ec5b8e9f6c16ba14ae2ab113972cd"></a><!-- doxytag: member="csBox3::ManhattanDistance" ref="067ec5b8e9f6c16ba14ae2ab113972cd" args="(const csBox3 &amp;other, csVector3 &amp;dist) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::ManhattanDistance           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>dist</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculate the minimum manhattan distance between this box and another one. 
<p>

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

<p>
Get the 3d vector of maximum (x, y, z) values. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00651">651</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="894314a4dd8b904ca7ecb6167c270b35"></a><!-- doxytag: member="csBox3::Max" ref="894314a4dd8b904ca7ecb6167c270b35" args="(size_t idx) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csBox3::Max           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>idx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get Max component for 0 (x), 1 (y), or 2 (z). 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00646">646</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Get the maximum X value of the box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00637">637</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Get the maximum Y value of the box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00639">639</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Get the maximum Z value of the box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00641">641</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Get the 3d vector of minimum (x, y, z) values. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00649">649</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Get Min component for 0 (x), 1 (y), or 2 (z). 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00643">643</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Get the minimum X value of the box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00631">631</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Get the minimum Y value of the box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00633">633</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Get the minimum Z value of the box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00635">635</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c07827a4c60a91de3f9b2424d7ecca0f"></a><!-- doxytag: member="csBox3::operator *=" ref="c07827a4c60a91de3f9b2424d7ecca0f" args="(const csBox3 &amp;box)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsBox3.html">csBox3</a>&amp; csBox3::operator *=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>          </td>
          <td>&nbsp;)&nbsp;</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="99d0177873da6b8c6eada02e479ec886"></a><!-- doxytag: member="csBox3::operator+=" ref="99d0177873da6b8c6eada02e479ec886" args="(const csVector3 &amp;point)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsBox3.html">csBox3</a>&amp; csBox3::operator+=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>point</em>          </td>
          <td>&nbsp;)&nbsp;</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="71339d82b1ba75b113199c4f7541726e"></a><!-- doxytag: member="csBox3::operator+=" ref="71339d82b1ba75b113199c4f7541726e" args="(const csBox3 &amp;box)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsBox3.html">csBox3</a>&amp; csBox3::operator+=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>          </td>
          <td>&nbsp;)&nbsp;</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="d62b3cb9b9765edd9146eadc2f5ed2de"></a><!-- doxytag: member="csBox3::OtherSide" ref="d62b3cb9b9765edd9146eadc2f5ed2de" args="(int side)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csBox3::OtherSide           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>side</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Static function to get the 'other' side (i.e. 
<p>
<a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b0445dd9cccdf41c83a927d6407db8d896d" title="max X">CS_BOX_SIDE_X</a> to <a class="el" href="group__geom__utils.html#ggbc6126af1d45847bc59afa0aa3216b04bf5848df27bb69f664cbd291d39420ee" title="min X">CS_BOX_SIDE_x</a>, ...). 
<p>Definition at line <a class="el" href="box_8h-source.html#l00743">743</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="cba21deeca4e73ac49e175ec9077bb9b"></a><!-- doxytag: member="csBox3::Overlap" ref="cba21deeca4e73ac49e175ec9077bb9b" args="(const csBox3 &amp;box) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::Overlap           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>          </td>
          <td>&nbsp;)&nbsp;</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#l00785">785</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#l00601">maxbox</a>, <a class="el" href="box_8h-source.html#l00599">minbox</a>, <a class="el" href="vector3_8h-source.html#l00067">csVector3::x</a>, <a class="el" href="vector3_8h-source.html#l00069">csVector3::y</a>, and <a class="el" href="vector3_8h-source.html#l00071">csVector3::z</a>.</p>

</div>
</div><p>
<a class="anchor" name="d219d4fc40c7716fc35b1e16e77d5fc6"></a><!-- doxytag: member="csBox3::ProjectBox" ref="d219d4fc40c7716fc35b1e16e77d5fc6" args="(const csTransform &amp;trans, float fov, float sx, float sy, csBox2 &amp;sbox, float &amp;min_z, float &amp;max_z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::ProjectBox           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>trans</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>fov</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>sx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>sy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsBox2.html">csBox2</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sbox</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&nbsp;</td>
          <td class="paramname"> <em>min_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&nbsp;</td>
          <td class="paramname"> <em>max_z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Project this box to a 2D bounding box given the view point transformation and also the field-of-view and shift values (for perspective projection). 
<p>
The transform should transform from world to camera space (using Other2This). The minimum and maximum z are also calculated. If the bounding box is behind the camera then the 'sbox' will not be calculated (min_z and max_z are still calculated) and the function will return false. If the camera is inside the transformed box then this function will return true and a conservative screen space bounding box is returned. 
</div>
</div><p>
<a class="anchor" name="2c0dec575565da709a401ce2bae498b9"></a><!-- doxytag: member="csBox3::ProjectBoxAndOutline" ref="2c0dec575565da709a401ce2bae498b9" args="(const csTransform &amp;trans, float fov, float sx, float sy, csBox2 &amp;sbox, csPoly2D &amp;poly, float &amp;min_z, float &amp;max_z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::ProjectBoxAndOutline           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>trans</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>fov</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>sx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>sy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsBox2.html">csBox2</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sbox</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsPoly2D.html">csPoly2D</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>poly</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&nbsp;</td>
          <td class="paramname"> <em>min_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&nbsp;</td>
          <td class="paramname"> <em>max_z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Project this box to the 2D outline given the view point transformation and also the field-of-view and shift values (for perspective correction). 
<p>
The minimum and maximum z are also calculated. If the box is fully behind the camera then false is returned and this function will not do anything. If the box is partially behind the camera you will get an outline that is conservatively correct (i.e. it will overestimate the box). In addition to the outline this function also returns the projected screen-space box. So it is a combination of <a class="el" href="classcsBox3.html#d219d4fc40c7716fc35b1e16e77d5fc6" title="Project this box to a 2D bounding box given the view point transformation and also...">ProjectBox()</a> and <a class="el" href="classcsBox3.html#35c4c81d913de18ddbe19f4baaf016de" title="Project this box to the 2D outline given the view point transformation and also the...">ProjectOutline()</a>. 
</div>
</div><p>
<a class="anchor" name="caf48b519bbb8d746fe6997947c8881b"></a><!-- doxytag: member="csBox3::ProjectOutline" ref="caf48b519bbb8d746fe6997947c8881b" args="(const csVector3 &amp;origin, int axis, float where, csPoly2D &amp;poly) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::ProjectOutline           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>where</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsPoly2D.html">csPoly2D</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>poly</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Project this box to the 2D outline given the origin and an axis aligned plane. 
<p>
If this fails (because some of the points cannot be projected) then it will return false. 
</div>
</div><p>
<a class="anchor" name="f56e1410aa0c0f416b0b222f3d9dd933"></a><!-- doxytag: member="csBox3::ProjectOutline" ref="f56e1410aa0c0f416b0b222f3d9dd933" args="(const csVector3 &amp;origin, int axis, float where, csArray&lt; csVector2 &gt; &amp;poly) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::ProjectOutline           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>where</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsArray.html">csArray</a>&lt; <a class="el" href="classcsVector2.html">csVector2</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>poly</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Project this box to the 2D outline given the origin and an axis aligned plane. 
<p>
If this fails (because some of the points cannot be projected) then it will return false. Note that this function will NOT clear the input array. So it will add the projected vertices after the vertices that may already be there. 
</div>
</div><p>
<a class="anchor" name="35c4c81d913de18ddbe19f4baaf016de"></a><!-- doxytag: member="csBox3::ProjectOutline" ref="35c4c81d913de18ddbe19f4baaf016de" args="(const csTransform &amp;trans, float fov, float sx, float sy, csPoly2D &amp;poly, float &amp;min_z, float &amp;max_z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::ProjectOutline           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>trans</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>fov</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>sx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>sy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsPoly2D.html">csPoly2D</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>poly</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&nbsp;</td>
          <td class="paramname"> <em>min_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&nbsp;</td>
          <td class="paramname"> <em>max_z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Project this box to the 2D outline given the view point transformation and also the field-of-view and shift values (for perspective correction). 
<p>
The minimum and maximum z are also calculated. If the box is fully behind the camera then false is returned and this function will not do anything. If the box is partially behind the camera you will get an outline that is conservatively correct (i.e. it will overestimate the box). 
</div>
</div><p>
<a class="anchor" name="dd1fd1473a613636e920f0659b2fd22b"></a><!-- doxytag: member="csBox3::Set" ref="dd1fd1473a613636e920f0659b2fd22b" args="(float x1, float y1, float z1, float x2, float y2, float z2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::Set           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bounds of the box with the given values. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00962">962</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Sets the bounds of the box with the given values. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00955">955</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#l01005">Split()</a>.</p>

</div>
</div><p>
<a class="anchor" name="81d9340a00e6c1c6a06e5aa7fc23434b"></a><!-- doxytag: member="csBox3::SetCenter" ref="81d9340a00e6c1c6a06e5aa7fc23434b" args="(const csVector3 &amp;c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::SetCenter           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>c</em>          </td>
          <td>&nbsp;)&nbsp;</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="ec1259ef528e1f661116ce3e11df3cdf"></a><!-- doxytag: member="csBox3::SetMax" ref="ec1259ef528e1f661116ce3e11df3cdf" args="(size_t idx, float val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::SetMax           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set Max component for 0 (x), 1 (y), or 2 (z). 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00979">979</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="f4b672a75fe954c94a95cb1818872208"></a><!-- doxytag: member="csBox3::SetMin" ref="f4b672a75fe954c94a95cb1818872208" args="(size_t idx, float val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::SetMin           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set Min component for 0 (x), 1 (y), or 2 (z). 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00973">973</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="7045c1e7c84379c62797f52ee8b66109"></a><!-- doxytag: member="csBox3::SetSize" ref="7045c1e7c84379c62797f52ee8b66109" args="(const csVector3 &amp;s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::SetSize           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</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="41166c6d88202d8f90d3b53472225a9e"></a><!-- doxytag: member="csBox3::Split" ref="41166c6d88202d8f90d3b53472225a9e" args="(int axis, float where, csBox3 &amp;bl, csBox3 &amp;br) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::Split           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>where</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>bl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>br</em></td><td>&nbsp;</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>
Split this box along an axis and construct two new boxes. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l01005">1005</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

<p>References <a class="el" href="vector3_8h-source.html#l00044">CS_AXIS_X</a>, <a class="el" href="vector3_8h-source.html#l00046">CS_AXIS_Y</a>, <a class="el" href="vector3_8h-source.html#l00048">CS_AXIS_Z</a>, and <a class="el" href="box_8h-source.html#l00955">Set()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c42856d771e6be888c110cc644cd9f15"></a><!-- doxytag: member="csBox3::SquaredOriginDist" ref="c42856d771e6be888c110cc644cd9f15" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csBox3::SquaredOriginDist           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculate the squared distance between (0,0,0) and the box This routine is extremely efficient. 
<p>

</div>
</div><p>
<a class="anchor" name="b797ab62f59fc71e913168dd29b36799"></a><!-- doxytag: member="csBox3::SquaredOriginMaxDist" ref="b797ab62f59fc71e913168dd29b36799" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csBox3::SquaredOriginMaxDist           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculate the squared distance between (0,0,0) and the point on the box which is furthest away from (0,0,0). 
<p>
This routine is extremely efficient. 
</div>
</div><p>
<a class="anchor" name="0686bc2665ce3190d453b4e5a043c937"></a><!-- doxytag: member="csBox3::SquaredPosDist" ref="0686bc2665ce3190d453b4e5a043c937" args="(const csVector3 &amp;pos) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csBox3::SquaredPosDist           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pos</em>          </td>
          <td>&nbsp;)&nbsp;</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="702a41f9189f58f65417cf7fc9b693aa"></a><!-- doxytag: member="csBox3::SquaredPosMaxDist" ref="702a41f9189f58f65417cf7fc9b693aa" args="(const csVector3 &amp;pos) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float csBox3::SquaredPosMaxDist           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pos</em>          </td>
          <td>&nbsp;)&nbsp;</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="d75ddae9c8600e2d34ac29cfaa37c1a0"></a><!-- doxytag: member="csBox3::StartBoundingBox" ref="d75ddae9c8600e2d34ac29cfaa37c1a0" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csBox3::StartBoundingBox           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</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#l00822">822</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Initialize this box to empty. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00811">811</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="39bdacf224add82c37748e380a558cd2"></a><!-- doxytag: member="csBox3::TestIntersect" ref="39bdacf224add82c37748e380a558cd2" args="(const csBox3 &amp;box) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csBox3::TestIntersect           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test if the two boxes have an intersection. 
<p>

<p>Referenced by <a class="el" href="math3d_8h-source.html#l00648">csIntersect3::BoxBox()</a>.</p>

</div>
</div><p>
<a class="anchor" name="64c45728b4f1b626fb6bcb08c8b9350c"></a><!-- doxytag: member="csBox3::TestSplit" ref="64c45728b4f1b626fb6bcb08c8b9350c" args="(int axis, float where) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int csBox3::TestSplit           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>where</em></td><td>&nbsp;</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 this box intersects with the given axis aligned plane. 
<p>
Returns &lt; 0 if box is completely in left half. Returns &gt; 0 if box is completely in right half. Returns 0 if box is intersected. 
<p>Definition at line <a class="el" href="box_8h-source.html#l01036">1036</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

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

<p>
Compute volume of box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00653">653</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<hr><h2>Friends And Related Function Documentation</h2>
<a class="anchor" name="8850b2c8d94592376254e73f4a1f12b8"></a><!-- doxytag: member="csBox3::operator *" ref="8850b2c8d94592376254e73f4a1f12b8" args="(const csBox3 &amp;box1, const csBox3 &amp;box2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsBox3.html">csBox3</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box2</em></td><td>&nbsp;</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="e4c5328bb5179aae216fd1af2816abdb"></a><!-- doxytag: member="csBox3::operator!=" ref="e4c5328bb5179aae216fd1af2816abdb" args="(const csBox3 &amp;box1, const csBox3 &amp;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="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box2</em></td><td>&nbsp;</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="07e11249f0a94add75fc8bc865070ce9"></a><!-- doxytag: member="csBox3::operator+" ref="07e11249f0a94add75fc8bc865070ce9" args="(const csBox3 &amp;box, const csVector3 &amp;point)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsBox3.html">csBox3</a> operator+           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>point</em></td><td>&nbsp;</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="d98ee83b7eb1d53cc48697562e274103"></a><!-- doxytag: member="csBox3::operator+" ref="d98ee83b7eb1d53cc48697562e274103" args="(const csBox3 &amp;box1, const csBox3 &amp;box2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsBox3.html">csBox3</a> operator+           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box2</em></td><td>&nbsp;</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="54f2ca4591081159072cb78b5e5c43c1"></a><!-- doxytag: member="csBox3::operator&lt;" ref="54f2ca4591081159072cb78b5e5c43c1" args="(const csVector3 &amp;point, const csBox3 &amp;box)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool operator&lt;           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em></td><td>&nbsp;</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="d4a3f86a7260aa0f58c63a8b362dfd1a"></a><!-- doxytag: member="csBox3::operator&lt;" ref="d4a3f86a7260aa0f58c63a8b362dfd1a" args="(const csBox3 &amp;box1, const csBox3 &amp;box2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool operator&lt;           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box2</em></td><td>&nbsp;</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="31e84ae705a79224f140d629f68a612b"></a><!-- doxytag: member="csBox3::operator==" ref="31e84ae705a79224f140d629f68a612b" args="(const csBox3 &amp;box1, const csBox3 &amp;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="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box2</em></td><td>&nbsp;</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="800db4b5b562663918a8481d7b41be21"></a><!-- doxytag: member="csBox3::operator&gt;" ref="800db4b5b562663918a8481d7b41be21" args="(const csBox3 &amp;box1, const csBox3 &amp;box2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool operator&gt;           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>box2</em></td><td>&nbsp;</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="212b36732ec9788f638ce402f2a4e3f4"></a><!-- doxytag: member="csBox3::edges" ref="212b36732ec9788f638ce402f2a4e3f4" args="[24]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structcsBox3_1_1bEdge.html">bEdge</a> <a class="el" href="classcsBox3.html#212b36732ec9788f638ce402f2a4e3f4">csBox3::edges</a>[24]<code> [static, protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Index by edge number. 
<p>
Edge e and e+1 with e even are opposite edges. (CS_BOX_EDGE_...) 
<p>Definition at line <a class="el" href="box_8h-source.html#l00616">616</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="431991e8b9fbe36382b3eb8dc5255433"></a><!-- doxytag: member="csBox3::faces" ref="431991e8b9fbe36382b3eb8dc5255433" args="[6]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classcsBox3.html#fe14501543994e0e1c0b61e0d29213f8">bFace</a> <a class="el" href="classcsBox3.html#431991e8b9fbe36382b3eb8dc5255433">csBox3::faces</a>[6]<code> [static, protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Index by CS_BOX_SIDE_? number. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00618">618</a> of file <a class="el" href="box_8h-source.html">box.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="400fc087f1cf85700dec0f1d48e2842b"></a><!-- doxytag: member="csBox3::maxbox" ref="400fc087f1cf85700dec0f1d48e2842b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> <a class="el" href="classcsBox3.html#400fc087f1cf85700dec0f1d48e2842b">csBox3::maxbox</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The bottom-right. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00601">601</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#l00920">AddBoundingBox()</a>, <a class="el" href="box_8h-source.html#l00794">Contains()</a>, and <a class="el" href="box_8h-source.html#l00785">Overlap()</a>.</p>

</div>
</div><p>
<a class="anchor" name="587f32cdcb29f9b068df8b6c873d4f87"></a><!-- doxytag: member="csBox3::minbox" ref="587f32cdcb29f9b068df8b6c873d4f87" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> <a class="el" href="classcsBox3.html#587f32cdcb29f9b068df8b6c873d4f87">csBox3::minbox</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The top-left of this bounding box. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00599">599</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#l00920">AddBoundingBox()</a>, <a class="el" href="box_8h-source.html#l00794">Contains()</a>, and <a class="el" href="box_8h-source.html#l00785">Overlap()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4cf2e00bfe2908e3706af4b122bdc2ee"></a><!-- doxytag: member="csBox3::outlines" ref="4cf2e00bfe2908e3706af4b122bdc2ee" args="[27]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structcsBox3_1_1Outline.html">Outline</a> <a class="el" href="classcsBox3.html#4cf2e00bfe2908e3706af4b122bdc2ee">csBox3::outlines</a>[27]<code> [static, protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="structcsBox3_1_1Outline.html" title="This table also contains an array of sides visible from that region.">Outline</a> lookup table. 
<p>

<p>Definition at line <a class="el" href="box_8h-source.html#l00628">628</a> of file <a class="el" href="box_8h-source.html">box.h</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>