SoHandleBoxDragger(3)

πŸ“¦ version 2.5.0, in fedora 43, fedora 44

✨ NAME ✨

okay so bestie, meet SoHandleBoxDragger πŸ’– β€” straight out of the library functions manual, section 3. The whole vibe of this class? interactive scaling and translation. That's it, that's the job, and it does it flawlessly. Say the name with your chest. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

First things first, you gotta summon the header or nothing works, fr fr:

#include <Inventor/draggers/SoHandleBoxDragger.h>

And the family tree? It inherits SoDragger 🧬 β€” so everything SoDragger can do, this lil icon can do too.

πŸ’– Public Member Functions πŸ’–

Here's what SoHandleBoxDragger brings to the group chat all on its own:

virtual SoType getTypeId (void) const
virtual const SoNodekitCatalog * getNodekitCatalog (void) const
SoHandleBoxDragger (void)

🌸 Public Member Functions inherited from SoDragger 🌸

not me listing every single one because we do not skip details in this house 🫢:

virtual void callback (SoCallbackAction *action)
virtual void GLRender (SoGLRenderAction *action)
virtual void getMatrix (SoGetMatrixAction *action)
virtual void rayPick (SoRayPickAction *action)
virtual void search (SoSearchAction *action)
virtual void write (SoWriteAction *action)
virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
void addStartCallback (SoDraggerCB *func, void *data=NULL)
void removeStartCallback (SoDraggerCB *func, void *data=NULL)
void addMotionCallback (SoDraggerCB *func, void *data=NULL)
void removeMotionCallback (SoDraggerCB *func, void *data=NULL)
void addFinishCallback (SoDraggerCB *func, void *data=NULL)
void removeFinishCallback (SoDraggerCB *func, void *data=NULL)
void addValueChangedCallback (SoDraggerCB *func, void *data=NULL)
void removeValueChangedCallback (SoDraggerCB *func, void *data=NULL)
void setMinGesture (int pixels)
int getMinGesture (void) const
SbBool enableValueChangedCallbacks (SbBool newval)
const SbMatrix & getMotionMatrix (void)
void addOtherEventCallback (SoDraggerCB *func, void *data=NULL)
void removeOtherEventCallback (SoDraggerCB *func, void *data=NULL)
void registerChildDragger (SoDragger *child)
void unregisterChildDragger (SoDragger *child)
void registerChildDraggerMovingIndependently (SoDragger *child)
void unregisterChildDraggerMovingIndependently (SoDragger *child)
SbMatrix getLocalToWorldMatrix (void)
SbMatrix getWorldToLocalMatrix (void)
SbVec3f getLocalStartingPoint (void)
SbVec3f getWorldStartingPoint (void)
void getPartToLocalMatrix (const SbName &partname, SbMatrix &parttolocalmatrix, SbMatrix &localtopartmatrix)
void transformMatrixLocalToWorld (const SbMatrix &frommatrix, SbMatrix &tomatrix)
void transformMatrixWorldToLocal (const SbMatrix &frommatrix, SbMatrix &tomatrix)
void transformMatrixToLocalSpace (const SbMatrix &frommatrix, SbMatrix &tomatrix, const SbName &fromspacepartname)
void setMotionMatrix (const SbMatrix &newmatrix)
void valueChanged (void)
const SbMatrix & getStartMotionMatrix (void)
virtual void saveStartParameters (void)
const SoPath * getPickPath (void) const
const SoEvent * getEvent (void) const
SoPath * createPathToThis (void)
const SoPath * getSurrogatePartPickedOwner (void) const
const SbName & getSurrogatePartPickedName (void) const
const SoPath * getSurrogatePartPickedPath (void) const
void setStartingPoint (const SoPickedPoint *newpoint)
void setStartingPoint (const SbVec3f &newpoint)
const SbViewVolume & getViewVolume (void)
void setViewVolume (const SbViewVolume &vol)
const SbViewportRegion & getViewportRegion (void)
void setViewportRegion (const SbViewportRegion &reg)
SoHandleEventAction * getHandleEventAction (void) const
void setHandleEventAction (SoHandleEventAction *newAction)
void setTempPathToThis (const SoPath *somethingclose)
virtual void grabEventsSetup (void)
virtual void grabEventsCleanup (void)
void workFieldsIntoTransform (SbMatrix &mtx)
void setFrontOnProjector (ProjectorFrontSetting newval)
ProjectorFrontSetting getFrontOnProjector (void) const

πŸŽ€ Public Member Functions inherited from SoInteractionKit πŸŽ€

SoInteractionKit (void)
virtual SbBool setPartAsPath (const SbName &partname, SoPath *path)
virtual SbBool setPartAsDefault (const SbName &partname, SoNode *node, SbBool onlyifdefault=1)
virtual SbBool setPartAsDefault (const SbName &partname, const SbName &nodename, SbBool onlyifdefault=1)
SbBool isPathSurrogateInMySubgraph (const SoPath *path, SoPath *&pathToOwner, SbName &surrogatename, SoPath *&surrogatepath, SbBool fillargs=1)
SbBool isPathSurrogateInMySubgraph (const SoPath *path)
virtual SbBool setPart (const SbName &partname, SoNode *from)

🌈 Public Member Functions inherited from SoBaseKit 🌈

SoBaseKit (void)
virtual SoNode * getPart (const SbName &partname, SbBool makeifneeded)
SbString getPartString (const SoBase *part)
virtual SoNodeKitPath * createPathToPart (const SbName &partname, SbBool makeifneeded, const SoPath *pathtoextend=NULL)
SbBool set (const char *namevaluepairliststring)
SbBool set (const char *partnamestring, const char *parameterstring)
virtual void doAction (SoAction *action)
virtual SoChildList * getChildren (void) const
void printDiagram (void)
void printSubDiagram (const SbName &rootname, int level)
void printTable (void)
virtual void addWriteReference (SoOutput *out, SbBool isfromfield=0)
SbBool forceChildDrivenWriteRefs (SoOutput *out)

πŸ’œ Public Member Functions inherited from SoNode πŸ’œ

