SOJACKMANIP(3iv)
π SoJackManip(3IV) π
okay bestie, welcome to the manual page for SoJackManip β yes that's the <pink>SoJackManip(3IV)</pink> one, we're doing this, sit down, hydrate π«Ά
β¨ NAME β¨
SoJackManip β a transform node with a 3D interface for rotating, scaling, and translating π
πΈ INHERITS FROM πΈ
it's giving deep family tree, and every single ancestor is here, no skipping:
SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform >
SoTransformManip > SoJackManip
π SYNOPSIS π
first, the include, literally character for character:
#include <Inventor/manips/SoJackManip.h>
π Fields from class SoTransform
SoSFVec3f translation
SoSFRotation rotation
SoSFVec3f scaleFactor
SoSFRotation scaleOrientation
SoSFVec3f center
π Methods from class SoJackManip
SoJackManip()
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 π¦
okay so SoJackManip is derived from SoTransform (by way of SoTransformManip, the scenic route π«). when its fields change, the nodes following it in the scene graph rotate, scale, and/or translate. main character behavior, honestly.
as a subclass of SoTransformManip, this manip also has a 3D interface to edit some of its fields. in this case, the interface edits the scaleFactor, rotation and translation fields. periodt.
now, a manipulator differs from a dragger, and this is the part where people get confused so listen up bestie π β 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 SoJackManip is exactly the same as that of the SoJackDragger. to find out more about the interface, see the reference page for SoJackDragger. to find out how the manipulator uses a dragger to provide its interface, see the reference page for SoTransformManip. (yes, we're sending you on a lil reading journey, it's fine, it's iconic πβ¨)
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). it's literally wrapping your objects in a lil hug, no cap π«Ά
π₯ METHODS π₯
SoJackManip()β the constructor. she's born πstatic SoType getClassTypeId()β returns the type identifier for this class. it's the "who am i" of the class, and she always knows πͺ
π FILE FORMAT/DEFAULTS π
the defaults, untouched, unbothered, exactly as written:
JackManip {
translation 0 0 0
rotation 0 0 1 0
scaleFactor 1 1 1
scaleOrientation 0 0 1 0
center 0 0 0
}
β SEE ALSO β
go read these too, they're all in the group chat:
SoCenterballManipSoHandleBoxManipSoJackDraggerSoTabBoxManipSoTrackballManipSoTransformBoxManipSoTransformerManipSoTransformSoTransformManip
and that's the whole page bestie!! πβ¨ this was SoJackManip(3IV), the source/version stamp says SoJackManip(3IV) and the date field is just... sitting there empty as (), which is honestly so real of it. anyway ily, go manipulate some transforms responsibly, mwah ππ¦πΈ
π¦ 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