SoSurroundScale(3IV) - Online Linux Manual Page
NAMESoSurroundScale — transformation node that adjusts the current matrix so a default cube will surround other objects
INHERITS FROMSoBase > SoFieldContainer > SoNode > SoTransformation > SoSurroundScale
SYNOPSIS¶\f7#include <Inventor/nodes/SoSurroundScale.h> Fields from class SoSurroundScale: \f8numNodesUpToContainer
\f8numNodesUpToReset Methods from class SoSurroundScale: \f8SoSurroundScale\*(Cr()
\f8invalidate\*(Cr()
\f8getClassTypeId\*(Cr() Methods from class SoNode: \f8setOverride\*(Cr(SbBool state)
\f8isOverride\*(Cr() const
\f8copy\*(Cr(SbBool copyConnections = FALSE) const
\f8affectsState\*(Cr() const
\f8getByName\*(Cr(const SbName &name)
\f8getByName\*(Cr(const SbName &name, SoNodeList &list) Methods from class SoFieldContainer: \f8setToDefaults\*(Cr()
\f8hasDefaultValues\*(Cr() const
\f8fieldsAreEqual\*(Cr(const SoFieldContainer *fc) const
\f8copyFieldValues\*(Cr(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
\f8set\*(Cr(const char *fieldDataString)
\f8get\*(Cr(SbString &fieldDataString)
\f8getFields\*(Cr(SoFieldList &resultList) const
\f8getField\*(Cr(const SbName &fieldName) const
\f8getFieldName\*(Cr(const SoField *field, SbName &fieldName) const
\f8isNotifyEnabled\*(Cr() const
\f8enableNotify\*(Cr(SbBool flag) Methods from class SoBase: \f8ref\*(Cr()
\f8unref\*(Cr() const
\f8unrefNoDelete\*(Cr() const
\f8touch\*(Cr()
\f8getTypeId\*(Cr() const
\f8isOfType\*(Cr(SoType type) const
\f8setName\*(Cr(const SbName &name)
\f8getName\*(Cr() const
DESCRIPTIONWhen 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 \f8SoHandleBoxManip\f1, use these nodes to make themselves surround other objects. This node only recalculates after the \f8invalidate()\f1 method has been called. Otherwise it uses a saved scale and translation. When calculating what to surround, the \f8SoSurroundScale\f1 looks at the current path in the action and at its own field values. Then \*(CbSoSurroundScale\f1 applies an \*(CbSoGetBoundingBoxAction\f1 to the node that is \*(CbnumNodesUpToContainer\f1 nodes above it on the path. \*(CbSoSurroundScale\f1 also tells the action to reset the bounding box upon traversal of the node located \f8numNodesUpToReset\f1 nodes above it in the path. The \*(CbSoSurroundScale\f1 then appends a translation and scale to the current transformation so that a default size \*(CbSoCube\f1 will translate and scale to fit this bounding box. For example, when an \f8SoHandleBoxManip\f1 wants to surround the objects it is going to move, the scene graph will look something like this: \f7\*(Cr
RootNode
-------------------------
| |
handleBoxManip movingStuff
|
handleBoxDragger
|
separator
-----------------------------------
| | |
motionMatrix surroundScale cubeGeom
The \f8SoHandleBoxDragger\f1 wants to transform the \f2cubeGeom\f1 so that it surrounds the \f2movingStuff\f1. So it sets the surroundScale fields to:
\f8numNodesUpToContainer\f1 = 4;
\f8numNodesUpToReset\f1 = 3;
The \f8SoBoundingBoxAction\f1 will then be applied to \f2RootNode\f1, with a reset after traversing the \*(CbSoHandleBoxManip\f1. So the \*(CbSoSurroundScale\f1 will surround the objects below \f2separator\f1, and to the right of \f2handleBoxManip\f1, producing the desired effect.
FIELDS\f8numNodesUpToContainer
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 \f8numNodesUpToContainer\f1 and applies an \*(CbSoGetBoundingBoxAction\f1 to the node that it finds there. \f8numNodesUpToReset
Before applying the \f8SoGetBoundingBoxAction\f1 (see the \*(CbnumNodesUpToContainer\f1 field aove) the surroundScale node travels up the path a distance of \*(CbnumNodesUpToReset\f1 and tells the action to reset the bounding box upon traversal of that node.
METHODS\f8SoSurroundScale\*(Cr()
Creates a surround scale node with default settings. \f8invalidate\*(Cr()
If you call this, then next time an action is applied the node will re-calculate it's cached translation and scale values. \f8getClassTypeId\*(Cr()
Returns type identifier for this class.
ACTION BEHAVIOR\f8SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction
Accumulates scaling and translation transformations into the current transformation. \f8SoGetMatrixAction
Returns the matrix corresponding to the scaling and translation.
FILE FORMAT/DEFAULTS\f7SurroundScale {
numNodesUpToContainer 0
numNodesUpToReset 0
}
SEE ALSO
\f8SoTransformation, SoTransformManip, SoCenterballDragger, SoCenterballManip, SoHandleBoxDragger, SoHandleBoxManip, SoJackDragger, SoJackManip, SoTabBoxDragger, SoTabBoxManip, SoTrackballDragger, SoTrackballManip, SoTransformBoxDragger, SoTransformBoxManip 0
Johanes Gumabo
Data Size : 19,028 byte
man-SoSurroundScale.3ivBuild : 2024-12-05, 20:55 :
Visitor Screen : x
Visitor Counter ( page / site ) : 3 / 183,709
Visitor ID : :
Visitor IP : 18.191.238.6 :
Visitor Provider : AMAZON-02 :
Provider Position ( lat x lon ) : 39.962500 x -83.006100 : x
Provider Accuracy Radius ( km ) : 1000 :
Provider City : Columbus :
Provider Province : Ohio , : ,
Provider Country : United States :
Provider Continent : North America :
Visitor Recorder : Version :
Visitor Recorder : Library :
Online Linux Manual Page : Version : Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page : Library : lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page : Library : lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base : Version : Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base : Library : lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36
Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.
ERROR : Need New Coding : (rof_escape_sequence|91|SoSurroundScale.3iv|7/8|\f7 |. ds Cr \f7
) (rof_escape_sequence|91|SoSurroundScale.3iv|9|\f8 |. ds Cb \f8
) (rof_escape_sequence|91|SoSurroundScale.3iv|18|\f7#include |¶\*(Cr#include
) (rof_escape_sequence|91|SoSurroundScale.3iv|28|\f7SoSFInt32 |.ds Pt \*(CrSoSFInt32
) (parse_manual_page_|249|SoSurroundScale.3iv|35/36|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|35/36|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|37/38|\f7SoSFInt32 \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|37/38|\f7SoSFInt32 \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|39|\f8numNodesUpToContainer |\*(CbnumNodesUpToContainer
) (rof_escape_sequence|91|SoSurroundScale.3iv|44|\f7SoSFInt32 |.ds Pt \*(CrSoSFInt32
) (parse_manual_page_|249|SoSurroundScale.3iv|51/52|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|51/52|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|53/54|\f7SoSFInt32 \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|53/54|\f7SoSFInt32 \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|55|\f8numNodesUpToReset |\*(CbnumNodesUpToReset
) (rof_escape_sequence|91|SoSurroundScale.3iv|65|\f7 |.ds Pt \*(Cr
) (parse_manual_page_|249|SoSurroundScale.3iv|72/73|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|72/73|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|74/75|\f7 \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|74/75|\f7 \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|76|\f8SoSurroundScale\*(Cr() |\*(CbSoSurroundScale\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|81|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|88/89|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|88/89|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|90/91|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|90/91|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|92|\f8invalidate\*(Cr() |\*(Cbinvalidate\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|97|\f7static SoType |.ds Pt \*(Crstatic SoType
) (parse_manual_page_|249|SoSurroundScale.3iv|104/105|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|104/105|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|106/107|\f7static SoType \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|106/107|\f7static SoType \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|108|\f8getClassTypeId\*(Cr() |\*(CbgetClassTypeId\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|118|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|125/126|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|125/126|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|127/128|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|127/128|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|129|\f8setOverride\*(Cr(SbBool state) |\*(CbsetOverride\*(Cr(SbBool state)
) (rof_escape_sequence|91|SoSurroundScale.3iv|134|\f7SbBool |.ds Pt \*(CrSbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|141/142|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|141/142|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|143/144|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|143/144|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|145|\f8isOverride\*(Cr() const |\*(CbisOverride\*(Cr() const
) (rof_escape_sequence|91|SoSurroundScale.3iv|150|\f7SoNode * |.ds Pt \*(CrSoNode *
) (parse_manual_page_|249|SoSurroundScale.3iv|157/158|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|157/158|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|159/160|\f7SoNode * \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|159/160|\f7SoNode * \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|161|\f8copy\*(Cr(SbBool copyConnections = FALSE) const |\*(Cbcopy\*(Cr(SbBool copyConnections = FALSE) const
) (rof_escape_sequence|91|SoSurroundScale.3iv|166|\f7virtual SbBool |.ds Pt \*(Crvirtual SbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|173/174|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|173/174|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|175/176|\f7virtual SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|175/176|\f7virtual SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|177|\f8affectsState\*(Cr() const |\*(CbaffectsState\*(Cr() const
) (rof_escape_sequence|91|SoSurroundScale.3iv|182|\f7static SoNode * |.ds Pt \*(Crstatic SoNode *
) (parse_manual_page_|249|SoSurroundScale.3iv|189/190|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|189/190|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|191/192|\f7static SoNode * \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|191/192|\f7static SoNode * \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|193|\f8getByName\*(Cr(const SbName &name) |\*(CbgetByName\*(Cr(const SbName &name)
) (rof_escape_sequence|91|SoSurroundScale.3iv|198|\f7static int |.ds Pt \*(Crstatic int
) (parse_manual_page_|249|SoSurroundScale.3iv|205/206|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|205/206|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|207/208|\f7static int \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|207/208|\f7static int \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|209|\f8getByName\*(Cr(const SbName &name, SoNodeList &list) |\*(CbgetByName\*(Cr(const SbName &name, SoNodeList &list)
) (rof_escape_sequence|91|SoSurroundScale.3iv|219|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|226/227|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|226/227|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|228/229|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|228/229|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|230|\f8setToDefaults\*(Cr() |\*(CbsetToDefaults\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|235|\f7SbBool |.ds Pt \*(CrSbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|242/243|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|242/243|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|244/245|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|244/245|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|246|\f8hasDefaultValues\*(Cr() const |\*(CbhasDefaultValues\*(Cr() const
) (rof_escape_sequence|91|SoSurroundScale.3iv|251|\f7SbBool |.ds Pt \*(CrSbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|258/259|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|258/259|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|260/261|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|260/261|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|262|\f8fieldsAreEqual\*(Cr(const SoFieldContainer *fc) const |\*(CbfieldsAreEqual\*(Cr(const SoFieldContainer *fc) const
) (rof_escape_sequence|91|SoSurroundScale.3iv|267|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|274/275|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|274/275|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|276/277|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|276/277|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|278|\f8copyFieldValues\*(Cr(const SoFieldContainer *fc, SbBool copyConnections = FALSE) |\*(CbcopyFieldValues\*(Cr(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
) (rof_escape_sequence|91|SoSurroundScale.3iv|283|\f7SbBool |.ds Pt \*(CrSbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|290/291|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|290/291|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|292/293|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|292/293|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|294|\f8set\*(Cr(const char *fieldDataString) |\*(Cbset\*(Cr(const char *fieldDataString)
) (rof_escape_sequence|91|SoSurroundScale.3iv|299|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|306/307|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|306/307|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|308/309|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|308/309|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|310|\f8get\*(Cr(SbString &fieldDataString) |\*(Cbget\*(Cr(SbString &fieldDataString)
) (rof_escape_sequence|91|SoSurroundScale.3iv|315|\f7virtual int |.ds Pt \*(Crvirtual int
) (parse_manual_page_|249|SoSurroundScale.3iv|322/323|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|322/323|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|324/325|\f7virtual int \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|324/325|\f7virtual int \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|326|\f8getFields\*(Cr(SoFieldList &resultList) const |\*(CbgetFields\*(Cr(SoFieldList &resultList) const
) (rof_escape_sequence|91|SoSurroundScale.3iv|331|\f7virtual SoField * |.ds Pt \*(Crvirtual SoField *
) (parse_manual_page_|249|SoSurroundScale.3iv|338/339|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|338/339|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|340/341|\f7virtual SoField * \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|340/341|\f7virtual SoField * \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|342|\f8getField\*(Cr(const SbName &fieldName) const |\*(CbgetField\*(Cr(const SbName &fieldName) const
) (rof_escape_sequence|91|SoSurroundScale.3iv|347|\f7SbBool |.ds Pt \*(CrSbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|354/355|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|354/355|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|356/357|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|356/357|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|358|\f8getFieldName\*(Cr(const SoField *field, SbName &fieldName) const |\*(CbgetFieldName\*(Cr(const SoField *field, SbName &fieldName) const
) (rof_escape_sequence|91|SoSurroundScale.3iv|363|\f7SbBool |.ds Pt \*(CrSbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|370/371|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|370/371|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|372/373|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|372/373|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|374|\f8isNotifyEnabled\*(Cr() const |\*(CbisNotifyEnabled\*(Cr() const
) (rof_escape_sequence|91|SoSurroundScale.3iv|379|\f7SbBool |.ds Pt \*(CrSbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|386/387|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|386/387|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|388/389|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|388/389|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|390|\f8enableNotify\*(Cr(SbBool flag) |\*(CbenableNotify\*(Cr(SbBool flag)
) (rof_escape_sequence|91|SoSurroundScale.3iv|400|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|407/408|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|407/408|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|409/410|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|409/410|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|411|\f8ref\*(Cr() |\*(Cbref\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|416|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|423/424|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|423/424|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|425/426|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|425/426|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|427|\f8unref\*(Cr() const |\*(Cbunref\*(Cr() const
) (rof_escape_sequence|91|SoSurroundScale.3iv|432|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|439/440|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|439/440|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|441/442|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|441/442|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|443|\f8unrefNoDelete\*(Cr() const |\*(CbunrefNoDelete\*(Cr() const
) (rof_escape_sequence|91|SoSurroundScale.3iv|448|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|455/456|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|455/456|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|457/458|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|457/458|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|459|\f8touch\*(Cr() |\*(Cbtouch\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|464|\f7virtual SoType |.ds Pt \*(Crvirtual SoType
) (parse_manual_page_|249|SoSurroundScale.3iv|471/472|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|471/472|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|473/474|\f7virtual SoType \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|473/474|\f7virtual SoType \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|475|\f8getTypeId\*(Cr() const |\*(CbgetTypeId\*(Cr() const
) (rof_escape_sequence|91|SoSurroundScale.3iv|480|\f7SbBool |.ds Pt \*(CrSbBool
) (parse_manual_page_|249|SoSurroundScale.3iv|487/488|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|487/488|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|489/490|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|489/490|\f7SbBool \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|491|\f8isOfType\*(Cr(SoType type) const |\*(CbisOfType\*(Cr(SoType type) const
) (rof_escape_sequence|91|SoSurroundScale.3iv|496|\f7virtual void |.ds Pt \*(Crvirtual void
) (parse_manual_page_|249|SoSurroundScale.3iv|503/504|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|503/504|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|505/506|\f7virtual void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|505/506|\f7virtual void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|507|\f8setName\*(Cr(const SbName &name) |\*(CbsetName\*(Cr(const SbName &name)
) (rof_escape_sequence|91|SoSurroundScale.3iv|512|\f7virtual SbName |.ds Pt \*(Crvirtual SbName
) (parse_manual_page_|249|SoSurroundScale.3iv|519/520|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|519/520|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|521/522|\f7virtual SbName \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|521/522|\f7virtual SbName \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|523|\f8getName\*(Cr() const |\*(CbgetName\*(Cr() const
) (rof_escape_sequence|91|SoSurroundScale.3iv|527|\f8SoHandleBoxManip\f1, use these nodes to make themselves surround other objects. |\&such as \*(CbSoHandleBoxManip\f1, use these nodes to make themselves surround other objects.
) (rof_escape_sequence|91|SoSurroundScale.3iv|529|\f8invalidate()\f1 method has been called. Otherwise it uses a saved scale and translation. |This node only recalculates after the \*(Cbinvalidate()\f1 method has been called. Otherwise it uses a saved scale and translation.
) (rof_escape_sequence|91|SoSurroundScale.3iv|532|\f8SoSurroundScale\f1 looks at the current path in the action and at its own field values. Then \*(CbSoSurroundScale\f1 applies an \*(CbSoGetBoundingBoxAction\f1 to the node that is \*(CbnumNodesUpToContainer\f1 nodes above it on the path. \*(CbSoSurroundScale\f1 also tells the action to reset the bounding |\&to surround, the \*(CbSoSurroundScale\f1 looks at the current path in the action and at its own field values. Then \*(CbSoSurroundScale\f1 applies an \*(CbSoGetBoundingBoxAction\f1 to the node that is \*(CbnumNodesUpToContainer\f1 nodes above it on the path. \*(CbSoSurroundScale\f1 also tells the action to reset the bounding
) (rof_escape_sequence|91|SoSurroundScale.3iv|533|\f8numNodesUpToReset\f1 nodes above it in the path. The \*(CbSoSurroundScale\f1 then appends a translation and scale to the current transformation so that a default size \*(CbSoCube\f1 will translate and scale to fit this |\&box upon traversal of the node located \*(CbnumNodesUpToReset\f1 nodes above it in the path. The \*(CbSoSurroundScale\f1 then appends a translation and scale to the current transformation so that a default size \*(CbSoCube\f1 will translate and scale to fit this
) (rof_escape_sequence|91|SoSurroundScale.3iv|536|\f8SoHandleBoxManip\f1 wants to surround the objects it is going to move, the scene graph will look something like this: |For example, when an \*(CbSoHandleBoxManip\f1 wants to surround the objects it is going to move, the scene graph will look something like this:
) (rof_escape_sequence|91|SoSurroundScale.3iv|539|\f7\*(Cr|\*(Cr\*(Cr
) (rof_escape_sequence|91|SoSurroundScale.3iv|554|\f8SoHandleBoxDragger\f1 wants to transform the \f2cubeGeom\f1 so that it surrounds the \f2movingStuff\f1. So it sets |The \*(CbSoHandleBoxDragger\f1 wants to transform the \f2cubeGeom\f1 so that it surrounds the \f2movingStuff\f1. So it sets
) (rof_escape_sequence|91|SoSurroundScale.3iv|559|\f8numNodesUpToContainer\f1 = 4;| \*(CbnumNodesUpToContainer\f1 = 4;
) (rof_escape_sequence|91|SoSurroundScale.3iv|560|\f8numNodesUpToReset\f1 = 3;| \*(CbnumNodesUpToReset\f1 = 3;
) (rof_escape_sequence|91|SoSurroundScale.3iv|564|\f8SoBoundingBoxAction\f1 will then be applied to \f2RootNode\f1, with a reset after traversing the \*(CbSoHandleBoxManip\f1. So the \*(CbSoSurroundScale\f1 will surround the objects below \f2separator\f1, and to the right of \f2handleBoxManip\f1, producing the desired effect. |The \*(CbSoBoundingBoxAction\f1 will then be applied to \f2RootNode\f1, with a reset after traversing the \*(CbSoHandleBoxManip\f1. So the \*(CbSoSurroundScale\f1 will surround the objects below \f2separator\f1, and to the right of \f2handleBoxManip\f1, producing the desired effect.
) (rof_escape_sequence|91|SoSurroundScale.3iv|570|\f7SoSFInt32 |.ds Pt \*(CrSoSFInt32
) (parse_manual_page_|249|SoSurroundScale.3iv|577/578|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|577/578|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|579/580|\f7SoSFInt32 \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|579/580|\f7SoSFInt32 \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|581|\f8numNodesUpToContainer |\*(CbnumNodesUpToContainer
) (rof_escape_sequence|91|SoSurroundScale.3iv|584|\f8numNodesUpToContainer\f1 and applies an \*(CbSoGetBoundingBoxAction\f1 to the node that |\f1When 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 \*(CbnumNodesUpToContainer\f1 and applies an \*(CbSoGetBoundingBoxAction\f1 to the node that
) (rof_escape_sequence|91|SoSurroundScale.3iv|591|\f7SoSFInt32 |.ds Pt \*(CrSoSFInt32
) (parse_manual_page_|249|SoSurroundScale.3iv|598/599|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|598/599|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|600/601|\f7SoSFInt32 \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|600/601|\f7SoSFInt32 \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|602|\f8numNodesUpToReset |\*(CbnumNodesUpToReset
) (rof_escape_sequence|91|SoSurroundScale.3iv|605|\f8SoGetBoundingBoxAction\f1 (see the \*(CbnumNodesUpToContainer\f1 field aove) the surroundScale node travels up the path a distance of \*(CbnumNodesUpToReset\f1 and tells the action to reset the bounding box upon traversal of that node. |\f1Before applying the \*(CbSoGetBoundingBoxAction\f1 (see the \*(CbnumNodesUpToContainer\f1 field aove) the surroundScale node travels up the path a distance of \*(CbnumNodesUpToReset\f1 and tells the action to reset the bounding box upon traversal of that node.
) (rof_escape_sequence|91|SoSurroundScale.3iv|613|\f7 |.ds Pt \*(Cr
) (parse_manual_page_|249|SoSurroundScale.3iv|620/621|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|620/621|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|622/623|\f7 \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|622/623|\f7 \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|624|\f8SoSurroundScale\*(Cr() |\*(CbSoSurroundScale\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|633|\f7void |.ds Pt \*(Crvoid
) (parse_manual_page_|249|SoSurroundScale.3iv|640/641|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|640/641|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|642/643|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|642/643|\f7void \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|644|\f8invalidate\*(Cr() |\*(Cbinvalidate\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|653|\f7static SoType |.ds Pt \*(Crstatic SoType
) (parse_manual_page_|249|SoSurroundScale.3iv|660/661|el══─{─══.ne|.el══─{─══.ne 2
) (htmlprn|149|SoSurroundScale.3iv|660/661|.el══─{─══.ne 2 |.el══─{─══.ne 2
) (rof_escape_sequence|91|SoSurroundScale.3iv|662/663|\f7static SoType \c══─}─══ |\*(Pt \c══─}─══
) (htmlprn|149|SoSurroundScale.3iv|662/663|\f7static SoType \c══─}─══ |\*(Pt \c══─}─══
) (rof_escape_sequence|91|SoSurroundScale.3iv|664|\f8getClassTypeId\*(Cr() |\*(CbgetClassTypeId\*(Cr()
) (rof_escape_sequence|91|SoSurroundScale.3iv|671|\f8SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction |\*(CbSoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction
) (rof_escape_sequence|91|SoSurroundScale.3iv|677|\f8SoGetMatrixAction |\*(CbSoGetMatrixAction
) (rof_escape_sequence|91|SoSurroundScale.3iv|685|\f7SurroundScale {|\*(CrSurroundScale {
) (rof_escape_sequence|91|SoSurroundScale.3iv|693|\f8SoTransformation, SoTransformManip, SoCenterballDragger, SoCenterballManip, SoHandleBoxDragger, SoHandleBoxManip, SoJackDragger, SoJackManip, SoTabBoxDragger, SoTabBoxManip, SoTrackballDragger, SoTrackballManip, |\*(CbSoTransformation, SoTransformManip, SoCenterballDragger, SoCenterballManip, SoHandleBoxDragger, SoHandleBoxManip, SoJackDragger, SoJackManip, SoTabBoxDragger, SoTabBoxManip, SoTrackballDragger, SoTrackballManip,
)