arsa
2.7
|
Axis aligned bounding box in 3d dimensional space. More...
#include <aabbox3d.h>
Public Member Functions | |
aabbox3d () | |
Default Constructor. More... | |
aabbox3d (const vector3d< T > &min, const vector3d< T > &max) | |
Constructor with min edge and max edge. More... | |
aabbox3d (const vector3d< T > &init) | |
Constructor with only one point. More... | |
aabbox3d (T minx, T miny, T minz, T maxx, T maxy, T maxz) | |
Constructor with min edge and max edge as single values, not vectors. More... | |
bool | operator== (const aabbox3d< T > &other) const |
Equality operator. More... | |
bool | operator!= (const aabbox3d< T > &other) const |
Inequality operator. More... | |
void | reset (T x, T y, T z) |
Resets the bounding box to a one-point box. More... | |
void | reset (const aabbox3d< T > &initValue) |
Resets the bounding box. More... | |
void | reset (const vector3d< T > &initValue) |
Resets the bounding box to a one-point box. More... | |
void | addInternalPoint (const vector3d< T > &p) |
Adds a point to the bounding box. More... | |
void | addInternalBox (const aabbox3d< T > &b) |
Adds another bounding box. More... | |
void | addInternalPoint (T x, T y, T z) |
Adds a point to the bounding box. More... | |
vector3d< T > | getCenter () const |
Get center of the bounding box. More... | |
vector3d< T > | getExtent () const |
Get extent of the box (maximal distance of two points in the box) More... | |
T | getRadius () const |
Get radius of the bounding sphere. More... | |
bool | isEmpty () const |
Check if the box is empty. More... | |
T | getVolume () const |
Get the volume enclosed by the box in cubed units. More... | |
T | getArea () const |
Get the surface area of the box in squared units. More... | |
void | getEdges (vector3d< T > *edges) const |
Stores all 8 edges of the box into an array. More... | |
void | repair () |
Repairs the box. More... | |
bool | isValid () const |
aabbox3d< T > | getInterpolated (const aabbox3d< T > &other, f32 d) const |
Calculates a new interpolated bounding box. More... | |
bool | isPointInside (const vector3d< T > &p) const |
Determines if a point is within this box. More... | |
bool | isPointTotalInside (const vector3d< T > &p) const |
Determines if a point is within this box and not its borders. More... | |
bool | isFullInside (const aabbox3d< T > &other) const |
Check if this box is completely inside the 'other' box. More... | |
aabbox3d< T > | intersect (const aabbox3d< T > &other) const |
Returns the intersection of this box with another, if possible. More... | |
bool | intersectsWithBox (const aabbox3d< T > &other) const |
Determines if the axis-aligned box intersects with another axis-aligned box. More... | |
bool | intersectsWithLine (const line3d< T > &line) const |
Tests if the box intersects with a line. More... | |
bool | intersectsWithLine (const vector3d< T > &linemiddle, const vector3d< T > &linevect, T halflength) const |
Tests if the box intersects with a line. More... | |
EIntersectionRelation3D | classifyPlaneRelation (const plane3d< T > &plane) const |
Classifies a relation with a plane. More... | |
Public Attributes | |
vector3d< T > | MinEdge |
The near edge. More... | |
vector3d< T > | MaxEdge |
The far edge. More... | |
Axis aligned bounding box in 3d dimensional space.
Has some useful methods used with occlusion culling or clipping.
Definition at line 21 of file aabbox3d.h.
|
inline |
|
inline |
|
inline |
|
inline |
Constructor with min edge and max edge as single values, not vectors.
Definition at line 32 of file aabbox3d.h.
|
inline |
Adds another bounding box.
The box grows bigger, if the new box was outside of the box.
b | Other bounding box to add into this box. |
Definition at line 82 of file aabbox3d.h.
|
inline |
Adds a point to the bounding box.
The box grows bigger, if point was outside of the box.
p | Point to add into the box. |
Definition at line 74 of file aabbox3d.h.
|
inline |
Adds a point to the bounding box.
The box grows bigger, if point is outside of the box.
x | X coordinate of the point to add to this box. |
y | Y coordinate of the point to add to this box. |
z | Z coordinate of the point to add to this box. |
Definition at line 93 of file aabbox3d.h.
|
inline |
Classifies a relation with a plane.
plane | Plane to classify relation to. |
Definition at line 321 of file aabbox3d.h.
|
inline |
Get the surface area of the box in squared units.
Definition at line 142 of file aabbox3d.h.
|
inline |
Get center of the bounding box.
Definition at line 106 of file aabbox3d.h.
|
inline |
Stores all 8 edges of the box into an array.
edges | Pointer to array of 8 edges. |
Definition at line 150 of file aabbox3d.h.
|
inline |
Get extent of the box (maximal distance of two points in the box)
Definition at line 113 of file aabbox3d.h.
|
inline |
Calculates a new interpolated bounding box.
d=0 returns other, d=1 returns this, all other values blend between the two boxes.
other | Other box to interpolate between |
d | Value between 0.0f and 1.0f. |
Definition at line 208 of file aabbox3d.h.
|
inline |
Get radius of the bounding sphere.
Definition at line 120 of file aabbox3d.h.
|
inline |
Get the volume enclosed by the box in cubed units.
Definition at line 135 of file aabbox3d.h.
|
inline |
Returns the intersection of this box with another, if possible.
Definition at line 248 of file aabbox3d.h.
|
inline |
Determines if the axis-aligned box intersects with another axis-aligned box.
other | Other box to check a intersection with. |
Definition at line 270 of file aabbox3d.h.
|
inline |
Tests if the box intersects with a line.
line | Line to test intersection with. |
Definition at line 279 of file aabbox3d.h.
|
inline |
Tests if the box intersects with a line.
linemiddle | Center of the line. |
linevect | Vector of the line. |
halflength | Half length of the line. |
Definition at line 290 of file aabbox3d.h.
|
inline |
Check if the box is empty.
This means that there is no space between the min and max edge.
Definition at line 129 of file aabbox3d.h.
|
inline |
Check if this box is completely inside the 'other' box.
other | Other box to check against. |
Definition at line 241 of file aabbox3d.h.
|
inline |
Determines if a point is within this box.
Border is included (IS part of the box)!
p | Point to check. |
Definition at line 219 of file aabbox3d.h.
|
inline |
Determines if a point is within this box and not its borders.
Border is excluded (NOT part of the box)!
p | Point to check. |
Definition at line 230 of file aabbox3d.h.
|
inline |
Definition at line 193 of file aabbox3d.h.
|
inline |
Inequality operator.
other | box to compare with. |
Definition at line 42 of file aabbox3d.h.
|
inline |
Equality operator.
other | box to compare with. |
Definition at line 38 of file aabbox3d.h.
|
inline |
Repairs the box.
Necessary if for example MinEdge and MaxEdge are swapped.
Definition at line 180 of file aabbox3d.h.
|
inline |
Resets the bounding box to a one-point box.
x | X coord of the point. |
y | Y coord of the point. |
z | Z coord of the point. |
Definition at line 50 of file aabbox3d.h.
|
inline |
Resets the bounding box.
initValue | New box to set this one to. |
Definition at line 58 of file aabbox3d.h.
|
inline |
Resets the bounding box to a one-point box.
initValue | New point. |
Definition at line 65 of file aabbox3d.h.
vector3d<T> irr::core::aabbox3d< T >::MaxEdge |
The far edge.
Definition at line 357 of file aabbox3d.h.
vector3d<T> irr::core::aabbox3d< T >::MinEdge |
The near edge.
Definition at line 354 of file aabbox3d.h.