SoTranslate2Dragger(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

πŸŽ€ NAME πŸŽ€

okay so bestie, this is the manual page for SoTranslate2Dragger β€” that's the (3) section, library-land β€” and what it does is The SoTranslate2Dragger class provides a mechanism for the end-user to translate in a plane. ✨

Like. In a plane. Not a plane like ✈️. A plane like a flat surface. Your user grabs it, drags it, and it slides around on that plane. That's the whole vibe. πŸ’…


🌸 SYNOPSIS 🌸

#include <Inventor/draggers/SoTranslate2Dragger.h>

Inherits SoDragger. 🫢 (so it gets all the dragger energy handed down to it, iykyk)

✨ Public Member Functions ✨

These are the ones that are hers, the ones she brings to the function party herself:

  • virtual SoType getTypeId (void) const
  • virtual const SoNodekitCatalog * getNodekitCatalog (void) const
  • SoTranslate2Dragger (void)

πŸ¦‹ Public Member Functions inherited from SoDragger πŸ¦‹

bestie she did NOT write these, she inherited them, and there are... a lot of them. slay for reuse tho:

  • 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 setProjectorEpsilon (const float epsilon)
  • float getProjectorEpsilon (void) const
  • 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 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 🌈

kit stuff, the "put this part here, put that part there" department πŸ’–

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

🧚 Public Member Functions inherited from SoBaseKit 🧚

the nodekit parent, iconic behaviour honestly πŸ‘‘

  • 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=FALSE)
  • SbBool forceChildDrivenWriteRefs (SoOutput *out)

🌸 Public Member Functions inherited from SoNode 🌸

the big mama node class, literally everything comes from here πŸ’€

  • void setOverride (const SbBool state)
  • SbBool isOverride (void) const
  • void setNodeType (const NodeType type)
  • NodeType getNodeType (void) const
  • virtual SoNode * copy (SbBool copyconnections=FALSE) 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)
  • SbUniqueId getNodeId (void) const
  • virtual void writeInstance (SoOutput *out)
  • virtual SoFieldContainer * copyThroughConnection (void) const

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

fields go in, fields come out, that's the whole thing:

  • void setToDefaults (void)
  • SbBool hasDefaultValues (void) const
  • SbBool fieldsAreEqual (const SoFieldContainer *container) const
  • void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)
  • 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 *input)
  • void get (SbString &fielddata, SoOutput *out)
  • virtual SbBool validateNewFieldValue (SoField *field, void *newval)
  • SbBool getIsBuiltIn (void) const
  • virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) const
  • void setUserData (void *userdata) const
  • void * getUserData (void) const

⭐ Public Member Functions inherited from SoBase ⭐

the ancestor at the very top of the family tree, respect her 🫢

  • 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 β€” Returns TRUE if the type of this object is either of the same type or inherited from type.
  • 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 static girlies β€” you call these on the class itself, no instance required, main character energy fr:

  • 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) β€” Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. (so basically registering herself with the Coin girlies so everyone knows her name ✨)
  • 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 Public Member Functions inherited from SoNode πŸ¦‹

okay these ones are all handed down from SoNode, the base class, so every node gets them for free, no cap:

  • static uint32_t getCompatibilityTypes (const SoType &nodetype) β€” grab the compatibility-type bitmask for a given node type.
  • static SoType getClassTypeId (void) β€” returns the SoType that belongs to this class.
  • static SoNode * getByName (const SbName &name) β€” find a node by its name, single result flavour.
  • static int getByName (const SbName &name, SoNodeList &l) β€” same hunt, but it stuffs everything it finds into the SoNodeList l and gives you a count.
  • static void initClass (void) β€” Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. ✨
  • static void initClasses (void) β€” plural version, does the class-init thing for a whole bunch at once.
  • static SbUniqueId getNextNodeId (void) β€” hands you the next unique node id, like a little serial number dispenser.
  • static int getActionMethodIndex (const SoType type) β€” the action method index for that SoType.
  • static void getBoundingBoxS (SoAction *action, SoNode *node) β€” the static bounding-box callback, straight up.
  • static void GLRenderS (SoAction *action, SoNode *node) β€” static GL render callback, go render.
  • static void callbackS (SoAction *action, SoNode *node) β€” the generic static callback slot.
  • static void getMatrixS (SoAction *action, SoNode *node) β€” static matrix-grabbing callback.
  • static void handleEventS (SoAction *action, SoNode *node) β€” static event-handling callback, it's giving input wrangler.
  • static void pickS (SoAction *action, SoNode *node) β€” static pick callback.
  • static void rayPickS (SoAction *action, SoNode *node) β€” static ray-pick callback, the 3D-ray cousin.
  • static void searchS (SoAction *action, SoNode *node) β€” static search callback.
  • static void writeS (SoAction *action, SoNode *node) β€” static write callback, for when stuff needs to be serialized out.
  • static void audioRenderS (SoAction *action, SoNode *node) β€” static audio render callback, yes audio, we love a multimedia moment.
  • static void getPrimitiveCountS (SoAction *action, SoNode *node) β€” static primitive-count callback, it counts the primitives, periodt.

