![]() |
http://www.sim.no http://www.coin3d.org |
The SbXfBox3f class is a 3 dimensional box with floating point coordinates and an attached transformation. More...
#include <Inventor/SbBox.h>
Friends | |
int | operator== (const SbXfBox3f &b1, const SbXfBox3f &b2) |
int | operator!= (const SbXfBox3f &b1, const SbXfBox3f &b2) |
Additional Inherited Members | |
![]() | |
int | operator== (const SbBox3f &b1, const SbBox3f &b2) |
int | operator!= (const SbBox3f &b1, const SbBox3f &b2) |
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.
SbXfBox3f::SbXfBox3f | ( | void | ) |
The default constructor makes an empty box and identity matrix.
References SbMatrix::makeIdentity().
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.
References SbMatrix::makeIdentity().
Constructs a box from the given SbBox3f.
The transformation is set to the identity matrix.
References SbMatrix::makeIdentity().
SbXfBox3f::~SbXfBox3f | ( | ) |
Default destructor does nothing.
Sets the transformation to the given SbMatrix.
Referenced by SoGetBoundingBoxAction::checkResetAfter(), SoGetBoundingBoxAction::checkResetBefore(), SoLevelOfDetail::getBoundingBox(), SoVRMLGroup::getBoundingBox(), and transform().
Returns the current transformation matrix.
Referenced by extendBy(), and print().
Returns the inverse of the current transformation matrix.
Referenced by extendBy(), and extendBy().
Return the transformed center point of the box.
References SbBox3f::getCenter(), and SbMatrix::multVecMatrix().
Referenced by print().
Extend the boundaries of the box by the given point, i.e. make the point fit inside the box if it isn't already so.
The point is assumed to be in transformed space.
References SbBox3f::extendBy(), getInverse(), SbBox3f::isEmpty(), and SbMatrix::makeIdentity().
Referenced by SoGetBoundingBoxAction::extendBy(), and SoGetBoundingBoxAction::extendBy().
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.
References getInverse(), SbBox3f::getMin(), SbBox3f::isEmpty(), SbMatrix::makeIdentity(), SoDebugError::postInfo(), SoDebugError::postWarning(), project(), and SbBox3f::setBounds().
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.
References getTransform(), SbBox3f::isEmpty(), SbMatrix::multRight(), SoDebugError::postInfo(), and SoDebugError::postWarning().
Check if the given point lies within the boundaries of this box.
The point is assumed to be in transformed space.
References SbBox3f::intersect(), and SbMatrix::multVecMatrix().
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.
References SbMatrix::identity(), SbBox3f::intersect(), SbBox3f::isEmpty(), and SoDebugError::postWarning().
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 box' corners. The difference between these values gives the span.
References SbBox3f::getSpan(), and project().
Project the SbXfBox3f into a SbBox3f.
This gives the same resulting SbBox3f as doing a SbBox3f::transform() with this transformation matrix as parameter.
Referenced by extendBy(), SoGetBoundingBoxAction::getBoundingBox(), getSpan(), and print().
Overridden from SbBox3f, as the transformations are to be kept separate from the box in the SbXfBox3f class.
References SbMatrix::multRight(), and setTransform().
Referenced by SoGetBoundingBoxAction::extendBy(), and SoGetBoundingBoxAction::extendBy().
float SbXfBox3f::getVolume | ( | void | ) | const |
Return box volume. Overridden from parent class to take into account the possibility of scaling in the transformation matrix.
References SbMatrix::det3(), SbBox3f::getVolume(), and SbBox3f::hasVolume().
Referenced by print().
Dump the state of this object to the file stream. Only works in debug version of library, method does nothing in an optimized compile.
References SbBox3f::getBounds(), getCenter(), SbBox3f::getOrigin(), SbBox3f::getSize(), getTransform(), getVolume(), SbBox3f::print(), SbVec3f::print(), and project().
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.
Check if b1 and b2 are unequal. Return 0 if they are equal, or 1 if they are unequal. See the note on operator==().
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Wed Jul 19 2023 for Coin by Doxygen. 1.9.8