00001
00002
00014 #ifndef _Profile2DProjector_H_
00015 #define _Profile2DProjector_H_
00016
00017 #include "BinningProjector.h"
00018 #include "NTupleProjector.h"
00019
00020 #include "axes/Range.h"
00021
00035 class MDL_HIPPOPLOT_API Profile2DProjector : public BinningProjector,
00036 public NTupleProjector
00037 {
00038
00039 private:
00040
00042 mutable Range m_value_range;
00043
00044 protected:
00045
00047 Profile2DProjector ( const Profile2DProjector & projector );
00048
00053 virtual void changedNTuple();
00054
00055 public:
00056
00059 Profile2DProjector();
00060
00062 ~Profile2DProjector();
00063
00066 ProjectorBase * clone();
00067
00070 void execute();
00071
00074 virtual Range valueRange() const;
00075
00078 virtual Range dataRangeOn ( hippodraw::Axes::Type ) const;
00079
00082 virtual double getPosOn ( hippodraw::Axes::Type axis ) const;
00083
00085 virtual void addPointReps ();
00086
00087 public:
00088
00089 virtual void setRange ( hippodraw::Axes::Type axis, bool );
00090
00098 virtual void setBinWidth ( hippodraw::Axes::Type axis, double v );
00099 virtual void setBinWidth ( const std::string & axis,
00100 int parm,
00101 bool dragging );
00102 virtual void setOffset ( const std::string & axis,
00103 int parm,
00104 bool dragging );
00105 virtual void setOffset ( hippodraw::Axes::Type axis, double v );
00106
00109 virtual bool isAxisBinned ( const std::string & axis ) const;
00110
00113 const std::string & getZLabel() const;
00114
00120 virtual void setBinnerRange ( hippodraw::Axes::Type axis,
00121 const Range & range,
00122 bool const_width );
00123
00129 virtual void update ( const Observable * object );
00130
00136 virtual void willDelete ( const Observable * object );
00137
00138 };
00139
00140 #endif // _Profile2DProjector_H_