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

# SoMFVec3d(3)

The SoMFVec3d class is a container for SbVec3d vectors.

## NAME

SoMFVec3d - The **SoMFVec3d** class is a container for **SbVec3d** vectors.

## SYNOPSIS

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

Inherits **SoMField**.

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 virtual void **copyFrom** (const **SoField** &field)\
 const **SoMFVec3d** & **operator=** (const **SoMFVec3d** &field)\
 virtual SbBool **isSame** (const **SoField** &field) const\
 const **SbVec3d** & **operator\[\]** (const int idx) const\
 const **SbVec3d** \* **getValues** (const int start) const\
 int **find** (const **SbVec3d** &value, SbBool addifnotfound=FALSE)\
 void **setValues** (const int start, const int **num**, const **SbVec3d** \*newvals)\
 void **set1Value** (const int idx, const **SbVec3d** &value)\
 void **setValue** (const **SbVec3d** &value)\
 const **SbVec3d** & **operator=** (const **SbVec3d** &val)\
 SbBool **operator==** (const **SoMFVec3d** &field) const\
 SbBool **operator!=** (const **SoMFVec3d** &field) const\
 **SbVec3d** \* **startEditing** (void)\
 void **finishEditing** (void)\
 void **setValuesPointer** (const int **num**, const **SbVec3d** \*userdata)\
 void **setValuesPointer** (const int **num**, **SbVec3d** \*userdata)\
 void **setValuesPointer** (const int **num**, const double \*userdata)\
 void **setValuesPointer** (const int **num**, double \*userdata)\
 void **setValues** (int start, int **num**, const double xyz\[\]\[3\])\
 void **set1Value** (int idx, double x, double y, double z)\
 void **set1Value** (int idx, const double xyz\[3\])\
 void **setValue** (double x, double y, double z)\
 void **setValue** (const double xyz\[3\])\

Public Member Functions inherited from **SoMField** virtual **~SoMField** ()\
 int **getNum** (void) const\
 void **setNum** (const int **num**)\
 virtual void **deleteValues** (int start, int **num**=-1)\
 virtual void **insertSpace** (int start, 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)\
 virtual void **notify** (**SoNotList** \*nlist)\
 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\
 virtual void **fixCopy** (SbBool copyconnections)\
 virtual SbBool **referencesCopy** (void) const\
 void **copyConnection** (const **SoField** \*fromfield)\
 virtual SbBool **read** (**SoInput** \*input, const **SbName** &name)\
 virtual void **write** (**SoOutput** \*out, const **SbName** &name) const\
 virtual void **countWriteRefs** (**SoOutput** \*out) 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

**SbVec3d** \* **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 **SoMFVec3d** class is a container for **SbVec3d** vectors.

This field is used where nodes, engines or other field containers need to store an array of vectors with three elements.

**See also**

**SbVec3d**, **SoSFVec3d**, **SoMFVec3f**

## Member Function Documentation

### void \* SoMFVec3d::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 SoMFVec3d::getClassTypeId (void ) \[static\]

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

### SoType SoMFVec3d::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 SoMFVec3d::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 SoMFVec3d::isSame (const SoField & f) const \[virtual\]

Check for equal type and value(s).

Implements **SoField**.

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

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

Implements **SoMField**.

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

This method is used for moving values around internally within a multivalue field. It needs to be overridden in each field so it automatically takes care of running copy constructors where necessary.

Implements **SoMField**.

### const SbVec3d \* SoMFVec3d::getValues (const int start) const \[inline\]

Returns a pointer to the values array.

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

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

### void SoMFVec3d::setValues (int start, int numarg, const double xyz\[\]\[3\])

Set *num* vector array elements from the *xyz* array, reading from index 0 in the given double-triplet vector array and storing values from index *start* in this **SoMFVec3d**'s array.

If *start* + *num* is larger than the current number of elements in the **SoMFVec3d** field, this method will automatically expand the field to accommodate all given double-vector element values.

### void SoMFVec3d::set1Value (int idx, double x, double y, double z)

Set the vector at *idx*.

### void SoMFVec3d::set1Value (int idx, const double xyz\[3\])

Set the vector at *idx*.

### void SoMFVec3d::setValue (double x, double y, double z)

Set this field to contain a single vector with the given element values.

### void SoMFVec3d::setValue (const double xyz\[3\])

Set this field to contain a single vector with the given element values.

## Author

Generated automatically by Doxygen for Coin from the source code.
