SoLightKit(3)
π¦ SoLightKit(3) β Library Functions Manual π¦
Part 1 of 2, bestie β more is coming, don't touch that dial. π
β¨ NAME β¨
SoLightKit β okay so picture this: a whole kit that hands you a transform, a light, and a shape or subgraph. It's giving one-stop glow-up station. β¨π‘
πΈ SYNOPSIS πΈ
#include <Inventor/nodekits/SoLightKit.h>
Inherits SoBaseKit. Yes bestie, that's the parent β and it came with a lot of inherited slay. π
π Public Member Functions π
virtual SoType getTypeId (void) constβ the type ID moment, iconic as always.virtual const SoNodekitCatalog * getNodekitCatalog (void) constβ grab the nodekit catalog, no cap.SoLightKit (void)β constructor, the main character entrance. π
π«Ά Public Member Functions inherited from SoBaseKit π«Ά
SoBaseKit (void)β inherited, still valid, still part of the family.virtual SoNode * getPart (const SbName &partname, SbBool makeifneeded)β inherited fromSoBaseKit.SbString getPartString (const SoBase *part)β inherited fromSoBaseKit.virtual SoNodeKitPath * createPathToPart (const SbName &partname, SbBool makeifneeded, const SoPath *pathtoextend=NULL)β inherited fromSoBaseKit.virtual SbBool setPart (const SbName &partname, SoNode *from)β inherited fromSoBaseKit.SbBool set (const char *namevaluepairliststring)β inherited fromSoBaseKit.SbBool set (const char *partnamestring, const char *parameterstring)β inherited fromSoBaseKit.virtual void doAction (SoAction *action)β inherited fromSoBaseKit.virtual void callback (SoCallbackAction *action)β inherited fromSoBaseKit.virtual void GLRender (SoGLRenderAction *action)β inherited fromSoBaseKit.virtual void getBoundingBox (SoGetBoundingBoxAction *action)β inherited fromSoBaseKit.virtual void getMatrix (SoGetMatrixAction *action)β inherited fromSoBaseKit.virtual void handleEvent (SoHandleEventAction *action)β inherited fromSoBaseKit.virtual void rayPick (SoRayPickAction *action)β inherited fromSoBaseKit.virtual void search (SoSearchAction *action)β inherited fromSoBaseKit.virtual void write (SoWriteAction *action)β inherited fromSoBaseKit.virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)β inherited fromSoBaseKit.virtual SoChildList * getChildren (void) constβ inherited fromSoBaseKit.void printDiagram (void)β inherited fromSoBaseKit.void printSubDiagram (const SbName &rootname, int level)β inherited fromSoBaseKit.void printTable (void)β inherited fromSoBaseKit.virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)β inherited fromSoBaseKit.SbBool forceChildDrivenWriteRefs (SoOutput *out)β inherited fromSoBaseKit.
π Public Member Functions inherited from SoNode π
void setOverride (const SbBool state)β inherited fromSoNode.SbBool isOverride (void) constβ inherited fromSoNode.void setNodeType (const NodeType type)β inherited fromSoNode.NodeType getNodeType (void) constβ inherited fromSoNode.virtual SoNode * copy (SbBool copyconnections=FALSE) constβ inherited fromSoNode.virtual SbBool affectsState (void) constβ inherited fromSoNode.virtual void GLRenderBelowPath (SoGLRenderAction *action)β inherited fromSoNode.virtual void GLRenderInPath (SoGLRenderAction *action)β inherited fromSoNode.virtual void GLRenderOffPath (SoGLRenderAction *action)β inherited fromSoNode.virtual void pick (SoPickAction *action)β inherited fromSoNode.virtual void audioRender (SoAudioRenderAction *action)β inherited fromSoNode.virtual void grabEventsSetup (void)β inherited fromSoNode.virtual void grabEventsCleanup (void)β inherited fromSoNode.virtual void startNotify (void)β inherited fromSoNode.virtual void notify (SoNotList *l)β inherited fromSoNode.uint32_t getNodeId (void) constβ inherited fromSoNode.virtual void writeInstance (SoOutput *out)β inherited fromSoNode.virtual SoFieldContainer * copyThroughConnection (void) constβ inherited fromSoNode.
π Public Member Functions inherited from SoFieldContainer π
void setToDefaults (void)β inherited fromSoFieldContainer.SbBool hasDefaultValues (void) constβ inherited fromSoFieldContainer.SbBool fieldsAreEqual (const SoFieldContainer *container) constβ inherited fromSoFieldContainer.void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)β inherited fromSoFieldContainer.SbBool set (const char *const fielddata)β inherited fromSoFieldContainer.void get (SbString &fielddata)β inherited fromSoFieldContainer.virtual int getFields (SoFieldList &l) constβ inherited fromSoFieldContainer.virtual int getAllFields (SoFieldList &l) constβ inherited fromSoFieldContainer.virtual SoField * getField (const SbName &name) constβ inherited fromSoFieldContainer.virtual SoField * getEventIn (const SbName &name) constβ inherited fromSoFieldContainer.virtual SoField * getEventOut (const SbName &name) constβ inherited fromSoFieldContainer.SbBool getFieldName (const SoField *const field, SbName &name) constβ inherited fromSoFieldContainer.SbBool enableNotify (const SbBool flag)β inherited fromSoFieldContainer.SbBool isNotifyEnabled (void) constβ inherited fromSoFieldContainer.SbBool set (const char *fielddata, SoInput *input)β inherited fromSoFieldContainer.void get (SbString &fielddata, SoOutput *out)β inherited fromSoFieldContainer.virtual SbBool validateNewFieldValue (SoField *field, void *newval)β inherited fromSoFieldContainer.SbBool getIsBuiltIn (void) constβ inherited fromSoFieldContainer.virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constβ inherited fromSoFieldContainer.void setUserData (void *userdata) constβ inherited fromSoFieldContainer.void * getUserData (void) constβ inherited fromSoFieldContainer.
π Public Member Functions inherited from SoBase π
void ref (void) constβ inherited fromSoBase.void unref (void) constβ inherited fromSoBase.void unrefNoDelete (void) constβ inherited fromSoBase.int32_t getRefCount (void) constβ inherited fromSoBase.void touch (void)β inherited fromSoBase.SbBool isOfType (SoType type) constβ inherited fromSoBase.virtual SbName getName (void) constβ inherited fromSoBase.virtual void setName (const SbName &newname)β inherited fromSoBase.void addAuditor (void *const auditor, const SoNotRec::Type type)β inherited fromSoBase.void removeAuditor (void *const auditor, const SoNotRec::Type type)β inherited fromSoBase.const SoAuditorList & getAuditors (void) constβ inherited fromSoBase.SbBool shouldWrite (void)β inherited fromSoBase.void assertAlive (void) constβ inherited fromSoBase.
β Static Public Member Functions β
static SoType getClassTypeId (void)β static public, still iconic.static const SoNodekitCatalog * getClassNodekitCatalog (void)β static public.static void initClass (void)β static public.
π Static Public Member Functions inherited from SoBaseKit π
static SoType getClassTypeId (void)β inherited fromSoBaseKit.static void initClass (void)β inherited fromSoBaseKit.static const SoNodekitCatalog * getClassNodekitCatalog (void)β inherited fromSoBaseKit.static SbBool isSearchingChildren (void)β inherited fromSoBaseKit.static void setSearchingChildren (const SbBool newval)β inherited fromSoBaseKit.
π₯ Static Public Member Functions inherited from SoNode π₯
static uint32_t getCompatibilityTypes (const SoType &nodetype)β inherited fromSoNode.static SoType getClassTypeId (void)β inherited fromSoNode.static SoNode * getByName (const SbName &name)β inherited fromSoNode.static int getByName (const SbName &name, SoNodeList &l)β inherited fromSoNode.static void initClass (void)β inherited fromSoNode.static void initClasses (void)β inherited fromSoNode.static uint32_t getNextNodeId (void)β inherited fromSoNode.static int getActionMethodIndex (const SoType type)β inherited fromSoNode.static void getBoundingBoxS (SoAction *action, SoNode *node)β inherited fromSoNode.static void GLRenderS (SoAction *action, SoNode *node)β inherited fromSoNode.static void callbackS (SoAction *action, SoNode *node)β inherited fromSoNode.static void getMatrixS (SoAction *action, SoNode *node)β inherited fromSoNode.static void handleEventS (SoAction *action, SoNode *node)β inherited fromSoNode.static void pickS (SoAction *action, SoNode *node)β inherited fromSoNode.static void rayPickS (SoAction *action, SoNode *node)β inherited fromSoNode.static void searchS (SoAction *action, SoNode *node)β inherited fromSoNode.static void writeS (SoAction *action, SoNode *node)β inherited fromSoNode.static void audioRenderS (SoAction *action, SoNode *node)β inherited fromSoNode.static void getPrimitiveCountS (SoAction *action, SoNode *node)β inherited fromSoNode.
π Static Public Member Functions inherited from SoFieldContainer π
static void initClass (void)β inherited fromSoFieldContainer.static SoType getClassTypeId (void)β inherited fromSoFieldContainer.static void cleanupClass (void)β inherited fromSoFieldContainer.static void initCopyDict (void)β inherited fromSoFieldContainer.static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)β inherited fromSoFieldContainer.static SoFieldContainer * checkCopy (const SoFieldContainer *orig)β inherited fromSoFieldContainer.static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)β inherited fromSoFieldContainer.static void copyDone (void)β inherited fromSoFieldContainer.
π¦ Static Public Member Functions inherited from SoBase π¦
static void initClass (void)β inherited fromSoBase.static SoType getClassTypeId (void)β inherited fromSoBase.static void addName (SoBase *const base, const char *const name)β inherited fromSoBase.static void removeName (SoBase *const base, const char *const name)β inherited fromSoBase.static void incrementCurrentWriteCounter (void)β inherited fromSoBase.static void decrementCurrentWriteCounter (void)β inherited fromSoBase.static SoBase * getNamedBase (const SbName &name, SoType type)β inherited fromSoBase.static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)β inherited fromSoBase.static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)β inherited fromSoBase.static void setInstancePrefix (const SbString &c)β inherited fromSoBase.static void setTraceRefs (SbBool trace)β inherited fromSoBase.static SbBool getTraceRefs (void)β inherited fromSoBase.static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)β inherited fromSoBase.static SbBool readRoute (SoInput *input)β inherited fromSoBase.
π Protected Member Functions π
virtual const SoFieldData * getFieldData (void) constβ protected, so handle with care, bestie.virtual ~SoLightKit ()β destructor, protected.
π
Protected Member Functions inherited from SoBaseKit π
virtual ~SoBaseKit ()β inherited fromSoBaseKit.virtual SoNode * addToCopyDict (void) constβ inherited fromSoBaseKit.virtual void copyContents (const SoFieldContainer *fromfc, SbBool copyconnections)β inherited fromSoBaseKit.SoGroup * getContainerNode (const SbName &listname, SbBool makeifneeded=TRUE)β inherited fromSoBaseKit.virtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE)β inherited fromSoBaseKit.virtual SoNodeKitPath * createPathToAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE, const SoPath *pathtoextend=NULL)β inherited fromSoBaseKit.virtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=TRUE)β inherited fromSoBaseKit.void createNodekitPartsList (void)β inherited fromSoBaseKit.void createFieldList (void)β inherited fromSoBaseKit.virtual void createDefaultParts (void)β inherited fromSoBaseKit.const SoNodekitParts * getNodekitPartsList (void) constβ inherited fromSoBaseKit.const SbList< SoSFNode * > & getCatalogInstances (void) constβ inherited fromSoBaseKit.void catalogError (void)β inherited fromSoBaseKit.virtual SbBool setUpConnections (SbBool onoff, SbBool doitalways=FALSE)β inherited fromSoBaseKit.virtual SbBool readInstance (SoInput *in, unsigned short flags)β inherited fromSoBaseKit.virtual void setDefaultOnNonWritingFields (void)β inherited fromSoBaseKit.void countMyFields (SoOutput *out)β inherited fromSoBaseKit.virtual SbBool setPart (const int partNum, SoNode *node)β inherited fromSoBaseKit.
π‘οΈ Protected Member Functions inherited from SoNode π‘οΈ
SoNode (void)β inherited fromSoNode.virtual ~SoNode ()β inherited fromSoNode.
π§ Protected Member Functions inherited from SoFieldContainer π§
SoFieldContainer (void)β inherited fromSoFieldContainer.virtual ~SoFieldContainer ()β inherited fromSoFieldContainer.
πΈ Protected Member Functions inherited from SoBase πΈ
SoBase (void)β inherited fromSoBase.virtual ~SoBase ()β inherited fromSoBase.virtual void destroy (void)β inherited fromSoBase.SbBool hasMultipleWriteRefs (void) constβ inherited fromSoBase.SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constβ inherited fromSoBase.void writeFooter (SoOutput *out) constβ inherited fromSoBase.virtual const char * getFileFormatName (void) constβ inherited fromSoBase.
β¨ Static Protected Member Functions β¨
static const SoFieldData ** getFieldDataPtr (void)β static protected.static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)β static protected.
π« Static Protected Member Functions inherited from SoBaseKit π«
static const SoFieldData ** getFieldDataPtr (void)β inherited fromSoBaseKit.static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)β inherited fromSoBaseKit.
π Static Protected Member Functions inherited from SoNode π
static const SoFieldData ** getFieldDataPtr (void)β inherited fromSoNode.static void setNextActionMethodIndex (int index)β inherited fromSoNode.static int getNextActionMethodIndex (void)β inherited fromSoNode.static void incNextActionMethodIndex (void)β inherited fromSoNode.static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)β inherited fromSoNode.
π Static Protected Member Functions inherited from SoBase π
static uint32_t getCurrentWriteCounter (void)β inherited fromSoBase.static void staticDataLock (void)β inherited fromSoBase.static void staticDataUnlock (void)β inherited fromSoBase.
π Protected Attributes π
SoSFNode iconβ protected attribute, part of the inner circle.SoSFNode iconSeparatorβ protected attribute.SoSFNode lightβ protected attribute.SoSFNode transformβ protected attribute.SoSFNode transformGroupβ protected attribute.
π Protected Attributes inherited from SoBaseKit π
SoSFNode callbackListβ inherited fromSoBaseKit.SoChildList * childrenβ inherited fromSoBaseKit.SbBool connectionsSetUpβ inherited fromSoBaseKit.
π Protected Attributes inherited from SoNode π
uint32_t uniqueIdβ inherited fromSoNode.
πΈ Protected Attributes inherited from SoFieldContainer πΈ
SbBool isBuiltInβ inherited fromSoFieldContainer.
Additional Inherited Members π
okay so before we get into the main character energy of SoLightKit, let's give a shoutout to the stuff it inherited, because bestie, it's giving "I got it from my ancestors" and we love that for it. π
Public Types inherited from SoNode β¨
so SoNode passed down this enum called NodeType, and it's literally a whole mood board of versions. no cap, here's the exact list:
enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002,
INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010,
INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080,
COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 =
0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000,
COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000 }
like, that's a lot of versions, but we respect the hustle. π«Ά
Protected Types inherited from SoBase π¦
and SoBase gave us BaseFlags, which is short but iconic:
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }
lowkey just two flags, but they matter, iykyk. π
Static Protected Attributes inherited from SoNode πΈ
then SoNode also has these static protected attributes, and they're just sitting there being all static and protected:
static uint32_t nextUniqueId = 1
static int nextActionMethodIndex = 0
periodt. β¨
Detailed Description π
okay so the SoLightKit class? it's literally a kit that provides a transform, a light and a shape or subgraph. it's giving "I contain multitudes" and honestly, same. π
here's the node kit structure, with new entries versus the parent class marked with an arrow prefix:
CLASS SoLightKit
-->"this"
"callbackList"
--> "transformGroup"
--> "transform"
--> "light"
--> "iconSeparator"
--> "icon"
(if you wanna know more about the output formatting, check out SoBaseKit::printDiagram() β it's the plug. π)
and here's the detailed info on catalog parts, no cap:
CLASS SoLightKit
PVT "this", SoLightKit ---
"callbackList", SoNodeKitListPart [ SoCallback, SoEventCallback ]
PVT "transformGroup", SoTransformSeparator ---
"transform", SoTransform ---
"light", SoLight --- , (default type = SoDirectionalLight)
PVT "iconSeparator", SoSeparator ---
"icon", SoNode --- , (default type = SoCube)
(and again, for the formatting tea, see SoBaseKit::printTable() β it's giving organized. π)
Constructor & Destructor Documentation π
SoLightKit::SoLightKit (void )
this is the constructor. it constructs. it's the birth of your kit. slay. π
SoLightKit::~SoLightKit () [protected], [virtual]
and this is the destructor. it's protected and virtual, so it's giving "I clean up after myself, but only in the right circles." π
Member Function Documentation π
SoType SoLightKit::getTypeId (void ) const [virtual]
so this one returns the type identification of an object derived from a class inheriting SoBase. it's used for run-time type checking and "downward" casting. basically it's the "who dis?" of the Coin world. πββοΈ
here's a usage example, exactly as it appears:
void foo(SoNode * node)
{
if (node->getTypeId() == SoFile::getClassTypeId()) {
SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type
}
}
now, for all my application programmers out there who wanna extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in all subclasses. it's 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 info on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups.
reimplemented from SoBaseKit. π₯
const SoFieldData * SoLightKit::getFieldData (void ) const [protected], [virtual]
this one returns a pointer to the class-wide field data storage object for this instance. if no fields are present, it returns NULL. so basically it's the "do we have fields? maybe not" energy. π
reimplemented from SoBaseKit. π
const SoNodekitCatalog * SoLightKit::getNodekitCatalog (void ) const [virtual]
and this one returns the nodekit catalog which defines the layout of this class' kit. it's the blueprint, the map, the whole vibe. πΊοΈ
reimplemented from SoBaseKit. β¨
Author βοΈ
generated automatically by Doxygen for Coin from the source code. so you know it's official. no ghostwriting here, just robots doing their thing. π€
and that's a wrap on this page, bestie! this was brought to you by Coin, version 3.1.3, and the page itself is SoLightKit(3). no date on the footer, but the vibes are timeless. mwah π
π¦ where this page comes from
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.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