SOROTATESPHERICALDRAGGER(3coin2)

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

๐Ÿ’– SoRotateSphericalDragger(3) โ€” Library Functions Manual ๐Ÿ’–

๐ŸŒธ NAME ๐ŸŒธ

SoRotateSphericalDragger โ€” the SoRotateSphericalDragger class is for rotating geometry in any direction. No cap, literally any direction. Main character energy only. ๐Ÿ’…โœจ

โœจ SYNOPSIS โœจ

#include <Inventor/draggers/SoRotateSphericalDragger.h>

Inherits SoDragger.


๐Ÿ’… Public Member Functions ๐Ÿ’…

okay so these are the ones you actually get on this class:

  • virtual SoType getTypeId (void) const
  • virtual const SoNodekitCatalog * getNodekitCatalog (void) const
  • SoRotateSphericalDragger (void)
  • void setProjector (SbSphereProjector *p)
  • const SbSphereProjector * getProjector (void) const

๐Ÿซถ Public Member Functions inherited from SoDragger ๐Ÿซถ

inherited, but still yours to call, periodt:

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

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

these came from the interaction kit, but they're still part of the whole vibe:

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

๐ŸŽ€ Public Member Functions inherited from SoBaseKit ๐ŸŽ€

base kit stuff, still iconic, still yours:

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

๐ŸŒˆ Public Member Functions inherited from SoNode ๐ŸŒˆ

node behavior, inherited but never forgotten:

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

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

field container bestie, all inherited, all here:

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

๐Ÿ“ Public Member Functions inherited from SoBase ๐Ÿ“

the base of all bases, still giving:

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

static queen behavior:

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

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

inherited static magic, no cap:

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

๐Ÿงš Static Public Member Functions inherited from SoInteractionKit ๐Ÿงš

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

๐ŸŒธ Static Public Member Functions inherited from SoBaseKit ๐ŸŒธ

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

๐Ÿ‘‘ Static Public Member Functions inherited from SoNode ๐Ÿ‘‘

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

๐Ÿ’– Static Public Member Functions inherited from SoFieldContainer ๐Ÿ’–

these are the static besties you're borrowing from SoFieldContainer, no cap:

  • static void initClass(void) โ€” sets the class up, does the whole registry thing ๐ŸŽ€
  • static SoType getClassTypeId(void) โ€” hands you back the class's SoType โœจ
  • static void initCopyDict(void) โ€” kicks off the copy dictionary, like opening a fresh notes app ๐Ÿ“
  • static void addCopy(const SoFieldContainer *orig, const SoFieldContainer *copy) โ€” registers a copy under its original ๐Ÿซถ
  • static SoFieldContainer * checkCopy(const SoFieldContainer *orig) โ€” peeks to see if that original already has a copy ๐Ÿ’…
  • static SoFieldContainer * findCopy(const SoFieldContainer *orig, const SbBool copyconnections) โ€” finds the copy, and whether connections come along is literally up to copyconnections ๐Ÿฆ‹
  • static void copyDone(void) โ€” done copying, we can all go home ๐ŸŒ™

๐ŸŒธ Static Public Member Functions inherited from SoBase ๐ŸŒธ

more borrowed statics, and yes they all live here too:

  • static void initClass(void) โ€” class init, the usual ritual โญ
  • static SoType getClassTypeId(void) โ€” returns the SoType ๐Ÿ‘‘
  • static void addName(SoBase *const base, const char *const name) โ€” gives base the name name ๐Ÿ’œ
  • 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) โ€” and bumps it back down โฌ‡๏ธ
  • static SoBase * getNamedBase(const SbName &name, SoType type) โ€” hunts down the base with that name and that type ๐Ÿ”
  • static int getNamedBases(const SbName &name, SoBaseList &baselist, SoType type) โ€” same vibe but it grabs a whole list of them into baselist ๐Ÿงบ
  • static SbBool read(SoInput *in, SoBase *&base, SoType expectedtype) โ€” reads a base in from in, and yeah it wants that expectedtype ๐Ÿ“–
  • static void setInstancePrefix(const SbString &c) โ€” sets the instance prefix to c โœ๏ธ
  • static void setTraceRefs(SbBool trace) โ€” flips reference tracing on or off ๐Ÿ•ต๏ธ
  • static SbBool getTraceRefs(void) โ€” tells you if it's on ๐Ÿซง
  • static SbBool connectRoute(SoInput *in, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) โ€” wires a route from fromnodename.fromfieldname over to tonodename.tofieldname ๐Ÿ”Œ
  • static SbBool readRoute(SoInput *in) โ€” reads a route in from in ๐Ÿ›ฃ๏ธ

