SODIRECTIONALLIGHTDRAGGER(3coin2)

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

๐Ÿ’– SoDirectionalLightDragger(3) ๐Ÿ’–

Library Functions Manual โ€” yes bestie, this is the whole library-functions-manual energy, we're in 3 territory, section three, the C library function zone. ๐ŸŒธ


โœจ NAME โœจ

SoDirectionalLightDragger โ€” okay so this class is literally the interactive geometry for manipulating a directional light source. That's the whole job. You grab it, you drag it, the light does a little turn. Main character energy for your scene's key light. ๐Ÿ‘‘


๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

#include <Inventor/draggers/SoDirectionalLightDragger.h>

Inherits SoDragger. (so it's got all the dragger genes, we love a family tree ๐Ÿงฌ)

๐Ÿ’… Public Member Functions

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

๐ŸŒˆ Public Member Functions inherited from SoDragger

the whole entire inheritance bag, no cap, every single one:

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

๐ŸŽ€ Public Member Functions inherited from SoInteractionKit

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

๐Ÿงš Public Member Functions inherited from SoBaseKit

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

โญ Public Member Functions inherited from SoNode

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

๐Ÿ“ Public Member Functions inherited from SoFieldContainer

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

๐Ÿ’œ Public Member Functions inherited from SoBase

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

๐Ÿ‘‘ Static Public Member Functions

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

๐Ÿ”ฅ Static Public Member Functions inherited from SoDragger

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

๐ŸŒธ Static Public Member Functions inherited from SoInteractionKit

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

๐Ÿฆ„ Static Public Member Functions inherited from SoBaseKit

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

๐ŸŒŸ Static Public Member Functions inherited from SoNode

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

okay that's the whole SYNOPSIS dump, bestie โ€” every single signature, every inherited function, nothing skipped. more of this page is coming, don't go anywhere ๐Ÿ’–

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

okay so these are the static public functions you inherit for free from SoFieldContainer, no cap, and they are doing the absolute most ๐Ÿ’…

  • static void initClass (void) โ€” the classic class-setup ritual every Coin class pulls off once so the type system knows it exists โœจ
  • static SoType getClassTypeId (void) โ€” hands you back the SoType for this class, your little class ID card ๐ŸŽ€
  • static void initCopyDict (void) โ€” kicks off the copy dictionary, which is the whole bookkeeping situation for copy operations ๐Ÿ“–
  • static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) โ€” logs a fresh original-to-copy pairing into that copy dict, one entry at a time ๐Ÿ’ซ
  • static SoFieldContainer * checkCopy (const SoFieldContainer *orig) โ€” peeks in the copy dict to see if orig already got itself a copy ๐Ÿ”
  • static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections) โ€” hunts down the copy for orig, and copyconnections is there to tell it whether connections matter in that hunt ๐Ÿ‘€
  • static void copyDone (void) โ€” wraps the whole copy dictionary thing up when you're finished, bye bestie ๐Ÿ‘‹

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

and these? inherited from SoBase, the ancestor of literally everything. main character origin story energy ๐Ÿ‘‘

  • static void initClass (void) โ€” same vibe as above, the init incantation, just from SoBase's side of the family ๐ŸŒธ
  • static SoType getClassTypeId (void) โ€” the SoType for SoBase, as one does ๐Ÿ’…
  • static void addName (SoBase *const base, const char *const name) โ€” gives base the name name so you can find it later by that name ๐Ÿท๏ธ
  • static void removeName (SoBase *const base, const char *const name) โ€” takes that name right back off again, no hard feelings ๐Ÿ’”
  • static void incrementCurrentWriteCounter (void) โ€” bumps the current write counter up by one โฌ†๏ธ
  • static void decrementCurrentWriteCounter (void) โ€” and drops it back down by one โฌ‡๏ธ
  • static SoBase * getNamedBase (const SbName &name, SoType type) โ€” looks up a named base of the given type by its name ๐Ÿ”Ž
  • static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) โ€” same quest but it collects a whole list of them into baselist, and returns an int for its trouble ๐Ÿ“š
  • static SbBool read (SoInput *in, SoBase *&base, SoType expectedtype) โ€” reads a base in from in, dropping it into base, with expectedtype as the thing it's expecting ๐Ÿซถ
  • static void setInstancePrefix (const SbString &c) โ€” sets the instance prefix to c, periodt โœจ
  • static void setTraceRefs (SbBool trace) โ€” flips reference tracing on or off based on trace ๐Ÿ•ต๏ธ
  • static SbBool getTraceRefs (void) โ€” tells you the current state of that reference tracing ๐Ÿ™ˆ
  • static SbBool connectRoute (SoInput *in, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) โ€” wires up a route going from fromnodename/fromfieldname to tonodename/tofieldname, reading through in ๐Ÿงš
  • static SbBool readRoute (SoInput *in) โ€” reads a route out of in, that's it, that's the function ๐ŸŒˆ

