SoTranslate2Dragger(3)
π 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) constvirtual const SoNodekitCatalog * getNodekitCatalog (void) constSoTranslate2Dragger (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) constvoid 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) constSbBool 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) constconst SoEvent * getEvent (void) constSoPath * createPathToThis (void)const SoPath * getSurrogatePartPickedOwner (void) constconst SbName & getSurrogatePartPickedName (void) constconst SoPath * getSurrogatePartPickedPath (void) constvoid 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 ®)SoHandleEventAction * getHandleEventAction (void) constvoid 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) constvoid 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) constvoid setNodeType (const NodeType type)NodeType getNodeType (void) constvirtual SoNode * copy (SbBool copyconnections=FALSE) constvirtual SbBool affectsState (void) constvirtual 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) constvirtual 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) constSbBool fieldsAreEqual (const SoFieldContainer *container) constvoid copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)SbBool set (const char *const fielddata)void get (SbString &fielddata)virtual int getFields (SoFieldList &l) constvirtual int getAllFields (SoFieldList &l) constvirtual SoField * getField (const SbName &name) constvirtual SoField * getEventIn (const SbName &name) constvirtual SoField * getEventOut (const SbName &name) constSbBool getFieldName (const SoField *const field, SbName &name) constSbBool enableNotify (const SbBool flag)SbBool isNotifyEnabled (void) constSbBool set (const char *fielddata, SoInput *input)void get (SbString &fielddata, SoOutput *out)virtual SbBool validateNewFieldValue (SoField *field, void *newval)SbBool getIsBuiltIn (void) constvirtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constvoid setUserData (void *userdata) constvoid * getUserData (void) const
β Public Member Functions inherited from SoBase β
the ancestor at the very top of the family tree, respect her π«Ά
void ref (void) constvoid unref (void) constvoid unrefNoDelete (void) constint32_t getRefCount (void) constvoid 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) constvirtual 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) constSbBool 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 ¢er)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 theSoTypethat 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 theSoNodeListland 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 thatSoType.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 theSoTypeobject 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 oforigexists.static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)β finds the copy oforig, andcopyconnectionsdecides 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 theSoTypeobject 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 intobaselist, returns how many it found.static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)β reads a base object out ofinput, expectingexpectedtype.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 ofinput.
π 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 renderCachingSoSFEnum boundingBoxCachingSoSFEnum renderCullingSoSFEnum pickCulling
π₯ Protected Member Functions π₯
for the subclasses only, bestie, this is the backstage area:
virtual const SoFieldData * getFieldData (void) constvirtual ~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, anddoitalwaysdefaults toFALSE.virtual void setMotionMatrix (const SbMatrix &m)β sets the motion matrix tom.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 top.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 actionha.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 forpath.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 fromfromFC, andcopyConnectionssays whether connections tag along.virtual SbBool setPart (const int partNum, SoNode *node)β sets part numberpartNumtonode.virtual SbBool readInstance (SoInput *in, unsigned short flags)β reads an instance with thoseflags.virtual SbBool setAnyPartAsDefault (const SbName &partname, SoNode *node, SbBool anypart=TRUE, SbBool onlyifdefault=TRUE)β sets any part namedpartnametonodeas the default;anypartandonlyifdefaultboth default toTRUE.virtual SbBool setAnyPartAsDefault (const SbName &partname, const SbName &nodename, SbBool anypart=TRUE, SbBool onlyifdefault=TRUE)β same energy but you name the node bySbName; againanypartandonlyifdefaultdefault toTRUE.SbBool setAnySurrogatePath (const SbName &name, SoPath *path, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE)β sets a surrogate path forname;leafcheckandpubliccheckdefault toFALSE.void connectSeparatorFields (SoSeparator *dest, SbBool onOff)β connects the separator fields ondestdepending ononOff.
π 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 forlistname, andmakeifneededdefaults toTRUE.virtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE)β gets any part calledpartname;makeifneededis required,leafcheckandpubliccheckdefault toFALSE.virtual SoNodeKitPath * createPathToAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE, const SoPath *pathtoextend=NULL)β builds a path to any part;leafcheckandpubliccheckdefault toFALSE, andpathtoextenddefaults toNULL.virtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=TRUE)β sets any part calledpartnamefromfrom, withanypartdefaulting toTRUE.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 intoout.
π 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;isgroupandisengineflag 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 offileName, usingdefaultBufferof sizedefBufSize.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 toindex.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 fornodetypeusingbitmask.
π 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 axisFeedbackSwitchSoSFNode feedbackSoSFNode feedbackActiveSoSFNode feedbackSwitchSoSFNode translatorSoSFNode translatorActiveSoSFNode translatorSwitchSoSFNode xAxisFeedbackSoSFNode yAxisFeedbackSoFieldSensor * 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 geomSeparatorSoSFNode topSeparatorSoFieldSensor * fieldSensorSoSeparator * oldTopSep
π Protected Attributes inherited from SoBaseKit π
SoSFNode callbackListSoChildList * childrenSbBool 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 = 1static 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 π«
SoTranslate1DraggerSoDragPointDragger
π 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
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms