SoSceneKit(3)
π 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 theSoTypeobject 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 theSoTypeobject 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 fromSoBase, 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 cameraListSoSFNode childListSoSFNode lightListSoSFNode topSeparator
π Protected Attributes inherited from SoBaseKit π
SoSFNode callbackListSoChildList * childrenSbBool 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 = 1static 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
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms