SOSCENEKIT(3iv)

🌸 NAME 🌸

SoSceneKit β€” scene nodekit class πŸ’…

okay so quick vibe check: this is the SoSceneKit(3IV) page, and it's literally the nodekit that pulls your cameras, your lights and your objects into one whole scene. main character energy, no cap.


πŸ¦‹ INHERITS FROM πŸ¦‹

SoBase > SoFieldContainer > SoNode > SoBaseKit > SoSceneKit

it's giving "deep family tree" and honestly? iconic lineage.


✨ SYNOPSIS ✨

#include <Inventor/nodekits/SoSceneKit.h>

πŸŽ€ Parts from class SoSceneKit

(SoNodeKitListPart)  cameraList
(SoNodeKitListPart)  lightList
(SoNodeKitListPart)  childList

πŸŽ€ Parts from class SoBaseKit

(SoNodeKitListPart)  callbackList

πŸŽ€ Methods from class SoSceneKit

                     SoSceneKit()
 static const SoNodekitCatalog *
                     getClassNodekitCatalog() const
 int                 getCameraNumber()
 void                setCameraNumber(int camNum)
 static SoType       getClassTypeId()

πŸŽ€ Methods from class SoBaseKit

 virtual const SoNodekitCatalog *
                          getNodekitCatalog() const
 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 *newPart)
 SbBool                   set(char *partName, char *parameters)
 SbBool                   set(char *nameValuePairs)
 static SbBool            isSearchingChildren()
 static void              setSearchingChildren(SbBool newVal)

πŸŽ€ Methods from class SoNode

 void                setOverride(SbBool state)
 SbBool              isOverride() const
 SoNode *            copy(SbBool copyConnections = FALSE) const
 virtual SbBool      affectsState() const
 static SoNode *     getByName(const SbName &name)
 static int          getByName(const SbName &name, SoNodeList &list)

πŸŽ€ Methods from class SoFieldContainer

 void                setToDefaults()
 SbBool              hasDefaultValues() const
 SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
 void                copyFieldValues(const SoFieldContainer *fc, SbBool
                          copyConnections = FALSE)
 void                get(SbString &fieldDataString)
 virtual int         getFields(SoFieldList &resultList) const
 virtual SoField *   getField(const SbName &fieldName) const
 SbBool              getFieldName(const SoField *field, SbName &fieldName)
                          const
 SbBool              isNotifyEnabled() const
 SbBool              enableNotify(SbBool flag)

πŸŽ€ Methods from class SoBase

 void                ref()
 void                unref() const
 void                unrefNoDelete() const
 void                touch()
 virtual SoType      getTypeId() const
 SbBool              isOfType(SoType type) const
 virtual void        setName(const SbName &name)
 virtual SbName      getName() const

πŸŽ€ Macros from class SoBaseKit

 SO_GET_PART(kit, partName, partClass)
 SO_CHECK_PART(kit, partName, partClass)

πŸ’– DESCRIPTION πŸ’–

so bestie, this nodekit is the one that organizes camera nodekits (SoCameraKit), light nodekits (SoLightKit), and object nodekits (SoShapeKit, SoSeparatorKit, and SoWrapperKit) into a whole scene. a scene is composed of a list of cameras, a list of lights, and a list of children. there are three parts created by this nodekit: cameraList, lightList, and childList. that's the trio. the holy trinity. 🫢

the cameraList part is a list part of SoCameraKit nodes. the list itself is an SoNodeKitListPart, and since only one camera can be active at a time, the container of the list part is an SoSwitch node. use setCameraNumber(), and the scene kit will set the switch to make that camera active. so it's giving "one camera on aux at a time" πŸŽ₯

the lightList part is a list of SoLightKit nodes. the lightList is used to illuminate the objects contained in the childList part. literally the lighting department. ✨

