---
name: "SoLightKit"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoLightKit/3iv"
---

# SoLightKit(3iv)

light nodekit class

## 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**
