MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //------------------------------------------------------------------------- 00005 00010 //------------------------------------------------------------------------- 00011 00012 #ifndef __mlObjMgrData_H 00013 #define __mlObjMgrData_H 00014 00015 #ifndef __MLObjMgrSystem_H 00016 #include "MLObjMgrSystem.h" 00017 #endif 00018 #ifndef __mlObjMgrDataTypes_H 00019 #include "mlObjMgrDataTypes.h" 00020 #endif 00021 00022 00023 ML_UTILS_START_NAMESPACE 00024 00025 // Forward declaration of classes 00026 class RuntimeType; 00027 00028 ML_UTILS_END_NAMESPACE 00029 00030 ML_START_NAMESPACE 00031 00034 class MLOBJMGR_EXPORT omData 00035 { 00036 protected: 00037 00038 omDataType *_data; 00039 00040 public: 00041 00042 omData(); 00043 omData(const std::string &typeName, const std::string &value); 00044 omData(const omData &data); 00045 virtual ~omData(); 00046 00048 inline bool isValid() const { 00049 return _data != NULL; 00050 } 00051 00053 void createDataType(const std::string &typeName); 00054 void createDataType(const RuntimeType *type); 00055 00057 inline const RuntimeType *getDataType() const { 00058 return (_data) ? _data->getTypeId() : NULL; 00059 } 00060 00061 inline std::string getStringValue() const { 00062 return (_data) ? _data->getStringValue() : ""; 00063 } 00064 inline void setStringValue(const std::string &value) { 00065 if(_data) _data->setStringValue(value); else *this = value; 00066 } 00067 inline bool stringValueIsEqual(const std::string &value) const { 00068 return (_data && _data->getStringValue() == value); 00069 } 00070 00072 omData &operator =(const omData &data); 00073 virtual void assign(const omData &data); 00074 00075 bool operator ==(const omData &data) const; 00076 00083 DATA_OP_HEADER(MLint32 , 0); 00084 DATA_OP_HEADER(bool , false); 00085 DATA_OP_HEADER(double , 0.0); 00086 DATA_OP_HEADER(vec3 , vec3()); 00087 DATA_OP_HEADER(vec4 , vec4()); 00088 DATA_OP_HEADER(mat4 , mat4()); 00089 DATA_OP_HEADER(std_string , std_string()); 00090 DATA_OP_HEADER(std_MLint32Vec , std_MLint32Vec()); 00091 DATA_OP_HEADER(omMessage , omMessage()); 00092 DATA_OP_HEADER(std_vec3Vec , std_vec3Vec()); 00093 DATA_OP_HEADER(BasePtr , BasePtr()); 00094 00096 omData &operator =(const char *value) { 00097 assign(std_string(value)); return *this; 00098 } 00099 }; 00100 00101 ML_END_NAMESPACE 00102 00103 #endif // __mlObjMgrData_H