SoNodeKitListPart(3IV)

SoNodeKitListPart (SoNkitListPart) - group node with restricted children

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoNodeKitListPart (SoNkitListPart) - group node with restricted children

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoNodeKitListPart

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

     typedef SoNodeKitListPart  SoNkitListPart

          Functions from class SoNodeKitListPart:

     SoNodeKitListPart *  SoNkitListPartCreate()
     SoType               SoNkitListPartGetContainerType(const SoNkitListPart
                               *this)
     void                 SoNkitListPartSetContainerType(SoNkitListPart *this,
                               SoType newContainerType )
     const SoTypeList *   SoNkitListPartGetChildTypes(const SoNkitListPart
                               *this)
     void                 SoNkitListPartAddChildType(SoNkitListPart *this,
                               SoType typeToAdd )
     SbBool               SoNkitListPartIsTypePermitted(const SoNkitListPart
                               *this, SoType typeToCheck )
     SbBool               SoNkitListPartIsChildPermitted(const SoNkitListPart
                               *this, const SoNode *child )
     void                 SoNkitListPartContainerSet(SoNkitListPart *this,
                               const char *fieldDataString )
     void                 SoNkitListPartLockTypes(SoNkitListPart *this)
     SbBool               SoNkitListPartIsTypeLocked(const SoNkitListPart
                               *this)
     void                 SoNkitListPartAddChild(SoNkitListPart *this, SoNode
                               *child )
     void                 SoNkitListPartInsertChild(SoNkitListPart *this,
                               SoNode *child, int childIndex )
     SoNode *             SoNkitListPartGetChild(const SoNkitListPart *this,
                               int index )
     int                  SoNkitListPartFindChild(const SoNkitListPart *this,
                               SoNode *child)
     int                  SoNkitListPartGetNumChildren(const SoNkitListPart
                               *this)
     void                 SoNkitListPartRemoveChild(SoNkitListPart *this, int
                               index)
     void                 SoNkitListPartRemoveChildNode(SoNkitListPart *this,
                               SoNode *child)
     void                 SoNkitListPartReplaceChild(SoNkitListPart *this, int
                               index, SoNode *newChild)
     void                 SoNkitListPartReplaceChildNode(SoNkitListPart *this,
                               SoNode *oldChild, SoNode *newChild)
     SoType               SoNkitListPartGetClassTypeId()

          Functions from class SoNode:
     void                SoNkitListPartSetOverride(SoNkitListPart *this,
                              SbBool state)
     SbBool              SoNkitListPartIsOverride(const SoNkitListPart *this)
     SoNode *            SoNkitListPartCopy(const SoNkitListPart *this, SbBool
                              copyConnections = FALSE)
     SbBool              SoNkitListPartAffectsState(const SoNkitListPart
                              *this)
     SoNode *            SoNkitListPartGetByName(const char *name)
     int                 SoNkitListPartGetByNameList(const char *name,
                              SoNodeList *list)

          Functions from class SoFieldContainer:

     void                SoNkitListPartSetToDflts(SoNkitListPart *this)
     SbBool              SoNkitListPartHasDfltVals(const SoNkitListPart *this)
     SbBool              SoNkitListPartFldsAreEq(const SoNkitListPart *this,
                              const SoFieldContainer *fc)
     void                SoNkitListPartCopyFieldVals(SoNkitListPart *this,
                              const SoFieldContainer *fc, SbBool
                              copyConnections = FALSE)
     SbBool              SoNkitListPartSet(SoNkitListPart *this, const char
                              *fieldDataString)
     void                SoNkitListPartGet(SoNkitListPart *this, SbString
                              *fieldDataString)
     int                 SoNkitListPartGetFields(const SoNkitListPart *this,
                              SoFieldList *resultList)
     SoField *           SoNkitListPartGetField(const SoNkitListPart *this,
                              const char *fieldName)
     SbBool              SoNkitListPartGetFieldName(const SoNkitListPart
                              *this, const SoField *field, SbName *fieldName)
     SbBool              SoNkitListPartIsNotifyEnabled(const SoNkitListPart
                              *this)
     SbBool              SoNkitListPartEnableNotify(SoNkitListPart *this,
                              SbBool flag)

          Functions from class SoBase:

     void                SoNkitListPartRef(SoNkitListPart *this)
     void                SoNkitListPartUnref(const SoNkitListPart *this)
     void                SoNkitListPartUnrefNoDelete(const SoNkitListPart
                              *this)
     void                SoNkitListPartTouch(SoNkitListPart *this)
     SoType              SoNkitListPartGetTypeId(const SoNkitListPart *this)
     SbBool              SoNkitListPartIsOfType(const SoNkitListPart *this,
                              SoType type)
     void                SoNkitListPartSetName(SoNkitListPart *this, const
                              char *name)
     SbName              SoNkitListPartGetName(const SoNkitListPart *this)

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 SoNkitListPartSetContainerType(). 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.

FUNCTIONS
     SoNodeKitListPart *  SoNkitListPartCreate()
          Constructor.

     SoType               SoNkitListPartGetContainerType(const SoNkitListPart
                               *this)
     void                 SoNkitListPartSetContainerType(SoNkitListPart *this,
                               SoType newContainerType )
          Gets and sets the type of node used as the container.

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

     void                 SoNkitListPartAddChildType(SoNkitListPart *this,
                               SoType typeToAdd )
          Permits the node type typeToAdd as a child. The first time the
          SoNkitListPartAddChildType() method is called, the default of SoNode
          is overridden and only the new typeToAdd is permitted. In subsequent
          calls to SoNkitListPartAddChildType(), the typeToAdd is added to the
          existing types.

     SbBool               SoNkitListPartIsTypePermitted(const SoNkitListPart
                               *this, SoType typeToCheck )
          Returns whether a node of type typeToCheck may be added as a child.

     SbBool               SoNkitListPartIsChildPermitted(const SoNkitListPart
                               *this, const SoNode *child )
          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                 SoNkitListPartContainerSet(SoNkitListPart *this,
                               const char *fieldDataString )
          Sends a string to the SoGroupSet() 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                 SoNkitListPartLockTypes(SoNkitListPart *this)
          This function permanently locks the permitted child types and the
          container type permanently. Calls to
          SoNkitListPartSetContainerType() and SoNkitListPartAddChildType()
          will have no effect after this function is called.

     SbBool               SoNkitListPartIsTypeLocked(const SoNkitListPart
                               *this)
          Returns whether the permitted child types and the container type are
          locked (i.e. cannot be changed). See SoNkitListPartLockTypes()

     void                 SoNkitListPartAddChild(SoNkitListPart *this, SoNode
                               *child )
     void                 SoNkitListPartInsertChild(SoNkitListPart *this,
                               SoNode *child, int childIndex )
     SoNode *             SoNkitListPartGetChild(const SoNkitListPart *this,
                               int index )
     int                  SoNkitListPartFindChild(const SoNkitListPart *this,
                               SoNode *child)
     int                  SoNkitListPartGetNumChildren(const SoNkitListPart
                               *this)
     void                 SoNkitListPartRemoveChild(SoNkitListPart *this, int
                               index)
     void                 SoNkitListPartRemoveChildNode(SoNkitListPart *this,
                               SoNode *child)
     void                 SoNkitListPartReplaceChild(SoNkitListPart *this, int
                               index, SoNode *newChild)
     void                 SoNkitListPartReplaceChildNode(SoNkitListPart *this,
                               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.

     SoType               SoNkitListPartGetClassTypeId()
          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