void setOverride (const SbBool state)
SbBool isOverride (void) const
void setNodeType (const NodeType type)
NodeType getNodeType (void) const
virtual SoNode * copy (SbBool copyconnections=0) const
virtual SbBool affectsState (void) const
virtual void GLRenderBelowPath (SoGLRenderAction *action)
virtual void GLRenderInPath (SoGLRenderAction *action)
virtual void GLRenderOffPath (SoGLRenderAction *action)
virtual void pick (SoPickAction *action)
virtual void audioRender (SoAudioRenderAction *action)
virtual void startNotify (void)
virtual void notify (SoNotList *l)
uint32_t getNodeId (void) const
virtual void writeInstance (SoOutput *out)
virtual SoFieldContainer * copyThroughConnection (void) const

🫢 Public Member Functions inherited from SoFieldContainer 🫢

void setToDefaults (void)
SbBool hasDefaultValues (void) const
SbBool fieldsAreEqual (const SoFieldContainer *container) const
void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=0)
SbBool set (const char *const fielddata)
void get (SbString &fielddata)
virtual int getFields (SoFieldList &l) const
virtual int getAllFields (SoFieldList &l) const
virtual SoField * getField (const SbName &name) const
virtual SoField * getEventIn (const SbName &name) const
virtual SoField * getEventOut (const SbName &name) const
SbBool getFieldName (const SoField *const field, SbName &name) const
SbBool enableNotify (const SbBool flag)
SbBool isNotifyEnabled (void) const
SbBool set (const char *fielddata, SoInput *in)
void get (SbString &fielddata, SoOutput *out)
virtual SbBool validateNewFieldValue (SoField *field, void *newval)
SbBool getIsBuiltIn (void) const
void setUserData (void *userdata) const
void * getUserData (void) const

✨ Public Member Functions inherited from SoBase ✨

void ref (void) const
void unref (void) const
void unrefNoDelete (void) const
int32_t getRefCount (void) const
void touch (void)
SbBool isOfType (SoType type) const
virtual SbName getName (void) const
virtual void setName (const SbName &newname)
void addAuditor (void *const auditor, const SoNotRec::Type type)
void removeAuditor (void *const auditor, const SoNotRec::Type type)
const SoAuditorList & getAuditors (void) const
SbBool shouldWrite (void)
void assertAlive (void) const

⭐ Static Public Member Functions ⭐

the class's own static besties:

static SoType getClassTypeId (void)
static const SoNodekitCatalog * getClassNodekitCatalog (void)
static void initClass (void)

πŸ’– Static Public Member Functions inherited from SoDragger πŸ’–

static SoType getClassTypeId (void)
static const SoNodekitCatalog * getClassNodekitCatalog (void)
static void setMinScale (float newminscale)
static float getMinScale (void)
static void workValuesIntoTransform (SbMatrix &mtx, const SbVec3f *translationptr, const SbRotation *rotationptr, const SbVec3f *scalefactorptr, const SbRotation *scaleorientationptr, const SbVec3f *centerptr)
static void getTransformFast (SbMatrix &mtx, SbVec3f &translation, SbRotation &rotation, SbVec3f &scalefactor, SbRotation &scaleorientation, const SbVec3f &center)
static void getTransformFast (SbMatrix &mtx, SbVec3f &translation, SbRotation &rotation, SbVec3f &scalefactor, SbRotation &scaleorientation)
static SbMatrix appendTranslation (const SbMatrix &mtx, const SbVec3f &translation, const SbMatrix *conversion=NULL)
static SbMatrix appendScale (const SbMatrix &mtx, const SbVec3f &scale, const SbVec3f &scalecenter, const SbMatrix *conversion=NULL)
static SbMatrix appendRotation (const SbMatrix &mtx, const SbRotation &rot, const SbVec3f &rotcenter, const SbMatrix *conversion=NULL)
static void initClass (void)
static void initClasses (void)

πŸŽ€ Static Public Member Functions inherited from SoInteractionKit πŸŽ€

static SoType getClassTypeId (void)
static const SoNodekitCatalog * getClassNodekitCatalog (void)
static void initClass (void)
static void setSwitchValue (SoNode *node, const int newVal)

🌸 Static Public Member Functions inherited from SoBaseKit 🌸

static SoType getClassTypeId (void)
static void initClass (void)
static const SoNodekitCatalog * getClassNodekitCatalog (void)
static SbBool isSearchingChildren (void)
static void setSearchingChildren (const SbBool newval)
static SoNode * typeCheck (const SbName &partname, const SoType &parttype, SoNode *node)

πŸ’… Static Public Member Functions inherited from SoNode πŸ’…

static uint32_t getCompatibilityTypes (const SoType &nodetype)
static SoType getClassTypeId (void)
static SoNode * getByName (const SbName &name)
static int getByName (const SbName &name, SoNodeList &l)
static void initClass (void)
static void initClasses (void)
static uint32_t getNextNodeId (void)
static int getActionMethodIndex (const SoType type)
static void getBoundingBoxS (SoAction *action, SoNode *node)
static void GLRenderS (SoAction *action, SoNode *node)
static void callbackS (SoAction *action, SoNode *node)
static void getMatrixS (SoAction *action, SoNode *node)
static void handleEventS (SoAction *action, SoNode *node)
static void pickS (SoAction *action, SoNode *node)
static void rayPickS (SoAction *action, SoNode *node)
static void searchS (SoAction *action, SoNode *node)
static void writeS (SoAction *action, SoNode *node)
static void audioRenderS (SoAction *action, SoNode *node)
static void getPrimitiveCountS (SoAction *action, SoNode *node)

and that's just the SYNOPSIS, bestie β€” the real tea keeps coming πŸ‘€

✨ Static Public Member Functions inherited from SoFieldContainer ✨

okay bestie, these are the inherited static public member functions from SoFieldContainer. they're lowkey essential and highkey serving. πŸ’…

  • static void initClass (void) β€” inherited, still valid, no notes. πŸŽ€
  • static SoType getClassTypeId (void) β€” yep, it's giving class type ID. ✨
  • static void initCopyDict (void) β€” a whole vibe. πŸ¦‹
  • static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) β€” add that copy, periodt. πŸ’–
  • static SoFieldContainer * checkCopy (const SoFieldContainer *orig) β€” check it, bestie. πŸ‘‘
  • static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections) β€” finders keepers. πŸ”₯
  • static void copyDone (void) β€” done and dusted. πŸ’…

✨ Static Public Member Functions inherited from SoBase ✨

