SoSurroundScale Class |
Transformation node that adjusts the current matrix so a default cube will surround other objects.
Namespace: OIV.Inventor.Nodes
The SoSurroundScale type exposes the following members.
Name | Description | |
---|---|---|
SoSurroundScale | Creates a surround scale node with default settings. |
Name | Description | |
---|---|---|
AffectsState | Returns true if a node has an effect on the state during traversal. | |
Callback | (Overrides SoNodeCallback(SoCallbackAction).) | |
Copy | Calls Copy(false). (Inherited from SoNode.) | |
Copy(Boolean) | Creates and returns an exact copy of the node. | |
CopyFieldValues(SoFieldContainer) | Calls CopyFieldValues(fc, false). (Inherited from SoFieldContainer.) | |
CopyFieldValues(SoFieldContainer, Boolean) | Copies the contents of fc's fields into this object's fields. | |
Dispose |
Releases all resources used by SoDisposable.
(Inherited from SoDisposable.) | |
Distribute | (Inherited from SoNode.) | |
DoAction | (Overrides SoNodeDoAction(SoAction).) | |
EnableNotify | Notification at this Field Container is enabled (if flag == true) or disabled (if flag == false). | |
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
FieldsAreEqual | Returns true if this object's fields are exactly equal to fc's fields. | |
Get | Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string. | |
GetAllFields | Returns a list of fields, including the eventIn's and eventOut's. | |
GetAlternateRep | This method is called by actions to allow the node to provide an "alternate representation" when appropriate (typically depending on the action type). | |
GetBoundingBox | (Overrides SoNodeGetBoundingBox(SoGetBoundingBoxAction).) | |
GetEventIn | Returns a the eventIn with the given name. | |
GetEventOut | Returns the eventOut with the given name. | |
GetField | Returns a the field of this object whose name is fieldName. | |
GetFieldName | Returns the name of the given field in the fieldName argument. | |
GetFields | Appends references to all of this object's fields to resultList, and returns the number of fields appended. | |
GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) | |
GetMatrix | (Overrides SoNodeGetMatrix(SoGetMatrixAction).) | |
GetName | Returns the name of an instance. | |
GetPrimitiveCount | (Inherited from SoNode.) | |
GetRenderEngineMode | Returns the supported Render engine mode. | |
GetRenderUnitID | (Inherited from SoNode.) | |
GetStringName | (Inherited from SoBase.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GLRender | (Overrides SoNodeGLRender(SoGLRenderAction).) | |
GLRenderBelowPath | (Inherited from SoNode.) | |
GLRenderInPath | (Inherited from SoNode.) | |
GLRenderOffPath | (Inherited from SoNode.) | |
GrabEventsCleanup | (Inherited from SoNode.) | |
GrabEventsSetup | (Inherited from SoNode.) | |
HandleEvent | (Inherited from SoTransformation.) | |
HasDefaultValues | Returns true if all of the object's fields have their default values. | |
Invalidate | If you call this, then next time an action is applied the node will re-calculate its cached translation and scale values. | |
IsBoundingBoxIgnoring | This method is used by getBoundingBox action traversal to know if the current node must be traversed or not, ie the bounding should be ignored. | |
IsDoingTranslations | ||
IsNotifyEnabled | Notification is the process of telling interested objects that this object has changed. | |
IsOverride | Returns the state of the override flag. | |
IsSynchronizable | Gets the ScaleViz synchronizable state of this object. | |
Pick | (Overrides SoNodePick(SoPickAction).) | |
RayPick | (Inherited from SoNode.) | |
Search | (Inherited from SoNode.) | |
Set | Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format. | |
SetDoingTranslations | ||
SetName | (Inherited from SoBase.) | |
SetOverride | Turns the override flag on or off. | |
SetSynchronizable | Sets this to be a ScaleViz synchronizable object. | |
SetToDefaults | Sets all fields in this object to their default values. | |
ToString |
Converts this SoBase structure to a human readable string.
(Inherited from SoBase.) | |
Touch | Marks an instance as modified, simulating a change to it. | |
Write | (Inherited from SoNode.) |
Name | Description | |
---|---|---|
IsDisposable | ISafeDisposable interface implementation.
(Inherited from SoDisposable.) | |
numNodesUpToContainer | When traversed by an action, if surroundScale needs to calculate a new box, surroundScale looks at the current path in the action. | |
numNodesUpToReset | Before applying the OIV.Inventor.Actions.SoGetBoundingBoxAction (see the OIV.Inventor.Nodes.SoSurroundScale.numNodesUpToContainer field above) the surroundScale node travels up the path a distance of OIV.Inventor.Nodes.SoSurroundScale.numNodesUpToReset and tells the action to reset the bounding box upon traversal of that node. | |
UserData |
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.) |
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 OIV.Inventor.Manips.SoHandleBoxManip, use these nodes to make themselves surround other objects.
This node only recalculates after the OIV.Inventor.Nodes.SoSurroundScale.Invalidate() method has been called. Otherwise it uses a saved scale and translation.
When calculating what to surround, the OIV.Inventor.Nodes.SoSurroundScale looks at the current path in the action and at its own field values. Then OIV.Inventor.Nodes.SoSurroundScale applies an OIV.Inventor.Actions.SoGetBoundingBoxAction to the node that is OIV.Inventor.Nodes.SoSurroundScale.numNodesUpToContainer nodes above it on the path. OIV.Inventor.Nodes.SoSurroundScale also tells the action to reset the bounding box upon traversal of the node located OIV.Inventor.Nodes.SoSurroundScale.numNodesUpToReset nodes above it in the path. The OIV.Inventor.Nodes.SoSurroundScale then appends a translation and scale to the current transformation so that a default size OIV.Inventor.Nodes.SoCube will translate and scale to fit this bounding box.
For example, when an OIV.Inventor.Manips.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 cubeGeomThe OIV.Inventor.Draggers.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 OIV.Inventor.Manips.SoHandleBoxManip. So the OIV.Inventor.Nodes.SoSurroundScale will surround the objects below separator , and to the right of handleBoxManip , producing the desired effect.
SurroundScale {
numNodesUpToContainer | 0 |
numNodesUpToReset | 0 |
OIV.Inventor.Actions.SoGLRenderAction, OIV.Inventor.Actions.SoCallbackAction, OIV.Inventor.Actions.SoGetBoundingBoxAction, OIV.Inventor.Actions.SoRayPickAction Accumulates scaling and translation transformations into the current transformation.
OIV.Inventor.Actions.SoGetMatrixAction Returns the matrix corresponding to the scaling and translation.