๐ŸŒŸ Public Attributes ๐ŸŒŸ

the actual vibes you get to play with:

  • SoSFRotation rotation โ€” the rotation field, single-value, ready for you to spin things with ๐ŸŒ€
  • SoSFVec3f translation โ€” the translation field, a SbVec3f, so you can move stuff around ๐Ÿ“

Public Attributes inherited from SoDragger

  • SoSFBool isActive โ€” a boolean telling you whether the dragger is active or not. lowkey the most important one here ๐Ÿ’€

Public Attributes inherited from SoInteractionKit

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

๐Ÿซถ Protected Member Functions ๐Ÿซถ

the inner-circle stuff, protected, not for just anyone:

  • virtual const SoFieldData * getFieldData (void) const โ€” returns the field data, virtually, const-ly ๐Ÿ’œ
  • ~SoDirectionalLightDragger () โ€” the destructor, doing its quiet little cleanup ๐Ÿ˜Œ
  • virtual SbBool setUpConnections (SbBool onoff, SbBool doitalways=0) โ€” sets up connections according to onoff, and doitalways defaults to 0 ๐Ÿ”Œ
  • virtual void setDefaultOnNonWritingFields (void) โ€” sets the defaults on the non-writing fields, exactly like it says โœ๏ธ

Protected Member Functions inherited from SoDragger

  • SoDragger (void) โ€” constructor ๐Ÿฃ
  • virtual ~SoDragger () โ€” destructor ๐Ÿ’ซ
  • SbVec2f getNormalizedLocaterPosition (void) โ€” normalized locater position as an SbVec2f ๐Ÿ“
  • SbVec2s getLocaterPosition (void) โ€” locater position as an SbVec2s ๐Ÿ“
  • SbVec2s getStartLocaterPosition (void) const โ€” the locater position where things started, const ๐Ÿšฉ
  • void setStartLocaterPosition (SbVec2s p) โ€” sets that start locater position to p ๐Ÿ“Œ
  • SbBool isAdequateConstraintMotion (void) โ€” tells you whether the constraint motion is adequate, yes that's the whole function ๐Ÿคท
  • virtual SbBool shouldGrabBasedOnSurrogate (const SoPath *pickpath, const SoPath *surrogatepath) โ€” decides if a grab should happen, based on the surrogate, using pickpath and surrogatepath ๐Ÿซด
  • void setCameraInfo (SoAction *action) โ€” sets camera info from action ๐ŸŽฅ
  • virtual void handleEvent (SoHandleEventAction *ha) โ€” handles the event coming through ha ๐ŸŽช
  • void transferMotion (SoDragger *child) โ€” transfers motion over to child ๐Ÿ”„
  • void setIgnoreInBbox (SbBool newval) โ€” sets the ignore-in-bbox flag to newval ๐Ÿšซ
  • SbBool isIgnoreInBbox (void) โ€” asks whether ignore-in-bbox is on โ“
  • virtual void getBoundingBox (SoGetBoundingBoxAction *action) โ€” grabs the bounding box via action ๐Ÿ“ฆ
  • void setActiveChildDragger (SoDragger *newchilddragger) โ€” sets the active child dragger to newchilddragger ๐Ÿ‘ถ
  • SoDragger * getActiveChildDragger (void) const โ€” returns the active child dragger, const ๐Ÿงธ
  • void updateDraggerCache (const SoPath *path) โ€” refreshes the dragger cache for path ๐Ÿ—‚๏ธ

