Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

AxisAlignedBox Class Reference

#include <aabox.h>

Collaboration diagram for AxisAlignedBox:

Collaboration graph
List of all members.

Public Member Functions

 AxisAlignedBox (Point3f center)
 AxisAlignedBox (Point3f _min, Point3f _max)
 AxisAlignedBox ()
bool contains (const Point3f &) const
bool empty () const
Point3f getCenter () const
Vec3f getExtents () const
Point3f getMaximum () const
Point3f getMinimum () const
void include (const AxisAlignedBox &)
void include (const Point3f &)

Private Attributes

Point3f maximum
Point3f minimum

Constructor & Destructor Documentation

AxisAlignedBox::AxisAlignedBox  )  [inline]
 

Definition at line 43 of file aabox.h.

00043                                :
00044     minimum(1.0e20f, 1.0e20f, 1.0e20f),
00045     maximum(-1.0e20f, -1.0e20f, -1.0e20f)
00046 {
00047 }

AxisAlignedBox::AxisAlignedBox Point3f  _min,
Point3f  _max
[inline]
 

Definition at line 21 of file aabox.h.

References maximum, and minimum.

00021                                                :
00022         minimum(_min), maximum(_max) {};
    AxisAlignedBox(Point3f center) :

AxisAlignedBox::AxisAlignedBox Point3f  center  )  [inline]
 

Definition at line 23 of file aabox.h.

References maximum, and minimum.

00023                                    :
00024         minimum(center), maximum(center) {};


Member Function Documentation

bool AxisAlignedBox::contains const Point3f  )  const [inline]
 

Definition at line 76 of file aabox.h.

References maximum, minimum, Point3< T >::x, Point3< T >::y, and Point3< T >::z.

00077 {
00078     return (p.x >= minimum.x && p.x <= maximum.x &&
00079             p.y >= minimum.y && p.y <= maximum.y &&
00080             p.z >= minimum.z && p.z <= maximum.z);
00081 }

bool AxisAlignedBox::empty  )  const [inline]
 

Definition at line 71 of file aabox.h.

References maximum, minimum, Point3< T >::x, Point3< T >::y, and Point3< T >::z.

00072 {
00073     return maximum.x < minimum.x || maximum.y < minimum.y || maximum.z < minimum.z;
00074 }

Point3f AxisAlignedBox::getCenter  )  const [inline]
 

Definition at line 59 of file aabox.h.

References maximum, minimum, Point3< T >::x, Point3< T >::y, and Point3< T >::z.

Referenced by Model::normalize(), and Mesh3DS::normalize().

00060 {
00061     return Point3f((minimum.x + maximum.x) * 0.5f,
00062                    (minimum.y + maximum.y) * 0.5f,
00063                    (minimum.z + maximum.z) * 0.5f);
00064 }

Vec3f AxisAlignedBox::getExtents  )  const [inline]
 

Definition at line 66 of file aabox.h.

References maximum, and minimum.

Referenced by Model::normalize(), and Mesh3DS::normalize().

00067 {
00068     return maximum - minimum;
00069 }

Point3f AxisAlignedBox::getMaximum  )  const [inline]
 

Definition at line 54 of file aabox.h.

References maximum.

Referenced by VertexList::transform().

00055 {
00056     return maximum;
00057 }

Point3f AxisAlignedBox::getMinimum  )  const [inline]
 

Definition at line 49 of file aabox.h.

References minimum.

Referenced by VertexList::transform().

00050 {
00051     return minimum;
00052 }

void AxisAlignedBox::include const AxisAlignedBox  )  [inline]
 

Definition at line 94 of file aabox.h.

References maximum, minimum, Point3< T >::x, Point3< T >::y, and Point3< T >::z.

00095 {
00096     if (b.minimum.x < minimum.x) minimum.x = b.minimum.x;
00097     if (b.maximum.x > maximum.x) maximum.x = b.maximum.x;
00098     if (b.minimum.y < minimum.y) minimum.y = b.minimum.y;
00099     if (b.maximum.y > maximum.y) maximum.y = b.maximum.y;
00100     if (b.minimum.z < minimum.z) minimum.z = b.minimum.z;
00101     if (b.maximum.z > maximum.z) maximum.z = b.maximum.z;
00102 }

void AxisAlignedBox::include const Point3f  )  [inline]
 

Definition at line 84 of file aabox.h.

References maximum, minimum, Point3< T >::x, Point3< T >::y, and Point3< T >::z.

Referenced by VertexList::addVertex(), Mesh::getBoundingBox(), Model::normalize(), and Mesh3DS::normalize().

00085 {
00086     if (p.x < minimum.x) minimum.x = p.x;
00087     if (p.x > maximum.x) maximum.x = p.x;
00088     if (p.y < minimum.y) minimum.y = p.y;
00089     if (p.y > maximum.y) maximum.y = p.y;
00090     if (p.z < minimum.z) minimum.z = p.z;
00091     if (p.z > maximum.z) maximum.z = p.z;
00092 }


Member Data Documentation

Point3f AxisAlignedBox::maximum [private]
 

Definition at line 39 of file aabox.h.

Referenced by AxisAlignedBox(), contains(), empty(), getCenter(), getExtents(), getMaximum(), and include().

Point3f AxisAlignedBox::minimum [private]
 

Definition at line 38 of file aabox.h.

Referenced by AxisAlignedBox(), contains(), empty(), getCenter(), getExtents(), getMinimum(), and include().


The documentation for this class was generated from the following file:
Generated on Sat Jan 14 22:33:06 2006 for Celestia by  doxygen 1.4.1