00001
00002
00014 #ifndef _MeshProjector_H_
00015 #define _MeshProjector_H_
00016
00017 #include "NTupleProjector.h"
00018
00019 namespace hippodraw {
00020
00028 class MDL_HIPPOPLOT_API MeshProjector : public NTupleProjector
00029 {
00030
00032 std::string m_x_option;
00033
00035 std::string m_y_option;
00036
00037 protected:
00038
00040 MeshProjector ( const MeshProjector & projector );
00041
00047 virtual void changedNTuple();
00048
00050 virtual void addPointReps ();
00051
00053 Range dataRangeOnValue () const;
00054
00057 virtual bool inRange ( int row ) const;
00058
00063 bool inRangeWithZ ( int row, bool flag ) const;
00064
00065 public:
00066
00068 MeshProjector();
00069
00071 virtual ~MeshProjector();
00072
00075 ProjectorBase * clone();
00076
00080 virtual void setXErrorOption ( bool enable );
00081
00084 virtual void setYErrorOption ( bool enable );
00085
00088 virtual Range dataRangeOn ( hippodraw::Axes::Type ) const;
00089 virtual Range valueRange () const;
00090
00093 virtual double getPosOn ( hippodraw::Axes::Type axis ) const;
00094
00095 virtual DataSource * createNTuple () const;
00096 virtual void fillProjectedValues ( DataSource * ntuple,
00097 bool in_range = false ) const;
00098 virtual void prepareValues ();
00099
00102 const std::string & getZLabel() const;
00103
00105 virtual double getZValue ( double x, double y ) const;
00106
00113 virtual Range preferredRange ( hippodraw::Axes::Type axis ) const;
00114
00115
00116 };
00117
00118 }
00119
00120 #endif // _MeshProjector_H_