from SoBase, another icon. 🌸

  • static void initClass (void) β€” the classic. πŸ’œ
  • static SoType getClassTypeId (void) β€” type ID, but make it fashion. πŸŽ€
  • static void addName (SoBase *const base, const char *const name) β€” add a name, slay. ✨
  • static void removeName (SoBase *const base, const char *const name) β€” remove it, bye. πŸ¦‹
  • static void incrementCurrentWriteCounter (void) β€” up up up. ⭐
  • static void decrementCurrentWriteCounter (void) β€” down down down. πŸ’«
  • static SoBase * getNamedBase (const SbName &name, SoType type) β€” get that base. πŸ‘‘
  • static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) β€” get all the bases. πŸ”₯
  • static SbBool read (SoInput *in, SoBase *&base, SoType expectedtype) β€” read it and weep. 😭
  • static void setInstancePrefix (const SbString &c) β€” set that prefix. πŸ’…
  • static void setTraceRefs (SbBool trace) β€” trace those refs. 🫢
  • static SbBool getTraceRefs (void) β€” get the trace refs. πŸ’–
  • static SbBool connectRoute (SoInput *in, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) β€” connect the route, bestie. 🌈
  • static SbBool readRoute (SoInput *in) β€” read that route. πŸŽ€

✨ Public Attributes ✨

these are the public attributes, and they're giving main character energy. πŸ‘‘

  • SoSFVec3f scaleFactor β€” the scale factor, iconic. πŸ’…
  • SoSFVec3f translation β€” the translation, also iconic. ✨

✨ Public Attributes inherited from SoDragger ✨

from SoDragger, we love to see it. πŸ’–

  • SoSFBool isActive β€” is it active? yes bestie. πŸ”₯

✨ Public Attributes inherited from SoInteractionKit ✨

from SoInteractionKit, more inherited gems. πŸ¦‹

  • SoSFEnum renderCaching β€” render caching, periodt. πŸ’…
  • SoSFEnum boundingBoxCaching β€” bounding box caching, slay. ✨
  • SoSFEnum renderCulling β€” render culling, no cap. πŸŽ€
  • SoSFEnum pickCulling β€” pick culling, iconic. πŸ‘‘

✨ Protected Member Functions ✨

these are protected, so don't touch unless you're family. πŸ’…

  • virtual const SoFieldData * getFieldData (void) const β€” get that field data. πŸŽ€
  • ~SoHandleBoxDragger () β€” destructor, bye bestie. 😭
  • virtual SbBool setUpConnections (SbBool onoff, SbBool doitalways=0) β€” set up those connections. ✨
  • virtual void setDefaultOnNonWritingFields (void) β€” set the default on non-writing fields. πŸ¦‹
  • void dragStart (void) β€” start the drag. πŸ”₯
  • void drag (void) β€” do the drag. πŸ’–
  • void dragFinish (void) β€” finish the drag. πŸ’…
  • void setAllPartsActive (SbBool onoroff) β€” set all parts active. πŸ‘‘

✨ Protected Member Functions inherited from SoDragger ✨

from SoDragger, the blueprint. 🌸

  • SoDragger (void) β€” constructor, hey. πŸ’œ
  • virtual ~SoDragger () β€” destructor, bye. πŸ¦‹
  • SbVec2f getNormalizedLocaterPosition (void) β€” get that normalized locater position. ✨
  • SbVec2s getLocaterPosition (void) β€” get the locater position. πŸŽ€
  • SbVec2s getStartLocaterPosition (void) const β€” get the start locater position. πŸ‘‘
  • void setStartLocaterPosition (SbVec2s p) β€” set it. πŸ”₯
  • SbBool isAdequateConstraintMotion (void) β€” is it adequate? πŸ’…
  • virtual SbBool shouldGrabBasedOnSurrogate (const SoPath *pickpath, const SoPath *surrogatepath) β€” should it grab? πŸ€”
  • void setCameraInfo (SoAction *action) β€” set camera info. πŸ“Έ
  • virtual void handleEvent (SoHandleEventAction *ha) β€” handle that event. πŸŽ€
  • void transferMotion (SoDragger *child) β€” transfer motion, slay. ✨
  • void setIgnoreInBbox (SbBool newval) β€” set ignore in bbox. πŸ¦‹
  • SbBool isIgnoreInBbox (void) β€” is it ignoring? πŸ’–
  • virtual void getBoundingBox (SoGetBoundingBoxAction *action) β€” get that bounding box. πŸ”₯
  • void setActiveChildDragger (SoDragger *newchilddragger) β€” set active child dragger. πŸ‘‘
  • SoDragger * getActiveChildDragger (void) const β€” get it. πŸ’…
  • void updateDraggerCache (const SoPath *path) β€” update that cache. ✨

✨ Protected Member Functions inherited from SoInteractionKit ✨

from SoInteractionKit, more protected goodness. πŸŽ€

  • virtual ~SoInteractionKit () β€” destructor. πŸ¦‹
  • virtual void copyContents (const SoFieldContainer *fromFC, SbBool copyConnections) β€” copy contents. πŸ’–
  • virtual SbBool setPart (const int partNum, SoNode *node) β€” set part. πŸ”₯
  • virtual SbBool readInstance (SoInput *in, unsigned short flags) β€” read instance. πŸ‘‘
  • virtual SbBool setAnyPartAsDefault (const SbName &partname, SoNode *node, SbBool anypart=1, SbBool onlyifdefault=1) β€” set any part as default. πŸ’…
  • virtual SbBool setAnyPartAsDefault (const SbName &partname, const SbName &nodename, SbBool anypart=1, SbBool onlyifdefault=1) β€” the other overload. ✨
  • SbBool setAnySurrogatePath (const SbName &name, SoPath *path, SbBool leafcheck=0, SbBool publiccheck=0) β€” set any surrogate path. πŸŽ€
  • void connectSeparatorFields (SoSeparator *dest, SbBool onOff) β€” connect separator fields. πŸ¦‹

✨ Protected Member Functions inherited from SoBaseKit ✨

