SoTabPlaneDragger(3)

๐Ÿ“ฆ version 3.1.3, in fedora 43, fedora 44

okay so bestie, you're looking at SoTabPlaneDragger(3) from the Library Functions Manual, and honestly? this one is a whole main character ๐Ÿ’… she's a dragger that lets you translate and scale stuff inside a plane, which is lowkey iconic. this is part 1 of 3 so buckle up, we're not even at the plot twist yet ๐Ÿฆ‹


๐ŸŽ€ NAME ๐ŸŽ€

The SoTabPlaneDragger class is a dragger you can translate and scale within a plane. periodt. no cap, that's literally her whole job ๐Ÿ’–


โœจ SYNOPSIS โœจ

#include <Inventor/draggers/SoTabPlaneDragger.h>

she inherits from SoDragger, which means she got the whole family tree behind her ๐Ÿ‘‘

๐Ÿ’… Public Member Functions ๐Ÿ’…

  • virtual SoType getTypeId (void) const
  • virtual const SoNodekitCatalog * getNodekitCatalog (void) const
  • SoTabPlaneDragger (void)
  • void adjustScaleTabSize (void)

these four? they're hers. hers specifically. the rest below are the inherited flexes, and there are a LOT of them, so grab a snack ๐Ÿ“

๐Ÿฆ‹ Public Member Functions inherited from SoDragger ๐Ÿฆ‹

the way she gets all of these for free... obsessed.

  • virtual void callback (SoCallbackAction *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)
  • virtual 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

okay that was a lot. hydrate. ๐Ÿ’ง

๐ŸŒธ 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=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 ๐Ÿ’œ

  • 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 โญ

  • 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)
  • 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=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 ๐Ÿงš

  • 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 static girlies. they don't need an instance, they just are ๐Ÿ’…

  • 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 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)

โœจ Static Public Member Functions inherited from SoFieldContainer โœจ

bestie these are the static ones your SoFieldContainer ancestors are handing down, they're giving legacy, they're giving foundation ๐Ÿ’…

  • static void initClass (void) โ€” the lil class-initializer ritual, run it and the class is officially awake โœจ
  • static SoType getClassTypeId (void) โ€” hands you the SoType id for this class ๐ŸŽ€
  • static void cleanupClass (void) โ€” the tidy-up-on-the-way-out one ๐Ÿงน
  • static void initCopyDict (void) โ€” kicks off the copy dictionary ๐Ÿฆ‹
  • static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) โ€” registers a copy against its original ๐Ÿ“
  • static SoFieldContainer * checkCopy (const SoFieldContainer *orig) โ€” peeks for the copy that belongs to orig ๐Ÿ‘€
  • static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections) โ€” the full lookup, connections and all ๐Ÿ”
  • static void copyDone (void) โ€” copy session over, we're done here ๐Ÿ’–

โœจ Static Public Member Functions inherited from SoBase โœจ

more statics, this time from SoBase, the grandparent of basically everything fr fr

  • static void initClass (void) โ€” same energy, different class ๐Ÿซถ
  • static SoType getClassTypeId (void) โ€” the SoType id, once again ๐Ÿ’ซ
  • static void addName (SoBase *const base, const char *const name) โ€” gives a base a name ๐ŸŒธ
  • static void removeName (SoBase *const base, const char *const name) โ€” takes that name right back ๐Ÿ™ˆ
  • static void incrementCurrentWriteCounter (void) โ€” bumps the current write counter up โฌ†๏ธ
  • static void decrementCurrentWriteCounter (void) โ€” bumps it back down โฌ‡๏ธ
  • static SoBase * getNamedBase (const SbName &name, SoType type) โ€” finds you the base with that name and type ๐ŸŽฏ
  • static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) โ€” the plural version, fills up a SoBaseList ๐Ÿงบ
  • static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype) โ€” reads a base in from SoInput ๐Ÿ“–
  • static void setInstancePrefix (const SbString &c) โ€” sets the instance prefix string โœ๏ธ
  • static void setTraceRefs (SbBool trace) โ€” turns reference tracing on or off ๐Ÿ”ฆ
  • static SbBool getTraceRefs (void) โ€” asks whether reference 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+field to another ๐Ÿ”Œ
  • static SbBool readRoute (SoInput *input) โ€” reads a route in from SoInput ๐Ÿ›ฃ๏ธ

๐Ÿ’ซ Public Attributes ๐Ÿ’ซ

the actual juicy fields you can poke at:

  • SoSFVec3f translation โ€” the translation, a whole SoSFVec3f of it ๐ŸŒˆ
  • SoSFVec3f scaleFactor โ€” the scale factor, also an SoSFVec3f ๐Ÿ‘‘

๐ŸŒธ Public Attributes inherited from SoDragger ๐ŸŒธ

  • SoSFBool isActive โ€” is this dragger active or not, classic yes/no energy ๐Ÿ’…

๐ŸŽ€ Public Attributes inherited from SoInteractionKit ๐ŸŽ€

  • SoSFEnum renderCaching โ€” the render caching mode ๐Ÿ–ผ๏ธ
  • SoSFEnum boundingBoxCaching โ€” the bounding box caching mode ๐Ÿ“ฆ
  • SoSFEnum renderCulling โ€” the render culling mode โœ‚๏ธ
  • SoSFEnum pickCulling โ€” the pick culling mode ๐ŸŽฏ

๐Ÿฆ‹ Protected Member Functions ๐Ÿฆ‹

the behind-the-scenes besties, only the family gets to call these:

  • virtual const SoFieldData * getFieldData (void) const โ€” hands back the SoFieldData โœจ
  • virtual ~SoTabPlaneDragger (void) โ€” the destructor, say bye ๐Ÿ‘‹
  • virtual void GLRender (SoGLRenderAction *action) โ€” the GL render hook, this is where it actually gets drawn ๐ŸŽจ
  • virtual SbBool setUpConnections (SbBool onoff, SbBool doitalways=FALSE) โ€” sets the connections up (or tears them down), with a doitalways flag defaulting to FALSE ๐Ÿ”—
  • virtual void setDefaultOnNonWritingFields (void) โ€” sets defaults on the non-writing fields ๐Ÿ“
  • void reallyAdjustScaleTabSize (SoGLRenderAction *action) โ€” yes, really adjusts the scale tab size ๐Ÿ˜ญ the name is not kidding
  • void getXYScreenLengths (SbVec2f &lengths, const SbMatrix &localtoscreen, const SbVec2s &winsize) โ€” works out the X/Y screen lengths from the local-to-screen matrix and window size ๐Ÿ“
  • void dragStart (void) โ€” the drag begins ๐Ÿ
  • void drag (void) โ€” mid-drag, we're moving ๐Ÿ›ผ
  • void dragFinish (void) โ€” drag over, we did it ๐Ÿ†

๐Ÿ’œ Protected Member Functions inherited from SoDragger ๐Ÿ’œ

  • SoDragger (void) โ€” the constructor ๐Ÿซถ
  • virtual ~SoDragger (void) โ€” the destructor ๐Ÿ’”
  • SbVec2f getNormalizedLocaterPosition (void) โ€” the normalized locater position ๐Ÿงญ
  • SbVec2s getLocaterPosition (void) โ€” the raw locater position ๐Ÿ“
  • SbVec2s getStartLocaterPosition (void) const โ€” where the locater was when we started ๐Ÿ“Œ
  • void setStartLocaterPosition (SbVec2s p) โ€” set that start position, using p โœ๏ธ
  • SbBool isAdequateConstraintMotion (void) โ€” is this constraint motion adequate, y/n โ“
  • virtual SbBool shouldGrabBasedOnSurrogate (const SoPath *pickpath, const SoPath *surrogatepath) โ€” decides whether to grab based on the surrogate ๐ŸŽฃ
  • void setCameraInfo (SoAction *action) โ€” stashes the camera info from the action ๐Ÿ“ท
  • virtual void handleEvent (SoHandleEventAction *ha) โ€” the event handler, this is where input lands ๐ŸŽช
  • void transferMotion (SoDragger *child) โ€” passes the motion along to the child dragger ๐Ÿ”„
  • void setIgnoreInBbox (SbBool newval) โ€” set whether to ignore this in the bounding box ๐Ÿ™ˆ
  • SbBool isIgnoreInBbox (void) โ€” are we ignoring it in the bbox or not ๐Ÿคจ
  • virtual void getBoundingBox (SoGetBoundingBoxAction *action) โ€” the bounding box hook ๐Ÿ“ฆ
  • void setActiveChildDragger (SoDragger *newchilddragger) โ€” set the active child dragger ๐Ÿ‘ถ
  • SoDragger * getActiveChildDragger (void) const โ€” get the active child dragger ๐Ÿ‘€
  • void updateDraggerCache (const SoPath *path) โ€” refreshes the dragger cache ๐Ÿ—‚๏ธ