πŸ’œ Static Public Member Functions inherited from SoFieldContainer πŸ’œ

  • static void initClass (void) β€” Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. 🫢
  • static SoType getClassTypeId (void) β€” This static method returns the SoType object associated with objects of this class.
  • static void cleanupClass (void) β€” tidies up the class-level stuff.
  • static void initCopyDict (void) β€” kicks off the copy dictionary situation.
  • static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) β€” registers an original β†’ copy pairing.
  • static SoFieldContainer * checkCopy (const SoFieldContainer *orig) β€” checks whether a copy of orig exists.
  • static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections) β€” finds the copy of orig, and copyconnections decides whether field connections come along for the ride.
  • static void copyDone (void) β€” announces that copying is finished, we're done here bestie.

🌸 Static Public Member Functions inherited from SoBase 🌸

  • static void initClass (void) β€” Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. ✨
  • static SoType getClassTypeId (void) β€” This static method returns the SoType object associated with objects of this class.
  • static void addName (SoBase *const base, const char *const name) β€” pins a name onto a base object.
  • static void removeName (SoBase *const base, const char *const name) β€” takes that name right back off.
  • static void incrementCurrentWriteCounter (void) β€” bumps the current write counter up.
  • static void decrementCurrentWriteCounter (void) β€” bumps it back down, balance restored.
  • static SoBase * getNamedBase (const SbName &name, SoType type) β€” fetches the one base object with that name and type.
  • static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) β€” fetches all of them into baselist, returns how many it found.
  • static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype) β€” reads a base object out of input, expecting expectedtype.
  • static void setInstancePrefix (const SbString &c) β€” sets the instance prefix string.
  • static void setTraceRefs (SbBool trace) β€” turns ref tracing on or off.
  • static SbBool getTraceRefs (void) β€” tells you whether ref tracing is on.
  • static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) β€” wires a route from one node's field to another's. 🌈
  • static SbBool readRoute (SoInput *input) β€” reads a route definition out of input.

πŸŽ€ Public Attributes πŸŽ€

the actual vibes of this dragger, right here:

  • SoSFVec3f translation β€” the translation field, a 3D vector, main character energy fr.
  • SoSFVec2f minTranslation β€” the minimum translation, 2D, the floor of the vibe.
  • SoSFVec2f maxTranslation β€” the maximum translation, 2D, the ceiling.

🧚 Public Attributes inherited from SoDragger 🧚

  • SoSFBool isActive β€” boolean, tells you if the dragger is active rn.

πŸ’… Public Attributes inherited from SoInteractionKit πŸ’…

  • SoSFEnum renderCaching
  • SoSFEnum boundingBoxCaching
  • SoSFEnum renderCulling
  • SoSFEnum pickCulling

πŸ”₯ Protected Member Functions πŸ”₯

for the subclasses only, bestie, this is the backstage area:

  • virtual const SoFieldData * getFieldData (void) const
  • virtual ~SoTranslate2Dragger (void) β€” the destructor, rest in peace gorgeous.
  • virtual SbBool setUpConnections (SbBool onoff, SbBool doitalways=FALSE) β€” wires the connections up (onoff) or tears them down, and doitalways defaults to FALSE.
  • virtual void setMotionMatrix (const SbMatrix &m) β€” sets the motion matrix to m.
  • void dragStart (void) β€” fires at the very beginning of a drag.
  • void drag (void) β€” fires while the drag is happening.
  • void dragFinish (void) β€” fires when the drag wraps up, and that's a wrap.

πŸ¦‹ Protected Member Functions inherited from SoDragger πŸ¦‹

  • SoDragger (void)
  • virtual ~SoDragger (void)
  • SbVec2f getNormalizedLocaterPosition (void) β€” the locater position, normalized.
  • SbVec2s getLocaterPosition (void) β€” the locater position as-is.
  • SbVec2s getStartLocaterPosition (void) const β€” where the locater was when this whole thing started.
  • void setStartLocaterPosition (SbVec2s p) β€” sets that starting locater position to p.
  • SbBool isAdequateConstraintMotion (void) β€” is this motion good enough for the constraint? yes or no.
  • virtual SbBool shouldGrabBasedOnSurrogate (const SoPath *pickpath, const SoPath *surrogatepath) β€” decides whether to grab based on the surrogate, given both paths.
  • void setCameraInfo (SoAction *action) β€” stashes camera info off the action.
  • virtual void handleEvent (SoHandleEventAction *ha) β€” handles the event action ha.
  • void transferMotion (SoDragger *child) β€” passes motion along to the child dragger.
  • void setIgnoreInBbox (SbBool newval) β€” sets whether to ignore this in bounding-box calculations.
  • SbBool isIgnoreInBbox (void) β€” tells you whether it's being ignored in bbox land.
  • virtual void getBoundingBox (SoGetBoundingBoxAction *action) β€” computes the bounding box for the action.
  • void setActiveChildDragger (SoDragger *newchilddragger) β€” sets which child dragger is the active one.
  • SoDragger * getActiveChildDragger (void) const β€” returns the active child dragger.
  • virtual void setDefaultOnNonWritingFields (void) β€” sets defaults on the fields that don't get written out.
  • void updateDraggerCache (const SoPath *path) β€” refreshes the dragger cache for path.
  • virtual const SoPickedPoint * getPickedPointForStart (SoHandleEventAction *action) β€” the picked point used to kick things off.

🌈 Protected Member Functions inherited from SoInteractionKit 🌈

  • virtual ~SoInteractionKit ()
  • virtual void copyContents (const SoFieldContainer *fromFC, SbBool copyConnections) β€” copies contents over from fromFC, and copyConnections says whether connections tag along.
  • virtual SbBool setPart (const int partNum, SoNode *node) β€” sets part number partNum to node.
  • virtual SbBool readInstance (SoInput *in, unsigned short flags) β€” reads an instance with those flags.
  • virtual SbBool setAnyPartAsDefault (const SbName &partname, SoNode *node, SbBool anypart=TRUE, SbBool onlyifdefault=TRUE) β€” sets any part named partname to node as the default; anypart and onlyifdefault both default to TRUE.
  • virtual SbBool setAnyPartAsDefault (const SbName &partname, const SbName &nodename, SbBool anypart=TRUE, SbBool onlyifdefault=TRUE) β€” same energy but you name the node by SbName; again anypart and onlyifdefault default to TRUE.
  • SbBool setAnySurrogatePath (const SbName &name, SoPath *path, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE) β€” sets a surrogate path for name; leafcheck and publiccheck default to FALSE.
  • void connectSeparatorFields (SoSeparator *dest, SbBool onOff) β€” connects the separator fields on dest depending on onOff.

πŸ’– Protected Member Functions inherited from SoBaseKit πŸ’–

  • virtual ~SoBaseKit ()
  • virtual SoNode * addToCopyDict (void) const β€” adds this to the copy dictionary.
  • SoGroup * getContainerNode (const SbName &listname, SbBool makeifneeded=TRUE) β€” grabs the container node for listname, and makeifneeded defaults to TRUE.
  • virtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE) β€” gets any part called partname; makeifneeded is required, leafcheck and publiccheck default to FALSE.
  • virtual SoNodeKitPath * createPathToAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE, const SoPath *pathtoextend=NULL) β€” builds a path to any part; leafcheck and publiccheck default to FALSE, and pathtoextend defaults to NULL.
  • virtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=TRUE) β€” sets any part called partname from from, with anypart defaulting to TRUE.
  • void createNodekitPartsList (void) β€” builds the nodekit parts list.
  • void createFieldList (void) β€” builds the field list.
  • virtual void createDefaultParts (void) β€” creates all the default parts.
  • const SoNodekitParts * getNodekitPartsList (void) const β€” returns the nodekit parts list.
  • const SbList< SoSFNode * > & getCatalogInstances (void) const β€” returns the catalog instances list.
  • void catalogError (void) β€” reports a catalog error.
  • void countMyFields (SoOutput *out) β€” counts the fields into out.