Protected Member Functions inherited from SoInteractionKit

  • virtual ~SoInteractionKit () โ€” destructor ๐ŸŒ™
  • virtual void copyContents (const SoFieldContainer *fromFC, SbBool copyConnections) โ€” copies contents from fromFC, with copyConnections deciding whether connections come along ๐Ÿ“‹
  • virtual SbBool setPart (const int partNum, SoNode *node) โ€” sets part number partNum to node ๐Ÿงฉ
  • virtual SbBool readInstance (SoInput *in, unsigned short flags) โ€” reads an instance from in with flags ๐Ÿ“ฅ
  • virtual SbBool setAnyPartAsDefault (const SbName &partname, SoNode *node, SbBool anypart=1, SbBool onlyifdefault=1) โ€” sets any part named partname to node as a default; 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 pass a nodename instead of a node; anypart=1 and onlyifdefault=1 again ๐Ÿ”
  • SbBool setAnySurrogatePath (const SbName &name, SoPath *path, SbBool leafcheck=0, SbBool publiccheck=0) โ€” sets the surrogate path for name to path; leafcheck defaults to 0, publiccheck defaults to 0 ๐ŸŒฟ
  • void connectSeparatorFields (SoSeparator *dest, SbBool onOff) โ€” connects separator fields on dest based on onOff ๐Ÿ”—

Protected Member Functions inherited from SoBaseKit

  • virtual ~SoBaseKit () โ€” destructor ๐ŸŽˆ
  • virtual SoNode * addToCopyDict (void) const โ€” adds this thing to the copy dictionary, const, returns an SoNode * ๐Ÿ“–
  • SoGroup * getContainerNode (const SbName &listname, SbBool makeifneeded=1) โ€” gets the container node for listname, with makeifneeded defaulting to 1 ๐Ÿ—ƒ๏ธ
  • virtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0) โ€” gets any part named partname; makeifneeded has no default, leafcheck=0, publiccheck=0 ๐ŸŽ
  • virtual SoNodeKitPath * createPathToAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0, const SoPath *pathtoextend=NULL) โ€” builds a path to any part; leafcheck=0, publiccheck=0, and pathtoextend defaults to NULL ๐Ÿ›ค๏ธ
  • virtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=1) โ€” sets any part named partname from from, with anypart defaulting 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 ๐Ÿ“œ
  • const SbList< SoSFNode * > & getCatalogInstances (void) const โ€” returns the catalog instances as a const reference to SbList< SoSFNode * > ๐Ÿ—‚๏ธ
  • void catalogError (void) โ€” the catalog error situation ๐Ÿ˜ญ
  • void countMyFields (SoOutput *out) โ€” counts my fields, writing 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, virtually ๐Ÿ’ฅ
  • SbBool hasMultipleWriteRefs (void) const โ€” asks if there are multiple write refs, const ๐Ÿ”
  • SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const โ€” writes a header into out, with isgroup and isengine flags, const ๐Ÿ“„
  • void writeFooter (SoOutput *out) const โ€” writes the footer into out, const ๐Ÿ“„
  • virtual const char * getFileFormatName (void) const โ€” returns the file format name as a const char *, const, virtual ๐Ÿท๏ธ

๐Ÿ’… Static Protected Member Functions ๐Ÿ’…

  • static const SoFieldData ** getFieldDataPtr (void) โ€” returns a pointer-to-pointer to the field data, iconic double-pointer behavior โœจ
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) โ€” returns a pointer-to-pointer to the class nodekit catalog ๐Ÿ—‚๏ธ
  • static void fieldSensorCB (void *f, SoSensor *s) โ€” the field sensor callback, taking f and s ๐ŸŽ›๏ธ
  • static void valueChangedCB (void *f, SoDragger *d) โ€” the value-changed callback, taking f and a SoDragger *d ๐Ÿ””