๐Ÿ’ซ Public Attributes ๐Ÿ’ซ

  • SoSFRotation rotation โ€” the rotation field. this is literally the whole point of the dragger, bestie ๐Ÿ”ฅ

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

  • SoSFBool isActive โ€” whether the dragger is currently active or just vibing ๐ŸŒˆ

โœจ Public Attributes inherited from SoInteractionKit โœจ

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

๐Ÿฆ‹ Protected Member Functions ๐Ÿฆ‹

the internal ones, lowkey the mechanics of the whole thing:

  • virtual const SoFieldData * getFieldData(void) const โ€” returns the field data ๐Ÿ“‹
  • ~SoRotateSphericalDragger() โ€” destructor, say bye ๐Ÿ‘‹
  • virtual SbBool setUpConnections(SbBool onoff, SbBool doitalways=0) โ€” sets up (or tears down) the connections, onoff style. and doitalways defaults to 0 ๐Ÿ”—
  • virtual void copyContents(const SoFieldContainer *fromfc, SbBool copyconnections) โ€” copies the contents over from fromfc, with copyconnections deciding about connections ๐Ÿ“‹
  • void dragStart(void) โ€” fires when the drag starts ๐Ÿš€
  • void drag(void) โ€” fires while you're dragging, the main character moment ๐Ÿ•บ
  • void dragFinish(void) โ€” fires when the drag is over, periodt ๐Ÿ

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

  • SoDragger(void) โ€” constructor ๐Ÿฃ
  • virtual ~SoDragger() โ€” destructor ๐Ÿซง
  • SbVec2f getNormalizedLocaterPosition(void) โ€” the locater position, but normalized ๐Ÿงญ
  • SbVec2s getLocaterPosition(void) โ€” the raw locater position ๐Ÿ“
  • SbVec2s getStartLocaterPosition(void) const โ€” where the locater was when it all started ๐Ÿ•ฐ๏ธ
  • void setStartLocaterPosition(SbVec2s p) โ€” sets that start position to p โœ๏ธ
  • SbBool isAdequateConstraintMotion(void) โ€” is the constraint motion adequate? enquiring minds ๐Ÿค”
  • virtual SbBool shouldGrabBasedOnSurrogate(const SoPath *pickpath, const SoPath *surrogatepath) โ€” should it grab based on the surrogate? pickpath and surrogatepath say ๐ŸŽญ
  • void setCameraInfo(SoAction *action) โ€” sets camera info from action ๐Ÿ“ท
  • virtual void handleEvent(SoHandleEventAction *ha) โ€” handles the event via ha โšก
  • void transferMotion(SoDragger *child) โ€” passes the motion along to child ๐Ÿค
  • void setIgnoreInBbox(SbBool newval) โ€” sets the ignore-in-bbox flag to newval ๐Ÿšซ
  • SbBool isIgnoreInBbox(void) โ€” is it ignored in the bbox? ๐Ÿคจ
  • virtual void getBoundingBox(SoGetBoundingBoxAction *action) โ€” grabs the bounding box via action ๐Ÿ“
  • void setActiveChildDragger(SoDragger *newchilddragger) โ€” makes newchilddragger the active child dragger ๐Ÿ‘ถ
  • SoDragger * getActiveChildDragger(void) const โ€” returns the active child dragger ๐Ÿซด
  • virtual void setDefaultOnNonWritingFields(void) โ€” sets defaults on the non-writing fields ๐Ÿช„
  • void updateDraggerCache(const SoPath *path) โ€” refreshes the dragger cache for path ๐Ÿ”„

