SoNodeKitListPart(3IV)

SoNodeKitListPart - group node with restricted children

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoNodeKitListPart - group node with restricted children

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoNodeKitListPart

SYNOPSIS
     #include <Inventor/nodekits/SoNodeKitListPart.h>

          Methods from class SoNodeKitListPart:

                         SoNodeKitListPart()
     SoType              getContainerType() const
     void                setContainerType(SoType newContainerType )
     const SoTypeList &  getChildTypes() const
     void                addChildType(SoType typeToAdd )
     SbBool              isTypePermitted(SoType typeToCheck ) const
     SbBool              isChildPermitted(const SoNode *child ) const
     void                containerSet(const char *fieldDataString )
     void                lockTypes()
     SbBool              isTypeLocked() const
     void                addChild(SoNode *child )
     void                insertChild(SoNode *child, int childIndex )
     SoNode *            getChild(int index ) const
     int                 findChild(SoNode *child) const
     int                 getNumChildren() const
     void                removeChild(int index)
     void                removeChild(SoNode *child)
     void                replaceChild(int index, SoNode *newChild)
     void                replaceChild(SoNode *oldChild, SoNode *newChild)
     static SoType       getClassTypeId()

          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)
     SbBool              set(const char *fieldDataString)
     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


DESCRIPTION
     This node class is very similar to SoGroup with the exception that it
     specifies restrictions on the type of children that it allows. It is used
     by nodekits to restrict child types within list parts (see the reference
     page for SoBaseKit).

     By default, any kind of child may be added. Methods of this class allow
     you to restrict the type of allowable children, and to lock down the
     types so that this type list may no longer be altered.

     Inside the SoNodeKitListPart is a container node, which in turn contains
     the children. The container node is a hidden child, and the type of node
     used may be set with setContainerType(). In this way, you can make the
     nodekitlist behave like a group, a separator, or any other subclass of
     group. The container is not accessible so that the nodekitlist may retain
     control over what kinds of children are added.

METHODS
                         SoNodeKitListPart()
          Constructor.

     SoType              getContainerType() const
     void                setContainerType(SoType newContainerType )
          Gets and sets the type of node used as the container.

     const SoTypeList &  getChildTypes() const
          Returns the permitted child node types. By default, any type of node
          is permitted, so the list contains one entry of type SoNode.

     void                addChildType(SoType typeToAdd )
          Permits the node type typeToAdd as a child. The first time the
          addChildType() method is called, the default of SoNode is overridden
          and only the new typeToAdd is permitted. In subsequent calls to
          addChildType(), the typeToAdd is added to the existing types.
     SbBool              isTypePermitted(SoType typeToCheck ) const
          Returns whether a node of type typeToCheck may be added as a child.

     SbBool              isChildPermitted(const SoNode *child ) const
          Returns whether the node child may be added to this list. This will
          return TRUE if the type of child is one of the permissible child
          types.

     void                containerSet(const char *fieldDataString )
          Sends a string to the set() method on the container node. This is
          how you can set the value of a switch node if the container node is
          an SoSwitch, for example.

     void                lockTypes()
          This function permanently locks the permitted child types and the
          container type permanently. Calls to setContainerType() and
          addChildType() will have no effect after this function is called.

     SbBool              isTypeLocked() const
          Returns whether the permitted child types and the container type are
          locked (i.e. cannot be changed). See lockTypes()

     void                addChild(SoNode *child )
     void                insertChild(SoNode *child, int childIndex )
     SoNode *            getChild(int index ) const
     int                 findChild(SoNode *child) const
     int                 getNumChildren() const
     void                removeChild(int index)
     void                removeChild(SoNode *child)
     void                replaceChild(int index, SoNode *newChild)
     void                replaceChild(SoNode *oldChild, SoNode *newChild)
          These are the functions used to edit the children. They parallel
          those of SoGroup, except that they always check the child types
          against those which are permissible. See SoGroup for details.

     static SoType       getClassTypeId()
          Returns type identifier for this class.


FILE FORMAT/DEFAULTS
     NodeKitListPart {
          containerTypeName  "Group"
          childTypeNames     ""
          containerNode      NULL
     }

SEE ALSO
     SoBaseKit, SoNodeKit, SoNodeKitDetail, SoNodeKitPath, SoNodekitCatalog,
     SoSceneKit, SoSeparatorKit, SoShapeKit, SoWrapperKit