from SoBaseKit, still serving. πŸ’–

  • virtual ~SoBaseKit () β€” destructor. πŸ”₯
  • virtual SoNode * addToCopyDict (void) const β€” add to copy dict. πŸ‘‘
  • SoGroup * getContainerNode (const SbName &listname, SbBool makeifneeded=1) β€” get container node. πŸ’…
  • virtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0) β€” get any part. ✨
  • virtual SoNodeKitPath * createPathToAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0, const SoPath *pathtoextend=NULL) β€” create path to any part. πŸŽ€
  • virtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=1) β€” set any part. πŸ¦‹
  • void createNodekitPartsList (void) β€” create nodekit parts list. πŸ’–
  • void createFieldList (void) β€” create field list. πŸ”₯
  • virtual void createDefaultParts (void) β€” create default parts. πŸ‘‘
  • const SoNodekitParts * getNodekitPartsList (void) const β€” get nodekit parts list. πŸ’…
  • const SbList< SoSFNode * > & getCatalogInstances (void) const β€” get catalog instances. ✨
  • void catalogError (void) β€” catalog error. 😭
  • void countMyFields (SoOutput *out) β€” count my fields. πŸŽ€

✨ Protected Member Functions inherited from SoNode ✨

from SoNode, the blueprint. πŸ¦‹

  • SoNode (void) β€” constructor. πŸ’–
  • virtual ~SoNode () β€” destructor. πŸ”₯

✨ Protected Member Functions inherited from SoFieldContainer ✨

from SoFieldContainer, more. πŸ‘‘

  • SoFieldContainer (void) β€” constructor. πŸ’…
  • ~SoFieldContainer () β€” destructor. ✨

✨ Protected Member Functions inherited from SoBase ✨

from SoBase, the foundation. πŸŽ€

  • SoBase (void) β€” constructor. πŸ¦‹
  • virtual ~SoBase () β€” destructor. πŸ’–
  • virtual void destroy (void) β€” destroy. πŸ”₯
  • SbBool hasMultipleWriteRefs (void) const β€” has multiple write refs? πŸ‘‘
  • SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const β€” write header. πŸ’…
  • void writeFooter (SoOutput *out) const β€” write footer. ✨
  • virtual const char * getFileFormatName (void) const β€” get file format name. πŸŽ€

✨ Static Protected Member Functions ✨

static protected, bestie. πŸ¦‹

  • static const SoFieldData ** getFieldDataPtr (void) β€” get field data ptr. πŸ’–
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) β€” get class nodekit catalog ptr. πŸ”₯
  • static void startCB (void *f, SoDragger *d) β€” start callback. πŸ‘‘
  • static void motionCB (void *f, SoDragger *d) β€” motion callback. πŸ’…
  • static void finishCB (void *f, SoDragger *d) β€” finish callback. ✨
  • static void metaKeyChangeCB (void *f, SoDragger *d) β€” meta key change callback. πŸŽ€
  • static void fieldSensorCB (void *f, SoSensor *s) β€” field sensor callback. πŸ¦‹
  • static void valueChangedCB (void *f, SoDragger *d) β€” value changed callback. πŸ’–

✨ Static Protected Member Functions inherited from SoDragger ✨

from SoDragger, callbacks galore. πŸ”₯

  • static const SoFieldData ** getFieldDataPtr (void) β€” get field data ptr. πŸ‘‘
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) β€” get class nodekit catalog ptr. πŸ’…
  • static void childTransferMotionAndValueChangedCB (void *, SoDragger *) β€” child transfer motion and value changed callback. ✨
  • static void childValueChangedCB (void *, SoDragger *) β€” child value changed callback. πŸŽ€
  • static void childStartCB (void *, SoDragger *) β€” child start callback. πŸ¦‹
  • static void childMotionCB (void *, SoDragger *) β€” child motion callback. πŸ’–
  • static void childFinishCB (void *, SoDragger *) β€” child finish callback. πŸ”₯
  • static void childOtherEventCB (void *, SoDragger *) β€” child other event callback. πŸ‘‘

✨ Static Protected Member Functions inherited from SoInteractionKit ✨

from SoInteractionKit, more static protected. πŸ’…

  • static const SoFieldData ** getFieldDataPtr (void) β€” get field data ptr. ✨
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) β€” get class nodekit catalog ptr. πŸŽ€
  • static void readDefaultParts (const char *fileName, const char defaultBuffer[], int defBufSize) β€” read default parts. πŸ¦‹
  • static void fieldSensorCB (void *, SoSensor *) β€” field sensor callback. πŸ’–

✨ Static Protected Member Functions inherited from SoBaseKit ✨

from SoBaseKit, still going. πŸ”₯

  • static const SoFieldData ** getFieldDataPtr (void) β€” get field data ptr. πŸ‘‘
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) β€” get class nodekit catalog ptr. πŸ’…

✨ Static Protected Member Functions inherited from SoNode ✨

from SoNode, static protected. ✨

  • static const SoFieldData ** getFieldDataPtr (void) β€” get field data ptr. πŸŽ€
  • static void setNextActionMethodIndex (int index) β€” set next action method index. πŸ¦‹
  • static int getNextActionMethodIndex (void) β€” get next action method index. πŸ’–
  • static void incNextActionMethodIndex (void) β€” inc next action method index. πŸ”₯
  • static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) β€” set compatibility types. πŸ‘‘

✨ Static Protected Member Functions inherited from SoBase ✨

from SoBase, the final static protected batch. πŸ’…

  • static uint32_t getCurrentWriteCounter (void) β€” get current write counter. ✨
  • static void staticDataLock (void) β€” static data lock. πŸŽ€
  • static void staticDataUnlock (void) β€” static data unlock. πŸ¦‹

✨ Protected Attributes ✨

