SOHANDLEBOXMANIP(3iv)
π
SoHandleBoxManip β from the 3IV manual, bestie
okay so picture this: you're in Open Inventor, you've got a scene graph, and you need a lil 3D gizmo that lets you drag scale and translation around like it's a TikTok transition. That's this. That's the whole vibe. Let's go. π
β¨ NAME β¨
SoHandleBoxManip β a transform node with a 3D Interface for Editing ScaleFactor and Translation. π
πΈ INHERITS FROM πΈ
SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform >
SoTransformManip > SoHandleBoxManip
yeah she's got a whole ancestry, generational wealth of node classes, we love a lineage π
π¦ SYNOPSIS π¦
#include <Inventor/manips/SoHandleBoxManip.h>
β Fields from class SoTransform
SoSFVec3fβtranslationSoSFRotationβrotationSoSFVec3fβscaleFactorSoSFRotationβscaleOrientationSoSFVec3fβcenter
β Methods from class SoHandleBoxManip
SoHandleBoxManip()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) constvoidβgetRotationSpaceMatrix(SbMatrix &mat, SbMatrix &inv) constvoidβgetTranslationSpaceMatrix(SbMatrix &mat, SbMatrix &inv) constvoidβ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() constSoNode *βcopy(SbBool copyConnections = FALSE) constvirtual SbBoolβaffectsState() conststatic SoNode *βgetByName(const SbName &name)static intβgetByName(const SbName &name, SoNodeList &list)
β Methods from class SoFieldContainer
voidβsetToDefaults()SbBoolβhasDefaultValues() constSbBoolβfieldsAreEqual(const SoFieldContainer *fc) constvoidβcopyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)SbBoolβset(const char *fieldDataString)voidβget(SbString &fieldDataString)virtual intβgetFields(SoFieldList &resultList) constvirtual SoField *βgetField(const SbName &fieldName) constSbBoolβgetFieldName(const SoField *field, SbName &fieldName) constSbBoolβisNotifyEnabled() constSbBoolβenableNotify(SbBool flag)
β Methods from class SoBase
voidβref()voidβunref() constvoidβunrefNoDelete() constvoidβtouch()virtual SoTypeβgetTypeId() constSbBoolβisOfType(SoType type) constvirtual voidβsetName(const SbName &name)virtual SbNameβgetName() const
π DESCRIPTION π
SoHandleBoxManip is derived from SoTransform (by way of SoTransformManip, so like, it's the child of a child, very nepo baby of it honestly π
). When its fields change, nodes following it in the scene graph rotate, scale, and/or translate. β¨
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 and translation fields. That's the assignment, and she ate. π
π«Ά A manipulator differs from a dragger. When you move a dragger, no other nodes are affected. When you move anSoTransformManip, other nodes move along with it. (See the reference page forSoTransformManip.)
The interface for an SoHandleBoxManip is exactly the same as that of the SoHandleBoxDragger. To find out more about the interface, go read the reference page for SoHandleBoxDragger. And to find out how the manipulator uses a dragger to provide its interface, go read the reference page for SoTransformManip. iykyk π
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 giving main character energy, obviously β it's literally surrounding the whole scene. π
π§ METHODS π§
SoHandleBoxManip()β Constructor. Makes the thing. That's it, that's the whole job, and she does it flawlessly. πstatic SoType getClassTypeId()β Returns the type identifier for this class. Your lil name tag at the function party. π·οΈ
π FILE FORMAT/DEFAULTS π
HandleBoxManip {
translation 0 0 0
rotation 0 0 1 0
scaleFactor 1 1 1
scaleOrientation 0 0 1 0
center 0 0 0
}
no cap, these are the defaults, and they are immaculate: nothing moved, nothing rotated, nothing scaled, everything centered. the neutral pose. the resting face. π
β SEE ALSO β
SoCenterballManipSoHandleBoxDraggerSoJackManipSoTabBoxManipSoTrackballManipSoTransformBoxManipSoTransformerManipSoTransformSoTransformManip
and that's the whole page, bestie π«Ά the footer just says SoHandleBoxManip(3IV)() all over again β no version number, no date, just vibes and a page number. so here's my sign-off instead: stay iconic, keep your scale factor at 1 1 1, and go surround some objects. 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