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  -  SOSURROUNDSCALE (3)

NAME

SoSurroundScale — transformation node that adjusts the current matrix so a default cube will surround other objects

CONTENTS

Inherits From
Synopsis
Description
Fields
Methods
Action Behavior
File Format/defaults
See Also

INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoTransformation > SoSurroundScale

SYNOPSIS

#include <Inventor/nodes/SoSurroundScale.h>

Fields from class SoSurroundScale:

    SoSFInt32    
                    
SoSFInt32            numNodesUpToContainer    
SoSFInt32    
                    
SoSFInt32            numNodesUpToReset

Methods from class SoSurroundScale:

       
                    
                     SoSurroundScale()    
void    
                    
void                 invalidate()    
static SoType    
                    
static SoType        getClassTypeId()

Methods from class SoNode:

    void    
                    
void                 setOverride(SbBool state)    
SbBool    
                    
SbBool               isOverride() const    
SoNode *    
                    
SoNode *             copy(SbBool copyConnections = FALSE) const    
virtual SbBool    
                    
virtual SbBool       affectsState() const    
static SoNode *    
                    
static SoNode *      getByName(const SbName &name)    
static int    
                    
static int           getByName(const SbName &name, SoNodeList &list)

Methods from class SoFieldContainer:

    void    
                    
void                 setToDefaults()    
SbBool    
                    
SbBool               hasDefaultValues() const    
SbBool    
                    
SbBool               fieldsAreEqual(const SoFieldContainer *fc) const    
void    
                    
void                 copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)    
SbBool    
                    
SbBool               set(const char *fieldDataString)    
void    
                    
void                 get(SbString &fieldDataString)    
virtual int    
                    
virtual int          getFields(SoFieldList &resultList) const    
virtual SoField *    
                    
virtual SoField *    getField(const SbName &fieldName) const    
SbBool    
                    
SbBool               getFieldName(const SoField *field, SbName &fieldName) const    
SbBool    
                    
SbBool               isNotifyEnabled() const    
SbBool    
                    
SbBool               enableNotify(SbBool flag)

Methods from class SoBase:

    void    
                    
void                 ref()    
void    
                    
void                 unref() const    
void    
                    
void                 unrefNoDelete() const    
void    
                    
void                 touch()    
virtual SoType    
                    
virtual SoType       getTypeId() const    
SbBool    
                    
SbBool               isOfType(SoType type) const    
virtual void    
                    
virtual void         setName(const SbName &name)    
virtual SbName    
                    
virtual SbName       getName() const

DESCRIPTION

When traversed by an action, this node appends a transformation to the current transformation matrix so that a default size cube will surround the objects specified by its fields. Transform manipulators, such as SoHandleBoxManip, use these nodes to make themselves surround other objects.

This node only recalculates after the invalidate() method has been called. Otherwise it uses a saved scale and translation.

When calculating what to surround, the SoSurroundScale looks at the current path in the action and at its own field values. Then SoSurroundScale applies an SoGetBoundingBoxAction to the node that is numNodesUpToContainer nodes above it on the path. SoSurroundScale also tells the action to reset the bounding box upon traversal of the node located numNodesUpToReset nodes above it in the path. The SoSurroundScale then appends a translation and scale to the current transformation so that a default size SoCube will translate and scale to fit this bounding box.

For example, when an SoHandleBoxManip wants to surround the objects it is going to move, the scene graph will look something like this:




                 RootNode
       -------------------------
       |                        |
     handleBoxManip        movingStuff
       |
     handleBoxDragger
       |
     separator
      -----------------------------------
      |            |                     |
    motionMatrix  surroundScale      cubeGeom


The SoHandleBoxDragger wants to transform the cubeGeom so that it surrounds the movingStuff. So it sets the surroundScale fields to:


numNodesUpToContainer = 4; numNodesUpToReset = 3;

The SoBoundingBoxAction will then be applied to RootNode, with a reset after traversing the SoHandleBoxManip. So the SoSurroundScale will surround the objects below separator, and to the right of handleBoxManip, producing the desired effect.

FIELDS

    SoSFInt32    
                    
SoSFInt32            numNodesUpToContainer
When traversed by an action, if surroundScale needs to calculate a new box, surroundScale looks at the current path in the action. It travels up this path a distance of numNodesUpToContainer and applies an SoGetBoundingBoxAction to the node that it finds there.

    SoSFInt32    
                    
SoSFInt32            numNodesUpToReset
Before applying the SoGetBoundingBoxAction (see the numNodesUpToContainer field aove) the surroundScale node travels up the path a distance of numNodesUpToReset and tells the action to reset the bounding box upon traversal of that node.

METHODS

       
                    
                     SoSurroundScale()
Creates a surround scale node with default settings.

    void    
                    
void                 invalidate()
If you call this, then next time an action is applied the node will re-calculate it’s cached translation and scale values.

    static SoType    
                    
static SoType        getClassTypeId()
Returns type identifier for this class.

ACTION BEHAVIOR

SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction
Accumulates scaling and translation transformations into the current transformation.

SoGetMatrixAction
Returns the matrix corresponding to the scaling and translation.

FILE FORMAT/DEFAULTS

SurroundScale {



numNodesUpToContainer  0
numNodesUpToReset      0


}

SEE ALSO

SoTransformation, SoTransformManip, SoCenterballDragger, SoCenterballManip, SoHandleBoxDragger, SoHandleBoxManip, SoJackDragger, SoJackManip, SoTabBoxDragger, SoTabBoxManip, SoTrackballDragger, SoTrackballManip, SoTransformBoxDragger, SoTransformBoxManip

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


SOSURROUNDSCALE(3IV) (-->)

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