---
name: "SoPathList"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoPathList/3iv"
---

# SoPathList(3iv)

maintains a list of pointers to paths

## NAME

SoPathList — maintains a list of pointers to paths

## INHERITS FROM

SbPList \> SoBaseList \> SoPathList

## SYNOPSIS

**#include \<Inventor/SoLists.h\>**

Methods from class SoPathList:

	**SoPathList()**\
 	**SoPathList(int size)**\
 	**SoPathList(const SoPathList &l)**\
 	**~SoPathList()**\
 **void**	**append(SoPath \*path)**\
 **SoPath \***	**operator \[\](int i) const**\
 **SoPathList &**	**operator =(const SoPathList &l)**\
 **int**	**findPath(const SoPath &path)**\
 **void**	**sort()**\
 **void**	**uniquify()**

Methods from class SoBaseList:

**void**	**insert(SoBase \*ptr, int addBefore)**\
 **void**	**remove(int which)**\
 **void**	**truncate(int start)**\
 **void**	**copy(const SoBaseList &l)**\
 **void**	**set(int i, SoBase \*ptr)**\
 **void**	**addReferences(SbBool flag)**

Methods from class SbPList:

**int**	**find(const void \*ptr) const**\
 **int**	**getLength() const**\
 **int**	**operator ==(const SbPList &pl) const**\
 **int**	**operator !=(const SbPList &pl) const**

## DESCRIPTION

**This subclass of SoBaseList** holds lists of pointers to **SoPath**s. It updates reference counts to paths in the list whenever adding or removing pointers.

## METHODS

	**SoPathList()**\
 Constructor.

	**SoPathList(int size)**\
 Constructor that pre-allocates storage for **size** pointers.

	**SoPathList(const SoPathList &l)**\
 Constructor that copies the contents of another list.

	**~SoPathList()**\
 Destructor.

**void**	**append(SoPath \*path)**\
 Adds a path to the end of the list.

**SoPath \***	**operator \[\](int i) const**\
 Accesses an element of a list.

**SoPathList &**	**operator =(const SoPathList &l)**\
 Copies a list, keeping all reference counts correct.

**int**	**findPath(const SoPath &path)**\
 Returns the index of the matching path in the list, or -1 if not found.

**void**	**sort()**\
 Sorts list in place based on (1) increasing address of head node, then (2) increasing indices of children.

**void**	**uniquify()**\
 Given a sorted list, removes any path that (1) is a duplicate, or (2) goes through a node that is the tail of another path.

## SEE ALSO

**SoPath**
