1 #ifndef COIN_SOSFENUM_H
2 #define COIN_SOSFENUM_H
27 #include <Inventor/fields/SoSField.h>
28 #include <Inventor/fields/SoSubField.h>
29 #include <Inventor/SbString.h>
34 SO_SFIELD_HEADER(
SoSFEnum,
int,
int);
37 static void initClass(
void);
39 void setValue(
const SbName name);
40 void setEnums(
const int num,
const int * vals,
const SbName * names);
42 int getNumEnums(
void)
const;
43 int getEnum(
const int idx,
SbName & name)
const;
46 virtual SbBool findEnumValue(
const SbName & name,
int & val);
47 virtual SbBool findEnumName(
int value,
const SbName * & name)
const;
59 #define PRIVATE_SOENUM_SET_TYPE(_fieldname_, _enumtype_, _fieldstorage_) \
64 const SbName * names; \
65 _fieldstorage_->getEnumData(SO__QUOTE(_enumtype_), num, values, names); \
66 this->_fieldname_.setEnums(num, values, names); \
70 #define SO_ENGINE_SET_SF_ENUM_TYPE(_fieldname_, _enumtype_) \
71 PRIVATE_SOENUM_SET_TYPE(_fieldname_, _enumtype_, inputdata)
73 #define SO_NODE_SET_SF_ENUM_TYPE(_fieldname_, _enumtype_) \
74 PRIVATE_SOENUM_SET_TYPE(_fieldname_, _enumtype_, fieldData)
76 #endif // !COIN_SOSFENUM_H
static void post(const SoInput *const in, const char *const format,...)
Definition: SoReadError.cpp:110
virtual SbBool findEnumName(int value, const SbName *&name) const
Definition: SoSFEnum.cpp:178
void valueChanged(SbBool resetdefault=1)
Definition: SoField.cpp:2433
The SbName class stores strings by reference.
Definition: SbName.h:31
virtual SbBool findEnumValue(const SbName &name, int &val)
Definition: SoSFEnum.cpp:158
int getEnum(const int idx, SbName &name) const
Definition: SoSFEnum.cpp:355
static void post(const char *const source, const char *const format,...)
Definition: SoDebugError.cpp:314
virtual void write(const char c)
Definition: SoOutput.cpp:757
The SoOutput class is an abstraction of an output stream.
Definition: SoOutput.h:42
int num
Definition: SoMField.h:65
void setEnums(const int num, const int *vals, const SbName *names)
Definition: SoSFEnum.cpp:134
SbBool getFieldName(const SoField *const field, SbName &name) const
Definition: SoFieldContainer.cpp:409
The SoSField class is the base class for fields which contains only a single value.
Definition: SoSField.h:29
The SbString class is a string class with convenience functions for string operations.
Definition: SbString.h:42
SoFieldContainer * getContainer(void) const
Definition: SoField.cpp:1253
const char * getString(void) const
Definition: SbName.cpp:278
The SoSFEnum class is a container for an enum value.
Definition: SoSFEnum.h:31
int getNumEnums(void) const
Definition: SoSFEnum.cpp:338
SbName * enumNames
Definition: SoSFEnum.h:51
The SoFieldContainer class is a base class for all classes that contain fields.
Definition: SoFieldContainer.h:35
int numEnums
Definition: SoSFEnum.h:49
int * enumValues
Definition: SoSFEnum.h:50
SbBool legalValuesSet
Definition: SoSFEnum.h:52
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Mon Jul 27 2020 for Coin by Doxygen. 1.8.18