00001
00002
00014 #ifndef _Hist2DProjImp_H_
00015 #define _Hist2DProjImp_H_
00016
00017 #include "BinningProjector.h"
00018
00019 #include "axes/Range.h"
00020
00021 namespace hippodraw {
00022
00033 class MDL_HIPPOPLOT_API Hist2DProjImp : public BinningProjector
00034 {
00035
00036 private:
00037
00039 std::string m_z_label_entries;
00040
00042 std::string m_z_label_density;
00043
00045 mutable Range m_value_range;
00046
00047 protected:
00048
00050 Hist2DProjImp ( const Hist2DProjImp & projector );
00051
00055 virtual void checkScaling ();
00056
00058 void setZLabel();
00059
00061 virtual void addPointReps ();
00062
00065 Range dataRangeOnValue () const;
00066
00069 double getPosOnValue () const;
00070
00071 public:
00072
00074 Hist2DProjImp();
00075
00077 virtual ~Hist2DProjImp();
00078
00082 virtual Range valueRange() const;
00083
00085 virtual void setRange( hippodraw::Axes::Type axis, bool );
00086
00087 virtual Range preferredRange ( hippodraw::Axes::Type ) const;
00088
00095 virtual const Range & setBinWidth ( hippodraw::Axes::Type axis, double v );
00096 virtual void setOffset ( hippodraw::Axes::Type axis, double v );
00097
00100 virtual bool isValueBinned () const;
00101
00103 const std::string & getZLabel() const;
00104
00106 virtual bool hasZAxis() const;
00107
00110 virtual bool wantsScaleFactor ( const std::string & axis ) const;
00111
00112 };
00113
00114 }
00115
00116 #endif // _Hist2DProjImp_H_