00001
00002
00014 #ifndef _PlotterBaseXML_H_
00015 #define _PlotterBaseXML_H_
00016
00017 #include "BaseXML.h"
00018
00019 #include "axes/AxesType.h"
00020
00021 namespace hippodraw {
00022
00023 class DataRep;
00024 class AxisModelXML;
00025 class CutPlotter;
00026 class DataRepXML;
00027 class FontXML;
00028 class PlotterBase;
00029 class PointRepXML;
00030 class TextPlotter;
00031 class TransformXML;
00032 class TupleCutXML;
00033 class XyPlotter;
00034
00041 class MDL_HIPPOPLOT_API PlotterBaseXML : public BaseXML
00042 {
00043
00044 private:
00045
00047 static PlotterBaseXML * s_instance;
00048
00050 AxisModelXML * m_axismodel;
00051
00053 DataRepXML * m_datarep;
00054
00056 PointRepXML * m_pointrep;
00057
00059 TransformXML * m_transform_xml;
00060
00062 TupleCutXML * m_tuple_cut_xml;
00063
00065 FontXML * m_font;
00066
00070 std::string m_axis;
00071
00074 std::string m_title;
00075
00078 std::string m_x_label;
00079
00082 std::string m_y_label;
00083
00086 std::string m_z_label;
00087
00091 std::string m_pindex;
00092
00094 PlotterBaseXML ( const PlotterBaseXML & );
00095
00097 void createAxisModel ( XmlElement &, const PlotterBase &,
00098 hippodraw::Axes::Type axis );
00099
00101 void createAxisModels ( const XmlElement * element, PlotterBase * plotter );
00102
00105 void createFontElements ( XmlElement & tag, const XyPlotter & plotter );
00106
00109 void createFontElement ( XmlElement & tag,
00110 const XyPlotter & plotter,
00111 hippodraw::Axes::Type axis );
00112
00114 void createChildren ( XmlElement &, const PlotterBase & );
00115
00119 void createCutChildren ( XmlElement &, const CutPlotter & plotter );
00120
00124 void createTextChildren ( XmlElement &, const TextPlotter & plotter );
00125
00127 PlotterBase * createPlotter ( const XmlElement * element );
00128
00131 void handleCutPlotter ( const XmlElement * element,
00132 CutPlotter * plotter );
00133
00135 void handleFunction ( const XmlElement * element,
00136 hippodraw::DataRep * rep );
00137
00140 int handleTextPlotter ( const XmlElement * element, TextPlotter * plotter );
00141
00144 void getCutTargets ( const XmlElement * element, CutPlotter * plotter );
00145
00146 protected:
00147
00149 PlotterBaseXML ( const std::string &, XmlController * controller );
00150
00153 void createFontObjects ( const XmlElement *, PlotterBase * plotter );
00154
00155 public:
00156
00159 PlotterBaseXML ( XmlController * controller );
00160
00163 ~PlotterBaseXML ();
00164
00167 bool areDataSourcesSaved ( const PlotterBase & plotter );
00168
00171 XmlElement * createElement ( const PlotterBase & plotter );
00172
00174 virtual PlotterBase * getObject ( const XmlElement * element );
00175
00176 };
00177
00178 }
00179
00180 #endif // _PlotterBaseXML_H_