MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLObjMgr/ObjMgr/mlObjMgrData.h
Go to the documentation of this file.
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