Static Protected Member Functions inherited from SoDragger

  • static const SoFieldData ** getFieldDataPtr (void) โ€” the field data pointer-to-pointer, again ๐ŸŒ€
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) โ€” the nodekit catalog pointer-to-pointer, again ๐ŸŒ€
  • static void childTransferMotionAndValueChangedCB (void *, SoDragger *) โ€” callback for when a child transfers motion and the value changes ๐Ÿšธ
  • static void childValueChangedCB (void *, SoDragger *) โ€” callback for when a child's value changes ๐Ÿ””
  • static void childStartCB (void *, SoDragger *) โ€” callback for when a child starts โ–ถ๏ธ
  • static void childMotionCB (void *, SoDragger *) โ€” callback for child motion ๐Ÿƒ
  • static void childFinishCB (void *, SoDragger *) โ€” callback for when a child finishes ๐Ÿ
  • static void childOtherEventCB (void *, SoDragger *) โ€” callback for other child events ๐Ÿคน

Static Protected Member Functions inherited from SoInteractionKit

  • static const SoFieldData ** getFieldDataPtr (void) โ€” yep, field data pointer-to-pointer ๐ŸŒ€
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) โ€” yep, nodekit catalog pointer-to-pointer ๐ŸŒ€
  • static void readDefaultParts (const char *fileName, const char defaultBuffer[], int defBufSize) โ€” reads default parts from fileName, with defaultBuffer[] and a buffer size 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-to-pointer, take three ๐ŸŒ€
  • static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void) โ€” nodekit catalog pointer-to-pointer, take three ๐ŸŒ€

Static Protected Member Functions inherited from SoNode

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

Static Protected Member Functions inherited from SoBase

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

๐Ÿงš Protected Attributes ๐Ÿงš

  • SoSFNode material โ€” the material node field ๐Ÿชž
  • SoSFNode rotator โ€” the rotator node field ๐ŸŒ€
  • SoSFNode translator โ€” the translator node field ๐Ÿšš
  • SoSFNode translatorRotInv โ€” the translator rotation inverse node field ๐Ÿ”„
  • SoSFNode translatorSep โ€” the translator separator node field ๐Ÿ—‚๏ธ
  • SoFieldSensor * rotFieldSensor โ€” a pointer to the rotation field sensor ๐Ÿ“ก
  • SoFieldSensor * translFieldSensor โ€” a pointer to the translation field sensor ๐Ÿ“ก

Protected Attributes inherited from SoDragger

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

Protected Attributes inherited from SoInteractionKit

  • SoSFNode geomSeparator โ€” the geometry separator node field ๐Ÿ“
  • SoSFNode topSeparator โ€” the top separator node field ๐Ÿ”
  • SoFieldSensor * fieldSensor โ€” a pointer to the field sensor ๐Ÿ“ก
  • SoSeparator * oldTopSep โ€” a pointer to the old top separator ๐Ÿ•ฐ๏ธ

Protected Attributes inherited from SoBaseKit

  • SoSFNode callbackList โ€” the callback list node field ๐Ÿ“ž
  • SoChildList * children โ€” a pointer to the child list ๐Ÿ‘ถ
  • SbBool connectionsSetUp โ€” a boolean tracking whether connections are set up ๐Ÿ”Œ

Protected Attributes inherited from SoNode

  • uint32_t uniqueId โ€” the unique id, a uint32_t ๐Ÿ†”

Protected Attributes inherited from SoFieldContainer

  • SbBool isBuiltIn โ€” a boolean for whether this thing is built in ๐Ÿ—๏ธ

๐ŸŒˆ Additional Inherited Members ๐ŸŒˆ

Public Types inherited from SoDragger

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

Public Types inherited from SoInteractionKit

  • enum CacheEnabled { OFF, ON, AUTO } โ€” the cache-enabled enum, values OFF, ON, and 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 } โ€” the node type enum, and look at those hex values bestie, they are everything ๐ŸŒˆ

Protected Types inherited from SoBase

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

Static Protected Attributes inherited from SoNode

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

๐Ÿ‘‘ Detailed Description ๐Ÿ‘‘

okay so the SoDirectionalLightDragger class provides interactive geometry for manipulating a directional light source. that's the whole assignment and it ate โœจ

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