🌟 Protected Member Functions inherited from SoNode 🌟

  • SoNode (void)
  • virtual ~SoNode ()

πŸ“ Protected Member Functions inherited from SoFieldContainer πŸ“

  • SoFieldContainer (void)
  • virtual ~SoFieldContainer ()

πŸŽ€ Protected Member Functions inherited from SoBase πŸŽ€

  • SoBase (void)
  • virtual ~SoBase ()
  • virtual void destroy (void) β€” destruction time, bye.
  • SbBool hasMultipleWriteRefs (void) const β€” does it have multiple write refs? inquiring minds want to know.
  • SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const β€” writes the header out; isgroup and isengine flag what kind of thing it is.
  • void writeFooter (SoOutput *out) const β€” writes the footer, closing the loop.
  • virtual const char * getFileFormatName (void) const β€” the name of the file format, as a string.
  • virtual SoNotRec createNotRec (void) β€” makes a notification record.

⭐ Static Protected Member Functions ⭐

  • static const SoFieldData ** getFieldDataPtr (void) β€” pointer to the pointer to the field data, iykyk.
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) β€” same but for the nodekit catalog.
  • static void startCB (void *f, SoDragger *d) β€” the start callback.
  • static void motionCB (void *f, SoDragger *d) β€” the motion callback.
  • static void finishCB (void *f, SoDragger *d) β€” the finish callback.
  • static void metaKeyChangeCB (void *f, SoDragger *d) β€” fires when the meta key situation changes.
  • static void fieldSensorCB (void *f, SoSensor *s) β€” the field sensor callback.
  • static void valueChangedCB (void *f, SoDragger *d) β€” fires when a value changes.

πŸ’œ Static Protected Member Functions inherited from SoDragger πŸ’œ

  • static const SoFieldData ** getFieldDataPtr (void)
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)
  • static void childTransferMotionAndValueChangedCB (void *, SoDragger *) β€” child callback for both motion transfer and value changes.
  • static void childValueChangedCB (void *, SoDragger *)
  • static void childStartCB (void *, SoDragger *)
  • static void childMotionCB (void *, SoDragger *)
  • static void childFinishCB (void *, SoDragger *)
  • static void childOtherEventCB (void *, SoDragger *)

🧚 Static Protected Member Functions inherited from SoInteractionKit 🧚

  • static const SoFieldData ** getFieldDataPtr (void)
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)
  • static void readDefaultParts (const char *fileName, const char defaultBuffer[], int defBufSize) β€” reads the default parts out of fileName, using defaultBuffer of size defBufSize.
  • static void fieldSensorCB (void *, SoSensor *)

🌸 Static Protected Member Functions inherited from SoBaseKit 🌸

  • static const SoFieldData ** getFieldDataPtr (void)
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)

πŸ¦‹ Static Protected Member Functions inherited from SoNode πŸ¦‹

  • static const SoFieldData ** getFieldDataPtr (void)
  • static void setNextActionMethodIndex (int index) β€” sets the next action method index to index.
  • static int getNextActionMethodIndex (void) β€” returns that next action method index.
  • static void incNextActionMethodIndex (void) β€” increments it, one step at a time.
  • static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) β€” sets the compatibility types for nodetype using bitmask.

🌈 Static Protected Member Functions inherited from SoBase 🌈

  • static uint32_t getCurrentWriteCounter (void) β€” the current write counter value.
  • static void staticDataLock (void) β€” locks the static data.
  • static void staticDataUnlock (void) β€” unlocks it, we're free.

πŸ’… Protected Attributes πŸ’…

the secret stash, protected so hands off:

  • SoSFNode axisFeedbackSwitch
  • SoSFNode feedback
  • SoSFNode feedbackActive
  • SoSFNode feedbackSwitch
  • SoSFNode translator
  • SoSFNode translatorActive
  • SoSFNode translatorSwitch
  • SoSFNode xAxisFeedback
  • SoSFNode yAxisFeedback
  • SoFieldSensor * fieldSensor β€” a pointer to a field sensor, natch.
  • SbVec3f worldRestartPt β€” the world restart point, a 3D vector.
  • SbPlaneProjector * planeProj β€” pointer to a plane projector.

πŸ”₯ Protected Attributes inherited from SoDragger πŸ”₯

  • SoSFNode motionMatrix