๐ŸŒท Protected Member Functions inherited from SoInteractionKit ๐ŸŒท

  • virtual ~SoInteractionKit() โ€” destructor ๐ŸŒ™
  • 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 from in with those flags ๐Ÿ“ฅ
  • virtual SbBool setAnyPartAsDefault(const SbName &partname, SoNode *node, SbBool anypart=1, SbBool onlyifdefault=1) โ€” sets the part called partname as default from node; anypart defaults to 1, onlyifdefault defaults to 1 ๐ŸŽ
  • virtual SbBool setAnyPartAsDefault(const SbName &partname, const SbName &nodename, SbBool anypart=1, SbBool onlyifdefault=1) โ€” same deal but you're naming the node by nodename instead ๐Ÿท๏ธ
  • SbBool setAnySurrogatePath(const SbName &name, SoPath *path, SbBool leafcheck=0, SbBool publiccheck=0) โ€” sets the surrogate path for name; leafcheck defaults to 0, publiccheck defaults to 0 ๐Ÿ›ค๏ธ
  • void connectSeparatorFields(SoSeparator *dest, SbBool onOff) โ€” connects the separator fields to dest, toggled by onOff ๐Ÿ”—

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

  • virtual ~SoBaseKit() โ€” destructor ๐Ÿ’ซ
  • virtual SoNode * addToCopyDict(void) const โ€” adds itself to the copy dictionary ๐Ÿ“š
  • SoGroup * getContainerNode(const SbName &listname, SbBool makeifneeded=1) โ€” gets the container node for listname; makeifneeded defaults to 1 ๐Ÿ—ƒ๏ธ
  • virtual SoNode * getAnyPart(const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0) โ€” gets the part called partname; leafcheck and publiccheck both default to 0 ๐Ÿ”Ž
  • virtual SoNodeKitPath * createPathToAnyPart(const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0, const SoPath *pathtoextend=NULL) โ€” builds a path to partname; leafcheck=0, publiccheck=0, and pathtoextend defaults to NULL ๐Ÿ›ฃ๏ธ
  • virtual SbBool setAnyPart(const SbName &partname, SoNode *from, SbBool anypart=1) โ€” sets the part partname from from; anypart defaults to 1 ๐Ÿงท
  • 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 โ€” returns the nodekit parts list ๐Ÿ“‹
  • const SbList< SoSFNode * > & getCatalogInstances(void) const โ€” returns the catalog instances ๐Ÿ—‚๏ธ
  • void catalogError(void) โ€” complains about a catalog problem ๐Ÿšจ
  • void countMyFields(SoOutput *out) โ€” counts the fields into out ๐Ÿ”ข

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

  • SoNode(void) โ€” constructor ๐Ÿฃ
  • virtual ~SoNode() โ€” destructor ๐Ÿƒ

๐ŸŽ€ Protected Member Functions inherited from SoFieldContainer ๐ŸŽ€

  • SoFieldContainer(void) โ€” constructor ๐Ÿฃ
  • ~SoFieldContainer() โ€” destructor ๐Ÿ‚

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

  • SoBase(void) โ€” constructor ๐Ÿฃ
  • virtual ~SoBase() โ€” destructor ๐ŸŒ™
  • virtual void destroy(void) โ€” destroys it ๐Ÿ’ฅ
  • SbBool hasMultipleWriteRefs(void) const โ€” does it have multiple write refs? ๐Ÿ‘€
  • SbBool writeHeader(SoOutput *out, SbBool isgroup, SbBool isengine) const โ€” writes the header to out, with isgroup and isengine ๐Ÿท๏ธ
  • void writeFooter(SoOutput *out) const โ€” writes the footer to out ๐Ÿฆถ
  • virtual const char * getFileFormatName(void) const โ€” returns the file format name ๐Ÿ“

