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

# SoMFEnum(3)

The SoMFEnum class is a container for a set of enumerated values.

## NAME

SoMFEnum - The **SoMFEnum** class is a container for a set of enumerated values.

## SYNOPSIS

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

Inherits **SoMField**.

Inherited by **SoMFBitMask**.

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 virtual void **copyFrom** (const **SoField** &field)\
 const **SoMFEnum** & **operator=** (const **SoMFEnum** &field)\
 virtual SbBool **isSame** (const **SoField** &field) const\
 int **operator\[\]** (const int idx) const\
 const int \* **getValues** (const int start) const\
 int **find** (int value, SbBool addifnotfound=FALSE)\
 void **setValues** (const int start, const int **num**, const int \*newvals)\
 void **set1Value** (const int idx, int value)\
 void **setValue** (int value)\
 int **operator=** (int val)\
 SbBool **operator==** (const **SoMFEnum** &field) const\
 SbBool **operator!=** (const **SoMFEnum** &field) const\
 int \* **startEditing** (void)\
 void **finishEditing** (void)\
 void **setValue** (const **SbName** name)\
 void **set1Value** (const int idx, const **SbName** name)\
 void **setEnums** (const int **num**, const int \*const values, const **SbName** \*const names)\
 int **getNumEnums** (void) const\
 int **getEnum** (const int idx, **SbName** &name) const\

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**)\
 virtual SbBool **findEnumValue** (const **SbName** &name, int &value)\
 virtual SbBool **findEnumName** (int value, const **SbName** \*&name) const\

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

int \* **values**\
 SbBool **legalValuesSet**\
 int **numEnums**\
 int \* **enumValues**\
 **SbName** \* **enumNames**\

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 **SoMFEnum** class is a container for a set of enumerated values.

This field is used where nodes, engines or other field containers need to store values constrained to be from an enumerated set.

A field of this type stores its values to file as the symbolic names, rather than the actual integer values.

**See also**

**SoSFEnum**, **SoMFBitMask**

## Member Function Documentation

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

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

### SoType SoMFEnum::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**.

Reimplemented in **SoMFBitMask**.

### void SoMFEnum::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**.

Reimplemented in **SoMFBitMask**.

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

Check for equal type and value(s).

Implements **SoField**.

Reimplemented in **SoMFBitMask**.

### void SoMFEnum::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 SoMFEnum::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 int \* SoMFEnum::getValues (const int start) const \[inline\]

Returns a pointer to the values array.

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

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

### void SoMFEnum::setValue (const SbName name)

Set this field to contain a single value by specifying an enumeration string.

### void SoMFEnum::set1Value (const int idx, const SbName name)

Set the value at *idx* to the enumeration value represented by *name*.

### void SoMFEnum::setEnums (const int numarg, const int \*const vals, const SbName \*const names)

Makes a set of *num* enumeration *names* map to *vals*.

### int SoMFEnum::getNumEnums (void ) const

Returns the number of enum names the **SoSFEnum** object understands.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.\

**Since**

Coin 2.0

### int SoMFEnum::getEnum (const int idx, SbName & name) const

Returns the value of the Nth enum this **SoSFEnum** object understands, and mutates *name* to contain the Nth enum's name.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.\

**Since**

Coin 2.0

### SbBool SoMFEnum::findEnumValue (const SbName & name, int & val) \[protected\], \[virtual\]

Return in *val* the enumeration value which matches the given enumeration *name*.

Returns TRUE if *name* is a valid enumeration string, otherwise FALSE.

### SbBool SoMFEnum::findEnumName (int value, const SbName \*& name) const \[protected\], \[virtual\]

Set the enumeration *name* which matches the given enumeration value.

Returns TRUE if *value* is a valid enumeration value, otherwise FALSE.

## Member Data Documentation

### SbBool SoMFEnum::legalValuesSet \[protected\]

Is TRUE if a set of enum name-to-value mappings has been set.

### int SoMFEnum::numEnums \[protected\]

Number of enumeration mappings.

### int\* SoMFEnum::enumValues \[protected\]

Array of enumeration values. Maps 1-to-1 with the enumNames.

### SbName\* SoMFEnum::enumNames \[protected\]

Array of enumeration names. Maps 1-to-1 with the enumValues.

## Author

Generated automatically by Doxygen for Coin from the source code.
