00001
00002
00014 #ifndef _TupleCutXML_H_
00015 #define _TupleCutXML_H_
00016
00017 #include "BaseXML.h"
00018
00019 #include "axes/AxesType.h"
00020
00021 #include <vector>
00022
00023 namespace hippodraw {
00024
00025 class TupleCut;
00026
00032 class MDL_HIPPOPLOT_API TupleCutXML : public BaseXML
00033 {
00034
00035 private:
00036
00038 static TupleCutXML * s_instance;
00039
00041 std::string m_low;
00042
00044 std::string m_high;
00045
00047 std::string m_invert;
00048
00050 std::string m_column;
00051
00058 std::string m_dim;
00059
00062 std::string m_axis;
00063
00065 TupleCutXML ( const TupleCutXML & );
00066
00068 void createChildren ( XmlElement &, const TupleCut & );
00069
00072 void setAxisAttributes ( TupleCut * cut,
00073 hippodraw::Axes::Type axis,
00074 const XmlElement * element ) const;
00075
00076 public:
00077
00080 TupleCutXML ( XmlController * controller );
00081
00085 XmlElement * createElement ( unsigned int i, const TupleCut & cut );
00086
00090 bool hasMultiDimTupleCut ( const XmlElement * element ) const;
00091
00094 TupleCut * getObject ( const XmlElement & tag ) const;
00095
00099 void getObjects ( const XmlElement * element,
00100 std::vector < TupleCut * > & cuts );
00101
00105 void setAttributes ( TupleCut * & cut, const XmlElement * element ) const;
00106
00107 };
00108
00109 }
00110
00111 #endif // _TupleCutXML_H_