00001 /* -*- mode: c++ -*- */ 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 } // namespace hippodraw 00115 00116 #endif // _Hist2DProjImp_H_