SoSceneKit(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

πŸŽ€ SoSceneKit(3) πŸŽ€

okay so bestie, come sit 🫢 this is SoSceneKit, straight out of the Coin manual, section 3, and honestly? it's the friend that shows up early to help you set up the party. lowkey iconic, highkey useful.


✨ NAME ✨

SoSceneKit β€” The SoSceneKit class collects node kits needed to set up a scene: camera, light and shapes.

fr fr that's the whole vibe: it's a kit made of kits. a starter pack. main character energy for your scene graph πŸ‘‘

🌸 SYNOPSIS 🌸

#include <Inventor/nodekits/SoSceneKit.h>

Inherits SoBaseKit.

πŸ’– Public Member Functions πŸ’–

the ones that are actually its own, no cap:

virtual SoType getTypeId (void) const
virtual const SoNodekitCatalog * getNodekitCatalog (void) const
SoSceneKit (void)
int getCameraNumber (void)
void setCameraNumber (int camNum)
virtual SbBool affectsState (void) const

πŸ¦‹ Public Member Functions inherited from SoBaseKit

she got all of this from her parent, and she's not ashamed:

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)
virtual SbBool setPart (const SbName &partname, SoNode *from)
SbBool set (const char *namevaluepairliststring)
SbBool set (const char *partnamestring, const char *parameterstring)
virtual void doAction (SoAction *action)
virtual void callback (SoCallbackAction *action)
virtual void GLRender (SoGLRenderAction *action)
virtual void getBoundingBox (SoGetBoundingBoxAction *action)
virtual void getMatrix (SoGetMatrixAction *action)
virtual void handleEvent (SoHandleEventAction *action)
virtual void rayPick (SoRayPickAction *action)
virtual void search (SoSearchAction *action)
virtual void write (SoWriteAction *action)
virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
virtual SoChildList * getChildren (void) const
void printDiagram (void)
void printSubDiagram (const SbName &rootname, int level)
void printTable (void)
virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)
SbBool forceChildDrivenWriteRefs (SoOutput *out)

🌈 Public Member Functions inherited from SoNode

void setOverride (const SbBool state)
SbBool isOverride (void) const
void setNodeType (const NodeType type)
NodeType getNodeType (void) const
virtual SoNode * copy (SbBool copyconnections=FALSE) const
virtual 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 grabEventsSetup (void)
virtual void grabEventsCleanup (void)
virtual void startNotify (void)
virtual void notify (SoNotList *l)
SbUniqueId getNodeId (void) const
virtual void writeInstance (SoOutput *out)
virtual SoFieldContainer * copyThroughConnection (void) const

πŸ“ Public Member Functions inherited from SoFieldContainer

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

πŸ’œ Public Member Functions inherited from SoBase

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

one lil note on SbBool isOfType (SoType type) const πŸ’‘ β€” it hands back TRUE if the type of this object is either of the same type or inherited from type. like, is she that girl or a descendant of that girl. yes bestie.


⭐ Static Public Member Functions ⭐

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

🧚 Static Public Member Functions inherited from SoBaseKit

static SoType getClassTypeId (void)
static void initClass (void)
static const SoNodekitCatalog * getClassNodekitCatalog (void)
static SbBool isSearchingChildren (void)
static void setSearchingChildren (const SbBool newval)

πŸŽ€ Static Public Member Functions inherited from SoNode

static uint32_t getCompatibilityTypes (const SoType &nodetype)
static SoType getClassTypeId (void)
static SoNode * getByName (const SbName &name)
static int getByName (const SbName &name, SoNodeList &l)
static void initClass (void)
static void initClasses (void)
static SbUniqueId 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)

and the tea on static void initClass (void) β˜• β€” it sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. basically it introduces the class to the group chat so everyone knows who she is.

🌸 Static Public Member Functions inherited from SoFieldContainer

static void initClass (void)
static SoType getClassTypeId (void)
static void cleanupClass (void)
static void initCopyDict (void)
static void addCopy (const SoFieldContainer *orig, const
    SoFieldContainer *copy)
static SoFieldContainer * checkCopy (const SoFieldContainer *orig)
static SoFieldContainer * findCopy (const SoFieldContainer *orig, const
    SbBool copyconnections)
static void copyDone (void)

notes for the girlies πŸ“:

  • static void initClass (void) β€” same deal as above: sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. she's registering herself, periodt.
  • static SoType getClassTypeId (void) β€” this static method returns the SoType object associated with objects of this class.

πŸ’… Static Public Member Functions inherited from SoBase

