SoMFEnum(3IV)NAMESoMFEnum (SoMEnum) - multiple-value field containing any number of
enumerated type values
INHERITS FROM
SoField > SoMField > SoMFEnumSYNOPSIS
typedef SoMFEnum SoMEnum
Functions from class SoMFEnum:
void SoMEnumSetStr(SoMEnum *this, const char *name)
void SoMEnumSet1Str(SoMEnum *this, int index, const char
*name)
SoType SoMEnumGetClassTypeId()
void SoMEnumGetTypeId(const SoMEnum *this)
int SoMEnumGet(const SoMEnum *this, int i)
const int * SoMEnumGetN(const SoMEnum *this, int start)
int SoMEnumFind(SoMEnum *this, int targetValue, SbBool
addIfNotFound = FALSE)
void SoMEnumSetN(SoMEnum *this, int start, int num, const
int *newValues)
void SoMEnumSet1(SoMEnum *this, int index, int newValue)
void SoMEnumSet(SoMEnum *this, int newValue)
int SoMEnumIsEq(const SoMEnum *this, const SoMFEnum *f)
int SoMEnumIsNEq(const SoMEnum *this, const SoMFEnum *f)
int * SoMEnumStartEdit(SoMEnum *this)
void SoMEnumFinishEdit(SoMEnum *this)
Functions from class SoMField:
int SoMEnumGetNum(const SoMEnum *this)
void SoMEnumSetNum(SoMEnum *this, int num)
void SoMEnumDel(SoMEnum *this, int start, int num = -1)
void SoMEnumInsertSpace(SoMEnum *this, int start, int num)
void SoMEnumGet1(SoMEnum *this, int index, SbString
*valueString)
Functions from class SoField:
void SoMEnumSetIgnored(SoMEnum *this, SbBool ignore)
SbBool SoMEnumIsIgnored(const SoMEnum *this)
SbBool SoMEnumIsDflt(const SoMEnum *this)
SbBool SoMEnumIsOfType(const SoMEnum *this, SoType type)
SbBool SoMEnumSetFromStr(SoMEnum *this, const char
*valueString)
void SoMEnumGetIntoStr(SoMEnum *this, SbString
*valueString)
void SoMEnumTouch(SoMEnum *this)
SbBool SoMEnumConnFromField(SoMEnum *this, SoField
*fromField)
Page 1SoMFEnum(3IV)
SbBool SoMEnumConnFrom(SoMEnum *this, SoEngineOutput
*fromEngine)
void SoMEnumDisconn(SoMEnum *this)
SbBool SoMEnumIsConn(const SoMEnum *this)
SbBool SoMEnumIsConnFromField(const SoMEnum *this)
SbBool SoMEnumGetConnField(const SoMEnum *this, SoField
**writingField)
SbBool SoMEnumIsConnFromEngine(const SoMEnum *this)
SbBool SoMEnumGetConnEngine(const SoMEnum *this,
SoEngineOutput **engineOutput)
void SoMEnumEnableConn(SoMEnum *this, SbBool flag)
SbBool SoMEnumIsConnEnabled(const SoMEnum *this)
int SoMEnumGetForwardConn(const SoMEnum *this,
SoFieldList *list)
SoFieldContainer * SoMEnumGetContainer(const SoMEnum *this)
DESCRIPTION
A multiple-value field that contains any number of enumerated type
values, stored as ints. Nodes that use this field class define mnemonic
names for values. These names should be used when setting or testing the
values of the field, even though the values are treated as integers in
the methods.
SoMFEnums are written to file as a set of mnemonic enumerated type names.
These names differ among uses of this field in various node classes. See
the reference pages for specific nodes for the names.
When more than one value is present, all of the values are enclosed in
square brackets and separated by commas.
FUNCTIONS
void SoMEnumSetStr(SoMEnum *this, const char *name)
Sets this field to contain one and only one value, which is the
mnemonic name as a string.
void SoMEnumSet1Str(SoMEnum *this, int index, const char
*name)
Sets the index'th value to be the integer corresponding to the
mnemonic name in the given string.
SoType SoMEnumGetClassTypeId()
void SoMEnumGetTypeId(const SoMEnum *this)
Returns the type for this class or a particular object of this
class.
int SoMEnumGet(const SoMEnum *this, int i)
Returns the i'th value of the field. Indexing past the end of the
field (passing in i greater than getNum()) will return garbage.
const int * SoMEnumGetN(const SoMEnum *this, int start)
Returns a pointer into the array of values in the field, starting at
Page 2SoMFEnum(3IV)
index start. The values are read-only; see the
startEditing()/finishEditing() methods for a way of modifying values
in place.
int SoMEnumFind(SoMEnum *this, int targetValue, SbBool
addIfNotFound = FALSE)
Finds the given value in the array and returns the index of that
value in the array. If the value is not found, -1 is returned. If
addIfNotFound is set, then targetValue is added to the end of the
array (but -1 is still returned).
void SoMEnumSetN(SoMEnum *this, int start, int num, const
int *newValues)
Sets num values starting at index start to the values in newValues.
The array will be automatically be made larger to accomodate the new
values, if necessary.
void SoMEnumSet1(SoMEnum *this, int index, int newValue)
Sets the index'th value in the array to newValue. The array will be
automatically expanded, if necessary.
void SoMEnumSet(SoMEnum *this, int newValue)
Sets the first value in the array to newValue, and deletes the
second and subsequent values.
int SoMEnumIsEq(const SoMEnum *this, const SoMFEnum *f)
int SoMEnumIsNEq(const SoMEnum *this, const SoMFEnum *f)
Returns TRUE if all of the values of this field equal (do not equal)
those of the given field. If the fields are different types FALSE
will always be returned (even if one field is an SoMFFloat with one
value of 1.0 and the other is an SoMFInt with a value of 1, for
example).
int * SoMEnumStartEdit(SoMEnum *this)
void SoMEnumFinishEdit(SoMEnum *this)
startEditing() returns a pointer to the internally-maintained array
that can be modified. The values in the array may be changed, but
values cannot be added or removed. It is illegal to call any other
editing methods between StartEdit() and FinishEdit() (e.g. Set1(),
Set(), etc).
Fields, engines or sensors connected to this field and sensors are
not notified that this field has changed until FinishEdit() is
called. Calling FinishEdit() always sets the IsDflt flag to FALSE
and informs engines and sensors that the field changed, even if none
of the values actually were changed.
Page 3