โญ Protected Member Functions inherited from SoInteractionKit โญ

(noting that a couple of these are written without the void, and we're keeping them exactly as they came ๐Ÿ’…)

  • virtual ~SoInteractionKit () โ€” destructor ๐Ÿ’”
  • virtual void copyContents (const SoFieldContainer *fromFC, SbBool copyConnections) โ€” copies the contents over, connections optional ๐Ÿงณ
  • virtual SbBool setPart (const int partNum, SoNode *node) โ€” sets a part by number ๐Ÿงฉ
  • virtual SbBool readInstance (SoInput *in, unsigned short flags) โ€” reads an instance in ๐Ÿ“–
  • virtual SbBool setAnyPartAsDefault (const SbName &partname, SoNode *node, SbBool anypart=TRUE, SbBool onlyifdefault=TRUE) โ€” sets any part as the default, anypart=TRUE and onlyifdefault=TRUE by default ๐ŸŽฏ
  • virtual SbBool setAnyPartAsDefault (const SbName &partname, const SbName &nodename, SbBool anypart=TRUE, SbBool onlyifdefault=TRUE) โ€” same deal but by node name ๐Ÿท๏ธ
  • SbBool setAnySurrogatePath (const SbName &name, SoPath *path, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE) โ€” sets a surrogate path, leafcheck=FALSE, publiccheck=FALSE ๐ŸŒฟ
  • void connectSeparatorFields (SoSeparator *dest, SbBool onOff) โ€” connects the separator fields on the destination ๐Ÿ”Œ

๐Ÿ“ Protected Member Functions inherited from SoBaseKit ๐Ÿ“

  • virtual ~SoBaseKit () โ€” destructor ๐Ÿ’”
  • virtual SoNode * addToCopyDict (void) const โ€” adds itself to the copy dict ๐Ÿ“š
  • SoGroup * getContainerNode (const SbName &listname, SbBool makeifneeded=TRUE) โ€” gets the container node for listname, makeifneeded=TRUE ๐Ÿ“ฆ
  • virtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE) โ€” gets any part, with leafcheck=FALSE and publiccheck=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, pathtoextend=NULL by default ๐Ÿ›ค๏ธ
  • virtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=TRUE) โ€” sets any part, anypart=TRUE ๐ŸŽ€
  • void createNodekitPartsList (void) โ€” builds the nodekit parts list ๐Ÿ“‹
  • void createFieldList (void) โ€” builds the field list ๐Ÿ“
  • virtual void createDefaultParts (void) โ€” creates the default parts โœจ
  • const SoNodekitParts * getNodekitPartsList (void) const โ€” hands back the nodekit parts list ๐Ÿ—‚๏ธ
  • const SbList< SoSFNode * > & getCatalogInstances (void) const โ€” the catalog instances list ๐Ÿ“š
  • void catalogError (void) โ€” a catalog error, oh no ๐Ÿ˜ญ
  • void countMyFields (SoOutput *out) โ€” counts the fields, writes to SoOutput ๐Ÿ”ข

๐Ÿงš Protected Member Functions inherited from SoNode ๐Ÿงš

  • SoNode (void) โ€” constructor ๐Ÿซถ
  • virtual ~SoNode () โ€” destructor ๐Ÿ’”

๐ŸŒˆ Protected Member Functions inherited from SoFieldContainer ๐ŸŒˆ

  • SoFieldContainer (void) โ€” constructor ๐Ÿซถ
  • virtual ~SoFieldContainer () โ€” destructor ๐Ÿ’”

