SOTRANSFORMBOXMANIP(3iv)
π NAME π
okay so bestie, welcome to the SoTransformBoxManip page β this is from the 3IV manual, and it's all about a transform node with a 3D interface for changing scaling, rotation, and translation. yes, it literally hands you a lil 3D box to drag around and your whole scene follows. iconic behaviour tbh π
πΈ INHERITS FROM πΈ
the family tree goes like this, top to bottom, no skips:
SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform >
SoTransformManip > SoTransformBoxManip
so it's a whole lineage of overachievers. main character bloodline fr π
β¨ SYNOPSIS β¨
first things first, you gotta pull it in:
#include <Inventor/manips/SoTransformBoxManip.h>
π¦ Fields from class SoTransform
SoSFVec3f translation
SoSFRotation rotation
SoSFVec3f scaleFactor
SoSFRotation scaleOrientation
SoSFVec3f center
π¦ Methods from class SoTransformBoxManip
SoTransformBoxManip()
static SoType getClassTypeId()
π¦ 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 π
so SoTransformBoxManip is derived from SoTransform (by way of SoTransformManip, cute lil middleman). and the vibe is: when its fields change, nodes following it in the scene graph rotate, scale, and/or translate. yes bestie, it drags the whole squad along π«Ά
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. three for the price of one, we love efficiency β¨
now, a manipulator differs from a dragger, and this is the part people always get confused about, so listen up:
- 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 SoTransformBoxManip is exactly the same as that of the SoTransformBoxDragger. to find out more about the interface, see the reference page for SoTransformBoxDragger. and to find out how the manipulator uses a dragger to provide its interface, see the reference page for SoTransformManip. yes, homework. it's giving syllabus day π
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) β so it's literally built different, it hugs your geometry π
π METHODS π
SoTransformBoxManip()β Constructor. it makes the thing. that's it, that's the job πstatic SoType getClassTypeId()β Returns type identifier for this class. your lil name tag at the party π
π FILE FORMAT/DEFAULTS π
here's exactly what it looks like with nothing touched, everything at its cozy default:
TransformBoxManip {
translation 0 0 0
rotation 0 0 1 0
scaleFactor 1 1 1
scaleOrientation 0 0 1 0
center 0 0 0
}
no notes, pristine, untouched, glowing β¨
π SEE ALSO π
go read these next bestie, they're all in the same friend group:
SoCenterballManipSoHandleBoxManipSoJackManipSoTabBoxManipSoTrackballManipSoTransformSoTransformBoxDraggerSoTransformerManipSoTransformManip
and that's the whole page!! this was the SoTransformBoxManip(3IV)() manual page, source/version and date and all, signed off with a lil kiss β go forth and manipulate your transforms, you absolute icon ππ no cap, you ate this.
π¦ 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