1 /*!
2 	@file
3 	@author		Albert Semenov
4 	@date		07/2012
5 */
6 
7 #ifndef _ec693983_b8f8_4345_8dfd_c9858fe58df9_
8 #define _ec693983_b8f8_4345_8dfd_c9858fe58df9_
9 
10 #include "IExportSerializer.h"
11 #include "pugixml.hpp"
12 #include "Data.h"
13 
14 namespace tools
15 {
16 
17 	class ImageExportSerializer :
18 		public IExportSerializer
19 	{
20 	public:
21 		virtual void serialization(pugi::xml_document& _doc);
22 		virtual bool deserialization(pugi::xml_document& _doc);
23 
24 	private:
25 		void parseImage(pugi::xml_node _node);
26 		void parseGroup(pugi::xml_node _node, DataPtr _parent);
27 		void parseIndex(pugi::xml_node _node, DataPtr _parent);
28 		void parseFrame(pugi::xml_node _node, DataPtr _parent);
29 
30 		void writeImage(pugi::xml_node _parent, DataPtr _data);
31 		void writeGroup(pugi::xml_node _parent, DataPtr _data);
32 		void writeIndex(pugi::xml_node _parent, DataPtr _data);
33 		void writeFrame(pugi::xml_node _parent, DataPtr _data);
34 
35 		void updateImageProperty(DataPtr _data);
36 		void updateGroupProperty(DataPtr _data);
37 		void updateIndexProperty(DataPtr _data);
38 
39 		MyGUI::IntPoint getFirstFramePoint(DataPtr _data);
40 	};
41 
42 }
43 
44 #endif
45