GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SOGETBOUNDINGBOXACTION (3)

NAME

SoGetBoundingBoxAction — computes bounding box of a scene

CONTENTS

Inherits From
Synopsis
Description
Methods
See Also

INHERITS FROM

SoAction > SoGetBoundingBoxAction

SYNOPSIS

#include <Inventor/actions/SoGetBoundingBoxAction.h>

enum ResetType {     SoGetBoundingBoxAction::TRANSFORM    
                              SoGetBoundingBoxAction::TRANSFORM Transformation    
SoGetBoundingBoxAction::BBOX    
                              SoGetBoundingBoxAction::BBOX  Bounding Box    
SoGetBoundingBoxAction::ALL    
                              SoGetBoundingBoxAction::ALL   Both Transform and Bounding Box
}

Methods from class SoGetBoundingBoxAction:

       
                          
                           SoGetBoundingBoxAction(const SbViewportRegion &viewportRegion)    
void    
                          
void                       setViewportRegion(const SbViewportRegion &newRegion)    
const SbViewportRegion &    
                          
const SbViewportRegion &   getViewportRegion() const    
SbBox3f    
                          
SbBox3f                    getBoundingBox() const    
SbXfBox3f &    
                          
SbXfBox3f &                getXfBoundingBox()    
const SbVec3f &    
                          
const SbVec3f &            getCenter() const    
void    
                          
void                       setInCameraSpace(SbBool flag)    
SbBool    
                          
SbBool                     isInCameraSpace() const    
void    
                          
void                       setResetPath(const SoPath *path, SbBool resetBefore = TRUE, ResetType what = ALL)    
const SoPath *    
                          
const SoPath *             getResetPath() const    
SbBool    
                          
SbBool                     isResetPath() const    
SbBool    
                          
SbBool                     isResetBefore() const    
SoGetBoundingBoxAction::ResetType    
                          
SoGetBoundingBoxAction::ResetType getWhatReset() const

Methods from class SoAction:

    virtual void    
                    
virtual void         apply(SoNode *node)    
virtual void    
                    
virtual void         apply(SoPath *path)    
virtual void    
                    
virtual void         apply(const SoPathList &pathList, SbBool obeysRules = FALSE)    
static SoType    
                    
static SoType        getClassTypeId()    
virtual SoType    
                    
virtual SoType       getTypeId()    
virtual SbBool    
                    
virtual SbBool       isOfType(SoType type)    
virtual void    
                    
virtual void         invalidateState()

DESCRIPTION

This class is used to compute a 3D bounding box enclosing objects defined by a scene graph. The box is a rectangular prism. The action also computes the center point, which is defined differently for different objects. (For example, the center of an SoFaceSet is the average of its vertices’ coordinates.) For a group, the center point is defined as the average of the centers of all shapes in it.

Each bounding box is calculated as a SbXfBox3f, where the transformation matrix is defined so that the bounding box can be stored in the object space of the SoShape. When two bounding boxes are combined by a group node, the combination is performed so as to produce the smaller untransformed box. The result of the calculation by the action can be returned as an SbXfBox3f or as a world-space-aligned SbBox3f.

To calculate the bounding box of a subgraph bounded by two paths, specify the left edge of the subgraph with setResetPath(), and apply the action to the path that defines the right edge of the subgraph. The accumulated bounding box and transformation will be reset when the tail of the reset path is traversed.

If the subgraph being traversed does not contain any shapes, the returned bounding box will be empty (that is, box.isEmpty() will return TRUE).

METHODS

       
                          
                           SoGetBoundingBoxAction(const SbViewportRegion &viewportRegion)
Constructor takes viewport region to use for picking. Even though the bounding box computation may not involve a window per se, some nodes need this information to determine their size and placement.

    void    
                          
void                       setViewportRegion(const SbViewportRegion &newRegion)    
const SbViewportRegion &    
                          
const SbViewportRegion &   getViewportRegion() const
Sets/returns current viewport region to use for action.

    SbBox3f    
                          
SbBox3f                    getBoundingBox() const
Returns computed bounding box in world space.

    SbXfBox3f &    
                          
SbXfBox3f &                getXfBoundingBox()
Returns computed bounding box before transformation into world space.

    const SbVec3f &    
                          
const SbVec3f &            getCenter() const
Returns computed center point in world space.

    void    
                          
void                       setInCameraSpace(SbBool flag)
Set this flag to TRUE if you want the returned bounding box to be in the space of whatever camera is in the graph. Camera space is defined to have the viewpoint at the origin, with the direction of view along the negative z axis. This space can be used to determine distances of objects from the camera.

    SbBool    
                          
SbBool                     isInCameraSpace() const
Returns camera space flag.

    void    
                          
void                       setResetPath(const SoPath *path, SbBool resetBefore = TRUE, ResetType what = ALL)
If a non-NULL path is specified, the action will reset the computed bounding box to be empty and/or the current transformation to identity. The resetBefore flag indicates whether to perform the reset before or after the tail node of the path is traversed.

    const SoPath *    
                          
const SoPath *             getResetPath() const
Returns the current reset path, or NULL.

    SbBool    
                          
SbBool                     isResetPath() const
Returns TRUE if the current reset path is not NULL.

    SbBool    
                          
SbBool                     isResetBefore() const
Returns TRUE if the resetBefore flag was specified for the reset path.

    SoGetBoundingBoxAction::ResetType    
                          
SoGetBoundingBoxAction::ResetType getWhatReset() const
Returns what flags were specified to be reset for the reset path.

SEE ALSO

SbBox3f, SbXfBox3f, SoGetMatrixAction

Search for    or go to Top of page |  Section 3 |  Main Index


SOGETBOUNDINGBOXACTION(3IV) (-->)

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.