static void initClass (void)
static SoType getClassTypeId (void)
static void addName (SoBase *const base, const char *const name)
static void removeName (SoBase *const base, const char *const name)
static void incrementCurrentWriteCounter (void)
static void decrementCurrentWriteCounter (void)
static SoBase * getNamedBase (const SbName &name, SoType type)
static int getNamedBases (const SbName &name, SoBaseList &baselist,
    SoType type)
static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)
static void setInstancePrefix (const SbString &c)
static void setTraceRefs (SbBool trace)
static SbBool getTraceRefs (void)
static SbBool connectRoute (SoInput *input, const SbName &fromnodename,
    const SbName &fromfieldname, const SbName &tonodename, const SbName
    &tofieldname)
static SbBool readRoute (SoInput *input)

and again, because she said it twice and she means it twice:

  • static void initClass (void) β€” sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.
  • static SoType getClassTypeId (void) β€” this static method returns the SoType object associated with objects of this class.

πŸ™ˆ Protected Member Functions πŸ™ˆ

for the inner circle only:

virtual const SoFieldData * getFieldData (void) const
virtual ~SoSceneKit ()

🫢 Protected Member Functions inherited from SoBaseKit

virtual ~SoBaseKit ()
virtual SoNode * addToCopyDict (void) const
virtual void copyContents (const SoFieldContainer *fromfc, SbBool
    copyconnections)
SoGroup * getContainerNode (const SbName &listname, SbBool
    makeifneeded=TRUE)
virtual SoNode * getAnyPart (const SbName &partname, SbBool
    makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE)
virtual SoNodeKitPath * createPathToAnyPart (const SbName &partname,
    SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool
    publiccheck=FALSE, const SoPath *pathtoextend=NULL)
virtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool
    anypart=TRUE)
void createNodekitPartsList (void)
void createFieldList (void)
virtual void createDefaultParts (void)
const SoNodekitParts * getNodekitPartsList (void) const
const SbList< SoSFNode * > & getCatalogInstances (void) const
void catalogError (void)
virtual SbBool setUpConnections (SbBool onoff, SbBool doitalways=FALSE)
virtual SbBool readInstance (SoInput *in, unsigned short flags)
virtual void setDefaultOnNonWritingFields (void)
void countMyFields (SoOutput *out)
virtual SbBool setPart (const int partNum, SoNode *node)

πŸ’€ Protected Member Functions inherited from SoNode

SoNode (void)
virtual ~SoNode ()

🌈 Protected Member Functions inherited from SoFieldContainer

SoFieldContainer (void)
virtual ~SoFieldContainer ()

🧸 Protected Member Functions inherited from SoBase

SoBase (void)
virtual ~SoBase ()
virtual void destroy (void)
SbBool hasMultipleWriteRefs (void) const
SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine)
    const
void writeFooter (SoOutput *out) const
virtual const char * getFileFormatName (void) const
virtual SoNotRec createNotRec (void)

⭐ Static Protected Member Functions ⭐

static const SoFieldData ** getFieldDataPtr (void)
static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)

πŸ¦‹ Static Protected Member Functions inherited from SoBaseKit

static const SoFieldData ** getFieldDataPtr (void)
static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)

🧚 Static Protected Member Functions inherited from SoNode

static const SoFieldData ** getFieldDataPtr (void)
static void setNextActionMethodIndex (int index)
static int getNextActionMethodIndex (void)
static void incNextActionMethodIndex (void)
static void setCompatibilityTypes (const SoType &nodetype, const
    uint32_t bitmask)

okay that's the whole class roster bestie, every single one of them accounted for, not a single name dropped πŸ’– and this is only part 1 β€” there is literally more of this page coming, so don't go anywhere, we are not done yet 🫢✨

🧬 Static Protected Member Functions (inherited from SoBase) 🧬

  • static uint32_t getCurrentWriteCounter(void) β€” bestie the docs give us literally nothing here, so I'm not gonna make stuff up. It exists, it's static, it's protected, it's inherited from SoBase, and that's the whole story. πŸ’€
  • static void staticDataLock(void) β€” same deal, no write-up in the source. Take it as-is. ✨
  • static void staticDataUnlock(void) β€” and its little sibling. Also undescribed. Also real. 🫢

πŸ”’ Protected Attributes πŸ”’

These are the fields SoSceneKit keeps for itself and its subclasses:

  • SoSFNode cameraList
  • SoSFNode childList
  • SoSFNode lightList
  • SoSFNode topSeparator

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

  • SoSFNode callbackList
  • SoChildList * children
  • SbBool connectionsSetUp

πŸ¦‹ Protected Attributes inherited from SoNode πŸ¦‹

  • SbUniqueId uniqueId

🌸 Protected Attributes inherited from SoFieldContainer 🌸

  • SbBool isBuiltIn

🧚 Additional Inherited Members 🧚

Public Types inherited from SoNode

The whole vibe enum, verbatim, no cap:

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, COIN_4_0 = 0x20000 }

Protected Types inherited from SoBase

enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }

Static Protected Attributes inherited from SoNode

  • static SbUniqueId nextUniqueId = 1
  • static int nextActionMethodIndex = 0

πŸ’– Detailed Description πŸ’–

Okay so picture this: the SoSceneKit class is the girlboss that collects all the node kits you need to actually set up a scene β€” that's a camera, a light, and shapes. Three things. Iconic trio energy. πŸ‘‘

Here's the nodekit structure, and every entry that's new compared to the parent class gets an arrow prefix pointing at it (that's literally what the arrow means, it's giving "new here πŸ’…"):

CLASS SoSceneKit
-->"this"
      "callbackList"
-->   "topSeparator"
-->      "cameraList"
-->      "lightList"
-->      "childList"
(See SoBaseKit::printDiagram() for information about the output formatting.)

And now the detailed tea on the catalog parts:

CLASS SoSceneKit
PVT   "this",  SoSceneKit  ---
      "callbackList",  SoNodeKitListPart [ SoCallback, SoEventCallback ]
PVT   "topSeparator",  SoSeparator  ---
      "cameraList",  SoNodeKitListPart [ SoCameraKit ]
      "lightList",  SoNodeKitListPart [ SoLightKit ]
      "childList",  SoNodeKitListPart [ SoShapeKit, SoSeparatorKit ]
(See SoBaseKit::printTable() for information about the output formatting.)

πŸ› οΈ Constructor & Destructor Documentation πŸ› οΈ

SoSceneKit::SoSceneKit(void)

Constructor. It makes the thing. ✨

SoSceneKit::~SoSceneKit() [protected], [virtual]

Destructor. It unmakes the thing. 🫢


πŸ“š Member Function Documentation πŸ“š

SoType SoSceneKit::getClassTypeId(void) [static]

This static method hands you back the SoType object that's associated with objects of this class. It's the "who even are you" of the class itself. πŸ”

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

Returns the type identification of an object derived from a class that inherits SoBase. This is what powers runtime type checking and "downward" casting β€” so like, checking what you actually are and then casting down to it. πŸ‘‘

Reimplemented from SoBaseKit.

const SoFieldData ** SoSceneKit::getFieldDataPtr(void) [static], [protected]

Lowkey this API member is considered internal to the library, because it's not likely to be of interest to the application programmer. iykyk, it's not for you bestie.

It returns the SoFieldData class, which holds information about fields in this node. πŸ“‹

const SoFieldData * SoSceneKit::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 at all? It returns NULL. Just NULL. Rude but honest. πŸ™ˆ

Reimplemented from SoBaseKit.

const SoNodekitCatalog * SoSceneKit::getClassNodekitCatalog(void) [static]

Returns the nodekit catalog that defines the layout of this class' kit. That's the blueprint, the floor plan, the Pinterest board. πŸ“Œ

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

Returns the nodekit catalog that defines the layout of this class' kit. Same energy, but the instance-level version of the question.

Reimplemented from SoBaseKit.

const SoNodekitCatalog ** SoSceneKit::getClassNodekitCatalogPtr(void) [static], [protected]

Returns the pointer to the pointer of the nodekit catalog for this class. A double pointer. A pointerΒ². She's meta like that. πŸŒ€

int SoSceneKit::getCameraNumber(void)

Returns the index of the current active camera in cameraList. Which camera is the camera right now β€” that's the question she answers. πŸŽ₯

void SoSceneKit::setCameraNumber(int camnum)

Sets the current active camera in cameraList. Main character selection, literally. πŸ‘‘

SbBool SoSceneKit::affectsState(void) const [virtual]

Returns TRUE if the node could have any effect on the state during traversal.

If it returns FALSE, then no data in the traversal state will change from the pre-traversal state to the post-traversal state. For example, the SoSeparator node returns FALSE, because it pushes and pops the state before and after traversal of its children. All SoShape nodes also return FALSE, because just pushing out geometry data to the rendering engine won't affect the actual rendering state.

The default method returns TRUE, on a "better safe than sorry" philosophy. And honestly? Valid. 🫑

Reimplemented from SoNode.


✍️ Author ✍️

Generated automatically by Doxygen for Coin from the source code. Not a human, not a girlboss, just Doxygen doing its thing. πŸ€–


And that's a wrap on this page, bestie!! This was Version 4.0.10, dated Thu Jun 25 2026 00:00:00, and the page is SoSceneKit(3). Go forth and set up your scenes, you absolute legend. πŸ’…βœ¨

πŸ“¦ where this page comes from