Coin: SoSFEnum Class Reference

| Coin3D is Free Software, published under the BSD 3-clause license. | https://coin3d.github.io https://www.kongsberg.com/en/kogt/

Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SoSFEnum Class Reference
Field Classes

The SoSFEnum class is a container for an enum value. More...

`#include <Inventor/fields/SoSFEnum.h>`

Inheritance diagram for SoSFEnum:

## Public Member Functions
virtual SoType | getTypeId (void) const
virtual void | copyFrom (const SoField &field)
const SoSFEnum & | operator= (const SoSFEnum &field)
virtual SbBool | isSame (const SoField &field) const
int | getValue (void) const
void | setValue (int newvalue)
int | operator= (int newvalue)
int | operator== (const SoSFEnum &field) const
int | operator!= (const SoSFEnum &field) const
void | setValue (const SbName name)
void | setEnums (const int num, const int *vals, const SbName *names)
int | getNumEnums (void) const
int | getEnum (const int idx, SbName &name) const
Public Member Functions inherited from SoSField
virtual | ~SoSField ()
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 SoSField
static void | initClass (void)
static SoType | getClassTypeId (void)
static void | atexit_cleanup (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 SbBool | findEnumValue (const SbName &name, int &val)
virtual SbBool | findEnumName (int value, const SbName *&name) const
Protected Member Functions inherited from SoSField
| SoSField (void)
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
virtual SoNotRec | createNotRec (SoBase *cont)

## Protected Attributes
int | value
int | numEnums
int * | enumValues
SbName * | enumNames
SbBool | legalValuesSet

## Additional Inherited Members
Public Types inherited from SoField
enum | FieldType { NORMAL_FIELD = 0 , EVENTIN_FIELD , EVENTOUT_FIELD , EXPOSED_FIELD }
Public Attributes inherited from SoField

## Detailed Description

The SoSFEnum class is a container for an enum value.

This field is used where nodes, engines or other field containers needs to store one particular value out of an enumerated set.

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

SoSFEnum instances are initialized on an instance basis, usually in the constructor of the field container with the macros SO_NODE_DEFINE_ENUM_VALUE(enumtype, symbolvalue) and SO_NODE_SET_SF_ENUM_TYPE(enumfield, enumtype) for nodes, or for engines; SO_ENGINE_DEFINE_ENUM_VALUE() and SO_ENGINE_SET_SF_ENUM_TYPE().

Example initialization from the constructor of the SoCone class:

SO_NODE_DEFINE_ENUM_VALUE(Part, SIDES);
SO_NODE_DEFINE_ENUM_VALUE(Part, BOTTOM);
SO_NODE_DEFINE_ENUM_VALUE(Part, ALL);
SO_NODE_SET_SF_ENUM_TYPE(parts, Part);

See also
  SoMFEnum, SoSFBitMask

## Member Function Documentation

## ◆ createInstance()

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

## ◆ getClassTypeId()

SoType SoSFEnum::getClassTypeId | ( | void |  | ) |
| static

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

## ◆ getTypeId()

SoType SoSFEnum::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 SoSFBitMask.

## ◆ copyFrom()

void SoSFEnum::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 SoSFBitMask.

## ◆ isSame()

SbBool SoSFEnum::isSame | ( | const SoField & | f | ) | const
| virtual

Check for equal type and value(s).

Implements SoField.

Reimplemented in SoSFBitMask.

## ◆ initClass()

void SoSFEnum::initClass | ( | void |  | ) |
| static

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

## ◆ setValue()

void SoSFEnum::setValue | ( | const SbName | name | ) |

Set the value of this field by specifying an enumeration string value.

## ◆ setEnums()

void SoSFEnum::setEnums | ( | const int | num,
|  | const int * | vals,
|  | const SbName * | names )

Makes a set of num enumeration names map to integer values, given by vals.

## ◆ getNumEnums()

int SoSFEnum::getNumEnums | ( | void |  | ) | const

Returns the number of enum names the SoSFEnum object understands.

Note that this API method is not part of the original SGI Inventor 2.1 API, and is an extension specific to Coin.

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

## ◆ getEnum()

int SoSFEnum::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.

Note that this API method is not part of the original SGI Inventor 2.1 API, and is an extension specific to Coin.

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

## ◆ findEnumValue()

SbBool SoSFEnum::findEnumValue | ( | const SbName & | name,
|  | int & | val )
| protectedvirtual

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

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

## ◆ findEnumName()

SbBool SoSFEnum::findEnumName | ( | int | valuearg,
|  | const SbName *& | name ) const
| protectedvirtual

Set the enumeration name which matches the given enumeration value.

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

## Member Data Documentation

## ◆ numEnums

int SoSFEnum::numEnums
| protected

Number of enumeration mappings.

## ◆ enumValues

int* SoSFEnum::enumValues
| protected

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

## ◆ enumNames

SbName* SoSFEnum::enumNames
| protected

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

## ◆ legalValuesSet

SbBool SoSFEnum::legalValuesSet
| protected

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

The documentation for this class was generated from the following files:

- SoSFEnum.h
- SoSFEnum.cpp