Provided by: inventor-doc_2.1.5-10+dfsg-2.1build2_all bug

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

                                                                                        SoNodeKitListPart(3IV)()