SbXfBox3f(3IV)

SbXfBox3f - 3D box with an associated transformation matrix

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

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.


FILE FORMAT/DEFAULTS
     XfBox3f {
     }

SEE ALSO
     SbBox3f, SbBox2f, SbBox2s, SbVec3f, SbVec2f, SbVec2s, SbMatrix,
     SoGetBoundingBoxAction