00001 /* -*- mode: c++ -*- */ 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 class TupleCut; 00024 00030 class MDL_HIPPOPLOT_API TupleCutXML : public BaseXML 00031 { 00032 00033 private: 00034 00036 static TupleCutXML * s_instance; 00037 00039 std::string m_low; 00040 00042 std::string m_high; 00043 00045 std::string m_invert; 00046 00048 std::string m_column; 00049 00056 std::string m_dim; 00057 00060 std::string m_axis; 00061 00063 TupleCutXML ( const TupleCutXML & ); 00064 00066 void createChildren ( XmlElement &, const TupleCut & ); 00067 00070 void setAxisAttributes ( TupleCut * cut, 00071 hippodraw::Axes::Type axis, 00072 const XmlElement * element ) const; 00073 00074 public: 00075 00078 TupleCutXML ( XmlController * controller ); 00079 00083 XmlElement * createElement ( unsigned int i, const TupleCut & cut ); 00084 00088 bool hasMultiDimTupleCut ( const XmlElement * element ) const; 00089 00092 TupleCut * getObject ( const XmlElement & tag ) const; 00093 00097 void getObjects ( const XmlElement * element, 00098 std::vector < TupleCut * > & cuts ); 00099 00103 void setAttributes ( TupleCut * & cut, const XmlElement * element ) const; 00104 00105 }; 00106 00107 #endif // _TupleCutXML_H_