|  | OGRE
    1.11.6
    Object-Oriented Graphics Rendering Engine | 
A 3D box aligned with the x/y/z axes. More...
#include <OgreAxisAlignedBox.h>
| Public Types | |
| enum | CornerEnum { FAR_LEFT_BOTTOM = 0, FAR_LEFT_TOP = 1, FAR_RIGHT_TOP = 2, FAR_RIGHT_BOTTOM = 3, NEAR_RIGHT_BOTTOM = 7, NEAR_LEFT_BOTTOM = 6, NEAR_LEFT_TOP = 5, NEAR_RIGHT_TOP = 4 } | 
| typedef std::array< Vector3, 8 > | Corners | 
| enum | Extent { EXTENT_NULL, EXTENT_FINITE, EXTENT_INFINITE } | 
| Public Member Functions | |
| AxisAlignedBox () | |
| AxisAlignedBox (Extent e) | |
| AxisAlignedBox (const Vector3 &min, const Vector3 &max) | |
| AxisAlignedBox (Real mx, Real my, Real mz, Real Mx, Real My, Real Mz) | |
| bool | contains (const Vector3 &v) const | 
| Tests whether the given point contained by this box.  More... | |
| bool | contains (const AxisAlignedBox &other) const | 
| Tests whether another box contained by this box.  More... | |
| Real | distance (const Vector3 &v) const | 
| Returns the minimum distance between a given point and any part of the box.  More... | |
| Corners | getAllCorners (void) const | 
| Returns a pointer to an array of 8 corner points, useful for collision vs.  More... | |
| Vector3 | getCenter (void) const | 
| Gets the centre of the box.  More... | |
| Vector3 | getCorner (CornerEnum cornerToGet) const | 
| Gets the position of one of the corners.  More... | |
| Vector3 | getHalfSize (void) const | 
| Gets the half-size of the box.  More... | |
| const Vector3 & | getMaximum (void) const | 
| Gets the maximum corner of the box.  More... | |
| Vector3 & | getMaximum (void) | 
| Gets a modifiable version of the maximum corner of the box.  More... | |
| const Vector3 & | getMinimum (void) const | 
| Gets the minimum corner of the box.  More... | |
| Vector3 & | getMinimum (void) | 
| Gets a modifiable version of the minimum corner of the box.  More... | |
| Vector3 | getSize (void) const | 
| Gets the size of the box.  More... | |
| AxisAlignedBox | intersection (const AxisAlignedBox &b2) const | 
| Calculate the area of intersection of this box and another.  More... | |
| bool | intersects (const AxisAlignedBox &b2) const | 
| Returns whether or not this box intersects another.  More... | |
| bool | intersects (const Sphere &s) const | 
| Tests whether this box intersects a sphere.  More... | |
| bool | intersects (const Plane &p) const | 
| Tests whether this box intersects a plane.  More... | |
| bool | intersects (const Vector3 &v) const | 
| Tests whether the vector point is within this box.  More... | |
| bool | isFinite (void) const | 
| Returns true if the box is finite.  More... | |
| bool | isInfinite (void) const | 
| Returns true if the box is infinite.  More... | |
| bool | isNull (void) const | 
| Returns true if the box is null i.e.  More... | |
| void | merge (const AxisAlignedBox &rhs) | 
| Merges the passed in box into the current box.  More... | |
| void | merge (const Vector3 &point) | 
| Extends the box to encompass the specified point (if needed).  More... | |
| bool | operator!= (const AxisAlignedBox &rhs) const | 
| Tests 2 boxes for inequality.  More... | |
| bool | operator== (const AxisAlignedBox &rhs) const | 
| Tests 2 boxes for equality.  More... | |
| void | scale (const Vector3 &s) | 
| Scales the AABB by the vector given.  More... | |
| void | setExtents (const Vector3 &min, const Vector3 &max) | 
| Sets both minimum and maximum extents at once.  More... | |
| void | setExtents (Real mx, Real my, Real mz, Real Mx, Real My, Real Mz) | 
| void | setInfinite () | 
| Sets the box to 'infinite'.  More... | |
| void | setMaximum (const Vector3 &vec) | 
| Sets the maximum corner of the box.  More... | |
| void | setMaximum (Real x, Real y, Real z) | 
| void | setMaximumX (Real x) | 
| Changes one of the components of the maximum corner of the box used to resize only one dimension of the box.  More... | |
| void | setMaximumY (Real y) | 
| void | setMaximumZ (Real z) | 
| void | setMinimum (const Vector3 &vec) | 
| Sets the minimum corner of the box.  More... | |
| void | setMinimum (Real x, Real y, Real z) | 
| void | setMinimumX (Real x) | 
| Changes one of the components of the minimum corner of the box used to resize only one dimension of the box.  More... | |
| void | setMinimumY (Real y) | 
| void | setMinimumZ (Real z) | 
| void | setNull () | 
| Sets the box to a 'null' value i.e.  More... | |
| Real | squaredDistance (const Vector3 &v) const | 
| Returns the squared minimum distance between a given point and any part of the box.  More... | |
| void | transform (const Matrix4 &matrix) | 
| Transforms the box according to the matrix supplied.  More... | |
| void | transform (const Affine3 &m) | 
| Transforms the box according to the affine matrix supplied.  More... | |
| Real | volume (void) const | 
| Calculate the volume of this box.  More... | |
| Static Public Attributes | |
| static const AxisAlignedBox | BOX_INFINITE | 
| static const AxisAlignedBox | BOX_NULL | 
| Friends | |
| std::ostream & | operator<< (std::ostream &o, const AxisAlignedBox &aab) | 
A 3D box aligned with the x/y/z axes.
| typedef std::array<Vector3, 8> Ogre::AxisAlignedBox::Corners | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
Gets the minimum corner of the box.
Referenced by intersection().
| 
 | inline | 