๐Ÿ”ฅ Static Protected Member Functions ๐Ÿ”ฅ

  • static const SoFieldData ** getFieldDataPtr(void) โ€” hands back the pointer to the field data ๐Ÿ“‹
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr(void) โ€” hands back the pointer to the class nodekit catalog ๐Ÿ—‚๏ธ
  • static void startCB(void *f, SoDragger *d) โ€” the start callback, with f and d ๐Ÿšฆ
  • static void motionCB(void *f, SoDragger *d) โ€” the motion callback ๐Ÿƒ
  • static void doneCB(void *f, SoDragger *d) โ€” the done callback โœ…
  • static void fieldSensorCB(void *f, SoSensor *s) โ€” the field sensor callback ๐Ÿ“ก
  • static void valueChangedCB(void *f, SoDragger *d) โ€” the value-changed callback ๐Ÿ’ฅ

๐ŸŒˆ Static Protected Member Functions inherited from SoDragger ๐ŸŒˆ

  • static const SoFieldData ** getFieldDataPtr(void) โ€” field data pointer ๐Ÿ“‹
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr(void) โ€” class nodekit catalog pointer ๐Ÿ—‚๏ธ
  • static void childTransferMotionAndValueChangedCB(void *, SoDragger *) โ€” the child transfer-motion-and-value-changed callback ๐Ÿค
  • static void childValueChangedCB(void *, SoDragger *) โ€” the child value-changed callback ๐Ÿ’ฅ
  • static void childStartCB(void *, SoDragger *) โ€” the child start callback ๐Ÿšฆ
  • static void childMotionCB(void *, SoDragger *) โ€” the child motion callback ๐Ÿƒ
  • static void childFinishCB(void *, SoDragger *) โ€” the child finish callback ๐Ÿ
  • static void childOtherEventCB(void *, SoDragger *) โ€” the child other-event callback ๐ŸŽช

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

  • static const SoFieldData ** getFieldDataPtr(void) โ€” field data pointer ๐Ÿ“‹
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr(void) โ€” class nodekit catalog pointer ๐Ÿ—‚๏ธ
  • static void readDefaultParts(const char *fileName, const char defaultBuffer[], int defBufSize) โ€” reads the default parts from fileName, using defaultBuffer[] and defBufSize ๐Ÿ“ฅ
  • static void fieldSensorCB(void *, SoSensor *) โ€” the field sensor callback ๐Ÿ“ก

โœจ Static Protected Member Functions inherited from SoBaseKit โœจ

  • static const SoFieldData ** getFieldDataPtr(void) โ€” field data pointer ๐Ÿ“‹
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr(void) โ€” class nodekit catalog pointer ๐Ÿ—‚๏ธ

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

  • static const SoFieldData ** getFieldDataPtr(void) โ€” field data pointer ๐Ÿ“‹
  • static void setNextActionMethodIndex(int index) โ€” sets the next action method index to index ๐Ÿ”ข
  • static int getNextActionMethodIndex(void) โ€” returns that index ๐Ÿ”ข
  • static void incNextActionMethodIndex(void) โ€” increments it โฌ†๏ธ
  • static void setCompatibilityTypes(const SoType &nodetype, const uint32_t bitmask) โ€” sets the compatibility types for nodetype with that bitmask ๐Ÿงฌ

๐ŸŽ€ Static Protected Member Functions inherited from SoBase ๐ŸŽ€

  • static uint32_t getCurrentWriteCounter(void) โ€” returns the current write counter ๐Ÿ”ข
  • static void staticDataLock(void) โ€” locks the static data ๐Ÿ”’
  • static void staticDataUnlock(void) โ€” unlocks it ๐Ÿ”“

๐Ÿ’– Protected Attributes ๐Ÿ’–

  • SoSFNode feedback โ€” the feedback node ๐Ÿ“ข
  • SoSFNode feedbackActive โ€” the active feedback node โšก
  • SoSFNode feedbackSwitch โ€” the switch that decides which feedback shows ๐Ÿ”€
  • SoSFNode rotator โ€” the rotator node ๐ŸŽก
  • SoSFNode rotatorActive โ€” the active rotator node โšก
  • SoSFNode rotatorSwitch โ€” the switch for the rotator ๐Ÿ”€
  • SoFieldSensor * fieldSensor โ€” pointer to the field sensor ๐Ÿ“ก
  • SbMatrix prevMotionMatrix โ€” the previous motion matrix ๐Ÿงฎ
  • SbVec3f prevWorldHitPt โ€” the previous world hit point ๐ŸŽฏ
  • SbSphereProjector * sphereProj โ€” pointer to the sphere projector ๐Ÿ”ฎ
  • SbBool userProj โ€” whether a user projector is in play ๐Ÿ™‹

