SoTransformerManip — transform node with 3D interface for changing scaling, rotation, and translation
Contents
Description
This is a new manipulator with some improvements over the older inventor manips. It has the following
features: [1] full interface for rotate, translate, and scale, [2] better feedback, [3] locate
highlighting.
SoTransformerManip is derived from SoTransform (by way of SoTransformManip). When its fields change,
nodes following it in the scene graph rotate, scale, and/or translate.
As a subclass of SoTransformManip, this manipulator also has a 3D interface to edit some of its fields.
In this case, the interface edits the scaleFactor, rotation and translation fields.
A manipulator differs from a dragger. When you move a dragger, no other nodes are affected. When you move
an SoTransformManip, other nodes move along with it. (See the reference page for SoTransformManip).
The interface for an SoTransformerManip is exactly the same as that of the SoTransformerDragger. To find
out more about the interface, see the reference page for SoTransformerDragger. To find out how the
manipulator uses a dragger to provide its interface, see the reference page for SoTransformManip.
On screen, this manipulator will surround the objects influenced by its motion. This is because it turns
on the surroundScale part of the dragger (See the reference page for SoSurroundScale)
File Format/Defaults
TransformerManip{translation000rotation0010scaleFactor111scaleOrientation0010center000}Inherits From
SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform > SoTransformManip >
SoTransformerManip
Methods
SoTransformerManip()
Constructor.
staticSoTypegetClassTypeId()
Returns type identifier for this class.
voidsetLocateHighlighting(SbBoolonOff)SbBoolisLocateHighlighting()
Controls whether or not the dragger inside this manip will perform locate highlighting is used.
Default is TRUE.
voidunsquishKnobs()
Tells the dragger inside this manip to unsquish its rotation and scale knobs during the next
traversal. Ordinarily, the knobs are only unsquished upon readin from file and when the mouse button
is released at the end of a drag. If you want this to happen more often, then you should call this
method.
Name
SoTransformerManip — transform node with 3D interface for changing scaling, rotation, and translation
See Also
SoTransformerDragger,SoTransform,SoCenterballManip,SoHandleBoxManip,SoJackManip,SoTabBoxManip,SoTrackballManip,SoTransformBoxManip,SoTransformManipSoTransformerManip(3IV)()
Synopsis
#include<Inventor/manips/SoTransformerManip.h>
Fields from class SoTransform:
SoSFVec3ftranslationSoSFRotationrotationSoSFVec3fscaleFactorSoSFRotationscaleOrientationSoSFVec3fcenter
Methods from class SoTransformerManip:
SoTransformerManip()staticSoTypegetClassTypeId()voidsetLocateHighlighting(SbBoolonOff)SbBoolisLocateHighlighting()voidunsquishKnobs()
Methods from class SoTransformManip:
SoDragger*getDragger()SbBoolreplaceNode(SoPath*p)SbBoolreplaceManip(SoPath*p,SoTransform*newOne)const
Methods from class SoTransform:
voidpointAt(constSbVec3f&fromPoint,constSbVec3f&toPoint)voidgetScaleSpaceMatrix(SbMatrix&mat,SbMatrix&inv)constvoidgetRotationSpaceMatrix(SbMatrix&mat,SbMatrix&inv)constvoidgetTranslationSpaceMatrix(SbMatrix&mat,SbMatrix&inv)constvoidmultLeft(constSbMatrix&mat)voidmultRight(constSbMatrix&mat)voidcombineLeft(SoTransformation*nodeOnRight)voidcombineRight(SoTransformation*nodeOnLeft)voidsetMatrix(constSbMatrix&mat)voidrecenter(constSbVec3f&newCenter)
Methods from class SoNode:
voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)
Methods from class SoFieldContainer:
voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)
Methods from class SoBase:
voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const