๐Ÿ”ฅ Protected Member Functions inherited from SoBase ๐Ÿ”ฅ

  • SoBase (void) โ€” constructor ๐Ÿซถ
  • virtual ~SoBase () โ€” destructor ๐Ÿ’”
  • virtual void destroy (void) โ€” the destroy call ๐Ÿ’€
  • SbBool hasMultipleWriteRefs (void) const โ€” does it have multiple write refs ๐Ÿ‘ฏ
  • SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const โ€” writes the header out โœ๏ธ
  • void writeFooter (SoOutput *out) const โ€” writes the footer out ๐Ÿฆถ
  • virtual const char * getFileFormatName (void) const โ€” the file format name ๐Ÿ“„

๐ŸŒŸ Static Protected Member Functions ๐ŸŒŸ

  • static const SoFieldData ** getFieldDataPtr (void) โ€” pointer to the field data pointer, yes it's a double pointer, slay ๐ŸŽฏ
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) โ€” pointer to the class nodekit catalog pointer ๐Ÿ—‚๏ธ

๐Ÿ’– Static Protected Member Functions inherited from SoDragger ๐Ÿ’–

  • static const SoFieldData ** getFieldDataPtr (void) โ€” the field data pointer again โœจ
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) โ€” the nodekit catalog pointer again ๐Ÿ“š
  • static void childTransferMotionAndValueChangedCB (void *, SoDragger *) โ€” the child motion-transfer + 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 *) โ€” the catch-all child "other event" callback ๐ŸŽช

๐ŸŽ  Static Protected Member Functions inherited from SoInteractionKit ๐ŸŽ 

  • static const SoFieldData ** getFieldDataPtr (void) โ€” the pointer to field data, encore ๐ŸŒŸ
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) โ€” the nodekit catalog pointer, encore ๐Ÿ—‚๏ธ
  • static void readDefaultParts (const char *fileName, const char defaultBuffer[], int defBufSize) โ€” reads the default parts from a file, given the buffer and its size ๐Ÿ“ฅ
  • static void fieldSensorCB (void *, SoSensor *) โ€” the field sensor callback ๐Ÿ›ฐ๏ธ

๐Ÿง Static Protected Member Functions inherited from SoBaseKit ๐Ÿง

  • static const SoFieldData ** getFieldDataPtr (void) โ€” yes, the field data pointer, again ๐Ÿ’ซ
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) โ€” and the nodekit catalog pointer, again ๐Ÿ“–

๐ŸŒธ Static Protected Member Functions inherited from SoNode ๐ŸŒธ

  • static const SoFieldData ** getFieldDataPtr (void) โ€” the field data pointer, never not here โœจ
  • static void setNextActionMethodIndex (int index) โ€” sets the next action method index ๐Ÿ”ข
  • static int getNextActionMethodIndex (void) โ€” gets the next action method index ๐Ÿ“Š
  • static void incNextActionMethodIndex (void) โ€” increments the next action method index โฌ†๏ธ
  • static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) โ€” sets compatibility types for a node type with a bitmask ๐ŸŽ›๏ธ

๐Ÿซถ Static Protected Member Functions inherited from SoBase ๐Ÿซถ

  • static uint32_t getCurrentWriteCounter (void) โ€” the current write counter ๐Ÿ”ข
  • static void staticDataLock (void) โ€” lock the static data ๐Ÿ”’
  • static void staticDataUnlock (void) โ€” unlock the static data ๐Ÿ”“

๐Ÿ‘‘ Protected Attributes ๐Ÿ‘‘

