MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLVesselGraph/mlPropertiesMacros.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00010 #include "Properties/mlPropertyAccessor.h"
00011 
00012 #define STATIC_CASTED_GRAPH_PROPERTY(VisibleType, StoredType, lowerCaseName, upperCaseName)                                            \
00013 private:                                                                                                                               \
00014   DefaultPropertyAccessor<StoredType> _##lowerCaseName##Accessor;                                                                      \
00015 public:                                                                                                                                \
00016   VisibleType get##upperCaseName() const { return static_cast<VisibleType>(_##lowerCaseName##Accessor.get(*this)); }                   \
00017   void set##upperCaseName(const VisibleType& newValue) { _##lowerCaseName##Accessor.set(*this, static_cast<StoredType>(newValue)); }
00018 
00019 #ifdef ML_DEPRECATED
00020 #define STATIC_GRAPH_PROPERTY(Type, lowerCaseName, upperCaseName)                                     \
00021 private:                                                                                              \
00022   DefaultPropertyAccessor<Type> _##lowerCaseName##Accessor;                                           \
00023 public:                                                                                               \
00024   ML_DEPRECATED Type& lowerCaseName() { return _##lowerCaseName##Accessor(*this); }                   \
00025   Type get##upperCaseName() const { return _##lowerCaseName##Accessor.get(*this); }                   \
00026   void set##upperCaseName(const Type& newValue) { _##lowerCaseName##Accessor.set(*this, newValue); }
00027 #else
00028 #define STATIC_GRAPH_PROPERTY(Type, lowerCaseName, upperCaseName)                                     \
00029 private:                                                                                              \
00030   DefaultPropertyAccessor<Type> _##lowerCaseName##Accessor;                                           \
00031 public:                                                                                               \
00032   Type get##upperCaseName() const { return _##lowerCaseName##Accessor.get(*this); }                   \
00033   void set##upperCaseName(const Type& newValue) { _##lowerCaseName##Accessor.set(*this, newValue); }
00034 #endif
00035 
00036 #define READ_OLD_STATIC_PROPERTY(Type, parent, tagName, setFunction) \
00037   {                                                                  \
00038     Type tmp;                                                        \
00039     parent->readChild(tmp, tagName);                                 \
00040     setFunction(tmp);                                                \
00041   }