SoNodeKitListPart(3IV)

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