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

NAME

       SoLightKit — light nodekit class

INHERITS FROM

       SoBase > SoFieldContainer > SoNode > SoBaseKit > SoLightKit

SYNOPSIS

       #include <Inventor/nodekits/SoLightKit.h>

          Parts from class SoLightKit:

     (SoTransform)       transform
     (SoLight)           light
     (SoNode)            icon

          Parts from class SoBaseKit:

     (SoNodeKitListPart)  callbackList

          Methods from class SoLightKit:

                         SoLightKit()
     static const SoNodekitCatalog *
                         getClassNodekitCatalog() const
     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  class  is used to create light nodes that have a local transformation and a
       geometry icon to represent the light source. SoLightKit adds three  public  parts  to  the
       basic nodekit: transform, light, and icon.

       SoLightKit  creates  an  SoDirectionalLight as the light part by default - all other parts
       are NULL at creation.

       You can move the light relative to the rest of the  scene  by  creating  and  editing  the
       transform part.

       You  can add a geometrical representation for the light by setting the icon part to be any
       scene graph you like.

       SoLightKit also adds two private parts. An SoTransformSeparator  contains  the  effect  of
       transform to move only the light and icon, while allowing the light to illuminate the rest
       of the scene. The second private part is an SoSeparator, which keeps property nodes within
       the  icon  geometry from affecting the rest of the scene. It also serves to cache the icon
       even when the light or transform is changing.

       SoLightKit is derived from SoBaseKit and thus also includes a callbackList part for adding
       callback nodes.

PARTS

     (SoTransform)       transform
          This  part  positions and orients the light and icon relative to the rest of the scene.
          Its  effect  is  kept  local  to   this   nodekit   by   a   private   part   of   type
          SoTransformSeparator.  The  transform part is NULL by default. If you ask for transform
          using getPart(), an SoTransform will be returned. But you may set the part  to  be  any
          subclass  of  SoTransform. For example, set the transform to be an SoDragPointManip and
          the light to be  an  SoPointLight.  Then  you  can  move  the  light  by  dragging  the
          manipulator with the mouse.

     (SoLight)           light
          The  light  node for this nodekit. This can be set to any node derived from SoLight. An
          SoDirectionalLight is created by default, and it is also the  type  of  light  returned
          when the you request that the nodekit build a light for you.

     (SoNode)            icon
          This  part  is a user-supplied scene graph that represents the light source. It is NULL
          by default — an SoCube is created by the lightkit when a method requires  it  to  build
          the part itself.

METHODS

                         SoLightKit()
          Constructor.

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

     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   │
       │transform      Transform         --                   yes   │
       │light          Light             DirectionalLight     no    │
       │icon           Node              Cube                 yes   │
       │                                                            │
       └────────────────────────────────────────────────────────────┘
       ┌───────────────────────────────────────────────────────────────┐
       │      Extra information for list parts from above table        │
       │                                                               │
       │Part Name      Container Type   Permissible Types              │
       │                                                               │
       │callbackList   Separator        Callback, EventCallback        │
       │                                                               │
       └───────────────────────────────────────────────────────────────┘

FILE FORMAT/DEFAULTS

       LightKit {
          callbackList  NULL
          transform     NULL
          light         DirectionalLight {
          }

          icon          NULL
     }

SEE ALSO

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

                                                                                SoLightKit(3IV)()