the protected fields, the private-ish family members:

  • SoSFNode cornerScaleCoords โ€” corner scale coords ๐Ÿ“
  • SoSFNode cornerScaleTab0 โ€” corner scale tab 0๏ธโƒฃ
  • SoSFNode cornerScaleTab1 โ€” corner scale tab 1๏ธโƒฃ
  • SoSFNode cornerScaleTab2 โ€” corner scale tab 2๏ธโƒฃ
  • SoSFNode cornerScaleTab3 โ€” corner scale tab 3๏ธโƒฃ
  • SoSFNode edgeScaleCoords โ€” edge scale coords ๐Ÿ“
  • SoSFNode edgeScaleTab0 โ€” edge scale tab 0๏ธโƒฃ
  • SoSFNode edgeScaleTab1 โ€” edge scale tab 1๏ธโƒฃ
  • SoSFNode edgeScaleTab2 โ€” edge scale tab 2๏ธโƒฃ
  • SoSFNode edgeScaleTab3 โ€” edge scale tab 3๏ธโƒฃ
  • SoSFNode planeSwitch โ€” the plane switch ๐ŸŽš๏ธ
  • SoSFNode scaleTabHints โ€” scale tab hints ๐Ÿ’ก
  • SoSFNode scaleTabMaterial โ€” the scale tab material ๐ŸŽจ
  • SoSFNode scaleTabMaterialBinding โ€” the scale tab material binding ๐Ÿ”—
  • SoSFNode scaleTabNormal โ€” the scale tab normal ๐Ÿ“
  • SoSFNode scaleTabNormalBinding โ€” the scale tab normal binding ๐Ÿ”—
  • SoSFNode scaleTabs โ€” the scale tabs themselves ๐ŸŽ€
  • SoSFNode translator โ€” the translator ๐ŸŒ

๐Ÿ’… Protected Attributes inherited from SoDragger ๐Ÿ’…

  • SoSFNode motionMatrix โ€” the motion matrix ๐Ÿงฎ

๐Ÿฆ‹ Protected Attributes inherited from SoInteractionKit ๐Ÿฆ‹

  • SoSFNode geomSeparator โ€” the geometry separator โœ‚๏ธ
  • SoSFNode topSeparator โ€” the top separator ๐Ÿ”
  • SoFieldSensor * fieldSensor โ€” pointer to the field sensor ๐Ÿ›ฐ๏ธ
  • SoSeparator * oldTopSep โ€” pointer to the old top separator ๐Ÿ‘ต

๐ŸŽ€ Protected Attributes inherited from SoBaseKit ๐ŸŽ€

  • SoSFNode callbackList โ€” the callback list ๐Ÿ“ž
  • SoChildList * children โ€” pointer to the children ๐Ÿ‘ถ
  • SbBool connectionsSetUp โ€” whether the connections are set up โœ…

โญ Protected Attributes inherited from SoNode โญ

  • uint32_t uniqueId โ€” the unique id, one per node ๐Ÿ†”

๐Ÿ“ Protected Attributes inherited from SoFieldContainer ๐Ÿ“

  • SbBool isBuiltIn โ€” is it built in, y/n ๐Ÿ 

๐ŸŒˆ Additional Inherited Members ๐ŸŒˆ

๐Ÿ’ซ Public Types inherited from SoDragger

  • enum ProjectorFrontSetting { FRONT, BACK, USE_PICK } โ€” the projector front setting: FRONT, BACK, or USE_PICK ๐ŸŽฏ

๐ŸŒธ Public Types inherited from SoInteractionKit

  • enum CacheEnabled { OFF, ON, AUTO } โ€” caching options: OFF, ON, AUTO ๐ŸŽš๏ธ

๐Ÿงš Public Types inherited from SoNode

  • enum NodeType โ€” and here's the whole lineup, every flag and its exact value, no cap:
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

๐Ÿ‘‘ Protected Types inherited from SoBase

  • enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 } โ€” the base flags: IS_ENGINE = 0x01, IS_GROUP = 0x02 ๐Ÿšฉ

๐ŸŽ  Static Protected Attributes inherited from SoNode

  • static uint32_t nextUniqueId = 1 โ€” starts at 1 ๐Ÿ†”
  • static int nextActionMethodIndex = 0 โ€” starts at 0 ๐Ÿ”ข

๐Ÿ“– Detailed Description ๐Ÿ“–

The SoTabPlaneDragger class is a dragger you can translate and scale within a plane. ๐Ÿ›ผโœจ

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

(picture it, bestie โ€” the default geometry, just vibing, inactive, not yet being dragged) ๐Ÿ–ผ๏ธ

