# SoShapeKit Class Reference
[Node Kits]

`#include <Inventor/nodekits/SoShapeKit.h>`

Inheritance diagram for SoShapeKit:

List of all members.

## Detailed Description

The SoShapeKit class provides templates to insert what is usually needed for shape nodes.

Node kit structure (new entries versus parent class marked with arrow prefix):

      CLASS SoShapeKit
      -->"this"
            "callbackList"
            "topSeparator"
               "pickStyle"
               "appearance"
               "units"
               "transform"
               "texture2Transform"
      -->      "materialBinding"
      -->      "normalBinding"
      -->      "textureCoordinateBinding"
      -->      "shapeHints"
      -->      "coordinate3"
      -->      "coordinate4"
      -->      "normal"
      -->      "textureCoordinate2"
      -->      "profileCoordinate2"
      -->      "profileCoordinate3"
      -->      "profileList"
               "childList"
      -->      "textureCoordinateFunction"
      -->      "localTransform"
      -->      "shapeSeparator"
      -->         "shape"

(See SoBaseKit::printDiagram() for information about the output formatting.)

Detailed information on catalog parts:

      CLASS SoShapeKit
      PVT   "this",  SoShapeKit  ---
            "callbackList",  SoNodeKitListPart [ SoCallback, SoEventCallback ]
      PVT   "topSeparator",  SoSeparator  ---
            "pickStyle",  SoPickStyle  ---
            "appearance",  SoAppearanceKit  ---
            "units",  SoUnits  ---
            "transform",  SoTransform  ---
            "texture2Transform",  SoTexture2Transform  ---
            "materialBinding",  SoMaterialBinding  ---
            "normalBinding",  SoNormalBinding  ---
            "textureCoordinateBinding",  SoTextureCoordinateBinding  ---
            "shapeHints",  SoShapeHints  ---
            "coordinate3",  SoCoordinate3  ---
            "coordinate4",  SoCoordinate4  ---
            "normal",  SoNormal  ---
            "textureCoordinate2",  SoTextureCoordinate2  ---
            "profileCoordinate2",  SoProfileCoordinate2  ---
            "profileCoordinate3",  SoProfileCoordinate3  ---
            "profileList",  SoNodeKitListPart [ SoProfile ]
            "childList",  SoNodeKitListPart [ SoShapeKit, SoSeparatorKit ]
            "textureCoordinateFunction",  SoTextureCoordinateFunction  --- , (default type = SoTextureCoordinateDefault)
            "localTransform",  SoTransform  ---
      PVT   "shapeSeparator",  SoSeparator  ---
            "shape",  SoShape  --- , (default type = SoCube)

(See SoBaseKit::printTable() for information about the output formatting.)

## Public Member Functions

| SoShapeKit (void)

## Static Public Member Functions

void | initClass (void)

## Protected Member Functions

virtual | ~SoShapeKit ()
virtual void | setDefaultOnNonWritingFields (void)

## Constructor & Destructor Documentation

SoShapeKit::SoShapeKit | ( | void |  | ) |

| Constructor.

SoShapeKit::~SoShapeKit | ( |  | ) | `[protected, virtual]`

| Destructor.

## Member Function Documentation

void SoShapeKit::initClass | ( | void |  | ) | `[static]`

| Does initialization common for all objects of the SoSeparatorKit class. This includes setting up the type system, among other things. Reimplemented from SoSeparatorKit.

void SoShapeKit::setDefaultOnNonWritingFields | ( | void |  | ) | `[protected, virtual]`

(Be aware that this method is unlikely to be of interest to the application programmer who does not want to extend the library with new custom nodekits or draggers. If you indeed are writing extensions, see the information in the SoBaseKit class documentation.)

This is a virtual method, and the code in it should call SoField::setDefault() with argument `TRUE` on part fields that should not be written upon scenegraph export operations.

This is typically done when:

1. field value is `NULL` and part is `NULL` by default

2. it is a leaf SoGroup or SoSeparator node with no children

3. it is a leaf listpart with no children and an SoGroup or SoSeparator container

4. it is a non-leaf part and it's of SoGroup type and all fields are at their default values

Subclasses should usually override this to do additional settings for new member fields. From the subclass, do remember to call "upwards" to your superclass' setDefaultOnNonWritingFields() method.

Reimplemented from SoSeparatorKit.

The documentation for this class was generated from the following files:

- SoShapeKit.h
- SoShapeKit.cpp