A 3D box aligned with the x/y/z axes. More...
#include <OgreAxisAlignedBox.h>
Public Types | |
| enum | Extent { EXTENT_NULL, EXTENT_FINITE, EXTENT_INFINITE } |
| 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 } |
Public Member Functions | |
| AxisAlignedBox () | |
| AxisAlignedBox (Extent e) | |
| AxisAlignedBox (const AxisAlignedBox &rkBox) | |
| AxisAlignedBox (const Vector3 &min, const Vector3 &max) | |
| AxisAlignedBox (Real mx, Real my, Real mz, Real Mx, Real My, Real Mz) | |
| AxisAlignedBox & | operator= (const AxisAlignedBox &rhs) |
| ~AxisAlignedBox () | |
| const Vector3 & | getMinimum (void) const |
| Gets the minimum corner of the box. | |
| Vector3 & | getMinimum (void) |
| Gets a modifiable version of the minimum corner of the box. | |
| const Vector3 & | getMaximum (void) const |
| Gets the maximum corner of the box. | |
| Vector3 & | getMaximum (void) |
| Gets a modifiable version of the maximum corner of the box. | |
| void | setMinimum (const Vector3 &vec) |
| Sets the minimum corner of the box. | |
| 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. | |
| void | setMinimumY (Real y) |
| void | setMinimumZ (Real z) |
| void | setMaximum (const Vector3 &vec) |
| Sets the maximum corner of the box. | |
| 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. | |
| void | setMaximumY (Real y) |
| void | setMaximumZ (Real z) |
| void | setExtents (const Vector3 &min, const Vector3 &max) |
| Sets both minimum and maximum extents at once. | |
| void | setExtents (Real mx, Real my, Real mz, Real Mx, Real My, Real Mz) |
| const Vector3 * | getAllCorners (void) const |
| Returns a pointer to an array of 8 corner points, useful for collision vs. | |
| Vector3 | getCorner (CornerEnum cornerToGet) const |
| gets the position of one of the corners | |
| void | merge (const AxisAlignedBox &rhs) |
| Merges the passed in box into the current box. | |
| void | merge (const Vector3 &point) |
| Extends the box to encompass the specified point (if needed). | |
| void | transform (const Matrix4 &matrix) |
| Transforms the box according to the matrix supplied. | |
| void | transformAffine (const Matrix4 &m) |
| Transforms the box according to the affine matrix supplied. | |
| void | setNull () |
| Sets the box to a 'null' value i.e. | |
| bool | isNull (void) const |
| Returns true if the box is null i.e. | |
| bool | isFinite (void) const |
| Returns true if the box is finite. | |
| void | setInfinite () |
| Sets the box to 'infinite'. | |
| bool | isInfinite (void) const |
| Returns true if the box is infinite. | |
| bool | intersects (const AxisAlignedBox &b2) const |
| Returns whether or not this box intersects another. | |
| AxisAlignedBox | intersection (const AxisAlignedBox &b2) const |
| Calculate the area of intersection of this box and another. | |
| Real | volume (void) const |
| Calculate the volume of this box. | |
| void | scale (const Vector3 &s) |
| Scales the AABB by the vector given. | |
| bool | intersects (const Sphere &s) const |
| Tests whether this box intersects a sphere. | |
| bool | intersects (const Plane &p) const |
| Tests whether this box intersects a plane. | |
| bool | intersects (const Vector3 &v) const |
| Tests whether the vector point is within this box. | |
| Vector3 | getCenter (void) const |
| Gets the centre of the box. | |
| Vector3 | getSize (void) const |
| Gets the size of the box. | |
| Vector3 | getHalfSize (void) const |
| Gets the half-size of the box. | |
| bool | contains (const Vector3 &v) const |
| Tests whether the given point contained by this box. | |
| Real | distance (const Vector3 &v) const |
| Returns the minimum distance between a given point and any part of the box. | |
| bool | contains (const AxisAlignedBox &other) const |
| Tests whether another box contained by this box. | |
| bool | operator== (const AxisAlignedBox &rhs) const |
| Tests 2 boxes for equality. | |
| bool | operator!= (const AxisAlignedBox &rhs) const |
| Tests 2 boxes for inequality. | |
Static Public Attributes | |
| static const AxisAlignedBox | BOX_NULL |
| static const AxisAlignedBox | BOX_INFINITE |
Protected Attributes | |
| Vector3 | mMinimum |
| Vector3 | mMaximum |
| Extent | mExtent |
| Vector3 * | mCorners |
Friends | |
| _OgreExport friend std::ostream & | operator<< (std::ostream &o, const AxisAlignedBox aab) |
A 3D box aligned with the x/y/z axes.
Definition at line 54 of file OgreAxisAlignedBox.h.
| FAR_LEFT_BOTTOM | |
| FAR_LEFT_TOP | |
| FAR_RIGHT_TOP | |
| FAR_RIGHT_BOTTOM | |
| NEAR_RIGHT_BOTTOM | |
| NEAR_LEFT_BOTTOM | |
| NEAR_LEFT_TOP | |
| NEAR_RIGHT_TOP |
Definition at line 81 of file OgreAxisAlignedBox.h.
Definition at line 57 of file OgreAxisAlignedBox.h.
Definition at line 91 of file OgreAxisAlignedBox.h.
Definition at line 98 of file OgreAxisAlignedBox.h.
| Ogre::AxisAlignedBox::AxisAlignedBox | ( | const AxisAlignedBox & | rkBox | ) |
Definition at line 105 of file OgreAxisAlignedBox.h.
References isInfinite(), isNull(), mMaximum, and mMinimum.
| Ogre::AxisAlignedBox::AxisAlignedBox | ( | const Vector3 & | min, |
| const Vector3 & | max | ||
| ) |
Definition at line 116 of file OgreAxisAlignedBox.h.
Definition at line 121 of file OgreAxisAlignedBox.h.
Definition at line 141 of file OgreAxisAlignedBox.h.
References Ogre::MEMCATEGORY_SCENE_CONTROL, and OGRE_FREE.
| bool Ogre::AxisAlignedBox::contains | ( | const Vector3 & | v | ) | const |
Tests whether the given point contained by this box.
Definition at line 751 of file OgreAxisAlignedBox.h.
References Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| bool Ogre::AxisAlignedBox::contains | ( | const AxisAlignedBox & | other | ) | const |
Tests whether another box contained by this box.
Definition at line 793 of file OgreAxisAlignedBox.h.
References isInfinite(), isNull(), mMaximum, mMinimum, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| Real Ogre::AxisAlignedBox::distance | ( | const Vector3 & | v | ) | const |
Returns the minimum distance between a given point and any part of the box.
Definition at line 764 of file OgreAxisAlignedBox.h.
References Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| const Vector3* Ogre::AxisAlignedBox::getAllCorners | ( | void | ) | const |
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
Definition at line 302 of file OgreAxisAlignedBox.h.
References Ogre::MEMCATEGORY_SCENE_CONTROL, and OGRE_ALLOC_T.
| Vector3 Ogre::AxisAlignedBox::getCenter | ( | void | ) | const |
Gets the centre of the box.
Definition at line 695 of file OgreAxisAlignedBox.h.
Referenced by Ogre::PlaneBoundedVolume::intersects().
| Vector3 Ogre::AxisAlignedBox::getCorner | ( | CornerEnum | cornerToGet | ) | const |
gets the position of one of the corners
Definition at line 330 of file OgreAxisAlignedBox.h.
| Vector3 Ogre::AxisAlignedBox::getHalfSize | ( | void | ) | const |
Gets the half-size of the box.
Definition at line 727 of file OgreAxisAlignedBox.h.
References Ogre::Math::POS_INFINITY, and Ogre::Vector3::ZERO.
Referenced by Ogre::PlaneBoundedVolume::intersects().
| const Vector3& Ogre::AxisAlignedBox::getMaximum | ( | void | ) | const |
Gets the maximum corner of the box.
Definition at line 165 of file OgreAxisAlignedBox.h.
Referenced by intersection().
| Vector3& Ogre::AxisAlignedBox::getMaximum | ( | void | ) |
Gets a modifiable version of the maximum corner of the box.
Definition at line 173 of file OgreAxisAlignedBox.h.
| const Vector3& Ogre::AxisAlignedBox::getMinimum | ( | void | ) | const |
Gets the minimum corner of the box.
Definition at line 150 of file OgreAxisAlignedBox.h.
Referenced by intersection().
| Vector3& Ogre::AxisAlignedBox::getMinimum | ( | void | ) |
Gets a modifiable version of the minimum corner of the box.
Definition at line 158 of file OgreAxisAlignedBox.h.
| Vector3 Ogre::AxisAlignedBox::getSize | ( | void | ) | const |
Gets the size of the box.
Definition at line 705 of file OgreAxisAlignedBox.h.
References Ogre::Math::POS_INFINITY, and Ogre::Vector3::ZERO.
| AxisAlignedBox Ogre::AxisAlignedBox::intersection | ( | const AxisAlignedBox & | b2 | ) | const |
Calculate the area of intersection of this box and another.
Definition at line 595 of file OgreAxisAlignedBox.h.
References getMaximum(), getMinimum(), isInfinite(), isNull(), Ogre::Vector3::makeCeil(), Ogre::Vector3::makeFloor(), Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| bool Ogre::AxisAlignedBox::intersects | ( | const AxisAlignedBox & | b2 | ) | const |
Returns whether or not this box intersects another.
Definition at line 564 of file OgreAxisAlignedBox.h.
References isInfinite(), isNull(), mMaximum, mMinimum, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| bool Ogre::AxisAlignedBox::intersects | ( | const Sphere & | s | ) | const |
Tests whether this box intersects a sphere.
Definition at line 664 of file OgreAxisAlignedBox.h.
References Ogre::Math::intersects().
| bool Ogre::AxisAlignedBox::intersects | ( | const Plane & | p | ) | const |
Tests whether this box intersects a plane.
Definition at line 669 of file OgreAxisAlignedBox.h.
References Ogre::Math::intersects().
| bool Ogre::AxisAlignedBox::intersects | ( | const Vector3 & | v | ) | const |
Tests whether the vector point is within this box.
Definition at line 674 of file OgreAxisAlignedBox.h.
References Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| bool Ogre::AxisAlignedBox::isFinite | ( | void | ) | const |
Returns true if the box is finite.
Definition at line 544 of file OgreAxisAlignedBox.h.
| bool Ogre::AxisAlignedBox::isInfinite | ( | void | ) | const |
Returns true if the box is infinite.
Definition at line 558 of file OgreAxisAlignedBox.h.
Referenced by AxisAlignedBox(), contains(), intersection(), Ogre::PlaneBoundedVolume::intersects(), intersects(), and operator=().
| bool Ogre::AxisAlignedBox::isNull | ( | void | ) | const |
Returns true if the box is null i.e.
empty.
Definition at line 537 of file OgreAxisAlignedBox.h.
Referenced by AxisAlignedBox(), contains(), intersection(), Ogre::PlaneBoundedVolume::intersects(), intersects(), and operator=().
| void Ogre::AxisAlignedBox::merge | ( | const AxisAlignedBox & | rhs | ) |
Merges the passed in box into the current box.
The result is the box which encompasses both.
Definition at line 380 of file OgreAxisAlignedBox.h.
References Ogre::Vector3::makeCeil(), Ogre::Vector3::makeFloor(), mExtent, mMaximum, and mMinimum.
| void Ogre::AxisAlignedBox::merge | ( | const Vector3 & | point | ) |
Extends the box to encompass the specified point (if needed).
Definition at line 412 of file OgreAxisAlignedBox.h.
| bool Ogre::AxisAlignedBox::operator!= | ( | const AxisAlignedBox & | rhs | ) | const |
Tests 2 boxes for inequality.
Definition at line 825 of file OgreAxisAlignedBox.h.
| AxisAlignedBox& Ogre::AxisAlignedBox::operator= | ( | const AxisAlignedBox & | rhs | ) |
Definition at line 128 of file OgreAxisAlignedBox.h.
References isInfinite(), isNull(), mMaximum, and mMinimum.
| bool Ogre::AxisAlignedBox::operator== | ( | const AxisAlignedBox & | rhs | ) | const |
Tests 2 boxes for equality.
Definition at line 811 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::scale | ( | const Vector3 & | s | ) |
Scales the AABB by the vector given.
Definition at line 651 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setExtents | ( | const Vector3 & | min, |
| const Vector3 & | max | ||
| ) |
Sets both minimum and maximum extents at once.
Definition at line 249 of file OgreAxisAlignedBox.h.
References Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
Definition at line 259 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setInfinite | ( | ) |
Sets the box to 'infinite'.
Definition at line 551 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setMaximum | ( | const Vector3 & | vec | ) |
Sets the maximum corner of the box.
Definition at line 215 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setMaximum | ( | Real | x, |
| Real | y, | ||
| Real | z | ||
| ) |
Definition at line 221 of file OgreAxisAlignedBox.h.
References Ogre::Vector3::x.
| void Ogre::AxisAlignedBox::setMaximumX | ( | Real | x | ) |
Changes one of the components of the maximum corner of the box used to resize only one dimension of the box.
Definition at line 232 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setMaximumY | ( | Real | y | ) |
Definition at line 237 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setMaximumZ | ( | Real | z | ) |
Definition at line 242 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setMinimum | ( | const Vector3 & | vec | ) |
Sets the minimum corner of the box.
Definition at line 181 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setMinimum | ( | Real | x, |
| Real | y, | ||
| Real | z | ||
| ) |
Definition at line 187 of file OgreAxisAlignedBox.h.
References Ogre::Vector3::x.
| void Ogre::AxisAlignedBox::setMinimumX | ( | Real | x | ) |
Changes one of the components of the minimum corner of the box used to resize only one dimension of the box.
Definition at line 198 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setMinimumY | ( | Real | y | ) |
Definition at line 203 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setMinimumZ | ( | Real | z | ) |
Definition at line 208 of file OgreAxisAlignedBox.h.
| void Ogre::AxisAlignedBox::setNull | ( | ) |
| void Ogre::AxisAlignedBox::transform | ( | const Matrix4 & | matrix | ) |
Transforms the box according to the matrix supplied.
Definition at line 441 of file OgreAxisAlignedBox.h.
References Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| void Ogre::AxisAlignedBox::transformAffine | ( | const Matrix4 & | m | ) |
Transforms the box according to the affine matrix supplied.
Definition at line 508 of file OgreAxisAlignedBox.h.
References Ogre::Math::Abs(), Ogre::Matrix4::isAffine(), Ogre::Matrix4::transformAffine(), Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| Real Ogre::AxisAlignedBox::volume | ( | void | ) | const |
Calculate the volume of this box.
Definition at line 628 of file OgreAxisAlignedBox.h.
References Ogre::Math::POS_INFINITY, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
| _OgreExport friend std::ostream& operator<< | ( | std::ostream & | o, |
| const AxisAlignedBox | aab | ||
| ) | [friend] |
Definition at line 355 of file OgreAxisAlignedBox.h.
const AxisAlignedBox Ogre::AxisAlignedBox::BOX_INFINITE [static] |
Definition at line 832 of file OgreAxisAlignedBox.h.
const AxisAlignedBox Ogre::AxisAlignedBox::BOX_NULL [static] |
Definition at line 831 of file OgreAxisAlignedBox.h.
Vector3* Ogre::AxisAlignedBox::mCorners [mutable, protected] |
Definition at line 68 of file OgreAxisAlignedBox.h.
Extent Ogre::AxisAlignedBox::mExtent [protected] |
Definition at line 67 of file OgreAxisAlignedBox.h.
Referenced by merge(), and operator==().
Vector3 Ogre::AxisAlignedBox::mMaximum [protected] |
Definition at line 66 of file OgreAxisAlignedBox.h.
Referenced by AxisAlignedBox(), contains(), intersects(), merge(), operator=(), and operator==().
Vector3 Ogre::AxisAlignedBox::mMinimum [protected] |
Definition at line 65 of file OgreAxisAlignedBox.h.
Referenced by AxisAlignedBox(), contains(), intersects(), merge(), operator=(), and operator==().
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun Sep 2 2012 07:27:26