๐ŸŒŸ 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 child list ๐Ÿ‘ถ
  • SbBool connectionsSetUp โ€” whether the connections are set up ๐Ÿ”—

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

  • uint32_t uniqueId โ€” the node's unique id ๐Ÿ†”

โœจ Protected Attributes inherited from SoFieldContainer โœจ

  • SbBool isBuiltIn โ€” is it built in? ๐Ÿ 

๐Ÿ‘‘ Additional Inherited Members ๐Ÿ‘‘

๐ŸŽญ Public Types inherited from SoDragger ๐ŸŽญ

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

๐ŸŽช Public Types inherited from SoInteractionKit ๐ŸŽช

  • enum CacheEnabled { OFF, ON, AUTO } โ€” caching options: 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 } โ€” all the node type flags, each with its own hex value, exactly as listed ๐Ÿ“‡

๐ŸŒ™ Protected Types inherited from SoBase ๐ŸŒ™

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

โญ Static Protected Attributes inherited from SoNode โญ

  • static uint32_t nextUniqueId = 0 โ€” the next unique id, starting at 0 ๐Ÿ”ข
  • static int nextActionMethodIndex = 0 โ€” the next action method index, starting at 0 ๐Ÿ”ข

๐Ÿฆ‹ Detailed Description ๐Ÿฆ‹

okay so the SoRotateSphericalDragger class is for rotating geometry in any direction. like, any. all of them. no limits ๐Ÿ’ซ

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

๐Ÿ–ผ๏ธ (picture of the dragger sitting there, inactive, looking cute and slightly bored)

Use an instance of this dragger class in your scenegraph to let the end-users of your application rotate geometry freely in any direction. give the people what they want ๐Ÿ”ฅ

For the initial dragger orientation and the dragger geometry positioning itself, use some kind of transformation node in your scenegraph, as usual. you already know this one, bestie ๐Ÿ’…

๐Ÿ’– Constructor & Destructor Documentation ๐Ÿ’–

๐ŸŽ€ SoRotateSphericalDragger::SoRotateSphericalDragger (void)

Okay bestie, this is the default constructor, and no cap it does a LOT โ€” it sets up the dragger nodekit catalog with all the interaction and feedback geometry. She's built different fr fr.

Node kit structure, and heads up: new entries versus the parent class get marked with an arrow prefix ๐Ÿ‘‘

CLASS SoRotateSphericalDragger
-->"this"
      "callbackList"
      "topSeparator"
         "motionMatrix"
         "geomSeparator"
-->         "rotatorSwitch"
-->            "rotator"
-->            "rotatorActive"
-->         "feedbackSwitch"
-->            "feedback"
-->            "feedbackActive"

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

The deets on the catalog parts, bestie:

CLASS SoRotateSphericalDragger
PVT   "this",  SoRotateSphericalDragger  ---
      "callbackList",  SoNodeKitListPart [ SoCallback, SoEventCallback ]
PVT   "topSeparator",  SoSeparator  ---
PVT   "motionMatrix",  SoMatrixTransform  ---
PVT   "geomSeparator",  SoSeparator  ---
PVT   "rotatorSwitch",  SoSwitch  ---
      "rotator",  SoSeparator  ---
      "rotatorActive",  SoSeparator  ---
PVT   "feedbackSwitch",  SoSwitch  ---
      "feedback",  SoSeparator  ---
      "feedbackActive",  SoSeparator  ---

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

References: SoDragger::addFinishCallback(), SoDragger::addMotionCallback(), SoDragger::addStartCallback(), SoDragger::addValueChangedCallback(), doneCB(), fieldSensor, fieldSensorCB(), motionCB(), SoInteractionKit::readDefaultParts(), rotation, SoInteractionKit::setPartAsDefault(), SoInteractionKit::setSwitchValue(), setUpConnections(), SoRotateSphericalDragger(), sphereProj, startCB(), userProj, and valueChangedCB().

