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

# SoFullPath(3)

The SoFullPath class allows examination of hidden children in paths.

## NAME

SoFullPath - The **SoFullPath** class allows examination of hidden children in paths.

## SYNOPSIS

\#include \<Inventor/SoFullPath.h\>

Inherits **SoPath**.

Inherited by **SoTempPath**.

### Public Member Functions

void **pop** (void)\
 **SoNode** \* **getTail** (void) const\
 **SoNode** \* **getNodeFromTail** (const int index) const\
 int **getIndexFromTail** (const int index) const\
 int **getLength** (void) const\

Public Member Functions inherited from **SoPath** **SoPath** (const int approxlength=4)\
 **SoPath** (**SoNode** \*const head)\
 **SoPath** (const **SoPath** &rhs)\
 **SoPath** & **operator=** (const **SoPath** &rhs)\
 virtual **SoType** **getTypeId** (void) const\
 Returns the type identification of an object derived from a class inheriting **SoBase**. This is used for runtime type checking and *downward"*casting. void **setHead** (**SoNode** \*const head)\
 **SoNode** \* **getHead** (void) const\
 void **append** (const int childindex)\
 void **append** (**SoNode** \*const node)\
 void **append** (const **SoPath** \*const frompath)\
 void **push** (const int childindex)\
 void **pop** (void)\
 **SoNode** \* **getTail** (void) const\
 **SoNode** \* **getNode** (const int index) const\
 **SoNode** \* **getNodeFromTail** (const int index) const\
 int **getIndex** (const int index) const\
 int **getIndexFromTail** (const int index) const\
 int **getLength** (void) const\
 void **truncate** (const int length)\
 int **findFork** (const **SoPath** \*const path) const\
 int **findNode** (const **SoNode** \*const node) const\
 SbBool **containsNode** (const **SoNode** \*const node) const\
 SbBool **containsPath** (const **SoPath** \*const path) const\
 **SoPath** \* **copy** (const int startfromnodeindex=0, int numnodes=0) const\
 void **insertIndex** (**SoNode** \*const parent, const int newindex)\
 void **removeIndex** (**SoNode** \*const parent, const int oldindex)\
 void **replaceIndex** (**SoNode** \*const parent, const int index, **SoNode** \*const newchild)\
 SbBool **isRelevantNotification** (**SoNotList** \*const l) const\
 virtual void **write** (**SoWriteAction** \*action)\

Public Member Functions inherited from **SoBase** void **ref** (void) const\
 void **unref** (void) const\
 void **unrefNoDelete** (void) const\
 int32\_t **getRefCount** (void) const\
 void **touch** (void)\
 SbBool **isOfType** (**SoType** type) const\
 Returns TRUE if the type of this object is either of the same type or inherited from *type*.  virtual **SbName** **getName** (void) const\
 virtual void **setName** (const **SbName** &newname)\
 virtual void **startNotify** (void)\
 virtual void **notify** (**SoNotList** \*l)\
 void **addAuditor** (void \*const auditor, const **SoNotRec::Type** type)\
 void **removeAuditor** (void \*const auditor, const **SoNotRec::Type** type)\
 const **SoAuditorList** & **getAuditors** (void) const\
 virtual void **addWriteReference** (**SoOutput** \*out, SbBool isfromfield=FALSE)\
 SbBool **shouldWrite** (void)\
 void **assertAlive** (void) const\

### Additional Inherited Members

Static Public Member Functions inherited from **SoPath** static void **initClass** (void)\
 Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.     static **SoType** **getClassTypeId** (void)\
 This static method returns the **SoType** object associated with objects of this class.     static **SoPath** \* **getByName** (const **SbName** name)\
 static int **getByName** (const **SbName** name, **SoPathList** &l)\

Static Public Member Functions inherited from **SoBase** static void **initClass** (void)\
 Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.  static **SoType** **getClassTypeId** (void)\
 This static method returns the **SoType** object associated with objects of this class.  static void **addName** (**SoBase** \*const base, const char \*const name)\
 static void **removeName** (**SoBase** \*const base, const char \*const name)\
 static void **incrementCurrentWriteCounter** (void)\
 static void **decrementCurrentWriteCounter** (void)\
 static **SoBase** \* **getNamedBase** (const **SbName** &name, **SoType** type)\
 static int **getNamedBases** (const **SbName** &name, **SoBaseList** &baselist, **SoType** type)\
 static SbBool **read** (**SoInput** \*input, **SoBase** \*&base, **SoType** expectedtype)\
 static void **setInstancePrefix** (const **SbString** &c)\
 static void **setTraceRefs** (SbBool trace)\
 static SbBool **getTraceRefs** (void)\
 static SbBool **connectRoute** (**SoInput** \*input, const **SbName** &fromnodename, const **SbName** &fromfieldname, const **SbName** &tonodename, const **SbName** &tofieldname)\
 static SbBool **readRoute** (**SoInput** \*input)\

Protected Types inherited from **SoBase** enum **BaseFlags** { **IS\_ENGINE** = 0x01, **IS\_GROUP** = 0x02 }\

Protected Member Functions inherited from **SoPath** virtual **~SoPath** ()\
 void **auditPath** (const SbBool flag)\

Protected Member Functions inherited from **SoBase** **SoBase** (void)\
 virtual **~SoBase** ()\
 virtual void **destroy** (void)\
 SbBool **hasMultipleWriteRefs** (void) const\
 SbBool **writeHeader** (**SoOutput** \*out, SbBool isgroup, SbBool isengine) const\
 void **writeFooter** (**SoOutput** \*out) const\
 virtual const char \* **getFileFormatName** (void) const\
 virtual **SoNotRec** **createNotRec** (void)\

Static Protected Member Functions inherited from **SoBase** static uint32\_t **getCurrentWriteCounter** (void)\
 static void **staticDataLock** (void)\
 static void **staticDataUnlock** (void)\

## Detailed Description

The **SoFullPath** class allows examination of hidden children in paths.

**SoPath** allows only access from the head node to the first node with hidden children, but not any further.

Since the **SoFullPath** is derived from **SoPath** and contains no private data, you can cast **SoPath** instances to the **SoFullPath** type. This will allow you to examine hidden children.

(Actually, you are not supposed to allocate instances of this class at all. It is only available as an "extended interface" into the superclass **SoPath**.)

## Member Function Documentation

### void SoFullPath::pop (void ) \[inline\]

This method overrides **SoPath::pop()** to allow clients to get at all the nodes in the path.

### SoNode \* SoFullPath::getTail (void ) const

This method overrides **SoPath::getTail()** to allow clients to get the tail node, counting internal path nodes.

### SoNode \* SoFullPath::getNodeFromTail (const int index) const

This method overrides **SoPath::getNodeFromTail()** to allow clients to get the node positioned *index* nodes from the tail, counting internal path nodes.

### int SoFullPath::getIndexFromTail (const int index) const

This method overrides **SoPath::getIndexFromTail()** to allow clients to get the child index number for nodes based on their position from the tail, counting hidden nodes.

### int SoFullPath::getLength (void ) const

This method returns the length of the path, counting hidden nodes also.

## Author

Generated automatically by Doxygen for Coin from the source code.
