Open Inventor Reference
|
3D box class. More...
#include <Inventor/SbBoxd.h>
Public Member Functions | |
SbBox3d () | |
Empty box constructor. More... | |
SbBox3d (double xmin, double ymin, double zmin, double xmax, double ymax, double zmax) | |
Constructor given bounds. More... | |
SbBox3d (const SbVec3d &min, const SbVec3d &max) | |
Constructor given minimum and maximum points min and max are the corners of the diagonal that define the box. More... | |
~SbBox3d () | |
Destructor. More... | |
const SbVec3d & | getMin () const |
Returns the minimum point of the box. More... | |
const SbVec3d & | getMax () const |
Returns the maximum point of the box. More... | |
SbVec3d & | getMin () |
Returns the minimum point of the box. More... | |
SbVec3d & | getMax () |
Returns the maximum point of the box. More... | |
SbVec3d | getCenter () const |
Returns the center of the box. More... | |
void | extendBy (const SbVec3d &pt) |
Extends Box3d (if necessary) to contain given 3D point. More... | |
void | extendBy (const SbBox3d &bb) |
Extends Box3d (if necessary) to contain given Box3d. More... | |
bool | intersect (const SbVec3d &pt) const |
Returns TRUE if intersection of given point and Box3d is not empty. More... | |
bool | intersect (const SbBox3d &bb) const |
Returns TRUE if intersection of given Box3d and Box3d is not empty. More... | |
bool | outside (const SbMatrixd &MVP, int &cullBits) const |
Returns TRUE if bounding box is completely outside the view-volume defined by the model+view+projection matrix given. More... | |
void | setBounds (double xmin, double ymin, double zmin, double xmax, double ymax, double zmax) |
Common get and set functions. More... | |
void | setBounds (const SbVec3d &_min, const SbVec3d &_max) |
void | getBounds (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) const |
void | getBounds (SbVec3d &_min, SbVec3d &_max) const |
SbVec3d | getClosestPoint (const SbVec3d &point) |
Returns the closest point on the box to the given point. More... | |
void | getOrigin (double &originX, double &originY, double &originZ) const |
Gets box origin which is the same as the minimum corner of the box. More... | |
void | getSize (double &sizeX, double &sizeY, double &sizeZ) const |
Gets box size. More... | |
void | makeEmpty () |
Makes an empty box. More... | |
bool | isEmpty () const |
Returns TRUE if the box is empty, and FALSE otherwise. More... | |
bool | hasVolume () const |
Returns TRUE if all three dimensions of the box have positive size, and FALSE otherwise. More... | |
void | getSpan (const SbVec3d &direction, double &dMin, double &dMax) const |
Finds the span of a box along a specified direction. More... | |
void | transform (const SbMatrixd &m) |
Transforms box by matrix, enlarging box to contain result. More... | |
double | getVolume () const |
Returns the volume of the box. More... | |
Friends | |
INVENTOR_API bool | operator== (const SbBox3d &b1, const SbBox3d &b2) |
Equality comparisons. More... | |
INVENTOR_API bool | operator!= (const SbBox3d &b1, const SbBox3d &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).
|
inline |
void SbBox3d::extendBy | ( | const SbBox3d & | bb | ) |
void SbBox3d::extendBy | ( | const SbVec3d & | pt | ) |
|
inline |
Definition at line 150 of file SbBoxd.h.
Referenced by SbXfBox3d::getBounds().
SbVec3d SbBox3d::getCenter | ( | ) | const |
(Returns the point on the center of the Z face if passed the center.)
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 162 of file SbBoxd.h.
Referenced by SbXfBox3d::getOrigin().
|
inline |
Definition at line 168 of file SbBoxd.h.
Referenced by SbXfBox3d::getSize().
void SbBox3d::getSpan | ( | const SbVec3d & | direction, |
double & | dMin, | ||
double & | 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.
double SbBox3d::getVolume | ( | ) | const |
|
inline |
Definition at line 181 of file SbBoxd.h.
Referenced by SbXfBox3d::hasVolume().
bool SbBox3d::intersect | ( | const SbBox3d & | bb | ) | const |
bool SbBox3d::intersect | ( | const SbVec3d & | pt | ) | const |
|
inline |
Definition at line 177 of file SbBoxd.h.
Referenced by SbXfBox3d::isEmpty().
void SbBox3d::makeEmpty | ( | ) |
Referenced by SbXfBox3d::makeEmpty().
bool SbBox3d::outside | ( | const SbMatrixd & | MVP, |
int & | cullBits | ||
) | const |
"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).
|
inline |
Definition at line 143 of file SbBoxd.h.
Referenced by SbXfBox3d::setBounds().
void SbBox3d::transform | ( | const SbMatrixd & | m | ) |
|
friend |
|
friend |