#include <Inventor/actions/SoGetBoundingBoxAction.h>
Inheritance diagram for SoGetBoundingBoxAction::
Public Types | |
enum | ResetType { TRANSFORM = 0x1, BBOX = 0x2, ALL = TRANSFORM | BBOX } |
Public Methods | |
SoGetBoundingBoxAction (const SbViewportRegion &vp) | |
virtual | ~SoGetBoundingBoxAction () |
void | setViewportRegion (const SbViewportRegion &newregion) |
const SbViewportRegion & | getViewportRegion (void) const |
SbBox3f | getBoundingBox (void) const |
SbXfBox3f & | getXfBoundingBox (void) |
const SbVec3f & | getCenter (void) const |
void | setInCameraSpace (const SbBool flag) |
SbBool | isInCameraSpace (void) const |
void | setResetPath (const SoPath *path, const SbBool resetbefore=TRUE, const ResetType what=ALL) |
const SoPath * | getResetPath (void) const |
SbBool | isResetPath (void) const |
SbBool | isResetBefore (void) const |
SoGetBoundingBoxAction::ResetType | getWhatReset (void) const |
void | checkResetBefore (void) |
void | checkResetAfter (void) |
void | extendBy (const SbBox3f &box) |
void | extendBy (const SbXfBox3f &box) |
void | setCenter (const SbVec3f ¢er, const SbBool transformcenter) |
SbBool | isCenterSet (void) const |
void | resetCenter (void) |
Static Public Methods | |
void | initClass (void) |
Protected Methods | |
virtual void | beginTraversal (SoNode *node) |
The use of bounding boxes is ubiquitous within the Coin library. It is needed for the correct execution of and for performance enhancements during rendering, picking, caching, culling, etc.
Apply this action to a path or scene graph root to calculate the bounding box and the center point of the geometry contained within the scene.
SoSeparator nodes are aggressively caching the results of bounding box calculations, so that they are really only re-calculated whenever the scenegraph rooted below any SoSeparator node has been modified. This means that applying this action to scenegraphs, or parts of scenegraphs, should be very quick on successive runs for "static" parts of the scene.
|
For internal use only. |
|
Constructor. Some node types need to know the viewport region to calculate their bounding box. |
|
Destructor. |
|
Initializes the run-time type system for this class, and sets up the enabled elements and action method list. Reimplemented from SoAction. |
|
Set a new viewport region with this method, if it has changed from the oned passed in with the constructor. |
|
Returns the viewport region used by the action instance. |
|
Returns the projected bounding box after (or during) traversal. |
|
Returns the bounding box and transformation matrix to global coordinates. Use after (or during) traversal. |
|
Returns center point of scene after the action has been applied. This might differ from the geometric center of the bounding box, as shape nodes may "weight" the center point according to various criteria (i.e. a faceset could for instance weight the center point according to the area within its bounding box where there are more polygons). |
|
Sets whether the returned bounding box should be calculated in the coordinate system of the camera space or not. |
|
Returns whether the bounding box returned is to be in camera space. |
|
Forces the computed bounding box to be reset and the transformation to be identity before or after the tail node of path, depending on the resetbefore argument.
|
|
Returns the reset path (or
|
|
Returns whether a reset path is set or not.
|
|
Returns whether the bounding box and transformation is reset before or after the tail node of the reset path.
|
|
Returns what type of reset has been specified for the reset path.
|
|
For internal use only. |
|
For internal use only. |
|
Extend bounding box by the given box. Called from nodes during traversal. Should usually not be of interest to application programmers, unless you're extending Coin with your own shapenode extension classes. |
|
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
|
For internal use only. |
|
For internal use only. |
|
For internal use only. |
|
This virtual method is called from SoAction::apply(), and is the entry point for the actual scenegraph traversal. It can be overridden to initialize the action at traversal start, for specific initializations in the action subclasses inheriting SoAction. Default method just calls traverse(), which any overridden implementation of the method must do too (or call SoAction::beginTraversal()) to trigger the scenegraph traversal. Reimplemented from SoAction. |