protected attributes, so many. πŸ’–

  • SoSFNode arrow1 β€” arrow1. πŸ”₯
  • SoSFNode arrow1Switch β€” arrow1Switch. πŸ‘‘
  • SoSFNode arrow2 β€” arrow2. πŸ’…
  • SoSFNode arrow2Switch β€” arrow2Switch. ✨
  • SoSFNode arrow3 β€” arrow3. πŸŽ€
  • SoSFNode arrow3Switch β€” arrow3Switch. πŸ¦‹
  • SoSFNode arrow4 β€” arrow4. πŸ’–
  • SoSFNode arrow4Switch β€” arrow4Switch. πŸ”₯
  • SoSFNode arrow5 β€” arrow5. πŸ‘‘
  • SoSFNode arrow5Switch β€” arrow5Switch. πŸ’…
  • SoSFNode arrow6 β€” arrow6. ✨
  • SoSFNode arrow6Switch β€” arrow6Switch. πŸŽ€
  • SoSFNode arrowTranslation β€” arrowTranslation. πŸ¦‹
  • SoSFNode drawStyle β€” drawStyle. πŸ’–
  • SoSFNode extruder1 β€” extruder1. πŸ”₯
  • SoSFNode extruder1Active β€” extruder1Active. πŸ‘‘
  • SoSFNode extruder1Switch β€” extruder1Switch. πŸ’…
  • SoSFNode extruder2 β€” extruder2. ✨
  • SoSFNode extruder2Active β€” extruder2Active. πŸŽ€
  • SoSFNode extruder2Switch β€” extruder2Switch. πŸ¦‹
  • SoSFNode extruder3 β€” extruder3. πŸ’–
  • SoSFNode extruder3Active β€” extruder3Active. πŸ”₯
  • SoSFNode extruder3Switch β€” extruder3Switch. πŸ‘‘
  • SoSFNode extruder4 β€” extruder4. πŸ’…
  • SoSFNode extruder4Active β€” extruder4Active. ✨
  • SoSFNode extruder4Switch β€” extruder4Switch. πŸŽ€
  • SoSFNode extruder5 β€” extruder5. πŸ¦‹
  • SoSFNode extruder5Active β€” extruder5Active. πŸ’–
  • SoSFNode extruder5Switch β€” extruder5Switch. πŸ”₯
  • SoSFNode extruder6 β€” extruder6. πŸ‘‘
  • SoSFNode extruder6Active β€” extruder6Active. πŸ’…
  • SoSFNode extruder6Switch β€” extruder6Switch. ✨
  • SoSFNode surroundScale β€” surroundScale. πŸŽ€
  • SoSFNode translator1 β€” translator1. πŸ¦‹
  • SoSFNode translator1Active β€” translator1Active. πŸ’–
  • SoSFNode translator1Switch β€” translator1Switch. πŸ”₯
  • SoSFNode translator2 β€” translator2. πŸ‘‘
  • SoSFNode translator2Active β€” translator2Active. πŸ’…
  • SoSFNode translator2Switch β€” translator2Switch. ✨
  • SoSFNode translator3 β€” translator3. πŸŽ€
  • SoSFNode translator3Active β€” translator3Active. πŸ¦‹
  • SoSFNode translator3Switch β€” translator3Switch. πŸ’–
  • SoSFNode translator4 β€” translator4. πŸ”₯
  • SoSFNode translator4Active β€” translator4Active. πŸ‘‘
  • SoSFNode translator4Switch β€” translator4Switch. πŸ’…
  • SoSFNode translator5 β€” translator5. ✨
  • SoSFNode translator5Active β€” translator5Active. πŸŽ€
  • SoSFNode translator5Switch β€” translator5Switch. πŸ¦‹
  • SoSFNode translator6 β€” translator6. πŸ’–
  • SoSFNode translator6Active β€” translator6Active. πŸ”₯
  • SoSFNode translator6Switch β€” translator6Switch. πŸ‘‘
  • SoSFNode uniform1 β€” uniform1. πŸ’…
  • SoSFNode uniform1Active β€” uniform1Active. ✨
  • SoSFNode uniform1Switch β€” uniform1Switch. πŸŽ€
  • SoSFNode uniform2 β€” uniform2. πŸ¦‹
  • SoSFNode uniform2Active β€” uniform2Active. πŸ’–
  • SoSFNode uniform2Switch β€” uniform2Switch. πŸ”₯
  • SoSFNode uniform3 β€” uniform3. πŸ‘‘
  • SoSFNode uniform3Active β€” uniform3Active. πŸ’…
  • SoSFNode uniform3Switch β€” uniform3Switch. ✨
  • SoSFNode uniform4 β€” uniform4. πŸŽ€
  • SoSFNode uniform4Active β€” uniform4Active. πŸ¦‹
  • SoSFNode uniform4Switch β€” uniform4Switch. πŸ’–
  • SoSFNode uniform5 β€” uniform5. πŸ”₯
  • SoSFNode uniform5Active β€” uniform5Active. πŸ‘‘
  • SoSFNode uniform5Switch β€” uniform5Switch. πŸ’…
  • SoSFNode uniform6 β€” uniform6. ✨
  • SoSFNode uniform6Active β€” uniform6Active. πŸŽ€
  • SoSFNode uniform6Switch β€” uniform6Switch. πŸ¦‹
  • SoSFNode uniform7 β€” uniform7. πŸ’–
  • SoSFNode uniform7Active β€” uniform7Active. πŸ”₯
  • SoSFNode uniform7Switch β€” uniform7Switch. πŸ‘‘
  • SoSFNode uniform8 β€” uniform8. πŸ’…
  • SoSFNode uniform8Active β€” uniform8Active. ✨
  • SoSFNode uniform8Switch β€” uniform8Switch. πŸŽ€
  • SoFieldSensor * translFieldSensor β€” translFieldSensor. πŸ¦‹
  • SoFieldSensor * scaleFieldSensor β€” scaleFieldSensor. πŸ’–

✨ Protected Attributes inherited from SoDragger ✨

from SoDragger, one attribute. πŸ”₯

  • SoSFNode motionMatrix β€” motionMatrix. πŸ‘‘

✨ Protected Attributes inherited from SoInteractionKit ✨

from SoInteractionKit, four attributes. πŸ’…

  • SoSFNode geomSeparator β€” geomSeparator. ✨
  • SoSFNode topSeparator β€” topSeparator. πŸŽ€
  • SoFieldSensor * fieldSensor β€” fieldSensor. πŸ¦‹
  • SoSeparator * oldTopSep β€” oldTopSep. πŸ’–

✨ Protected Attributes inherited from SoBaseKit ✨

from SoBaseKit, three attributes. πŸ”₯

  • SoSFNode callbackList β€” callbackList. πŸ‘‘
  • SoChildList * children β€” children. πŸ’…
  • SbBool connectionsSetUp β€” connectionsSetUp. ✨

✨ Protected Attributes inherited from SoNode ✨

from SoNode, one attribute. πŸŽ€

  • uint32_t uniqueId β€” uniqueId. πŸ¦‹