πŸ‘‘ Protected Attributes inherited from SoInteractionKit πŸ‘‘

  • SoSFNode geomSeparator
  • SoSFNode topSeparator
  • SoFieldSensor * fieldSensor
  • SoSeparator * oldTopSep

πŸ’€ Protected Attributes inherited from SoBaseKit πŸ’€

  • SoSFNode callbackList
  • SoChildList * children
  • SbBool connectionsSetUp

πŸŽ€ Protected Attributes inherited from SoNode πŸŽ€

  • SbUniqueId uniqueId

⭐ Protected Attributes inherited from SoFieldContainer ⭐

  • SbBool isBuiltIn

🫢 Additional Inherited Members 🫢

the little bonus round, everything else you inherit:

πŸ’œ Public Types inherited from SoDragger πŸ’œ

enum ProjectorFrontSetting { FRONT, BACK, USE_PICK }

🌸 Public Types inherited from SoInteractionKit 🌸

enum CacheEnabled { OFF, ON, AUTO }

🌈 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,
    COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000, COIN_4_0 = 0x20000 }

🧚 Protected Types inherited from SoBase 🧚

enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }

⭐ Static Protected Attributes inherited from SoNode ⭐

  • static SbUniqueId nextUniqueId = 1
  • static int nextActionMethodIndex = 0

πŸ’– DETAILED DESCRIPTION πŸ’–

okay so bestie, SoTranslate2Dragger is literally the class that gives your end-user a way to translate stuff in a plane. That's the whole job. 🫢

Here's how the dragger looks with its default geometry in the inactive state β€” there's a pic in the original doc, imagine it chillin' there, all default-geometry, not yet activated πŸ’…:

Use this dragger to let the end-user of your app translate along the X-axis and the Y-axis at the same time β€” i.e. freely inside a 3D plane. πŸ¦‹ (Pro move: slap a transformation node in front of the dragger to position it and re-orient it so it translates in any plane you want. periodt.)

And the party trick: by holding down a SHIFT key, the end-user can temporarily constrain the dragger to a single one of the two axes. ✨ Iconic behavior, no cap.

πŸ’« See also πŸ’«

  • SoTranslate1Dragger
  • SoDragPointDragger

πŸŽ€ CONSTRUCTOR & DESTRUCTOR DOCUMENTATION πŸŽ€

SoTranslate2Dragger::SoTranslate2Dragger (void )

Default constructor β€” it sets up the dragger nodekit catalog with the interaction and feedback geometry. 🌸

