25 typedef std::map<int, std::string>
EnumMap;
28 #define DECLARE_ENUM(enum_type,...) \
32 const std::string full_name_##enum_type = #__VA_ARGS__;
46 PEnum(std::string enum_name,
int val,
const std::string enum_str)
105 std::shared_ptr<VarType>& data = this->
getDataPtr();
108 data = std::make_shared<VarType>(val);
127 return data->currentKey();
130 void setCurrentKey(
int index)
132 std::shared_ptr<VarType>& data = this->
getDataPtr();
134 data->setCurrentKey(index);
150 std::stringstream ss;
161 int key = std::stoi(str);
174#define DEF_ENUM(enum_type, enum_name, enum_value, desc) \
176 FVar<PEnum> var_##enum_name = FVar<PEnum>(PEnum(#enum_type, enum_value, full_name_##enum_type), std::string(#enum_name), desc, FieldTypeEnum::Param, this); \
178 inline FVar<PEnum>* var##enum_name() {return &var_##enum_name;}
#define DEFINE_FIELD_FUNC(DerivedField, Data, FieldName)
std::shared_ptr< DataType > & getDataPtr()
std::string serialize() override
bool deserialize(const std::string &str) override
std::shared_ptr< DataType > & constDataPtr()
bool operator==(const int val) const
std::string currentString()
PEnum(std::string enum_name, int val, const std::string enum_str)
bool operator!=(const int val) const
void setCurrentKey(int index)
This is an implementation of AdditiveCCD based on peridyno.
bool parse_enum_string(const std::string &enum_str, EnumMap &enumKeyValueList)
std::map< int, std::string > EnumMap