Saga3D API Documentation
1.0-RC4
|
Axis aligned bounding box in 3d dimensional space. More...
#include <aabbox3d.h>
Public Member Functions | |
aabbox3d () | |
Default Constructor. More... | |
aabbox3d (const glm::vec3 &min, const glm::vec3 &max) | |
Constructor with min edge and max edge. More... | |
aabbox3d (const glm::vec3 &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 glm::vec3 &initValue) |
Resets the bounding box to a one-point box. More... | |
void | addInternalPoint (const glm::vec3 &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... | |
glm::vec3 | getCenter () const |
Get center of the bounding box. More... | |
glm::vec3 | 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 (glm::vec3 *edges) const |
Stores all 8 edges of the box into an array. More... | |
void | repair () |
Repairs the box. More... | |
aabbox3d< T > | getInterpolated (const aabbox3d< T > &other, float d) const |
Calculates a new interpolated bounding box. More... | |
bool | isPointInside (const glm::vec3 &p) const |
Determines if a point is within this box. More... | |
bool | isPointTotalInside (const glm::vec3 &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 glm::vec3 &linemiddle, const glm::vec3 &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 | |
glm::vec3 | MinEdge |
The near edge. More... | |
glm::vec3 | 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 20 of file aabbox3d.h.
|
inline |
Default Constructor.
Definition at line 25 of file aabbox3d.h.
|
inline |
Constructor with min edge and max edge.
Definition at line 27 of file aabbox3d.h.
|
inline |
Constructor with only one point.
Definition at line 29 of file aabbox3d.h.
|
inline |
Constructor with min edge and max edge as single values, not vectors.
Definition at line 31 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 81 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 73 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 92 of file aabbox3d.h.
|
inline |
Classifies a relation with a plane.
plane | Plane to classify relation to. |
Definition at line 310 of file aabbox3d.h.
|
inline |
Get the surface area of the box in squared units.
Definition at line 141 of file aabbox3d.h.
|
inline |
Get center of the bounding box.
Definition at line 105 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 149 of file aabbox3d.h.
|
inline |
Get extent of the box (maximal distance of two points in the box)
Definition at line 112 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 197 of file aabbox3d.h.
|
inline |
Get radius of the bounding sphere.
Definition at line 119 of file aabbox3d.h.
|
inline |
Get the volume enclosed by the box in cubed units.
Definition at line 134 of file aabbox3d.h.
|
inline |
Returns the intersection of this box with another, if possible.
Definition at line 237 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 259 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 279 of file aabbox3d.h.
|
inline |
Tests if the box intersects with a line.
line | Line to test intersection with. |
Definition at line 268 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 128 of file aabbox3d.h.
|
inline |
Check if this box is completely inside the 'other' box.
other | Other box to check against. |
Definition at line 230 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 208 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 219 of file aabbox3d.h.
|
inline |
Inequality operator.
other | box to compare with. |
Definition at line 41 of file aabbox3d.h.
|
inline |
Equality operator.
other | box to compare with. |
Definition at line 37 of file aabbox3d.h.
|
inline |
Repairs the box.
Necessary if for example MinEdge and MaxEdge are swapped.
Definition at line 179 of file aabbox3d.h.
|
inline |
Resets the bounding box.
initValue | New box to set this one to. |
Definition at line 57 of file aabbox3d.h.
|
inline |
Resets the bounding box to a one-point box.
initValue | New point. |
Definition at line 64 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 49 of file aabbox3d.h.
glm::vec3 saga::core::aabbox3d< T >::MaxEdge |
The far edge.
Definition at line 346 of file aabbox3d.h.
glm::vec3 saga::core::aabbox3d< T >::MinEdge |
The near edge.
Definition at line 343 of file aabbox3d.h.