Gets a modifiable version of the minimum corner of the box.
| 
 | inline | 
Gets the maximum corner of the box.
Referenced by intersection().
| 
 | inline | 
Gets a modifiable version of the maximum corner of the box.
| 
 | inline | 
Sets the minimum corner of the box.
| 
 | inline | 
Changes one of the components of the minimum corner of the box used to resize only one dimension of the box.
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
Sets the maximum corner of the box.
| 
 | inline | 
Changes one of the components of the maximum corner of the box used to resize only one dimension of the box.
| 
 | inline | 
| 
 | inline | 
Sets both minimum and maximum extents at once.
| 
 | inline | 
| 
 | inline | 
Returns a pointer to an array of 8 corner points, useful for collision vs.
non-aligned objects.
1----—2 /| /| / | / | 5----—4 | | 0-—|–3 | / | / |/ |/ 6----—7
| 
 | inline | 
Gets the position of one of the corners.
| 
 | inline | 
Merges the passed in box into the current box.
The result is the box which encompasses both.
References Ogre::Vector< dims, T >::makeCeil(), and Ogre::Vector< dims, T >::makeFloor().
| 
 | inline | 
Extends the box to encompass the specified point (if needed).
References Ogre::Vector< dims, T >::makeCeil(), and Ogre::Vector< dims, T >::makeFloor().
| 
 | inline | 
Transforms the box according to the matrix supplied.
| 
 | inline | 
Transforms the box according to the affine matrix supplied.
References Ogre::Math::Abs().
| 
 | inline | 
Sets the box to a 'null' value i.e.
not a box.
| 
 | inline | 
Returns true if the box is null i.e.
empty.
Referenced by contains(), Ogre::Plane::getSide(), intersection(), Ogre::PlaneBoundedVolume::intersects(), and intersects().
| 
 | inline | 
Returns true if the box is finite.
| 
 | inline | 
Sets the box to 'infinite'.
| 
 | inline | 
Returns true if the box is infinite.
Referenced by contains(), Ogre::Plane::getSide(), intersection(), Ogre::PlaneBoundedVolume::intersects(), and intersects().
| 
 | inline | 
Returns whether or not this box intersects another.
References isInfinite(), and isNull().
| 
 | inline | 
Calculate the area of intersection of this box and another.
References getMaximum(), getMinimum(), isInfinite(), isNull(), Ogre::Vector< dims, T >::makeCeil(), and Ogre::Vector< dims, T >::makeFloor().
| 
 | inline | 
Calculate the volume of this box.
References Ogre::Math::POS_INFINITY.
| 
 | inline | 
Scales the AABB by the vector given.
| 
 | inline | 
Tests whether this box intersects a sphere.
References Ogre::Math::intersects().
| 
 | inline | 
Tests whether this box intersects a plane.
References Ogre::Math::intersects().
| 
 | inline | 
Tests whether the vector point is within this box.
| 
 | inline | 
Gets the centre of the box.
Referenced by Ogre::Plane::getSide(), and Ogre::PlaneBoundedVolume::intersects().
| 
 | inline | 
Gets the size of the box.
References Ogre::Math::POS_INFINITY.
| 
 | inline | 
Gets the half-size of the box.
References Ogre::Math::POS_INFINITY.
Referenced by Ogre::Plane::getSide(), and Ogre::PlaneBoundedVolume::intersects().
| 
 | inline | 
Tests whether the given point contained by this box.
Returns the squared minimum distance between a given point and any part of the box.
This is faster than distance since avoiding a squareroot, so use if you can.
References Ogre::Vector< dims, T >::squaredLength().
Returns the minimum distance between a given point and any part of the box.
References Ogre::Math::Sqrt().
| 
 | inline | 
Tests whether another box contained by this box.
References isInfinite(), and isNull().
| 
 | inline | 
Tests 2 boxes for equality.
| 
 | inline | 
Tests 2 boxes for inequality.
| 
 | friend | 
| 
 | static | 
| 
 | static |