Referenced by copyContents(), doneCB(), fieldSensorCB(), getFieldData(), motionCB(), SoRotateSphericalDragger(), startCB(), and valueChangedCB().


๐ŸŒธ SoRotateSphericalDragger::~SoRotateSphericalDragger () [protected]

Protected destructor, bestie ๐Ÿซถ

(Dragger classes are derived from SoBase, so they are reference counted and automatically destroyed when their reference count goes to 0. She leaves when nobody's holding on anymore, iconic behaviour tbh.)

References: fieldSensor, sphereProj, and userProj.


โœจ Member Function Documentation โœจ

๐Ÿฆ‹ SoType SoRotateSphericalDragger::getTypeId (void ) const [virtual]

Returns the type identification of an object derived from a class inheriting SoBase. This is what you use for run-time type checking and "downward" casting. Very much the vibe check of the type system ๐Ÿ’…

Usage example:

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

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 * SoRotateSphericalDragger::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 thing โœจ

Reimplemented from SoDragger.

References: SoRotateSphericalDragger().


โญ const SoNodekitCatalog * SoRotateSphericalDragger::getNodekitCatalog (void ) const [virtual]

Returns the nodekit catalog which defines the layout of this class' kit. The blueprint, the floor plan, the whole layout bestie ๐Ÿ“

Reimplemented from SoDragger.


๐Ÿ’… void SoRotateSphericalDragger::setProjector (SbSphereProjector * p)

Replace the default sphere projection strategy. You may wanna do this if you change the dragger geometry, for instance.

The default projection is an SbSpherePlaneProjector.

See also: SbSphereSectionProjector, SbSphereSheetProjector

References: sphereProj, and userProj.


๐ŸŽ€ const SbSphereProjector * SoRotateSphericalDragger::getProjector (void ) const

Returns the projector instance used for converting from user interaction dragger movements to 3D dragger re-orientation. Lowkey the translator between your mouse and 3D space ๐ŸŒธ

See also: setProjector()

References: sphereProj.


๐Ÿ‘‘ SbBool SoRotateSphericalDragger::setUpConnections (SbBool onoff, SbBool doitalways = 0) [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.)

Reimplemented from SoInteractionKit.

References: SoBaseKit::connectionsSetUp, fieldSensor, fieldSensorCB(), rotation, and SoBaseKit::setUpConnections().

Referenced by SoRotateSphericalDragger().


๐Ÿงš void SoRotateSphericalDragger::copyContents (const SoFieldContainer * from, SbBool copyconnections) [protected], [virtual]

Makes a deep copy of all data of from into this instance, except external scenegraph references if copyconnections is FALSE.

This is the protected method that should be overridden by extension node / engine / dragger / whatever subclasses which needs to account for internal data that are not handled automatically.

For copying nodes from application code, you should not invoke this function directly, but rather call the SoNode::copy() function:

SoNode * mynewnode = templatenode->copy();

The same also goes for engines.

Make sure that when you override the copyContents() method in your extension class that you also make it call upwards to it's parent superclass in the inheritance hierarchy, as copyContents() in for instance SoNode and SoFieldContainer does important work. It should go something like this:

void
MyCoinExtensionNode::copyContents(const SoFieldContainer * from,
                                  SbBool copyconnections)
{
  // let parent superclasses do their thing (copy fields, copy
  // instance name, etc etc)
  SoNode::copyContents(from, copyconnections);

  // [..then copy internal data..]
}

Reimplemented from SoInteractionKit.

References: SbProjector::copy(), SoFieldContainer::copyContents(), SoBase::isOfType(), SoRotateSphericalDragger(), sphereProj, and userProj.


๐Ÿ’œ void SoRotateSphericalDragger::startCB (void * f, SoDragger * d) [static], [protected]

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

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

Referenced by SoRotateSphericalDragger().


๐Ÿ”ฅ void SoRotateSphericalDragger::motionCB (void * f, SoDragger * d) [static], [protected]

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

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

Referenced by SoRotateSphericalDragger().


๐ŸŒธ void SoRotateSphericalDragger::doneCB (void * f, SoDragger * d) [static], [protected]

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

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

Referenced by SoRotateSphericalDragger().


๐Ÿ“ void SoRotateSphericalDragger::fieldSensorCB (void * d, SoSensor * s) [static], [protected]

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

References: SoDragger::getMotionMatrix(), SbMatrix::getTransform(), rotation, SoDragger::setMotionMatrix(), SbMatrix::setTransform(), and SoRotateSphericalDragger().

Referenced by setUpConnections(), and SoRotateSphericalDragger().


๐Ÿ’– void SoRotateSphericalDragger::valueChangedCB (void * f, SoDragger * d) [static], [protected]

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

References: SoFieldSensor::attach(), SoFieldSensor::detach(), fieldSensor, SoDragger::getMotionMatrix(), SbMatrix::getTransform(), rotation, SoDragger::SoDragger(), and SoRotateSphericalDragger().

Referenced by SoRotateSphericalDragger().


๐Ÿฆ‹ void SoRotateSphericalDragger::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. Main character moment โœจ

References: SoDragger::BACK, SoDragger::FRONT, SoDragger::getFrontOnProjector(), SoDragger::getLocalStartingPoint(), SoDragger::getLocalToWorldMatrix(), SoDragger::getMotionMatrix(), SoDragger::getNormalizedLocaterPosition(), SoDragger::getViewVolume(), SbVec3f::length(), SbMatrix::multVecMatrix(), prevMotionMatrix, prevWorldHitPt, SoInteractionKit::setSwitchValue(), sphereProj, and SoDragger::USE_PICK.

Referenced by startCB().


๐ŸŒˆ void SoRotateSphericalDragger::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. That's the whole moment-to-moment vibe right there ๐Ÿซถ

References: SoDragger::appendRotation(), SoDragger::getLocalToWorldMatrix(), SoDragger::getNormalizedLocaterPosition(), SoDragger::getViewVolume(), SoDragger::getWorldToLocalMatrix(), SbMatrix::multVecMatrix(), prevMotionMatrix, prevWorldHitPt, SoDragger::setMotionMatrix(), and sphereProj.

Referenced by motionCB().


๐ŸŽ€ void SoRotateSphericalDragger::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. The little goodbye moment ๐Ÿ’œ

References: SoInteractionKit::setSwitchValue().

Referenced by doneCB().

โœจ Member Data Documentation โœจ

Okay bestie, these are the data members โ€” the little fields that hold the dragger's whole vibe. Let's get into it. ๐Ÿ’–

SoSFRotation SoRotateSphericalDragger::rotation

This field is continuously updated to contain the rotation of the current direction vector of the dragger. ๐Ÿ’ซ

The application programmer using this dragger in his scenegraph should connect the relevant node fields in the scene to this field to make them follow the dragger orientation. Periodt.

Referenced by fieldSensorCB(), setUpConnections(), SoRotateSphericalDragger(), and valueChangedCB().

SoFieldSensor* SoRotateSphericalDragger::fieldSensor [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. (iykyk, it's giving backend bestie. ๐Ÿซถ)

Referenced by setUpConnections(), SoRotateSphericalDragger(), valueChangedCB(), and ~SoRotateSphericalDragger().

SbMatrix SoRotateSphericalDragger::prevMotionMatrix [protected]

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

Referenced by drag(), and dragStart().

SbVec3f SoRotateSphericalDragger::prevWorldHitPt [protected]

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

Referenced by drag(), and dragStart().

SbSphereProjector* SoRotateSphericalDragger::sphereProj [protected]

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

Referenced by copyContents(), drag(), dragStart(), getProjector(), setProjector(), SoRotateSphericalDragger(), and ~SoRotateSphericalDragger().

SbBool SoRotateSphericalDragger::userProj [protected]

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

Referenced by copyContents(), setProjector(), SoRotateSphericalDragger(), and ~SoRotateSphericalDragger().


๐Ÿ‘‘ Author

Generated automatically by Doxygen for Coin from the source code. No cap, the robot did it. โœจ


This page is from Coin, version 2.5.0 โ€” and if a date was supposed to be here, it's not in the footer, bestie. Either way, slay. ๐Ÿ’–
๐Ÿ“ฆ where this page comes from