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
00022 namespace hippodraw {
00023
00037 class MDL_HIPPOPLOT_API Profile2DProjector : public BinningProjector,
00038 public NTupleProjector
00039 {
00040
00041 private:
00042
00044 mutable Range m_value_range;
00045
00046 protected:
00047
00049 Profile2DProjector ( const Profile2DProjector & projector );
00050
00055 virtual void changedNTuple();
00056
00057 public:
00058
00061 Profile2DProjector();
00062
00065 ProjectorBase * clone();
00066
00069 void execute();
00070
00073 virtual Range valueRange() const;
00074
00077 virtual Range dataRangeOn ( hippodraw::Axes::Type ) const;
00078
00081 virtual double getPosOn ( hippodraw::Axes::Type axis ) const;
00082
00084 virtual void addPointReps ();
00085
00086 public:
00087
00088 virtual void setRange ( hippodraw::Axes::Type axis, bool );
00089
00098 virtual const Range & setBinWidth ( hippodraw::Axes::Type axis, double v );
00099
00100 virtual const Range & setBinWidth ( hippodraw::Axes::Type axis,
00101 int parm,
00102 bool dragging );
00103
00104 virtual void setOffset ( const std::string & axis,
00105 int parm,
00106 bool dragging );
00107
00108 virtual void setOffset ( hippodraw::Axes::Type axis, double v );
00109
00112 virtual bool isAxisBinned ( const std::string & axis ) const;
00113
00116 const std::string & getZLabel() const;
00117
00123 virtual void setBinnerRange ( hippodraw::Axes::Type axis,
00124 const Range & range,
00125 bool const_width );
00126
00132 virtual void update ( const Observable * object );
00133
00139 virtual void willDelete ( const Observable * object );
00140
00141 };
00142
00143 }
00144
00145 #endif // _Profile2DProjector_H_