00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-10-08 16:58:56 +0200 (Do, 08. Okt 2009) $ 00006 Version: $Revision: 1.12 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef mitkAnnotationPropertyDeserializer_h_included 00019 #define mitkAnnotationPropertyDeserializer_h_included 00020 00021 #include "mitkBasePropertyDeserializer.h" 00022 00023 #include "mitkAnnotationProperty.h" 00024 00025 #include "SceneSerializationBaseExports.h" 00026 00027 namespace mitk 00028 { 00029 00030 class SceneSerializationBase_EXPORT AnnotationPropertyDeserializer : public BasePropertyDeserializer 00031 { 00032 public: 00033 mitkClassMacro( AnnotationPropertyDeserializer, BasePropertyDeserializer ); 00034 itkNewMacro(Self); 00035 00036 virtual BaseProperty::Pointer Deserialize(TiXmlElement* element) 00037 { 00038 if (!element) return NULL; 00039 const char* label( element->Attribute("label") ); 00040 Point3D p; 00041 if ( element->QueryFloatAttribute( "x", &p[0] ) != TIXML_SUCCESS ) 00042 return NULL; 00043 if ( element->QueryFloatAttribute( "y", &p[1] ) != TIXML_SUCCESS ) 00044 return NULL; 00045 if ( element->QueryFloatAttribute( "z", &p[2] ) != TIXML_SUCCESS ) 00046 return NULL; 00047 return AnnotationProperty::New(label, p).GetPointer(); 00048 } 00049 protected: 00050 AnnotationPropertyDeserializer() {} 00051 virtual ~AnnotationPropertyDeserializer() {} 00052 }; 00053 } // namespace 00054 // important to put this into the GLOBAL namespace (because it starts with 'namespace mitk') 00055 MITK_REGISTER_SERIALIZER(AnnotationPropertyDeserializer); 00056 #endif