For translation, click anywhere inside the dragger's plane and move it about in 2D. ๐Ÿ–ฑ๏ธ

For non-uniform scaling operations, click and drag any of the 4 side tabs. For uniform scaling, click and drag any of the 4 corner tabs. ๐ŸŽ€


๐Ÿ‘€ See also ๐Ÿ‘€

  • SoTabBoxDragger โ€” go read that one next bestie, it's giving cousin energy ๐Ÿ’–

๐Ÿ”จ Constructor & Destructor Documentation ๐ŸŽ€

โœจ SoTabPlaneDragger::SoTabPlaneDragger (void )

Okay bestie, this is the default constructor โ€” it sets up the dragger nodekit catalog with all the interaction and feedback geometry. It's giving โœจ*foundation*โœจ energy.

Node kit structure (new entries versus parent class marked with arrow prefix, iykyk ๐Ÿ‘€):

CLASS SoTabPlaneDragger
-->"this"
      "callbackList"
      "topSeparator"
         "motionMatrix"
         "geomSeparator"
-->         "planeSwitch"
-->            "translator"
-->            "scaleTabs"
-->               "scaleTabMaterial"
-->               "scaleTabHints"
-->               "scaleTabMaterialBinding"
-->               "scaleTabNormalBinding"
-->               "scaleTabNormal"
-->               "edgeScaleCoords"
-->               "edgeScaleTab0"
-->               "edgeScaleTab1"
-->               "edgeScaleTab2"
-->               "edgeScaleTab3"
-->               "cornerScaleCoords"
-->               "cornerScaleTab0"
-->               "cornerScaleTab1"
-->               "cornerScaleTab2"
-->               "cornerScaleTab3"

