Man Linux: Main Page and Category List

NAME

       SbXfBox3f -

       The SbXfBox3f class is a 3 dimensional box with floating point
       coordinates and an attached transformation.

       This box class is used by many other classes in Coin for data exchange.
       It provides storage for two box corners with floating point
       coordinates, and for a floating point 4x4 transformation matrix.

SYNOPSIS

       #include <Inventor/SbBox.h>

       Inherits SbBox3f.

   Public Member Functions
       SbXfBox3f (void)
       SbXfBox3f (const SbVec3f &boxmin, const SbVec3f &boxmax)
       SbXfBox3f (const SbBox3f &box)
       ~SbXfBox3f ()
       void setTransform (const SbMatrix &m)
       const SbMatrix & getTransform (void) const
       const SbMatrix & getInverse (void) const
       SbVec3f getCenter (void) 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
       SbBool intersect (const SbXfBox3f &bb) const
       void getSpan (const SbVec3f &direction, float &dMin, float &dMax) const
       SbBox3f project (void) const
       void transform (const SbMatrix &m)
       float getVolume (void) const
       void print (FILE *file) const

   Friends
       int operator== (const SbXfBox3f &b1, const SbXfBox3f &b2)
       int operator!= (const SbXfBox3f &b1, const SbXfBox3f &b2)

Detailed Description

       The SbXfBox3f class is a 3 dimensional box with floating point
       coordinates and an attached transformation.

       This box class is used by many other classes in Coin for data exchange.
       It provides storage for two box corners with floating point
       coordinates, and for a floating point 4x4 transformation matrix.

       See also:
           SbBox2s, SbBox2f, SbBox2d, SbBox3s, SbBox3f, SbBox3d, SbMatrix.

Constructor & Destructor Documentation

   SbXfBox3f::SbXfBox3f (void) The default constructor makes an empty box and
       identity matrix.
   SbXfBox3f::SbXfBox3f (const SbVec3f & boxmin, const SbVec3f & boxmax)
       Constructs a box with the given corners.
       The coordinates of min should be less than the coordinates of max if
       you want to make a valid box.

   SbXfBox3f::SbXfBox3f (const SbBox3f & box) Constructs a box from the given
       SbBox3f.
       The transformation is set to the identity matrix.

   SbXfBox3f::~SbXfBox3f () Default destructor does nothing.

Member Function Documentation

   void SbXfBox3f::setTransform (const SbMatrix & m) Sets the transformation
       to the given SbMatrix.
   const SbMatrix & SbXfBox3f::getTransform (void) const Returns the current
       transformation matrix.
   const SbMatrix & SbXfBox3f::getInverse (void) const Returns the inverse of
       the current transformation matrix.
   SbVec3f SbXfBox3f::getCenter (void) const Return the transformed center
       point of the box.
       Reimplemented from SbBox3f.

   void SbXfBox3f::extendBy (const SbVec3f & pt) Extend the boundaries of the
       box by the given point, i.e. make the point fit inside the box if it
       isnt already so.
       The point is assumed to be in transformed space.

       Reimplemented from SbBox3f.

   void SbXfBox3f::extendBy (const SbBox3f & bb) Extend the boundaries of the
       box by the given bb parameter. The given box is assumed to be in
       transformed space.
       The two given boxes will be combined in such a way so that the
       resultant bounding box always has the smallest possible volume. To
       accomplish this, the transformation on this SbXfBox3f will sometimes be
       flattened before it’s combined with bb.

       Reimplemented from SbBox3f.

   void SbXfBox3f::extendBy (const SbXfBox3f & bb) Extend the boundaries of
       the box by the given bb parameter.
       The given box is assumed to be in transformed space.

       Note: is not guaranteed to give an optimal result if used for bbox
       calculation since the transformation matrix might change. See
       documentation in SoGetBoundingBoxAction for more details.

   SbBool SbXfBox3f::intersect (const SbVec3f & pt) const Check if the given
       point lies within the boundaries of this box.
       The point is assumed to be in transformed space.

       Reimplemented from SbBox3f.

   SbBool SbXfBox3f::intersect (const SbBox3f & bb) const Check if the given
       box lies wholly or partly within the boundaries of this box.
       The given box is assumed to be in transformed space.

       Reimplemented from SbBox3f.

   SbBool SbXfBox3f::intersect (const SbXfBox3f & xfbb) const Check if two
       transformed boxes intersect.
       This function is an extension for Coin, and it is not available in the
       original SGI Open Inventor v2.1 API.

       Since:
           Coin 2.0

   void SbXfBox3f::getSpan (const SbVec3f & direction, float & dMin, float &
       dMax) const Find the span of the box in the given direction (i.e. how
       much room in the given direction the box needs). The distance is
       returned as the minimum and maximum distance from origo to the closest
       and furthest plane defined by the direction vector and each of the boxcorners. The difference between these values gives the span.
       Reimplemented from SbBox3f.

   SbBox3f SbXfBox3f::project (void) const Project the SbXfBox3f into a
       SbBox3f.
       This gives the same resulting SbBox3f as doing a SbBox3f::transform()
       with this transformation matrix as parameter.

   void SbXfBox3f::transform (const SbMatrix & m) Overridden from SbBox3f, as
       the transformations are to be kept separate from the box in the
       SbXfBox3f class.
       Reimplemented from SbBox3f.

   float SbXfBox3f::getVolume (void) const Return box volume. Overridden from
       parent class to take into account the possibility of scaling in the
       transformation matrix.
       Reimplemented from SbBox3f.

   void SbXfBox3f::print (FILE * fp) const Dump the state of this object to
       the file stream. Only works in debug version of library, method does
       nothing in an optimized compile.
       Reimplemented from SbBox3f.

Friends And Related Function Documentation

   int operator== (const SbXfBox3f & b1, const SbXfBox3f & b2) [friend] Check
       if b1 and b2 are equal. Return 1 if they are equal, or 0 if they are
       unequal. Note that the method will do a dumb component by component
       comparison.
   int operator!= (const SbXfBox3f & b1, const SbXfBox3f & b2) [friend] Check
       if b1 and b2 are unequal. Return 0 if they are equal, or 1 if they are
       unequal. See the note on operator==().

Author

       Generated automatically by Doxygen for Coin from the source code.