---
name: "SoChildList"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SoChildList"
---

# SoChildList(3)

The SoChildList class is a container for node children.

## NAME

SoChildList - The **SoChildList** class is a container for node children.

## SYNOPSIS

\#include \<Inventor/misc/SoChildList.h\>

Inherits **SoNodeList**.

### 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)\

Public Member Functions inherited from **SoNodeList** **SoNodeList** (void)\
 **SoNodeList** (const int size)\
 **SoNodeList** (const **SoNodeList** &nl)\
 **~SoNodeList** ()\
 void **append** (**SoNode** \*const ptr)\
 **SoNode** \* **operator\[\]** (const int i) const\
 **SoNodeList** & **operator=** (const **SoNodeList** &nl)\

Public Member Functions inherited from **SoBaseList** **SoBaseList** (void)\
 **SoBaseList** (const int size)\
 **SoBaseList** (const **SoBaseList** &l)\
 **~SoBaseList** ()\
 void **append** (**SoBase** \*ptr)\
 void **insert** (**SoBase** \*ptr, const int addbefore)\
 void **remove** (const int index)\
 void **removeItem** (**SoBase** \*item)\
 void **truncate** (const int length)\
 void **copy** (const **SoBaseList** &l)\
 **SoBaseList** & **operator=** (const **SoBaseList** &l)\
 **SoBase** \* **operator\[\]** (const int i) const\
 void **set** (const int i, **SoBase** \*const ptr)\
 void **addReferences** (const SbBool flag)\
 SbBool **isReferencing** (void) const\

Public Member Functions inherited from **SbPList** **SbPList** (const int sizehint=DEFAULTSIZE)\
 **SbPList** (const **SbPList** &l)\
 **~SbPList** ()\
 void **copy** (const **SbPList** &l)\
 **SbPList** & **operator=** (const **SbPList** &l)\
 void **fit** (void)\
 void **append** (void \*item)\
 int **find** (const void \*item) const\
 void **insert** (void \*item, const int insertbefore)\
 void **removeItem** (void \*item)\
 void **remove** (const int index)\
 void **removeFast** (const int index)\
 int **getLength** (void) const\
 void **truncate** (const int length, const int **fit**=0)\
 void \*\* **getArrayPtr** (const int start=0) const\
 void \*& **operator\[\]** (const int index) const\
 int **operator==** (const **SbPList** &l) const\
 int **operator!=** (const **SbPList** &l) const\
 void \* **get** (const int index) const\
 void **set** (const int index, void \*item)\

### Additional Inherited Members

Protected Member Functions inherited from **SbPList** void **expand** (const int size)\
 int **getArraySize** (void) const\

## 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.

## 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 &)**

### SoChildList::~SoChildList ()

Destructor.

## 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.

Overloaded from parent to accept an **SoNode** pointer argument.

**See also**

**SbPList::insert()**

### 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.

Overloaded from parent to accept an **SoNode** pointer argument.

**See also**

**SbPList::insert()**

### void SoChildList::remove (const int index)

Remove the item at *index*, moving all subsequent items downwards one place in the list.

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

Overloaded from parent to handle notification.

**See also**

**SbPList::remove(const int index)**

### void SoChildList::truncate (const int length)

Shorten the list to contain *length* elements, removing items from *index* *length* and onwards.

If *fit* is non-zero, will also shrink the internal size of the allocated array. Note that this is much less efficient than not re-fitting the array size.

Overloaded from parent to handle notification.

**See also**

**SbPList::truncate()**

### void SoChildList::copy (const SoChildList & cl)

Copy contents of *cl* into this list.

Overloaded from parent to handle notification.

**See also**

**SbPList::copy()**

### 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.

Overloaded from parent to handle notification.

**See also**

**SbPList::set()**

### 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.

### void SoChildList::traverse (SoAction \*const action)

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

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

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

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

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

### 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.

### void SoChildList::addPathAuditor (SoPath \*const path)

Notify *path* whenever this list of node children changes.

### void SoChildList::removePathAuditor (SoPath \*const path)

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

## Author

Generated automatically by Doxygen for Coin from the source code.