✨ Protected Attributes inherited from SoFieldContainer ✨

from SoFieldContainer, one attribute. πŸ’–

  • SbBool isBuiltIn β€” isBuiltIn. πŸ”₯

✨ Additional Inherited Members ✨

okay bestie, here's the extra inherited stuff. πŸ‘‘

✨ Public Types inherited from SoDragger ✨

  • enum ProjectorFrontSetting { FRONT, BACK, USE_PICK } β€” the projector front setting options. πŸ’…

✨ Public Types inherited from SoInteractionKit ✨

  • enum CacheEnabled { OFF, ON, AUTO } β€” cache enabled options. ✨

✨ Public Types inherited from SoNode ✨

  • enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002, INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010, INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080, COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 = 0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000 } β€” node types, periodt. πŸŽ€

✨ Protected Types inherited from SoBase ✨

  • enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 } β€” base flags. πŸ¦‹

✨ Static Protected Attributes inherited from SoNode ✨

  • static uint32_t nextUniqueId = 0 β€” next unique ID. πŸ’–
  • static int nextActionMethodIndex = 0 β€” next action method index. πŸ”₯

πŸŽ€ Detailed Description πŸŽ€

Okay bestie, gather round, because the SoHandleBoxDragger class is literally the moment. πŸ’… It provides support for interactive scaling and translation. That's the whole vibe.

Here's how the dragger looks with its default geometry in the inactive state:

πŸ–ΌοΈ (the manpage has a picture right here of the dragger sitting there, chilling, in its inactive state)

A handlebox dragger is convenient to use for letting the user interact with geometry that can be scaled (uniformly or in a non-uniform way) and translated in 3D. Like, both. In three dee. Iconic behavior, no cap. ✨

The dragger consists of a "cube" of interaction geometry. The end-user can click and drag any side of the cube to translate the dragger and click and drag any of the corner or edge markers for scaling operations. So: sides = move it, corners & edges = resize it. That's the whole user experience, and honestly? She ate. πŸ“


πŸ› οΈ Constructor & Destructor Documentation

SoHandleBoxDragger::SoHandleBoxDragger (void )

Default constructor, sets up the dragger nodekit catalog with the interaction and feedback geometry. ✨

Node kit structure (new entries versus parent class marked with arrow prefix):

CLASS SoHandleBoxDragger
-->"this"
      "callbackList"
      "topSeparator"
         "motionMatrix"
-->      "surroundScale"
         "geomSeparator"
-->         "drawStyle"
-->         "translator1Switch"
-->            "translator1"
-->            "translator1Active"
-->         "translator2Switch"
-->            "translator2"
-->            "translator2Active"
-->         "translator3Switch"
-->            "translator3"
-->            "translator3Active"
-->         "translator4Switch"
-->            "translator4"
-->            "translator4Active"
-->         "translator5Switch"
-->            "translator5"
-->            "translator5Active"
-->         "translator6Switch"
-->            "translator6"
-->            "translator6Active"
-->         "extruder1Switch"
-->            "extruder1"
-->            "extruder1Active"
-->         "extruder2Switch"
-->            "extruder2"
-->            "extruder2Active"
-->         "extruder3Switch"
-->            "extruder3"
-->            "extruder3Active"
-->         "extruder4Switch"
-->            "extruder4"
-->            "extruder4Active"
-->         "extruder5Switch"
-->            "extruder5"
-->            "extruder5Active"
-->         "extruder6Switch"
-->            "extruder6"
-->            "extruder6Active"
-->         "uniform1Switch"
-->            "uniform1"
-->            "uniform1Active"
-->         "uniform2Switch"
-->            "uniform2"
-->            "uniform2Active"
-->         "uniform3Switch"
-->            "uniform3"
-->            "uniform3Active"
-->         "uniform4Switch"
-->            "uniform4"
-->            "uniform4Active"
-->         "uniform5Switch"
-->            "uniform5"
-->            "uniform5Active"
-->         "uniform6Switch"
-->            "uniform6"
-->            "uniform6Active"
-->         "uniform7Switch"
-->            "uniform7"
-->            "uniform7Active"
-->         "uniform8Switch"
-->            "uniform8"
-->            "uniform8Active"
-->         "arrowTranslation"
-->         "arrow1Switch"
-->            "arrow1"
-->         "arrow2Switch"
-->            "arrow2"
-->         "arrow3Switch"
-->            "arrow3"
-->         "arrow4Switch"
-->            "arrow4"
-->         "arrow5Switch"
-->            "arrow5"
-->         "arrow6Switch"
-->            "arrow6"

(See SoBaseKit::printDiagram() for information about the output formatting.)

Detailed information on catalog parts:

CLASS SoHandleBoxDragger
PVT   "this",  SoHandleBoxDragger  ---
      "callbackList",  SoNodeKitListPart [ SoCallback, SoEventCallback ]
PVT   "topSeparator",  SoSeparator  ---
PVT   "motionMatrix",  SoMatrixTransform  ---
      "surroundScale",  SoSurroundScale  ---
PVT   "geomSeparator",  SoSeparator  ---
PVT   "drawStyle",  SoDrawStyle  ---
PVT   "translator1Switch",  SoSwitch  ---
      "translator1",  SoSeparator  ---
      "translator1Active",  SoSeparator  ---
PVT   "translator2Switch",  SoSwitch  ---
      "translator2",  SoSeparator  ---
      "translator2Active",  SoSeparator  ---
PVT   "translator3Switch",  SoSwitch  ---
      "translator3",  SoSeparator  ---
      "translator3Active",  SoSeparator  ---
PVT   "translator4Switch",  SoSwitch  ---
      "translator4",  SoSeparator  ---
      "translator4Active",  SoSeparator  ---
PVT   "translator5Switch",  SoSwitch  ---
      "translator5",  SoSeparator  ---
      "translator5Active",  SoSeparator  ---
PVT   "translator6Switch",  SoSwitch  ---
      "translator6",  SoSeparator  ---
      "translator6Active",  SoSeparator  ---
PVT   "extruder1Switch",  SoSwitch  ---
      "extruder1",  SoSeparator  ---
      "extruder1Active",  SoSeparator  ---
PVT   "extruder2Switch",  SoSwitch  ---
      "extruder2",  SoSeparator  ---
      "extruder2Active",  SoSeparator  ---
