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

# SoCameraKit(3iv)

camera nodekit class

## NAME

SoCameraKit — camera nodekit class

## INHERITS FROM

SoBase \> SoFieldContainer \> SoNode \> SoBaseKit \> SoCameraKit

## SYNOPSIS

**#include \<Inventor/nodekits/SoCameraKit.h\>**

Parts from class SoCameraKit:

**(SoTransform)**	**transform**\
 **(SoCamera)**	**camera**

Parts from class SoBaseKit:

**(SoNodeKitListPart)**	**callbackList**

Methods from class SoCameraKit:

	**SoCameraKit()**\
 **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 camera nodes that have a local transformation. SoCameraKit** adds two public parts to the basic nodekit: *transform* and *camera*.

The *camera* part is created by default as an **SoPerspectiveCamera** node, but may later be changed to any subclass of **SoCamera**.

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

**SoCameraKit** also adds a private part, *transformGroup*, which is of type **SoTransformSeparator**. The kit uses this part to contain the effect of *transform* to move only the *camera*, while allowing the *camera* to affect the rest of the scene.

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

## PARTS

**(SoTransform)**	**transform**\
 A transform that positions and orients the camera relative to the rest of the scene. Private parts keep the effect of the *transform* part localized. This part is **NULL** by default, but may be set to any subclass of **SoTransform**

**(SoCamera)**	**camera**\
 The camera node for this nodekit. The *camera* part is created by default as an **SoPerspectiveCamera** node, but may later be changed to any subclass of **SoCamera**. (e.g., **SoPerspectiveCamera**, **SoOrthographicCamera**).

## METHODS

	**SoCameraKit()**\
 Constructor.

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

**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 |
| camera | Camera | PerspectiveCamera | no |
|  |

| | | |
| --- | --- | --- |
| **Extra information for list parts from above table** |
| **Part Name** | **Container Type** | **Permissible Types** |
|  |
| callbackList | Separator | Callback, EventCallback |
|  |

## FILE FORMAT/DEFAULTS

```
CameraKit {
callbackList	NULL
transform	NULL
camera	PerspectiveCamera {
}
}
```

## SEE ALSO

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