(this is where the picture of the dragger in its inactive state lives, bestie โ€” picture it looking cute and dormant ๐Ÿ˜ด)

This dragger is well suited to use for setting up the fields of a SoDirectionalLight node, as it provides geometry for the end-user to interact with a directional vector. like it's literally built for that ๐Ÿ’…

For convenience, this dragger also by default contains interaction geometry for placing the dragger itself. (SoDirectionalLight nodes don't have a position field, so this was strictly not needed.) โ€” they did it anyway because they're generous like that ๐Ÿซถ

The Coin library also includes a manipulator class, SoDirectionalLightManip, which wraps the functionality provided by this class inside the necessary mechanisms for connecting it to SoDirectionalLight node instances in a scenegraph. it's the whole outfit, not just the top ๐Ÿ”ฅ

See also

  • SoDirectionalLightManip

๐Ÿ› ๏ธ Constructor & Destructor Documentation ๐Ÿ› ๏ธ

SoDirectionalLightDragger::SoDirectionalLightDragger (void )

Okay bestie, this is the default constructor โ€” it sets up the dragger nodekit catalog with all the interaction and feedback geometry. Basically it builds the whole wardrobe before the photoshoot ๐Ÿ’…

Node kit structure โ€” and heads up, the new entries versus the parent class are marked with an arrow prefix (-->), so you know what's fresh โœจ

CLASS SoDirectionalLightDragger
-->"this"
      "callbackList"
      "topSeparator"
         "motionMatrix"
-->      "material"
-->      "translatorSep"
-->         "translatorRotInv"
-->         "translator"
-->      "rotator"
         "geomSeparator"

(If you wanna know more about that output formatting, go peep SoBaseKit::printDiagram(). iykyk ๐Ÿซถ)

Detailed info on the catalog parts, coming right up:

CLASS SoDirectionalLightDragger
PVT   "this",  SoDirectionalLightDragger  ---
      "callbackList",  SoNodeKitListPart [ SoCallback, SoEventCallback ]
PVT   "topSeparator",  SoSeparator  ---
PVT   "motionMatrix",  SoMatrixTransform  ---
      "material",  SoMaterial  ---
PVT   "translatorSep",  SoSeparator  ---
      "translatorRotInv",  SoRotation  ---
      "translator",  SoDragPointDragger  ---
      "rotator",  SoRotateSphericalDragger  ---
PVT   "geomSeparator",  SoSeparator  ---

(And for that formatting, it's SoBaseKit::printTable() ๐ŸŒธ)

References SoDragger::addValueChangedCallback(), fieldSensorCB(), SoInteractionKit::readDefaultParts(), rotation, rotFieldSensor, SoInteractionKit::setPartAsDefault(), setUpConnections(), SoDirectionalLightDragger(), SoDragger::SoDragger(), translation, translFieldSensor, and valueChangedCB().

Referenced by fieldSensorCB(), getFieldData(), SoDirectionalLightDragger(), and valueChangedCB().


SoDirectionalLightDragger::~SoDirectionalLightDragger () [protected]

The protected destructor ๐Ÿซง

Just so you know: dragger classes are derived from SoBase, so they're reference counted and get automatically destroyed when their reference count goes to 0. You literally don't have to lift a finger, she cleans up after herself. Iconic behaviour, no notes.

References rotFieldSensor, and translFieldSensor.


โšก Member Function Documentation โšก

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

Returns the type identification of an object derived from a class inheriting SoBase. This is what powers run-time type checking and "downward" casting. So useful, lowkey essential ๐Ÿ’–

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
  }
}

Okay so, for the application programmers out there who wanna extend the library with new nodes, engines, nodekits, draggers or whatever else โ€” this method has to be overridden in all the subclasses. No skipping, bestie, it's the law ๐Ÿ“œ

