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

# SoMFPath(3)

The SoMFPath class is a container for paths.

## NAME

SoMFPath - The **SoMFPath** class is a container for paths.

## SYNOPSIS

\#include \<Inventor/fields/SoMFPath.h\>

Inherits **SoMField**.

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 virtual void **copyFrom** (const **SoField** &field)\
 const **SoMFPath** & **operator=** (const **SoMFPath** &field)\
 virtual SbBool **isSame** (const **SoField** &field) const\
 **SoPath** \* **operator\[\]** (const int idx) const\
 const **SoPath** \*\* **getValues** (const int start) const\
 int **find** (**SoPath** \*value, SbBool addifnotfound=FALSE)\
 void **setValues** (const int start, const int **num**, const **SoPath** \*\*newvals)\
 void **set1Value** (const int idx, **SoPath** \*value)\
 void **setValue** (**SoPath** \*value)\
 **SoPath** \* **operator=** (**SoPath** \*val)\
 SbBool **operator==** (const **SoMFPath** &field) const\
 SbBool **operator!=** (const **SoMFPath** &field) const\
 **SoPath** \*\* **startEditing** (void)\
 void **finishEditing** (void)\
 virtual void **notify** (**SoNotList** \*l)\
 virtual void **fixCopy** (SbBool copyconnections)\
 virtual SbBool **referencesCopy** (void) const\
 virtual void **deleteValues** (int start, int **num**=-1)\
 virtual void **insertSpace** (int start, int **num**)\

Public Member Functions inherited from **SoMField** virtual **~SoMField** ()\
 int **getNum** (void) const\
 void **setNum** (const int **num**)\
 SbBool **set1** (const int index, const char \*const valuestring)\
 void **get1** (const int index, **SbString** &valuestring)\
 virtual void **enableDeleteValues** (void)\
 virtual SbBool **isDeleteValuesEnabled** (void) const\

Public Member Functions inherited from **SoField** virtual **~SoField** ()\
 void **setIgnored** (SbBool ignore)\
 SbBool **isIgnored** (void) const\
 void **setDefault** (SbBool defaultVal)\
 SbBool **isDefault** (void) const\
 SbBool **isOfType** (const **SoType** type) const\
 void **enableConnection** (SbBool flag)\
 SbBool **isConnectionEnabled** (void) const\
 SbBool **connectFrom** (**SoEngineOutput** \*master, SbBool notnotify=FALSE, SbBool append=FALSE)\
 SbBool **appendConnection** (**SoEngineOutput** \*master, SbBool notnotify=FALSE)\
 void **disconnect** (**SoEngineOutput** \*engineoutput)\
 SbBool **isConnectedFromEngine** (void) const\
 SbBool **getConnectedEngine** (**SoEngineOutput** \*&master) const\
 SbBool **connectFrom** (**SoField** \*master, SbBool notnotify=FALSE, SbBool append=FALSE)\
 SbBool **appendConnection** (**SoField** \*master, SbBool notnotify=FALSE)\
 void **disconnect** (**SoField** \*field)\
 SbBool **isConnectedFromField** (void) const\
 SbBool **getConnectedField** (**SoField** \*&master) const\
 int **getNumConnections** (void) const\
 int **getForwardConnections** (**SoFieldList** &slavelist) const\
 int **getConnections** (**SoFieldList** &masterlist) const\
 void **disconnect** (void)\
 SbBool **isConnected** (void) const\
 void **setContainer** (**SoFieldContainer** \*cont)\
 **SoFieldContainer** \* **getContainer** (void) const\
 SbBool **set** (const char \*valuestring)\
 void **get** (**SbString** &valuestring)\
 SbBool **shouldWrite** (void) const\
 virtual void **touch** (void)\
 virtual void **startNotify** (void)\
 SbBool **enableNotify** (SbBool on)\
 SbBool **isNotifyEnabled** (void) const\
 void **addAuditor** (void \*f, **SoNotRec::Type** type)\
 void **removeAuditor** (void \*f, **SoNotRec::Type** type)\
 int **operator==** (const **SoField** &f) const\
 int **operator!=** (const **SoField** &f) const\
 virtual void **connectionStatusChanged** (int numconnections)\
 SbBool **isReadOnly** (void) const\
 void **copyConnection** (const **SoField** \*fromfield)\
 virtual SbBool **read** (**SoInput** \*input, const **SbName** &name)\
 virtual void **write** (**SoOutput** \*out, const **SbName** &name) const\
 void **setFieldType** (int type)\
 int **getFieldType** (void) const\
 SbBool **getDirty** (void) const\
 void **setDirty** (SbBool dirty)\
 void **evaluate** (void) const\

### Static Public Member Functions

static void \* **createInstance** (void)\
 static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\

Static Public Member Functions inherited from **SoMField** static **SoType** **getClassTypeId** (void)\
 static void **atexit\_cleanup** (void)\
 static void **initClass** (void)\