PVT   "extruder3Switch",  SoSwitch  ---
      "extruder3",  SoSeparator  ---
      "extruder3Active",  SoSeparator  ---
PVT   "extruder4Switch",  SoSwitch  ---
      "extruder4",  SoSeparator  ---
      "extruder4Active",  SoSeparator  ---
PVT   "extruder5Switch",  SoSwitch  ---
      "extruder5",  SoSeparator  ---
      "extruder5Active",  SoSeparator  ---
PVT   "extruder6Switch",  SoSwitch  ---
      "extruder6",  SoSeparator  ---
      "extruder6Active",  SoSeparator  ---
PVT   "uniform1Switch",  SoSwitch  ---
      "uniform1",  SoSeparator  ---
      "uniform1Active",  SoSeparator  ---
PVT   "uniform2Switch",  SoSwitch  ---
      "uniform2",  SoSeparator  ---
      "uniform2Active",  SoSeparator  ---
PVT   "uniform3Switch",  SoSwitch  ---
      "uniform3",  SoSeparator  ---
      "uniform3Active",  SoSeparator  ---
PVT   "uniform4Switch",  SoSwitch  ---
      "uniform4",  SoSeparator  ---
      "uniform4Active",  SoSeparator  ---
PVT   "uniform5Switch",  SoSwitch  ---
      "uniform5",  SoSeparator  ---
      "uniform5Active",  SoSeparator  ---
PVT   "uniform6Switch",  SoSwitch  ---
      "uniform6",  SoSeparator  ---
      "uniform6Active",  SoSeparator  ---
PVT   "uniform7Switch",  SoSwitch  ---
      "uniform7",  SoSeparator  ---
      "uniform7Active",  SoSeparator  ---
PVT   "uniform8Switch",  SoSwitch  ---
      "uniform8",  SoSeparator  ---
      "uniform8Active",  SoSeparator  ---
PVT   "arrowTranslation",  SoTranslation  ---
PVT   "arrow1Switch",  SoSwitch  ---
      "arrow1",  SoSeparator  ---
PVT   "arrow2Switch",  SoSwitch  ---
      "arrow2",  SoSeparator  ---
PVT   "arrow3Switch",  SoSwitch  ---
      "arrow3",  SoSeparator  ---
PVT   "arrow4Switch",  SoSwitch  ---
      "arrow4",  SoSeparator  ---
PVT   "arrow5Switch",  SoSwitch  ---
      "arrow5",  SoSeparator  ---
PVT   "arrow6Switch",  SoSwitch  ---
      "arrow6",  SoSeparator  ---

(See SoBaseKit::printTable() for information about the output formatting.)

References SoDragger::addFinishCallback(), SoDragger::addMotionCallback(), SoDragger::addOtherEventCallback(), SoDragger::addStartCallback(), SoDragger::addValueChangedCallback(), fieldSensorCB(), finishCB(), metaKeyChangeCB(), motionCB(), SoInteractionKit::readDefaultParts(), scaleFactor, scaleFieldSensor, setAllPartsActive(), SoInteractionKit::setPartAsDefault(), setUpConnections(), SoHandleBoxDragger(), startCB(), translation, translFieldSensor, and valueChangedCB().

Referenced by fieldSensorCB(), finishCB(), getFieldData(), metaKeyChangeCB(), motionCB(), SoHandleBoxDragger(), startCB(), and valueChangedCB().


SoHandleBoxDragger::~SoHandleBoxDragger () [protected]

Protected destructor. 🫢 She's not for public consumption, bestie, she's protected.

(Dragger classes are derived from SoBase, so they are reference counted and automatically destroyed when their reference count goes to 0.) So like β€” when the last person holding a ref lets go, she's gone. Poof. πŸ’€ But the counting handles it, you don't have to.

References scaleFieldSensor, and translFieldSensor.

πŸ’– Member Function Documentation πŸ’–

SoType SoHandleBoxDragger::getTypeId (void ) const [virtual]

Okay bestie, this one hands you back the type identification of any object derived from a class that inherits SoBase. What's it for? Run-time type checking, and "downward" casting. iykyk. πŸ’…

Usage example:

void foo(SoNode * node)
{
  if (node->getTypeId() == SoFile::getClassTypeId()) {
    SoFile * filenode = (SoFile *)node;  // safe downward cast, knows the type
  }
  else if (node->getTypeId().isOfType(SoGroup::getClassTypeId())) {
    SoGroup * group = (SoGroup *)node;  // safe downward cast, knows the type
  }
}

