table of contents
SbXfBox3f(3IV)() | SbXfBox3f(3IV)() |
NAME¶
SbXfBox3f — 3D box with an associated transformation matrix
INHERITS FROM¶
SbBox3f > SbXfBox3f
SYNOPSIS¶
#include <Inventor/SbBox.h>
Methods from class SbXfBox3f:
SbXfBox3f()
SbXfBox3f(const SbVec3f &_min, const SbVec3f
&_max)
SbXfBox3f(const SbBox3f &box)
~SbXfBox3f()
void setTransform(const SbMatrix &m)
const SbMatrix & getTransform() const
const SbMatrix & getInverse() 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 setBounds(float xmin, float ymin, float zmin,
float xmax, float ymax, float zmax)
void setBounds(const SbVec3f &_min, const SbVec3f
&_max)
void getBounds(float &xmin, float &ymin, float
&zmin, float &xmax, float &ymax, float &zmax) const
void getBounds(SbVec3f &_min, SbVec3f &_max)
const
void getOrigin(float &originX, float &originY,
float &originZ)
void getSize(float &sizeX, float &sizeY, float
&sizeZ)
float getVolume() const
void makeEmpty()
SbBool isEmpty() const
SbBool hasVolume() const
void getSpan(const SbVec3f &direction, float
&dMin, float &dMax) const
void transform(const SbMatrix &m)
SbBox3f project() const
int operator ==(const SbXfBox3f &b1, const
SbXfBox3f &b2)
int operator !=(const SbXfBox3f &b1, const
SbXfBox3f &b2)
Methods from class SbBox3f:
const SbVec3f & getMin()
const SbVec3f & getMax()
DESCRIPTION¶
A 3D box with an arbitrary transformation applied. This class is useful when a box will be transformed frequently; if an SbBox3f is used for this purpose it will expand each time it is transformed in order to keep itself axis-aligned. Transformations can be accumulated on an SbXfBox3f without expanding the box, and after all transformations have been done, the box can be expanded to an axis-aligned box if necessary.
METHODS¶
SbXfBox3f()
SbXfBox3f(const SbVec3f &_min, const SbVec3f
&_max)
SbXfBox3f(const SbBox3f &box)
~SbXfBox3f()
Constructors and destructor.
void setTransform(const SbMatrix &m)
Sets the transformation on the box.
const SbMatrix & getTransform() const
const SbMatrix & getInverse() const
Gets the transformation on the box, and its inverse.
SbVec3f getCenter() const
Returns the center of the box.
void extendBy(const SbVec3f &pt)
Extends the box (if necessary) to contain the given 3D point. If the box has
had a non-identity transformation applied using the setTransform() method,
the point is assumed to be in the transformed space. For example, the
following code sequence:
SbXfBox3f bbox; bbox.extendBy(SbVec3f(0,0,0)); SbMatrix trans; trans.setTranslate(SbVec3f(1,1,1)); bbox.setTransform(trans); bbox.extendBy(SbVec3f(0,0,0));
will result in a bounding box extending from (-1,-1,-1) to (0,0,0) in bbox'es local (untransformed) space.
void extendBy(const SbBox3f &bb)
Extends the box (if necessary) to contain the given SbBox3f. If the box
has had a non-identity transformation applied using the setTransform()
method, the given SbBox3f is assumed to be in the transformed
space.
void extendBy(const SbXfBox3f &bb)
Extends the box (if necessary) to contain the given SbXfBox3f.
SbBool intersect(const SbVec3f &pt) const
Returns TRUE if intersection of given point and this box is not empty.
SbBool intersect(const SbBox3f &bb) const
Returns TRUE if intersection of given box and this box is not empty.
void setBounds(float xmin, float ymin, float zmin,
float xmax, float ymax, float zmax)
void setBounds(const SbVec3f &_min, const SbVec3f
&_max)
void getBounds(float &xmin, float &ymin, float
&zmin, float &xmax, float &ymax, float &zmax) const
void getBounds(SbVec3f &_min, SbVec3f &_max)
const
Set and get the bounds of the box.
void getOrigin(float &originX, float &originY,
float &originZ)
Returns origin (minimum point) of the box.
void getSize(float &sizeX, float &sizeY, float
&sizeZ)
Returns size of the box.
float getVolume() const
Gives the volume of the box (0 for an empty box).
void makeEmpty()
Sets the box to contain nothing.
SbBool isEmpty() const
Checks if the box is empty (degenerate).
SbBool hasVolume() const
Checks if the box has volume; i.e., all three dimensions have positive
size.
void getSpan(const SbVec3f &direction, float
&dMin, float &dMax) const
Finds the extent of the box along a particular direction.
void transform(const SbMatrix &m)
Transforms the box by the given matrix.
SbBox3f project() const
Projects an SbXfBox3f to an SbBox3f
int operator ==(const SbXfBox3f &b1, const
SbXfBox3f &b2)
int operator !=(const SbXfBox3f &b1, const
SbXfBox3f &b2)
Equality comparisons.
SEE ALSO¶
SbBox3f, SbBox2f, SbBox2s, SbVec3f, SbVec2f, SbVec2s, SbMatrix, SoGetBoundingBoxAction