SoChildList

Langue: en

Autres versions - même langue

Version: 321176 (ubuntu - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

SoChildList -

SYNOPSIS


#include <Inventor/misc/SoChildList.h>

Inherits SoNodeList.

Detailed Description

The SoChildList class is a container for node children.

This class does automatic notification on the parent nodes upon adding or removing children.

Methods for action traversal of the children are also provided.

Public Member Functions


SoChildList (SoNode *const parent)

SoChildList (SoNode *const parent, const int size)

SoChildList (SoNode *const parent, const SoChildList &cl)

~SoChildList ()

void append (SoNode *const node)

void insert (SoNode *const ptr, const int addbefore)

void remove (const int index)

void truncate (const int length)

void copy (const SoChildList &cl)

void set (const int index, SoNode *const node)

void traverseInPath (SoAction *const action, const int numindices, const int *indices)

void traverse (SoAction *const action)

void traverse (SoAction *const action, const int index)

void traverse (SoAction *const action, SoNode *node)

void traverse (SoAction *const action, const int first, const int last)

void addPathAuditor (SoPath *const path)

void removePathAuditor (SoPath *const path)

Constructor & Destructor Documentation

SoChildList::SoChildList (SoNode *const parentptr)

Default constructor, sets parent container and initializes a minimal list.

SoChildList::SoChildList (SoNode *const parentptr, const int size)

Constructor with hint about list size.

See also:

SoNodeList::SoNodeList(const int)

SoChildList::SoChildList (SoNode *const parentptr, const SoChildList & cl)

Copy constructor.

See also:

SoNodeList::SoNodeList(const SoNodeList &)

References copy().

SoChildList::~SoChildList ()

Destructor.

References truncate().

Member Function Documentation

void SoChildList::append (SoNode *const node)

Append a new node instance as a child of our parent container.

Automatically notifies parent node and any SoPath instances auditing paths with nodes from this list.

Reimplemented from SoNodeList.

References SoBase::addAuditor(), SoNodeList::append(), and SoNode::startNotify().

Referenced by SoNodeKitListPart::copyContents(), and SoFile::copyContents().

void SoChildList::insert (SoNode *const node, const int addbefore)

Insert a new node instance as a child of our parent container at position addbefore.

Automatically notifies parent node and any SoPath instances auditing paths with nodes from this list.

References SoBase::addAuditor(), SbList< Type >::getLength(), SbPList::getLength(), SoBaseList::insert(), and SoNode::startNotify().

void SoChildList::remove (const int index)

Remove the child node pointer at index.

Automatically notifies parent node and any SoPath instances auditing paths with nodes from this list.

Reimplemented from SoBaseList.

References SbList< Type >::getLength(), SbPList::getLength(), SoNodeList::operator[](), SoBaseList::remove(), SoBase::removeAuditor(), and SoNode::startNotify().

Referenced by SoNodeKitListPart::copyContents().

void SoChildList::truncate (const int length)

Makes the list contain only the length first items, removing all items from index length and onwards to the end of the list. Dereferences the objects to be removed (unless addReferences() has been set to FALSE).

See also:

SbPList::truncate()

Reimplemented from SoBaseList.

References SbList< Type >::getLength(), SbPList::getLength(), SoNodeList::operator[](), SoBase::removeAuditor(), SoNode::startNotify(), and SoBaseList::truncate().

Referenced by copy(), SoVRMLSwitch::removeChild(), SoVRMLLOD::removeChild(), and ~SoChildList().

void SoChildList::copy (const SoChildList & cl)

Copy contents of cl into this list.

References SoBaseList::copy(), SbPList::getLength(), SoNode::startNotify(), and truncate().

Referenced by SoChildList().

void SoChildList::set (const int index, SoNode *const node)

Index operator to set element at index. Does not expand array bounds if index is outside the list.

References SoBase::addAuditor(), SbList< Type >::getLength(), SbPList::getLength(), SoNodeList::operator[](), SoDebugError::postInfo(), SoBase::removeAuditor(), SoBaseList::set(), and SoNode::startNotify().

void SoChildList::traverseInPath (SoAction *const action, const int numindices, const int * indices)

Optimized IN_PATH traversal method.

This method is an extension versus the Open Inventor API.

References SoNode::affectsState(), SoAction::getCurPathCode(), SoAction::hasTerminated(), SoAction::popCurPath(), SoAction::pushCurPath(), and SoAction::traverse().

Referenced by SoNodeKitListPart::affectsState(), SoVRMLShape::getBoundingBox(), SoFile::getChildren(), SoBaseKit::getMatrix(), SoGroup::initClass(), SoTransformSeparator::pick(), SoVRMLGeometry::search(), and SoVRMLAppearance::~SoVRMLAppearance().

void SoChildList::traverse (SoAction *const action)

Traverse all nodes in the list, invoking their methods for the given action.

References SbPList::getLength().

Referenced by SoBaseKit::getMatrix(), SoVRMLSwitch::search(), traverse(), and SoSwitch::write().

void SoChildList::traverse (SoAction *const action, const int index)

Traverse the node at index (and possibly its children, if its a group node), applying the nodes' method for the given action.

References SbPList::getLength(), and traverse().

void SoChildList::traverse (SoAction *const action, SoNode * node)

Traverse the node (and possibly its children, if its a group node), applying the nodes' method for the given action.

References SbPList::find(), and traverse().

void SoChildList::traverse (SoAction *const action, const int first, const int last)

Traverse child nodes in the list from index first up to and including index last, or until the SoAction::hasTerminated() flag of action has been set.

References SoNode::affectsState(), SoAction::getCurPathCode(), SbPList::getLength(), SoAction::hasTerminated(), SoAction::popCurPath(), SoAction::popPushCurPath(), SoDebugError::postWarning(), SoAction::pushCurPath(), and SoAction::traverse().

void SoChildList::addPathAuditor (SoPath *const path)

Notify path whenever this list of node children changes.

References SbList< Type >::append(), and SoDebugError::postInfo().

Referenced by SoPath::operator=().

void SoChildList::removePathAuditor (SoPath *const path)

Remove path as an auditor for our list of node children.

References SbList< Type >::find(), SoType::getName(), SbName::getString(), SoBase::getTypeId(), SoDebugError::post(), SoDebugError::postInfo(), and SbList< Type >::remove().

Author

Generated automatically by Doxygen for Coin from the source code.