| 
    Open Inventor Reference
    
   | 
 
3D box with an associated transformation matrix. More...
#include <Inventor/SbBox.h>
  
Public Member Functions | |
| SbXfBox3f () | |
| Constructors and destructor.   | |
| SbXfBox3f (const SbVec3f &_min, const SbVec3f &_max) | |
| Constructors and destructor.   | |
| SbXfBox3f (const SbBox3f &box) | |
| Constructors and destructor.   | |
| ~SbXfBox3f () | |
| Constructors and destructor.   | |
| void | setTransform (const SbMatrix &m) | 
| Sets the transformation on the box.   | |
| const SbMatrix & | getTransform () const | 
| Gets the transformation on the box, and its inverse.   | |
| 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.   | |
| void | extendBy (const SbBox3f &bb) | 
| Extends the box (if necessary) to contain the given SbBox3f.   | |
| void | extendBy (const SbXfBox3f &bb) | 
| Extends the box (if necessary) to contain the given SbXfBox3f.   | |
| bool | intersect (const SbVec3f &pt) const | 
| Returns TRUE if intersection of given point and Box3f is not empty.   | |
| bool | intersect (const SbBox3f &bb) const | 
| Returns TRUE if intersection of given XfBox3f and Box3f is not empty.   | |
| 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) | 
| Set and get the bounds of the box.   | |
| 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) | 
| 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 Box3f to contain nothing.   | |
| bool | isEmpty () const | 
| Checks if the box is empty (degenerate) note that this relies on boxes being completely degenerate if they are degenerate at all.   | |
| bool | 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.   | |
  Public Member Functions inherited from SbBox3f | |
| 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.   | |
| bool | intersect (const SbVec3f &pt) const | 
| Returns TRUE if intersection of given point and Box3f is not empty.   | |
| bool | intersect (const SbBox3f &bb) const | 
| Returns TRUE if intersection of given Box3f and Box3f is not empty.   | |
| bool | 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.   | |
| bool | isEmpty () const | 
Returns TRUE if the box is empty, and FALSE otherwise.   | |
| bool | 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 bool | operator== (const SbXfBox3f &b1, const SbXfBox3f &b2) | 
| Equality comparisons.   | |
| INVENTOR_API bool | operator!= (const SbXfBox3f &b1, const SbXfBox3f &b2) | 
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.
| SbXfBox3f::SbXfBox3f | ( | ) | 
Referenced by extendBy(), extendBy(), operator!=, and operator==.
| SbXfBox3f::SbXfBox3f | ( | const SbBox3f & | box | ) | 
References SbBox3f::SbBox3f().
      
  | 
  inline | 
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.
Definition at line 272 of file SbBox.h.
References extendBy(), SbBox3f::SbBox3f(), and SbXfBox3f().
| void SbXfBox3f::extendBy | ( | const SbVec3f & | pt | ) | 
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:
will result in a bounding box extending from (-1,-1,-1) to (0,0,0) in bbox'es local (untransformed) space.
Referenced by extendBy().
| void SbXfBox3f::extendBy | ( | const SbXfBox3f & | bb | ) | 
References SbXfBox3f().
      
  | 
  inline | 
Definition at line 294 of file SbBox.h.
References SbBox3f::getBounds().
Definition at line 298 of file SbBox.h.
References SbBox3f::getBounds().
| SbVec3f SbXfBox3f::getCenter | ( | ) | const | 
      
  | 
  inline | 
Definition at line 302 of file SbBox.h.
References SbBox3f::getOrigin().
      
  | 
  inline | 
Definition at line 308 of file SbBox.h.
References SbBox3f::getSize().
      
  | 
  inline | 
| float SbXfBox3f::getVolume | ( | ) | const | 
      
  | 
  inline | 
Definition at line 325 of file SbBox.h.
References SbBox3f::hasVolume().
      
  | 
  inline | 
Definition at line 282 of file SbBox.h.
References project(), and SbBox3f::SbBox3f().
| bool SbXfBox3f::intersect | ( | const SbVec3f & | pt | ) | const | 
      
  | 
  inline | 
All member functions preserve this invariant.
Definition at line 321 of file SbBox.h.
References SbBox3f::isEmpty().
      
  | 
  inline | 
Definition at line 315 of file SbBox.h.
References SbBox3f::makeEmpty().
| SbBox3f SbXfBox3f::project | ( | ) | const | 
References SbBox3f::SbBox3f().
Referenced by getSpan(), and intersect().
Definition at line 291 of file SbBox.h.
References SbBox3f::setBounds().
      
  | 
  inline | 
Definition at line 286 of file SbBox.h.
References SbBox3f::setBounds().
| void SbXfBox3f::setTransform | ( | const SbMatrix & | m | ) | 
| void SbXfBox3f::transform | ( | const SbMatrix & | m | ) | 
      
  | 
  friend | 
Definition at line 353 of file SbBox.h.
References INVENTOR_API, and SbXfBox3f().
      
  | 
  friend | 
References INVENTOR_API, and SbXfBox3f().