MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLObjMgr/ObjMgr/mlObjMgrDataTypes.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-------------------------------------------------------------------------
00005 
00010 //-------------------------------------------------------------------------
00011 
00012 #ifndef __mlObjMgrDataTypes_H
00013 #define __mlObjMgrDataTypes_H
00014 
00015 #ifndef __mlObjMgrSubDataType_H
00016 #include "mlObjMgrSubDataType.h"
00017 #endif
00018 #ifndef __mlLinearAlgebra_H
00019 #include <mlLinearAlgebra.h>
00020 #endif
00021 
00022 #include <boost/shared_ptr.hpp>
00023 
00024 #include "mlBase.h"
00025 
00026 // omAttribute_Message
00027 #ifndef __mlObjMgrAttribute_Message_H
00028 #include "mlObjMgrAttribute_Message.h"
00029 #endif
00030 
00031 // Constants for all registered data types
00032 #define omDATATYPE_INT32      "omData_MLint32"
00033 #define omDATATYPE_BOOL       "omData_bool"
00034 #define omDATATYPE_DOUBLE     "omData_double"
00035 #define omDATATYPE_MAT4       "omData_mat4"
00036 #define omDATATYPE_INT32VEC   "omData_std_MLint32Vec"
00037 #define omDATATYPE_STRING     "omData_std_string"
00038 #define omDATATYPE_MESSAGE    "omData_omMessage"
00039 #define omDATATYPE_VEC3       "omData_vec3"
00040 #define omDATATYPE_VEC4       "omData_vec4"
00041 #define omDATATYPE_VEC3VEC    "omData_std_vec3Vec"
00042 #define omDATATYPE_BASEPTR    "omData_BasePtr"
00043 
00044 ML_START_NAMESPACE
00045 
00046    // These typedef are declared for simplicity of the DATA_TYPE_HEADER* macros
00047    typedef std::string                std_string;
00048    typedef std::vector<MLint32>       std_MLint32Vec;
00049    typedef std::vector<vec3>          std_vec3Vec;
00050    typedef boost::shared_ptr<Base>    BasePtr;
00051 
00053    //  Declaration of attribute data types
00054    //
00055    //  To add new types: see also mlObjMgrObject.cpp and MLObjMgrInit.cpp
00056    //  The macros are defined in mlObjMgrSubAttribute.h
00057 
00058    DATA_TYPE_HEADER(MLint32)
00059    DATA_TYPE_HEADER(bool)
00060    DATA_TYPE_HEADER(double)
00061    DATA_TYPE_HEADER(vec3)
00062    DATA_TYPE_HEADER(vec4)
00063    DATA_TYPE_HEADER(mat4)
00064    DATA_TYPE_HEADER(std_string)
00065    DATA_TYPE_HEADER(std_MLint32Vec)
00066    DATA_TYPE_HEADER(std_vec3Vec)
00067    DATA_TYPE_HEADER(BasePtr)
00068 
00069 
00071    std::list<std::string> omGetKnownDataTypes();
00072 
00073 ML_END_NAMESPACE
00074 
00075 #endif // __mlObjMgrDataTypes_H