Static Public Member Functions inherited from **SoField** static void **initClass** (void)\
 static void **initClasses** (void)\
 static void **cleanupClass** (void)\
 static **SoType** **getClassTypeId** (void)\

### Protected Member Functions

virtual void **deleteAllValues** (void)\
 virtual void **copyValue** (int to, int from)\
 virtual int **fieldSizeof** (void) const\
 virtual void \* **valuesPtr** (void)\
 virtual void **setValuesPtr** (void \*ptr)\
 virtual void **allocValues** (int **num**)\

Protected Member Functions inherited from **SoMField** **SoMField** (void)\
 virtual void **makeRoom** (int newnum)\
 virtual **SoNotRec** **createNotRec** (**SoBase** \*container)\
 void **setChangedIndex** (const int chgidx)\
 void **setChangedIndices** (const int chgidx=-1, const int numchgind=0)\

Protected Member Functions inherited from **SoField** **SoField** (void)\
 void **valueChanged** (SbBool resetdefault=TRUE)\
 virtual void **evaluateConnection** (void) const\
 virtual SbBool **readConnection** (**SoInput** \*in)\
 virtual void **writeConnection** (**SoOutput** \*out) const\
 SbBool **isDestructing** (void) const\

### Protected Attributes

**SoPath** \*\* **values**\

Protected Attributes inherited from **SoMField** int **num**\
 int **maxNum**\
 SbBool **userDataIsUsed**\

### Additional Inherited Members

Public Types inherited from **SoField** enum **FieldType** { **NORMAL\_FIELD** = 0, **EVENTIN\_FIELD**, **EVENTOUT\_FIELD**, **EXPOSED\_FIELD** }\

## Detailed Description

The **SoMFPath** class is a container for paths.

This field container stores an array of pointers to paths. It takes care of the necessary functionality for handling copy, import and export operations.

Note that path pointers stored in field instances of this type may be NULL pointers.

**See also**

**SoPath**, **SoSFPath**

## Member Function Documentation

### void \* SoMFPath::createInstance (void ) \[static\]

*This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.*\

 Creates a new instance of the class type corresponding to the **SoType** object.

### SoType SoMFPath::getClassTypeId (void ) \[static\]

This static method returns the **SoType** object associated with objects of this class.

### SoType SoMFPath::getTypeId (void ) const \[virtual\]

Returns the type identification of an object derived from a class inheriting **SoField**. This is used for runtime type checking and "downward" casting.

Implements **SoField**.

### void SoMFPath::copyFrom (const SoField & f) \[virtual\]

Copy value(s) from *f* into this field. *f* must be of the same type as this field.

Implements **SoField**.

### SbBool SoMFPath::isSame (const SoField & f) const \[virtual\]

Check for equal type and value(s).

Implements **SoField**.

### virtual void SoMFPath::deleteAllValues (void ) \[protected\], \[virtual\]

Implements **SoMField**.

### virtual void SoMFPath::copyValue (int to, int from) \[protected\], \[virtual\]

Implements **SoMField**.

### const SoPath \*\* SoMFPath::getValues (const int start) const \[inline\]

Returns a pointer to the values array.

### void SoMFPath::initClass (void ) \[static\]

Internal method called upon initialization of the library (from **SoDB::init()**) to set up the type system.

### void SoMFPath::notify (SoNotList \* nlist) \[virtual\]

Notify auditors that this field has changed.

Reimplemented from **SoField**.

### void SoMFPath::fixCopy (SbBool copyconnections) \[virtual\]

This method is internally called after **SoField::copyFrom()** during scene graph copies, and should do the operations necessary for fixing up the field instance after it has gotten a new value.

The default method in the **SoField** superclass does nothing.

The application programmer should normally not need to consider this method, unless he constructs a complex field type which contains new references to container instances (i.e. nodes or engines). Overriding this method is then necessary to update the reference pointers, as they could have been duplicated during the copy operation.

Reimplemented from **SoField**.

### SbBool SoMFPath::referencesCopy (void ) const \[virtual\]

Returns TRUE if this field has references to any containers in the scene graph which are also duplicated during the copy operation.

Note that this method *only* is valid to call during copy operations.

See also the note about the relevance of the **fixCopy()** method for application programmers, as it is applicable on this method as well.

Reimplemented from **SoField**.

### virtual void SoMFPath::deleteValues (int start, int numarg = -1) \[virtual\]

Remove value elements from index *start* up to and including index *start* + *num* - 1.

Elements with indices larger than the last deleted element will be moved downwards in the value array.

If *num* equals -1, delete from index *start* and to the end of the array.

Reimplemented from **SoMField**.

### virtual void SoMFPath::insertSpace (int start, int numarg) \[virtual\]

Insert *num* "slots" for new value elements from *start*. The elements already present from *start* will be moved "upward" in the extended array.

Reimplemented from **SoMField**.

## Author

Generated automatically by Doxygen for Coin from the source code.
