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 
int numEnums
Definition: SoSFEnum.h:49
SbName * enumNames
Definition: SoSFEnum.h:51
The SoSField class is the base class for fields which contains only a single value.All field types which should always contain only a single member value inherits this class. SoSField is an abstract class. 
Definition: SoSField.h:29
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. 
Definition: SoSFEnum.h:31
SbBool legalValuesSet
Definition: SoSFEnum.h:52
The SbName class stores strings by reference.The class is used by Coin for storing keywords...
Definition: SbName.h:31
int * enumValues
Definition: SoSFEnum.h:50