eng::BoxVolume Class Reference

Volume defined as an axis-aligned 3D box. More...

#include <eng_volume.hh>

Inheritance diagram for eng::BoxVolume:

eng::Volume

List of all members.

Public Member Functions

 BoxVolume (void)
 BoxVolume (const Vector3 &minimum, const Vector3 &maximum)
 BoxVolume (const SphereVolume &sphereVolume)
 ~BoxVolume ()
SphereVolume ToSphereVolume (void) const
BoxVolume ToBoxVolume (void) const
bool IfInside (const Vector3 &v) const
bool IfOutside (const Vector3 &v) const
bool IfInside (const Volume &volume) const
bool IfOutside (const Volume &volume) const
bool IfIntersecting (const Volume &volume) const
Vector3 GetPosition (void) const
void SetPosition (const Vector3 &position)
fp GetRadius (void) const
bool IfOutside (const BoxVolume &other) const
bool IfInside (const BoxVolume &other) const
bool IfIntersecting (const BoxVolume &other) const
void Set (const Vector3 &v1, const Vector3 &v2)
void Grow (const Vector3 &v)
void Grow (const BoxVolume &other)
Vector3 GetCenter (void) const
Vector3 GetMidOffset (void) const
bool IfEmpty (void) const
bool IfZero (void) const
bool IfCube (void) const
bool Check (void) const

Public Attributes

Vector3 mMin
Vector3 mMax

Friends

bool operator== (const BoxVolume &a, const BoxVolume &b)
bool operator!= (const BoxVolume &a, const BoxVolume &b)


Detailed Description

Volume defined as an axis-aligned 3D box.

BoxVolume is axis-aligned (unsuitable for a box at any orientation).

Precondition:
: (x1,y1,z1) < (x2,y2,z2) Though, Box can tolerate arbitrary vectors.

Constructor & Destructor Documentation

eng::BoxVolume::BoxVolume ( void   ) 

ctor/dtor.

eng::BoxVolume::BoxVolume ( const Vector3 &  minimum,
const Vector3 &  maximum 
)

eng::BoxVolume::BoxVolume ( const SphereVolume sphereVolume  ) 

eng::BoxVolume::~BoxVolume (  ) 


Member Function Documentation

SphereVolume eng::BoxVolume::ToSphereVolume ( void   )  const [virtual]

Implement abstract ToSphereVolume().

Implements eng::Volume.

BoxVolume eng::BoxVolume::ToBoxVolume ( void   )  const [inline, virtual]

Implements eng::Volume.

bool eng::BoxVolume::IfInside ( const Vector3 &  v  )  const [virtual]

Implements eng::Volume.

bool eng::BoxVolume::IfOutside ( const Vector3 &  v  )  const [inline, virtual]

Reimplemented from eng::Volume.

bool eng::BoxVolume::IfInside ( const Volume volume  )  const [virtual]

Returns:
True if passed volume is entirely inside this volume.

Implements eng::Volume.

bool eng::BoxVolume::IfOutside ( const Volume volume  )  const [virtual]

Returns:
True if passed volume is entirely outside this volume.

Implements eng::Volume.

bool eng::BoxVolume::IfIntersecting ( const Volume volume  )  const [virtual]

Returns:
True if the other box is intersecting this one.

Reimplemented from eng::Volume.

Vector3 eng::BoxVolume::GetPosition ( void   )  const [virtual]

Returns:
Position (center) of BoxVolume.

Implements eng::Volume.

void eng::BoxVolume::SetPosition ( const Vector3 &  position  )  [virtual]

Implements eng::Volume.

fp eng::BoxVolume::GetRadius ( void   )  const

Returns:
Approximate radius of box that fully encloses the box.

bool eng::BoxVolume::IfOutside ( const BoxVolume other  )  const

bool eng::BoxVolume::IfInside ( const BoxVolume other  )  const

bool eng::BoxVolume::IfIntersecting ( const BoxVolume other  )  const

void eng::BoxVolume::Set ( const Vector3 &  v1,
const Vector3 &  v2 
)

void eng::BoxVolume::Grow ( const Vector3 &  v  ) 

void eng::BoxVolume::Grow ( const BoxVolume other  ) 

Grow this box to enclose another box. NOTE: When growing a volume, ensure the volume is initialized with the first vertex or other volume. Grow might produce wrong results if it compares the default volume (zeros).

Vector3 eng::BoxVolume::GetCenter ( void   )  const

Returns:
Center of box.

Vector3 eng::BoxVolume::GetMidOffset ( void   )  const

Returns:
Return a vector offset from the center of the box. The mid offset, when added to center, equals a corner.

bool eng::BoxVolume::IfEmpty ( void   )  const

Returns:
True if volume is nothing. NOTE: Don't confuse IfEmpty() vs. IfZero().

bool eng::BoxVolume::IfZero ( void   )  const

Returns:
True if volume equals (0,0,0,0,0,0). NOTE: Don't confuse IfEmpty() vs. IfZero().

bool eng::BoxVolume::IfCube ( void   )  const

Returns:
True if box is a cube (square).

bool eng::BoxVolume::Check ( void   )  const

True if OK.


Friends And Related Function Documentation

bool operator== ( const BoxVolume a,
const BoxVolume b 
) [friend]

bool operator!= ( const BoxVolume a,
const BoxVolume b 
) [friend]


Member Data Documentation

Vector3 eng::BoxVolume::mMin

Vector3 eng::BoxVolume::mMax


The documentation for this class was generated from the following files: Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:25 2007