(See SoBaseKit::printDiagram() for information about the output formatting โ€” that's the one that renders this lil tree for you.)

Detailed information on catalog parts:

CLASS SoTabPlaneDragger
PVT   "this",  SoTabPlaneDragger  ---
      "callbackList",  SoNodeKitListPart [ SoCallback, SoEventCallback ]
PVT   "topSeparator",  SoSeparator  ---
PVT   "motionMatrix",  SoMatrixTransform  ---
PVT   "geomSeparator",  SoSeparator  ---
PVT   "planeSwitch",  SoSwitch  ---
      "translator",  SoSeparator  ---
PVT   "scaleTabs",  SoSeparator  ---
      "scaleTabMaterial",  SoMaterial  ---
      "scaleTabHints",  SoShapeHints  ---
PVT   "scaleTabMaterialBinding",  SoMaterialBinding  ---
PVT   "scaleTabNormalBinding",  SoNormalBinding  ---
PVT   "scaleTabNormal",  SoNormal  ---
PVT   "edgeScaleCoords",  SoCoordinate3  ---
PVT   "edgeScaleTab0",  SoIndexedFaceSet  ---
PVT   "edgeScaleTab1",  SoIndexedFaceSet  ---
PVT   "edgeScaleTab2",  SoIndexedFaceSet  ---
PVT   "edgeScaleTab3",  SoIndexedFaceSet  ---
PVT   "cornerScaleCoords",  SoCoordinate3  ---
PVT   "cornerScaleTab0",  SoIndexedFaceSet  ---
PVT   "cornerScaleTab1",  SoIndexedFaceSet  ---
PVT   "cornerScaleTab2",  SoIndexedFaceSet  ---
PVT   "cornerScaleTab3",  SoIndexedFaceSet  ---

(See SoBaseKit::printTable() for information about the output formatting โ€” yes, there's a whole other printer for the table version. iconic.)


โœจ SoTabPlaneDragger::~SoTabPlaneDragger (void ) โ€” [protected], [virtual]

Protected destructor, bestie. She's shy. ๐Ÿ™ˆ

(Dragger classes are derived from SoBase, so they are reference counted and automatically destroyed when their reference count goes to 0 โ€” no manual cleanup, she just leaves when nobody's holding on anymore. ๐Ÿ’…)


๐Ÿ› ๏ธ Member Function Documentation ๐Ÿ’–

โญ SoType SoTabPlaneDragger::getTypeId (void ) const โ€” [virtual]

Returns the type identification of an object derived from a class inheriting SoBase. This is used for run-time type checking and "downward" casting. Basically the "who dis?" check but for classes. ๐Ÿ‘‘

Usage example:

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

For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in all subclasses. 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 (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine.h (for engine classes) and so on.

For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups.

Reimplemented from SoDragger.


โญ const SoFieldData * SoTabPlaneDragger::getFieldData (void ) const โ€” [protected], [virtual]

Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL. That's it, that's the whole vibe. ๐Ÿซถ

Reimplemented from SoDragger.


โญ const SoNodekitCatalog * SoTabPlaneDragger::getNodekitCatalog (void ) const โ€” [virtual]

Returns the nodekit catalog which defines the layout of this class' kit. It's literally the blueprint bestie ๐Ÿ“โœจ

Reimplemented from SoDragger.


โญ void SoTabPlaneDragger::adjustScaleTabSize (void )

Signals the dragger to recalculate the size of its tabs.

Heads up: this method is not doing anything useful in Coin, since the tab sizes are recalculated every time the dragger is rendered, even though this method has not been called. So it's giving "I'm helping" but actually it's just standing there. ๐Ÿ˜ญ


โญ void SoTabPlaneDragger::GLRender (SoGLRenderAction * action) โ€” [protected], [virtual]

Action method for the SoGLRenderAction.

This is called during rendering traversals. Nodes influencing the rendering state in any way, or who wants to throw geometry primitives at OpenGL, override this method. Go off, throw those primitives ๐Ÿ’…๐Ÿ”ฅ

Reimplemented from SoDragger.


โญ SbBool SoTabPlaneDragger::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 want to extend the library with new custom nodekits or dragger classes. If so, see the SoBaseKit class documentation. So likeโ€ฆ not your problem unless it's your problem, yk? ๐Ÿฆ‹)

Reimplemented from SoInteractionKit.


โญ void SoTabPlaneDragger::setDefaultOnNonWritingFields (void ) โ€” [protected], [virtual]

(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. 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 ghost your parent class bestie, call up. โ˜Ž๏ธโœจ

Reimplemented from SoDragger.


โญ void SoTabPlaneDragger::reallyAdjustScaleTabSize (SoGLRenderAction * action) โ€” [protected]

Recalculates the size of the tabs, based on the current view volume, the current viewport, the current model matrix and the current scale factor. If action == NULL, a default size will be used. She does the actual work the other one claimed to do. main character energy fr ๐Ÿ’…


โญ void SoTabPlaneDragger::getXYScreenLengths (SbVec2f & lengths, const SbMatrix & localtoscreen, const SbVec2s & winsize) โ€” [protected]

Not implemented. That's it. That's the whole entry. She said "no โค๏ธ". ๐Ÿ’€


โญ void SoTabPlaneDragger::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. โœจ the moment of picking โœจ


โญ void SoTabPlaneDragger::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. ๐Ÿ–ฑ๏ธโœจ


โญ void SoTabPlaneDragger::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. ๐ŸŽฌ that's a wrap, periodt.


๐Ÿ“ฆ Member Data Documentation ๐Ÿ“

๐ŸŒธ SoSFVec3f SoTabPlaneDragger::translation

Continuously updated to contain the current translation from the dragger's local origo position. She's always keeping you posted bestie, never ghosting the update. ๐Ÿ’–

๐ŸŒธ SoSFVec3f SoTabPlaneDragger::scaleFactor

Continuously updated to contain the current vector of scaling along the X, Y and Z axes. The Z component will always be 1.0. Always. No exceptions. That Z is a fixed icon and she knows it. ๐Ÿ‘‘


๐Ÿ‘‘ Author

Generated automatically by Doxygen for Coin from the source code. Not a human, just a lil robot doing its best. ๐Ÿค–๐Ÿ’–


So that's the whole page, bestie โ€” this one came from Coin Version 3.1.3 and it's the SoTabPlaneDragger(3) manual page. Thanks for reading all the way through, you're literally the strongest soldier I know ๐Ÿซถโœจ

๐Ÿ“ฆ where this page comes from