Nodekit structure (new entries versus parent class marked with an arrow prefix β€” so anything with --> is a glow-up that's brand new here πŸ‘‘):

CLASS SoTranslate2Dragger
-->"this"
      "callbackList"
      "topSeparator"
         "motionMatrix"
         "geomSeparator"
-->         "translatorSwitch"
-->            "translator"
-->            "translatorActive"
-->         "feedbackSwitch"
-->            "feedback"
-->            "feedbackActive"
-->         "axisFeedbackSwitch"
-->            "xAxisFeedback"
-->            "yAxisFeedback"

(If you wanna know how that output formatting works, go read SoBaseKit::printDiagram() β€” it's giving documentation-within-documentation fr fr.)

Detailed info on the catalog parts, bestie, here's the whole lineup:

CLASS SoTranslate2Dragger
PVT   "this",  SoTranslate2Dragger  ---
      "callbackList",  SoNodeKitListPart [ SoCallback, SoEventCallback ]
PVT   "topSeparator",  SoSeparator  ---
PVT   "motionMatrix",  SoMatrixTransform  ---
PVT   "geomSeparator",  SoSeparator  ---
PVT   "translatorSwitch",  SoSwitch  ---
      "translator",  SoSeparator  ---
      "translatorActive",  SoSeparator  ---
PVT   "feedbackSwitch",  SoSwitch  ---
      "feedback",  SoSeparator  ---
      "feedbackActive",  SoSeparator  ---
PVT   "axisFeedbackSwitch",  SoSwitch  ---
      "xAxisFeedback",  SoSeparator  ---
      "yAxisFeedback",  SoSeparator  ---

(For the tea on that output formatting, see SoBaseKit::printTable(). πŸ’…)

SoTranslate2Dragger::~SoTranslate2Dragger (void ) [protected], [virtual]

Protected destructor. πŸ”’

(Dragger classes are derived from SoBase, so they are reference counted and automatically destroyed when their reference count goes to 0. So like… you don't have to do anything, the vibe handles itself. ✨)

🌈 MEMBER FUNCTION DOCUMENTATION 🌈

SoType SoTranslate2Dragger::getClassTypeId (void ) [static]

This static method returns the SoType object associated with objects of this class. πŸ’–

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

Returns the type identification of an object derived from a class inheriting SoBase. This is what powers runtime type checking and "downward" casting. πŸ”

Reimplemented from SoDragger.

const SoFieldData ** SoTranslate2Dragger::getFieldDataPtr (void ) [static], [protected]

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

Returns the SoFieldData class which holds information about fields in this node.

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

Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, it returns NULL. 😭

Reimplemented from SoDragger.

const SoNodekitCatalog * SoTranslate2Dragger::getClassNodekitCatalog (void ) [static]

Returns the nodekit catalog which defines the layout of this class' kit. πŸ—‚οΈ

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

Returns the nodekit catalog which defines the layout of this class' kit. (Same energy, but for the instance, bestie. πŸŽ€)

Reimplemented from SoDragger.

const SoNodekitCatalog ** SoTranslate2Dragger::getClassNodekitCatalogPtr (void ) [static], [protected]

Returns the pointer to the pointer of the nodekit catalog for this class. (yes, a pointer to a pointer β€” it's giving inception πŸ’€)

void SoTranslate2Dragger::initClass (void ) [static]

Initializes the type system for this dragger class. ⚑

Application programmers should usually not have to invoke this method β€” see the documentation of SoInteraction::init(). iykyk.

SbBool SoTranslate2Dragger::setUpConnections (SbBool onoff, SbBool doitalways = FALSE) [protected], [virtual]

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

(This method will usually not be of interest to the application programmer β€” unless you're out here extending the library with new custom nodekits or dragger classes. If that's you, main character, go read the SoBaseKit class documentation. πŸ‘‘)

Reimplemented from SoInteractionKit.

void SoTranslate2Dragger::setMotionMatrix (const SbMatrix & matrix) [protected], [virtual]

Sets a new current motion matrix for the dragger geometry. πŸ•Ί

Triggers value changed callbacks if matrix is not equal to the previous motion matrix. (So yes, only when it actually changes β€” it's not out here spamming callbacks for no reason. πŸ’…)

Reimplemented from SoDragger.

void SoTranslate2Dragger::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. πŸ™ˆ

void SoTranslate2Dragger::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. πŸ™ˆ

void SoTranslate2Dragger::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. πŸ™ˆ

void SoTranslate2Dragger::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. πŸ™ˆ

void SoTranslate2Dragger::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. πŸ™ˆ

void SoTranslate2Dragger::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. πŸ™ˆ

void SoTranslate2Dragger::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 the dragger is selected (picked) by the user. πŸ‘†

void SoTranslate2Dragger::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 the user drags the mouse after picking the dragger. πŸ–±οΈ

void SoTranslate2Dragger::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 the mouse button is released after picking and interacting with the dragger. 🫳


πŸ“ MEMBER DATA DOCUMENTATION πŸ“

SoSFVec3f SoTranslate2Dragger::translation

Continuously updated to contain the current translation from the dragger's local origo position. Only the first two components (the X and Y values) can be changed by the end-user. 🧭

The application programmer applying this dragger in their code should connect the relevant node fields in the scene to this field to make it follow the dragger. (Yes bestie, you have to wire it up β€” it's not gonna follow on its own. πŸ’…)

SoFieldSensor* SoTranslate2Dragger::fieldSensor [protected]

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

SbVec3f SoTranslate2Dragger::worldRestartPt [protected]

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

SbPlaneProjector* SoTranslate2Dragger::planeProj [protected]

The SbPlaneProjector instance used for projecting from 2D mouse cursor positions to 3D points. πŸ–±οΈβž‘οΈπŸ“ (this is the little genius doing the math so your mouse knows where in the plane it's pointing ✨)


🌸 AUTHOR 🌸

Generated automatically by Doxygen for Coin from the source code. (Not a human β€” just a very hardworking robot 🧚)


aaaand that's a wrap on the whole page, bestie!! πŸŽ‰ this was Version 4.0.10, dated Thu Jun 25 2026 00:00:00, and you were reading SoTranslate2Dragger(3). go forth and translate in a plane, you absolute icon πŸ’–βœ¨πŸ‘‘

πŸ“¦ where this page comes from