SOTRANSFORMERMANIP(3iv)
π SoTransformerManip π
okay bestie, welcome to the manual page for SoTransformerManip(3IV) β yes that's the whole title, no notes. this is the Open Inventor one, and she is thriving.
πΈ NAME πΈ
SoTransformerManip β a transform node with a 3D interface for changing scaling, rotation, and translation. it's giving "i let you drag stuff around in 3D space and it actually feels good" β¨
π¦ INHERITS FROM π¦
the whole glow-up lineage, in order:
SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform >
SoTransformManip > SoTransformerManip
she comes from a long line of iconic nodes and she knows it π
β¨ SYNOPSIS β¨
first things first, you gotta include her:
#include <Inventor/manips/SoTransformerManip.h>
π Fields from class SoTransform
SoSFVec3f translation
SoSFRotation rotation
SoSFVec3f scaleFactor
SoSFRotation scaleOrientation
SoSFVec3f center
π Methods from class SoTransformerManip
SoTransformerManip()
static SoType getClassTypeId()
void setLocateHighlighting(SbBool onOff )
SbBool isLocateHighlighting()
void unsquishKnobs()
π Methods from class SoTransformManip
SoDragger * getDragger()
SbBool replaceNode(SoPath *p )
SbBool replaceManip(SoPath *p, SoTransform *newOne ) const
π Methods from class SoTransform
void pointAt(const SbVec3f &fromPoint, const SbVec3f
&toPoint)
void getScaleSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
const
void getRotationSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
const
void getTranslationSpaceMatrix(SbMatrix &mat, SbMatrix
&inv) const
void multLeft(const SbMatrix &mat)
void multRight(const SbMatrix &mat)
void combineLeft(SoTransformation *nodeOnRight)
void combineRight(SoTransformation *nodeOnLeft)
void setMatrix(const SbMatrix &mat)
void recenter(const SbVec3f &newCenter)
π Methods from class SoNode
void setOverride(SbBool state)
SbBool isOverride() const
SoNode * copy(SbBool copyConnections = FALSE) const
virtual SbBool affectsState() const
static SoNode * getByName(const SbName &name)
static int getByName(const SbName &name, SoNodeList &list)
π Methods from class SoFieldContainer
void setToDefaults()
SbBool hasDefaultValues() const
SbBool fieldsAreEqual(const SoFieldContainer *fc) const
void copyFieldValues(const SoFieldContainer *fc, SbBool
copyConnections = FALSE)
SbBool set(const char *fieldDataString)
void get(SbString &fieldDataString)
virtual int getFields(SoFieldList &resultList) const
virtual SoField * getField(const SbName &fieldName) const
SbBool getFieldName(const SoField *field, SbName &fieldName)
const
SbBool isNotifyEnabled() const
SbBool enableNotify(SbBool flag)
π Methods from class SoBase
void ref()
void unref() const
void unrefNoDelete() const
void touch()
virtual SoType getTypeId() const
SbBool isOfType(SoType type) const
virtual void setName(const SbName &name)
virtual SbName getName() const
π DESCRIPTION π
okay so. this is a new manipulator with some improvements over the older inventor manips. she's the upgraded version, the remix, the deluxe edition. here's the feature list, bestie:
- full interface for rotate, translate, and scale π₯
- better feedback π
- locate highlighting β¨
SoTransformerManip is derived from SoTransform (by way of SoTransformManip). so like, when its fields change, the nodes following it in the scene graph rotate, scale, and/or translate. the whole downstream squad gets moved, no cap.
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. those three are the main characters here π
so, a manipulator differs from a dragger β and this is the important part, don't skip it:
- 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 for the full tea β)
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. it's a whole ecosystem, iykyk.
on screen, this manipulator will surround the objects influenced by its motion. why? because it turns on the surroundScale part of the dragger (see the reference page for SoSurroundScale). she literally wraps around your stuff. protective queen energy π«Ά
β METHODS β
SoTransformerManip()β the constructor. hi bestie, she's born β¨static SoType getClassTypeId()β returns the type identifier for this class. classic. every class has one, it's their little ID card π³void setLocateHighlighting(SbBool onOff )SbBool isLocateHighlighting()β controls whether or not the dragger inside this manip will perform locate highlighting. default isTRUE. so like, on by default, she's β¨litβ¨.void unsquishKnobs()β 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. so if you want this to happen more often, then you should call this method. that's it, that's the whole thing. call it when you want the knobs un-squished, periodt π
π FILE FORMAT/DEFAULTS π
here's what she looks like fresh out the box, defaults and all:
TransformerManip {
translation 0 0 0
rotation 0 0 1 0
scaleFactor 1 1 1
scaleOrientation 0 0 1 0
center 0 0 0
}
nothing moved, nothing rotated, nothing scaled. blank slate, main character energy, ready for whatever π
π SEE ALSO π
the whole friend group, go say hi:
SoTransformerDraggerSoTransformSoCenterballManipSoHandleBoxManipSoJackManipSoTabBoxManipSoTrackballManipSoTransformBoxManipSoTransformManip
π reminder bestie: SoTransformerManip(3IV) β that's the manual section, don't come for me about the parentheses.
okay that's the whole page, you ate that, go build something cute with it πβ¨ππ¦πΈπ π«Άπ
this has been SoTransformerManip(3IV) β source/version line: SoTransformerManip(3IV)() π stay iconic β¨
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms