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 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 } // namespace hippodraw 00110 00111 #endif // _TupleCutXML_H_