Open Inventor Reference
|
3D box class. More...
#include <Inventor/SbBox.h>
Public Member Functions | |
SbBox3f () | |
Empty box constructor. | |
SbBox3f (float xmin, float ymin, float zmin, float xmax, float ymax, float zmax) | |
Constructor given bounds. | |
SbBox3f (const SbVec3f &min, const SbVec3f &max) | |
Constructor given minimum and maximum points min and max are the corners of the diagonal that define the box. | |
~SbBox3f () | |
Destructor. | |
const SbVec3f & | getMin () const |
Returns the minimum point of the box. | |
const SbVec3f & | getMax () const |
Returns the maximum point of the box. | |
SbVec3f & | getMin () |
Returns the minimum point of the box. | |
SbVec3f & | getMax () |
Returns the maximum point of the box. | |
SbVec3f | getCenter () const |
Returns the center of the box. | |
void | extendBy (const SbVec3f &pt) |
Extends Box3f (if necessary) to contain given 3D point. | |
void | extendBy (const SbBox3f &bb) |
Extends Box3f (if necessary) to contain given Box3f. | |
SbBool | intersect (const SbVec3f &pt) const |
Returns TRUE if intersection of given point and Box3f is not empty. | |
SbBool | intersect (const SbBox3f &bb) const |
Returns TRUE if intersection of given Box3f and Box3f is not empty. | |
SbBool | outside (const SbMatrix &MVP, int &cullBits) const |
Returns TRUE if bounding box is completely outside the view-volume defined by the model+view+projection matrix given. | |
void | setBounds (float xmin, float ymin, float zmin, float xmax, float ymax, float zmax) |
Common get and set functions. | |
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 |
SbVec3f | getClosestPoint (const SbVec3f &point) |
Returns the closest point on the box to the given point. | |
void | getOrigin (float &originX, float &originY, float &originZ) const |
Gets box origin which is the same as the minimum corner of the box. | |
void | getSize (float &sizeX, float &sizeY, float &sizeZ) const |
Gets box size. | |
void | makeEmpty () |
Makes an empty box. | |
SbBool | isEmpty () const |
Returns TRUE if the box is empty, and FALSE otherwise. | |
SbBool | hasVolume () const |
Returns TRUE if all three dimensions of the box have positive size, and FALSE otherwise. | |
void | getSpan (const SbVec3f &direction, float &dMin, float &dMax) const |
Finds the span of a box along a specified direction. | |
void | transform (const SbMatrix &m) |
Transforms box by matrix, enlarging box to contain result. | |
float | getVolume () const |
Returns the volume of the box. | |
Friends | |
INVENTOR_API int | operator== (const SbBox3f &b1, const SbBox3f &b2) |
Equality comparisons. | |
INVENTOR_API int | operator!= (const SbBox3f &b1, const SbBox3f &b2) |
3D box which has planes parallel to the major axes and is specified by two points on a diagonal. This class is part of the standard Inventor datatype classes and is used as input and output to geometry operations (see SoGetBoundingBoxAction).
SbBox3f::SbBox3f | ( | float | xmin, |
float | ymin, | ||
float | zmin, | ||
float | xmax, | ||
float | ymax, | ||
float | zmax | ||
) | [inline] |
void SbBox3f::getBounds | ( | float & | xmin, |
float & | ymin, | ||
float & | zmin, | ||
float & | xmax, | ||
float & | ymax, | ||
float & | zmax | ||
) | const [inline] |
Reimplemented in SbXfBox3f.
Definition at line 149 of file SbBox.h.
References SbVec3f::getValue().
Referenced by SbXfBox3f::getBounds().
(Returns the point on the center of the Z face if passed the center.)
const SbVec3f& SbBox3f::getMax | ( | ) | const [inline] |
SbVec3f& SbBox3f::getMax | ( | ) | [inline] |
const SbVec3f& SbBox3f::getMin | ( | ) | const [inline] |
SbVec3f& SbBox3f::getMin | ( | ) | [inline] |
void SbBox3f::getOrigin | ( | float & | originX, |
float & | originY, | ||
float & | originZ | ||
) | const [inline] |
Definition at line 161 of file SbBox.h.
Referenced by SbXfBox3f::getOrigin().
void SbBox3f::getSize | ( | float & | sizeX, |
float & | sizeY, | ||
float & | sizeZ | ||
) | const [inline] |
Definition at line 167 of file SbBox.h.
Referenced by SbXfBox3f::getSize().
void SbBox3f::getSpan | ( | const SbVec3f & | direction, |
float & | dMin, | ||
float & | dMax | ||
) | const |
The span is the total distance the box occupies along a given direction. The total distance is returned in the form of a minimum and maximum distance from the origin of each of the corners of the box along the given direction. The difference between these two values is the span.
Reimplemented in SbXfBox3f.
float SbBox3f::getVolume | ( | ) | const |
Reimplemented in SbXfBox3f.
SbBool SbBox3f::hasVolume | ( | ) | const [inline] |
Reimplemented in SbXfBox3f.
Definition at line 180 of file SbBox.h.
Referenced by SbXfBox3f::hasVolume().
SbBool SbBox3f::isEmpty | ( | ) | const [inline] |
Reimplemented in SbXfBox3f.
Definition at line 176 of file SbBox.h.
Referenced by SbXfBox3f::isEmpty().
void SbBox3f::makeEmpty | ( | ) |
Reimplemented in SbXfBox3f.
Referenced by SbXfBox3f::makeEmpty().
"cullBits" keeps track of which view-volume clipping planes the box is completely inside of; if a 'parent' bounding box of this bounding box was found to be completely inside the left/right clipping planes, the low bit of cullBits will be set to zero, and this routine will not test this box against those planes. When cullBits is zero, it is a waste of time to call this function! Before calling this the first time, set cullBits to 7 (SoGLRenderAction and SoSeparator will handle this automatically for render culling).
void SbBox3f::setBounds | ( | float | xmin, |
float | ymin, | ||
float | zmin, | ||
float | xmax, | ||
float | ymax, | ||
float | zmax | ||
) | [inline] |
Reimplemented in SbXfBox3f.
Definition at line 142 of file SbBox.h.
Referenced by SbXfBox3f::setBounds().