Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef mitkLevelWindowPropertyDeserializer_h_included
00019 #define mitkLevelWindowPropertyDeserializer_h_included
00020
00021 #include "mitkBasePropertyDeserializer.h"
00022
00023 #include "mitkLevelWindowProperty.h"
00024
00025 #include "SceneSerializationBaseExports.h"
00026
00027 namespace mitk
00028 {
00029
00030 class SceneSerializationBase_EXPORT LevelWindowPropertyDeserializer : public BasePropertyDeserializer
00031 {
00032 public:
00033
00034 mitkClassMacro( LevelWindowPropertyDeserializer, BasePropertyDeserializer );
00035 itkNewMacro(Self);
00036
00037 virtual BaseProperty::Pointer Deserialize(TiXmlElement* element)
00038 {
00039 if (!element) return NULL;
00040
00041 bool isFixed(false);
00042 if (element->Attribute("fixed"))
00043 isFixed = std::string(element->Attribute("fixed")) == "true";
00044
00045 float level;
00046 float window;
00047 TiXmlElement* child = element->FirstChildElement("CurrentSettings");
00048 if ( child->QueryFloatAttribute( "level", &level ) != TIXML_SUCCESS ) return NULL;
00049 if ( child->QueryFloatAttribute( "window", &window ) != TIXML_SUCCESS ) return NULL;
00050
00051 float defaultLevel;
00052 float defaultWindow;
00053 child = element->FirstChildElement("DefaultSettings");
00054 if ( child->QueryFloatAttribute( "level", &defaultLevel ) != TIXML_SUCCESS ) return NULL;
00055 if ( child->QueryFloatAttribute( "window", &defaultWindow ) != TIXML_SUCCESS ) return NULL;
00056
00057 float minRange;
00058 float maxRange;
00059 child = element->FirstChildElement("CurrentRange");
00060 if ( child->QueryFloatAttribute( "min", &minRange ) != TIXML_SUCCESS ) return NULL;
00061 if ( child->QueryFloatAttribute( "max", &maxRange ) != TIXML_SUCCESS ) return NULL;
00062
00063
00064
00065 LevelWindow lw;
00066 lw.SetRangeMinMax( minRange, maxRange );
00067 lw.SetDefaultLevelWindow( defaultLevel, defaultWindow );
00068 lw.SetLevelWindow( level, window );
00069 lw.SetFixed( isFixed );
00070
00071 return LevelWindowProperty::New( lw ).GetPointer();
00072 }
00073
00074 protected:
00075
00076 LevelWindowPropertyDeserializer() {}
00077 virtual ~LevelWindowPropertyDeserializer() {}
00078 };
00079
00080 }
00081
00082
00083 MITK_REGISTER_SERIALIZER(LevelWindowPropertyDeserializer);
00084
00085 #endif
00086