---
name: "SoDetailList"
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/SoDetailList"
---

# SoDetailList(3)

The SoDetailList class is a container for pointers to SoDetail objects.

## NAME

SoDetailList - The **SoDetailList** class is a container for pointers to **SoDetail** objects.

## SYNOPSIS

\#include \<Inventor/lists/SoDetailList.h\>

Inherits **SbPList**.

### Public Member Functions

**SoDetailList** (void)\
 **SoDetailList** (const int sizehint)\
 **SoDetailList** (const **SoDetailList** &l)\
 **~SoDetailList** ()\
 void **append** (**SoDetail** \*detail)\
 void **insert** (**SoDetail** \*detail, const int insertbefore)\
 void **truncate** (const int length, const int **fit**=0)\
 void **copy** (const **SoDetailList** &l)\
 **SoDetailList** & **operator=** (const **SoDetailList** &l)\
 **SoDetail** \* **operator\[\]** (const int idx) const\
 void **set** (const int index, **SoDetail** \*item)\

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 **SoDetailList** class is a container for pointers to **SoDetail** objects.

This list class will delete the details when destructed/truncated, or when a detail in the list is replaced by another detail. The caller is responsible for allocating the details passed to the list, but should not deallocate them since this will be handled by the list.

**See also**

**SbPList**

## Constructor & Destructor Documentation

### SoDetailList::SoDetailList (void ) \[inline\]

Default constructor.

### SoDetailList::SoDetailList (const int sizehint) \[inline\]

This constructor initializes the internal allocated size for the list to *sizehint*. Note that the list will still initially contain zero items.

**See also**

**SbList::SbList(const int sizehint)**

### SoDetailList::SoDetailList (const SoDetailList & l)

Copy constructor.

### SoDetailList::~SoDetailList ()

Destructor.

## Member Function Documentation

### void SoDetailList::append (SoDetail \* item) \[inline\]

Append *item* to the end of the list.

Automatically allocates more items internally if needed.

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

**See also**

**SbPList::append()**

### void SoDetailList::insert (SoDetail \* item, const int insertbefore) \[inline\]

Insert *item* at index *insertbefore*.

*insertbefore* should not be larger than the current number of items in the list.

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

**See also**

**SbPList::insert()**

### void SoDetailList::truncate (const int length, const int fit = 0)

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 delete truncated items.

**See also**

**SbPList::truncate()**

### void SoDetailList::copy (const SoDetailList & l)

Make this list a copy of *l*.

Overloaded from parent to copy items, not just pointers.

**See also**

**SbPList::copy()**

### SoDetailList & SoDetailList::operator= (const SoDetailList & l) \[inline\]

Make this list a copy of *l*.

### SoDetail \* SoDetailList::operator\[\] (const int idx) const \[inline\]

Returns element at *index*.

Will automatically expand the size of the internal array if *index* is outside the current bounds of the list. The values of any additional pointers are then set to NULL.

Overloaded from parent to return an **SoDetail** pointer.

**See also**

**SbPList::operator\[\]()**

### void SoDetailList::set (const int idx, SoDetail \* detail)

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

Overloaded from parent to destruct the replaced item.

**See also**

**SbPList::set()**

## Author

Generated automatically by Doxygen for Coin from the source code.
