Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

SbXfBox3f Class Reference

The SbXfBox3f class is a 3 dimensional box with floating point coordinates and an attached transformation. More...

#include <Inventor/SbBox.h>

Inheritance diagram for SbXfBox3f::

SbBox3f List of all members.

Public Methods

 SbXfBox3f ()
 SbXfBox3f (const SbVec3f &_min, const SbVec3f &_max)
 SbXfBox3f (const SbBox3f &box)
 ~SbXfBox3f ()
void setTransform (const SbMatrix &m)
const SbMatrixgetTransform () const
const SbMatrixgetInverse () const
SbVec3f getCenter () const
void extendBy (const SbVec3f &pt)
void extendBy (const SbBox3f &bb)
void extendBy (const SbXfBox3f &bb)
SbBool intersect (const SbVec3f &pt) const
SbBool intersect (const SbBox3f &bb) const
void getSpan (const SbVec3f &direction, float &dMin, float &dMax) const
SbBox3f project () const
void transform (const SbMatrix &m)
float getVolume (void) const
void print (FILE *file) const

Friends

COIN_DLL_API int operator== (const SbXfBox3f &b1, const SbXfBox3f &b2)
COIN_DLL_API int operator!= (const SbXfBox3f &b1, const SbXfBox3f &b2)

Detailed Description

The SbXfBox3f class is a 3 dimensional box with floating point coordinates and an attached transformation.

This box class is used by many other classes in Coin for data exchange. It provides storage for two box corners with floating point coordinates, and for a floating point 4x4 transformation matrix.

See also:
SbBox3f, SbBox2f, SbBox2s, SbMatrix


Constructor & Destructor Documentation

SbXfBox3f::SbXfBox3f
 

The default constructor makes an empty box and identity matrix.

SbXfBox3f::SbXfBox3f const SbVec3f & _min,
const SbVec3f & _max
 

Constructs a box with the given corners.

The coordinates of min should be less than the coordinates of max if you want to make a valid box.

SbXfBox3f::SbXfBox3f const SbBox3f & box
 

Constructs a box from the given SbBox3f.

The transformation is set to the identity matrix.

SbXfBox3f::~SbXfBox3f
 

Default destructor does nothing.


Member Function Documentation

void SbXfBox3f::setTransform const SbMatrix & m
 

Sets the transformation to the given SbMatrix.

const SbMatrix & SbXfBox3f::getTransform const
 

Returns the current transformation matrix.

const SbMatrix & SbXfBox3f::getInverse const
 

Returns the inverse of the current transformation matrix.

SbVec3f SbXfBox3f::getCenter void const
 

Return the transformed center point of the box.

Reimplemented from SbBox3f.

void SbXfBox3f::extendBy const SbVec3f & pt
 

Extend the boundaries of the box by the given point, i.e. make the point fit inside the box if it isn't already so.

The point is assumed to be in transformed space.

Reimplemented from SbBox3f.

void SbXfBox3f::extendBy const SbBox3f & bb
 

Extend the boundaries of the box by the given bb parameter. The given box is assumed to be in transformed space.

The two given boxes will be combined in such a way so that the resultant bounding box always has the smallest possible volume. To accomplish this, the transformation on this SbXfBox3f will sometimes be flattened before it's combined with bb.

Reimplemented from SbBox3f.

void SbXfBox3f::extendBy const SbXfBox3f & bb
 

Extend the boundaries of the box by the given bb parameter.

The given box is assumed to be in transformed space.

SbBool SbXfBox3f::intersect const SbVec3f & pt const
 

Check if the given point lies within the boundaries of this box.

The point is assumed to be in transformed space.

Reimplemented from SbBox3f.

SbBool SbXfBox3f::intersect const SbBox3f & bb const
 

Check if the given box lies wholly or partly within the boundaries of this box.

The given box is assumed to be in transformed space.

Reimplemented from SbBox3f.

void SbXfBox3f::getSpan const SbVec3f & direction,
float & dMin,
float & dMax
const
 

Find the span of the box in the given direction (i.e. how much room in the given direction the box needs). The distance is returned as the minimum and maximum distance from Origo to the closest and furthest plane defined by the direction vector and each of the box' corners. The difference between these values gives the span.

Reimplemented from SbBox3f.

SbBox3f SbXfBox3f::project void const
 

Project the SbXfBox3f into a SbBox3f.

This gives the same resulting SbBox3f as doing a SbBox3f::transform() with this transformation matrix as parameter.

void SbXfBox3f::transform const SbMatrix & m
 

Overloaded from SbBox3f, as the transformations are to be kept separate from the box in the SbXfBox3f class.

Reimplemented from SbBox3f.

float SbXfBox3f::getVolume void const
 

Return box volume. Overloaded from parent class to take into account the possibility of scaling in the transformation matrix.

Reimplemented from SbBox3f.

void SbXfBox3f::print FILE * fp const
 

Dump the state of this object to the file stream. Only works in debug version of library, method does nothing in an optimized compile.

Reimplemented from SbBox3f.


Friends And Related Function Documentation

COIN_DLL_API int operator== const SbXfBox3f & b1,
const SbXfBox3f & b2
[friend]
 

Check if b1 and b2 are equal. Return 1 if they are equal, or 0 if they are unequal. Note that the method will do a dumb component by component comparison.

COIN_DLL_API int operator!= const SbXfBox3f & b1,
const SbXfBox3f & b2
[friend]
 

Check if b1 and b2 are unequal. Return 0 if they are equal, or 1 if they are unequal. See the note on operator==.


The documentation for this class was generated from the following files:
Generated at Tue Mar 5 03:31:33 2002 for Coin by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001