SODIRECTIONALLIGHTDRAGGER(3coin2)
๐ 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 ®)
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 ¢er)
static void getTransformFast (SbMatrix &mtx, SbVec3f &translation,
SbRotation &rotation, SbVec3f &scalefactor, SbRotation
&scaleorientation)
static SbMatrix appendTranslation (const SbMatrix &mtx, const SbVec3f
&translation, const SbMatrix *conversion=NULL)
static SbMatrix appendScale (const SbMatrix &mtx, const SbVec3f &scale,
const SbVec3f &scalecenter, const SbMatrix *conversion=NULL)
static SbMatrix appendRotation (const SbMatrix &mtx, const SbRotation
&rot, const SbVec3f &rotcenter, const SbMatrix *conversion=NULL)
static void initClass (void)
static void initClasses (void)
๐ธ Static Public Member Functions inherited from SoInteractionKit
static SoType getClassTypeId (void)
static const SoNodekitCatalog * getClassNodekitCatalog (void)
static void initClass (void)
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 theSoTypefor 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 iforigalready got itself a copy ๐static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)โ hunts down the copy fororig, andcopyconnectionsis 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 fromSoBase's side of the family ๐ธstatic SoType getClassTypeId (void)โ theSoTypeforSoBase, as one does ๐static void addName (SoBase *const base, const char *const name)โ givesbasethe namenameso 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 giventypeby itsname๐static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)โ same quest but it collects a whole list of them intobaselist, and returns anintfor its trouble ๐static SbBool read (SoInput *in, SoBase *&base, SoType expectedtype)โ reads a base in fromin, dropping it intobase, withexpectedtypeas the thing it's expecting ๐ซถstatic void setInstancePrefix (const SbString &c)โ sets the instance prefix toc, periodt โจstatic void setTraceRefs (SbBool trace)โ flips reference tracing on or off based ontrace๐ต๏ธ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 fromfromnodename/fromfieldnametotonodename/tofieldname, reading throughin๐งstatic SbBool readRoute (SoInput *in)โ reads a route out ofin, 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, aSbVec3f, 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 toonoff, anddoitalwaysdefaults to0๐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 anSbVec2f๐SbVec2s getLocaterPosition (void)โ locater position as anSbVec2s๐SbVec2s getStartLocaterPosition (void) constโ the locater position where things started, const ๐ฉvoid setStartLocaterPosition (SbVec2s p)โ sets that start locater position top๐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, usingpickpathandsurrogatepath๐ซดvoid setCameraInfo (SoAction *action)โ sets camera info fromaction๐ฅvirtual void handleEvent (SoHandleEventAction *ha)โ handles the event coming throughha๐ชvoid transferMotion (SoDragger *child)โ transfers motion over tochild๐void setIgnoreInBbox (SbBool newval)โ sets the ignore-in-bbox flag tonewval๐ซSbBool isIgnoreInBbox (void)โ asks whether ignore-in-bbox is on โvirtual void getBoundingBox (SoGetBoundingBoxAction *action)โ grabs the bounding box viaaction๐ฆvoid setActiveChildDragger (SoDragger *newchilddragger)โ sets the active child dragger tonewchilddragger๐ถSoDragger * getActiveChildDragger (void) constโ returns the active child dragger, const ๐งธvoid updateDraggerCache (const SoPath *path)โ refreshes the dragger cache forpath๐๏ธ
Protected Member Functions inherited from SoInteractionKit
virtual ~SoInteractionKit ()โ destructor ๐virtual void copyContents (const SoFieldContainer *fromFC, SbBool copyConnections)โ copies contents fromfromFC, withcopyConnectionsdeciding whether connections come along ๐virtual SbBool setPart (const int partNum, SoNode *node)โ sets part numberpartNumtonode๐งฉvirtual SbBool readInstance (SoInput *in, unsigned short flags)โ reads an instance frominwithflags๐ฅvirtual SbBool setAnyPartAsDefault (const SbName &partname, SoNode *node, SbBool anypart=1, SbBool onlyifdefault=1)โ sets any part namedpartnametonodeas a default;anypartdefaults to1,onlyifdefaultdefaults to1โญvirtual SbBool setAnyPartAsDefault (const SbName &partname, const SbName &nodename, SbBool anypart=1, SbBool onlyifdefault=1)โ same deal but you pass anodenameinstead of anode;anypart=1andonlyifdefault=1again ๐SbBool setAnySurrogatePath (const SbName &name, SoPath *path, SbBool leafcheck=0, SbBool publiccheck=0)โ sets the surrogate path fornametopath;leafcheckdefaults to0,publiccheckdefaults to0๐ฟvoid connectSeparatorFields (SoSeparator *dest, SbBool onOff)โ connects separator fields ondestbased ononOff๐
Protected Member Functions inherited from SoBaseKit
virtual ~SoBaseKit ()โ destructor ๐virtual SoNode * addToCopyDict (void) constโ adds this thing to the copy dictionary, const, returns anSoNode *๐SoGroup * getContainerNode (const SbName &listname, SbBool makeifneeded=1)โ gets the container node forlistname, withmakeifneededdefaulting to1๐๏ธvirtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0)โ gets any part namedpartname;makeifneededhas 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, andpathtoextenddefaults toNULL๐ค๏ธvirtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=1)โ sets any part namedpartnamefromfrom, withanypartdefaulting to1๐งฑ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 toSbList< SoSFNode * >๐๏ธvoid catalogError (void)โ the catalog error situation ๐ญvoid countMyFields (SoOutput *out)โ counts my fields, writing intoout๐ข
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 intoout, withisgroupandisengineflags, const ๐void writeFooter (SoOutput *out) constโ writes the footer intoout, const ๐virtual const char * getFileFormatName (void) constโ returns the file format name as aconst 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, takingfands๐๏ธstatic void valueChangedCB (void *f, SoDragger *d)โ the value-changed callback, takingfand aSoDragger *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 fromfileName, withdefaultBuffer[]and a buffer sizedefBufSize๐ฅ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 toindex๐ข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 fornodetypewithbitmask๐งฌ
Static Protected Member Functions inherited from SoBase
static uint32_t getCurrentWriteCounter (void)โ returns the current write counter as auint32_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, auint32_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 valuesFRONT,BACK, andUSE_PICK๐ฏ
Public Types inherited from SoInteractionKit
enum CacheEnabled { OFF, ON, AUTO }โ the cache-enabled enum, valuesOFF,ON, andAUTO๐๏ธ
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 = 0x01andIS_GROUP = 0x02๐ฉ
Static Protected Attributes inherited from SoNode
static uint32_t nextUniqueId = 0โ the next unique id, auint32_t, starting at0๐static int nextActionMethodIndex = 0โ the next action method index, anint, starting at0๐ข
๐ 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 fromSoBase, so they're reference counted and get automatically destroyed when their reference count goes to0. 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:
- field value is
NULLand part isNULLby default - it is a leaf
SoGrouporSoSeparatornode with no children - it is a leaf listpart with no children and an
SoGrouporSoSeparatorcontainer - it is a non-leaf part and it's of
SoGrouptype 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
- fedora 43: Coin2-devel 2.5.0-52.fc43 ยท GPL-2.0-only
- fedora 43: Coin2-devel 2.5.0-52.fc43 ยท GPL-2.0-only
- fedora 44: Coin2-devel 2.5.0-54.fc44 ยท GPL-2.0-only
- fedora 44: Coin2-devel 2.5.0-54.fc44 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms