SOTABBOXMANIP(3iv)
π
SoTabBoxManip β the 3IV manual, but make it make sense β¨
okay bestie, sit down, hydrate, and let's talk about SoTabBoxManip π β it's a transform node, but make it a 3D interface for editing scale and translation. yes, it is as iconic as it sounds.
πΈ INHERITS FROM
the whole family tree, and she's got main character energy at every level:
SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform >
SoTransformManip > SoTabBoxManip
β¨ SYNOPSIS β¨
first, the include, because duh:
#include <Inventor/manips/SoTabBoxManip.h>
π¦ Fields from class SoTransform
these are the fields she inherits, and no we are NOT skipping any of them:
SoSFVec3f translation
SoSFRotation rotation
SoSFVec3f scaleFactor
SoSFRotation scaleOrientation
SoSFVec3f center
π Methods from class SoTabBoxManip
her very own:
SoTabBoxManip()
static SoType getClassTypeId()
π Methods from class SoTransformManip
inherited, still slaying:
SoDragger * getDragger()
SbBool replaceNode(SoPath *p )
SbBool replaceManip(SoPath *p, SoTransform *newOne ) const
π Methods from class SoTransform
the full roster, literally all of them:
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
the OGs, the foundation, the blueprint:
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 SoTabBoxManip is derived from SoTransform (by way of SoTransformManip, iykyk). and the way that works is: when its fields change, the nodes that come after it in the scene graph scale, and/or translate. that's the whole gig. periodt.
as a subclass of SoTransformManip, this manip also comes with a 3D interface so you can edit some of its fields. in this case, that interface edits the scaleFactor and translation fields. obsessed.
now, a manipulator is NOT the same thing as a dragger, and this is important so listen up π«Ά:
- move a dragger β no other nodes are affected. it's giving solo act.
- move an
SoTransformManipβ other nodes move along with it. it's giving group project that actually works.
(see the reference page for SoTransformManip for the full tea.)
the interface for an SoTabBoxManip is exactly the same as that of the SoTabBoxDragger. to find out more about the interface, see the reference page for SoTabBoxDragger. and to find out how the manipulator uses a dragger to provide its interface, see the reference page for SoTransformManip.
on screen, this manip 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 for the receipts.)
π₯ METHODS
SoTabBoxManip()β constructor. the birth. the origin story. π«static SoType getClassTypeId()β returns the type identifier for this class. her ID, her passport, her little name tag π·οΈ
π FILE FORMAT/DEFAULTS
the default vibes, verbatim, no notes:
TabBoxManip {
translation 0 0 0
rotation 0 0 1 0
scaleFactor 1 1 1
scaleOrientation 0 0 1 0
center 0 0 0
}
π SEE ALSO
the whole friend group, go say hi:
SoCenterballManip, SoHandleBoxManip, SoJackManip, SoTabBoxDragger, SoTrackballManip, SoTransformBoxManip, SoTransformerManip, SoTransform, SoTransformManip
that's the whole page bestie, no cap, every flag, every field, every default, all of it. you're welcome π
and that's a wrap on the SoTabBoxManip(3IV) page, brought to you by the 3IV manual, dated whenever this dropped, version whatever shipped with it β mwah, slay, go surround some objects β¨π¦π
π¦ 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