Provided by: inventor-doc_2.1.5-10-18_all bug

NAME

       SoSceneKit — scene nodekit class

INHERITS FROM

       SoBase > SoFieldContainer > SoNode > SoBaseKit > SoSceneKit

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

       This  nodekit  is used to organize camera, (SoCameraKit), light, (SoLightKit), and object,
       (SoShapeKit, SoSeparatorKit, and SoWrapperKit) nodekits into a 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.

       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.

       The  lightList part is a list of SoLightKit nodes. The lightList is used to illuminate the
       objects contained in the childList part.

       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.

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.

     static const SoNodekitCatalog *
                         getClassNodekitCatalog() const
          Returns an SoNodekitCatalog for the class SoSceneKit.

     int                 getCameraNumber()
     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                        │
       │                                                NULL by │
       │Part Name      Part Type         Default Type   Default │
       │                                                        │
       │callbackList   NodeKitListPart   --               yes   │
       │cameraList     NodeKitListPart   --               yes   │
       │lightList      NodeKitListPart   --               yes   │
       │childList      NodeKitListPart   --               yes   │
       │                                                        │
       └────────────────────────────────────────────────────────┘
       ┌───────────────────────────────────────────────────────────────┐
       │      Extra information for list parts from above table        │
       │                                                               │
       │Part Name      Container Type   Permissible Types              │
       │                                                               │
       │callbackList   Separator        Callback, EventCallback        │
       │cameraList     Switch           CameraKit                      │
       │lightList      Group            LightKit                       │
       │childList      Group            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

                                                                                SoSceneKit(3IV)()