the childList part contains a set of SoSeparatorKit nodes. you can add any kind of SoSeparatorKit to this list, including SoShapeKit and SoWrapperKit. since each SoSeparatorKit in turn contains a childList, this part is used to describe a hierarchical scene. (see the reference page for SoSeparatorKit). all members of childList are lit by the lights in lightList and rendered by the active camera in cameraList. it's a whole ecosystem fr fr. 🌈


πŸŽ€ PARTS πŸŽ€

  • (SoNodeKitListPart) cameraList β€” this part is an SoNodeKitListPart. it has a container that is an SoSwitch node. the list may contain only SoCameraKit nodekits. the active child of the SoSwitch is the active camera. this part is NULL by default, but is automatically created whenever you add a camera, as with setPart("cameraList[0]", myNewCamera) .
  • (SoNodeKitListPart) lightList β€” this part is an SoNodeKitListPart that uses an defines an SoGroup as its container. the list may contain only SoLightKit nodekits. add SoLightKits to this list and they will light the members of the childList of this SoSceneKit. this part is NULL by default, but is automatically created when you add a light. πŸ’‘
  • (SoNodeKitListPart) childList β€” this part is an SoNodeKitListPart that uses an SoGroup for its container. the list may contain only SoSeparatorKit nodekits or nodekits derived from SoSeparatorKit (e.g., SoShapeKit and SoWrapperKit). these children represent the objects in the scene. this part is NULL by default, but is automatically created whenever you add a child to the childList. also, when asked to build a member of the childList, the scenekit will build an SoShapeKit by default. so if the childList part is NULL, and you call: getPart("childList[0]", TRUE) . the scene kit will create the childList and add an SoShapeKit as the new element in the list. πŸ“

πŸ’… METHODS πŸ’…

  • SoSceneKit() β€” constructor. the classic. the origin story. ✨
  • static const SoNodekitCatalog * getClassNodekitCatalog() const β€” returns an SoNodekitCatalog for the class SoSceneKit.
  • int getCameraNumber() and void setCameraNumber(int camNum) β€” gets and sets current camera index. this index refers to which child is active in the cameraList part (SoSwitch node). πŸ“Έ
  • static SoType getClassTypeId() β€” returns type identifier for this class.

πŸ‘‘ CATALOG PARTS πŸ‘‘

All parts

  • callbackList β€” part type: NodeKitListPart β€” default type: -- β€” NULL by default: yes
  • cameraList β€” part type: NodeKitListPart β€” default type: -- β€” NULL by default: yes
  • lightList β€” part type: NodeKitListPart β€” default type: -- β€” NULL by default: yes
  • childList β€” part type: NodeKitListPart β€” default type: -- β€” NULL by default: yes

Extra information for list parts from above table

  • callbackList β€” container type: Separator β€” permissible types: Callback, EventCallback
  • cameraList β€” container type: Switch β€” permissible types: CameraKit
  • lightList β€” container type: Group β€” permissible types: LightKit
  • childList β€” container type: Group β€” permissible types: ShapeKit, SeparatorKit

🌟 FILE FORMAT/DEFAULTS 🌟

SceneKit {
   callbackList  NULL
   cameraList    NodeKitListPart {
       containerTypeName "Switch"     childTypeNames "CameraKit"     containerNode     Switch {
                 whichChild 0 CameraKit {
                     camera     PerspectiveCamera {
                     }
                  }
       }
    }

   lightList     NULL
   childList     NULL
}

🫢 SEE ALSO 🫢

SoAppearanceKit, SoBaseKit, SoCameraKit, SoLightKit, SoNodeKit, SoNodeKitDetail, SoNodeKitListPart, SoNodeKitPath, SoNodekitCatalog, SoSeparatorKit, SoShapeKit, SoWrapperKit


ok that's the whole page, nothing skipped, every flag and signature intact πŸ’―

and that's a wrap on the SoSceneKit(3IV) page, bestie β€” source and version is the SoSceneKit(3IV)() footer, and yeah the date slot is literally empty, we're leaving it blank and mysterious on purpose 😌✨ go build your scene, you got this πŸ’–πŸŽ€πŸ¦‹