00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 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 mitkVector3DPropertySerializer_h_included 00019 #define mitkVector3DPropertySerializer_h_included 00020 00021 #include "mitkBasePropertySerializer.h" 00022 00023 #include "mitkProperties.h" 00024 00025 #include "SceneSerializationBaseExports.h" 00026 00027 namespace mitk 00028 { 00029 00030 class SceneSerializationBase_EXPORT Vector3DPropertySerializer : public BasePropertySerializer 00031 { 00032 public: 00033 00034 mitkClassMacro( Vector3DPropertySerializer, BasePropertySerializer ); 00035 itkNewMacro(Self); 00036 00037 virtual TiXmlElement* Serialize() 00038 { 00039 if (const Vector3DProperty* prop = dynamic_cast<const Vector3DProperty*>(m_Property.GetPointer())) 00040 { 00041 TiXmlElement* element = new TiXmlElement("vector"); 00042 Vector3D point = prop->GetValue(); 00043 element->SetDoubleAttribute("x", point[0]); 00044 element->SetDoubleAttribute("y", point[1]); 00045 element->SetDoubleAttribute("z", point[2]); 00046 return element; 00047 } 00048 else return NULL; 00049 } 00050 00051 protected: 00052 00053 Vector3DPropertySerializer() {} 00054 virtual ~Vector3DPropertySerializer() {} 00055 }; 00056 00057 } // namespace 00058 00059 // important to put this into the GLOBAL namespace (because it starts with 'namespace mitk') 00060 MITK_REGISTER_SERIALIZER(Vector3DPropertySerializer); 00061 00062 #endif 00063