Now, for the application programmers out there who wanna extend the library with brand new nodes, engines, nodekits, draggers or whatever else β€” this method needs to be overridden in all subclasses. No skipping, fr fr. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through, for instance, Inventor/nodes/SoSubNode.h (that's SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine.h (for engine classes), and so on and so forth. 🌈

Want more tea on writing Coin extensions? Go check the class documentation of the toplevel superclasses for the various class groups. πŸ‘‘

Reimplemented from SoDragger.


const SoFieldData * SoHandleBoxDragger::getFieldData (void ) const [protected], [virtual]

Returns a pointer to the class-wide field data storage object for this instance. And if there are literally no fields present? It returns NULL. That's it, that's the whole vibe. 🫢

Reimplemented from SoDragger.

References: SoHandleBoxDragger().


const SoNodekitCatalog * SoHandleBoxDragger::getNodekitCatalog (void ) const [virtual]

Returns the nodekit catalog which defines the layout of this class' kit. It's giving floor plan energy. ✨

Reimplemented from SoDragger.


SbBool SoHandleBoxDragger::setUpConnections (SbBool onoff, SbBool doitalways = 0) [protected], [virtual]

Sets up all internal connections for instances of this class. πŸ”—

(Quick heads up: this method will usually not be of interest to the application programmer, unless you're trying to extend the library with new custom nodekits or dragger classes. If that's you, go read the SoBaseKit class documentation. Go on, I'll wait. πŸ’–)

Reimplemented from SoInteractionKit.

References: SoBaseKit::connectionsSetUp, fieldSensorCB(), scaleFactor, scaleFieldSensor, SoBaseKit::setUpConnections(), translation, and translFieldSensor.

Referenced by: SoHandleBoxDragger().


void SoHandleBoxDragger::setDefaultOnNonWritingFields (void ) [protected], [virtual]

(Bestie, be aware that this method is unlikely to be of interest to the application programmer who does not want to extend the library with new custom nodekits or draggers. But if you indeed are writing extensions, see the information in the SoBaseKit class documentation.) πŸŽ€

This is a virtual method, and the code in it should call SoField::setDefault() with argument TRUE on part fields that should not be written upon scenegraph export operations.

This is typically done when:

  1. field value is NULL and part is NULL by default
  2. it is a leaf SoGroup or SoSeparator node with no children
  3. it is a leaf listpart with no children and an SoGroup or SoSeparator container
  4. it is a non-leaf part and it's of SoGroup type and all fields are at their default values

Subclasses should usually override this to do additional settings for new member fields. From the subclass, do remember to call "upwards" to your superclass' setDefaultOnNonWritingFields() method. Don't leave your superclass on read, okay? 😭

Reimplemented from SoDragger.

References: SoDragger::setDefaultOnNonWritingFields().


void SoHandleBoxDragger::startCB (void * f, SoDragger * d) [static], [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. πŸ’€

References: dragStart(), SoDragger::SoDragger(), and SoHandleBoxDragger().

Referenced by: SoHandleBoxDragger().


void SoHandleBoxDragger::motionCB (void * f, SoDragger * d) [static], [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. πŸ™ˆ

References: drag(), SoDragger::SoDragger(), and SoHandleBoxDragger().

Referenced by: SoHandleBoxDragger().


void SoHandleBoxDragger::finishCB (void * f, SoDragger * d) [static], [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. ✨

References: dragFinish(), SoDragger::SoDragger(), and SoHandleBoxDragger().

Referenced by: SoHandleBoxDragger().


void SoHandleBoxDragger::metaKeyChangeCB (void * f, SoDragger * d) [static], [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. πŸ”₯

References: drag(), SoDragger::getEvent(), SoDragger::isActive, SoDragger::SoDragger(), and SoHandleBoxDragger().

Referenced by: SoHandleBoxDragger().


void SoHandleBoxDragger::fieldSensorCB (void * d, SoSensor * s) [static], [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. πŸ¦‹

References: SoDragger::getMotionMatrix(), SoDragger::setMotionMatrix(), SoHandleBoxDragger(), and SoDragger::workFieldsIntoTransform().

Referenced by: setUpConnections(), and SoHandleBoxDragger().


void SoHandleBoxDragger::valueChangedCB (void * f, SoDragger * d) [static], [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. 🌸

References: SoFieldSensor::attach(), SoFieldSensor::detach(), SoDragger::getMotionMatrix(), SbMatrix::getTransform(), scaleFactor, scaleFieldSensor, SoDragger::SoDragger(), SoHandleBoxDragger(), translation, and translFieldSensor.

Referenced by: SoHandleBoxDragger().


void SoHandleBoxDragger::dragStart (void ) [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. πŸ’…

Called when dragger is selected (picked) by the user. It's giving main character energy. πŸ‘‘

References: SoPath::findNode(), SbLine::getClosestPoint(), SoDragger::getEvent(), SoDragger::getLocalStartingPoint(), SoDragger::getLocalToWorldMatrix(), SoDragger::getPickPath(), SbString::getString(), SbMatrix::multVecMatrix(), SbString::sprintf(), SoTranslation::translation, and SoEvent::wasCtrlDown().

Referenced by: startCB().


void SoHandleBoxDragger::drag (void ) [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. πŸ“

Called when user drags the mouse after picking the dragger. Slay, literally. ✨

References: SoDragger::appendScale(), SoDragger::appendTranslation(), SoDragger::getEvent(), SoDragger::getLocalStartingPoint(), SoDragger::getLocalToWorldMatrix(), SoDragger::getNormalizedLocaterPosition(), SoDragger::getStartMotionMatrix(), SoDragger::getViewVolume(), SoDragger::getWorldToLocalMatrix(), SoDragger::isAdequateConstraintMotion(), SbMatrix::multVecMatrix(), SoDragger::setMotionMatrix(), and SoDragger::setStartLocaterPosition().

Referenced by: metaKeyChangeCB(), and motionCB().


void SoHandleBoxDragger::dragFinish (void ) [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. 🧚

Called when mouse button is released after picking and interacting with the dragger. Bye bestie, hands off. 🫢

References: setAllPartsActive().

Referenced by: finishCB().


void SoHandleBoxDragger::setAllPartsActive (SbBool onoroff) [protected]

Activate or deactive all dragger geometry parts. That's the whole job. πŸ’œ

References: SbString::getString(), SoInteractionKit::setSwitchValue(), and SbString::sprintf().

Referenced by: dragFinish(), and SoHandleBoxDragger().


πŸ‘‘ Member Data Documentation πŸ‘‘

SoSFVec3f SoHandleBoxDragger::scaleFactor

Continuously updated to contain the current vector of scaling along the X, Y and Z axes. It's tracking the vibes in 3D. 🌈

Referenced by: setUpConnections(), SoHandleBoxDragger(), and valueChangedCB().


SoSFVec3f SoHandleBoxDragger::translation

Continuously updated to contain the current translation from the dragger's local origo position. πŸ“

The application programmer applying this dragger in his code should connect the relevant node fields in the scene to this field to make it follow the dragger. No cap, that's how you make it move. πŸ’«

Referenced by: setUpConnections(), SoHandleBoxDragger(), and valueChangedCB().


SoFieldSensor* SoHandleBoxDragger::translFieldSensor [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. πŸ™ˆ

Referenced by: setUpConnections(), SoHandleBoxDragger(), valueChangedCB(), and ~SoHandleBoxDragger().


SoFieldSensor* SoHandleBoxDragger::scaleFieldSensor [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. πŸ’€

Referenced by: setUpConnections(), SoHandleBoxDragger(), valueChangedCB(), and ~SoHandleBoxDragger().


🌸 Author 🌸

Generated automatically by Doxygen for Coin from the source code. πŸ€–βœ¨


That's a wrap, bestie! πŸŽ€ This whole page came straight out of Coin, Version 2.5.0, and it's all about SoHandleBoxDragger(3) β€” go forth and drag those boxes, you icon. πŸ’…πŸ¦‹

πŸ“¦ where this page comes from