This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance Inventor/nodes/SoSubNode.h (that's SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine.h (for engine classes) and so on.

For more info on writing Coin extensions, go read the class documentation of the toplevel superclasses for the various class groups. It's giving โœจrequired readingโœจ.

Reimplemented from SoDragger.


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

Returns a pointer to the class-wide field data storage object for this instance. And if there are no fields present? It returns NULL. Simple as that ๐ŸŽ€

Reimplemented from SoDragger.

References SoDirectionalLightDragger().


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

Returns the nodekit catalog which defines the layout of this class' kit. It's the blueprint, the mood board, the whole vision board for this class ๐Ÿ‘‘

Reimplemented from SoDragger.


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

Sets up all the internal connections for instances of this class ๐Ÿ”—

(Real talk: this method will usually not be of interest to the application programmer, unless you wanna extend the library with new custom nodekits or dragger classes. If that's you, go check the SoBaseKit class documentation.)

Reimplemented from SoInteractionKit.

References SoBaseKit::connectionsSetUp, SoBaseKit::getAnyPart(), SoDragger::registerChildDragger(), rotation, rotFieldSensor, SoInteractionKit::setPartAsDefault(), SoBaseKit::setUpConnections(), SoDragger::SoDragger(), translation, translFieldSensor, and SoDragger::unregisterChildDragger().

Referenced by SoDirectionalLightDragger().


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

Heads up bestie: this method is unlikely to be of interest to the application programmer who does not want to extend the library with new custom nodekits or draggers. But if you are writing extensions, go read the info 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. And from the subclass, do remember to call "upwards" to your superclass' setDefaultOnNonWritingFields() method. Don't leave your ancestors hanging ๐Ÿ’…

Reimplemented from SoDragger.

References SoDragger::setDefaultOnNonWritingFields().


void SoDirectionalLightDragger::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. Moving on, nothing to see here ๐Ÿ™ˆ

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

Referenced by SoDirectionalLightDragger().


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

This API member is also considered internal to the library, so it's not likely to be of interest to the application programmer. Fr fr, it's backstage only ๐ŸŽญ

References SoFieldSensor::attach(), SoFieldSensor::detach(), SoDragger::getMotionMatrix(), SbMatrix::getTransform(), SbRotation::inverse(), rotation, SoRotation::rotation, rotFieldSensor, SoDirectionalLightDragger(), SoDragger::SoDragger(), translation, and translFieldSensor.

Referenced by SoDirectionalLightDragger().


๐Ÿ’พ Member Data Documentation ๐Ÿ’พ

SoSFRotation SoDirectionalLightDragger::rotation

This field is continuously updated to contain the rotation of the current direction vector ๐Ÿ”„

The application programmer will typically connect this to the rotation field of a SoDirectionalLight node โ€” unless you're using the SoDirectionalLightManip class, where this is taken care of automatically (she does it for you, no cap ๐Ÿซถ).

It may also, of course, be connected to any other rotation field controlling the direction of scenegraph geometry. It does not have to be part of a SoDirectionalLight node specifically. Versatile queen โœจ

Referenced by setUpConnections(), SoDirectionalLightDragger(), and valueChangedCB().


SoSFVec3f SoDirectionalLightDragger::translation

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

This field is not used by the SoDirectionalLightManip, but it may be of interest for the application programmer wanting to use the SoDirectionalLightDragger outside the context of controlling a directional light node. Do with that what you will ๐Ÿ’œ

Referenced by setUpConnections(), SoDirectionalLightDragger(), and valueChangedCB().


SoFieldSensor* SoDirectionalLightDragger::rotFieldSensor [protected]

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

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


SoFieldSensor* SoDirectionalLightDragger::translFieldSensor [protected]

This API member is considered internal to the library too, so it's not likely to be of interest to the application programmer. Same energy as above ๐Ÿ˜ญ

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


๐Ÿ‘‘ Author ๐Ÿ‘‘

Generated automatically by Doxygen for Coin from the source code. She didn't write herself, bestie, the machines did it ๐Ÿค–โœจ


And that's a wrap on the whole page, gorgeous! ๐ŸŽ€ This was Coin, Version 2.5.0 โ€” yes, the SoDirectio...ightDragger(3). Read it, loved it, no notes. Byeeee ๐Ÿ’…๐Ÿ’–

๐Ÿ“ฆ where this page comes from