00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _Hist2DProjImp_H_ 00015 #define _Hist2DProjImp_H_ 00016 00017 #include "BinningProjector.h" 00018 00019 #include "axes/Range.h" 00020 00034 class MDL_HIPPOPLOT_API Hist2DProjImp : public BinningProjector 00035 { 00036 00037 private: 00038 00040 std::string m_z_label_entries; 00041 00043 std::string m_z_label_density; 00044 00046 mutable Range m_value_range; 00047 00048 protected: 00049 00051 Hist2DProjImp ( const Hist2DProjImp & projector ); 00052 00056 virtual void checkScaling (); 00057 00059 void setZLabel(); 00060 00062 virtual void addPointReps (); 00063 00066 Range dataRangeOnValue () const; 00067 00070 double getPosOnValue () const; 00071 00072 public: 00073 00075 Hist2DProjImp(); 00076 00078 ~Hist2DProjImp(); 00079 00083 virtual Range valueRange() const; 00084 00086 virtual void setRange( hippodraw::Axes::Type axis, bool ); 00087 00088 virtual Range preferredRange ( hippodraw::Axes::Type ) const; 00089 00098 virtual void setBinWidth ( hippodraw::Axes::Type axis, double v ); 00099 virtual void setOffset ( hippodraw::Axes::Type axis, double v ); 00100 00103 virtual bool isValueBinned () const; 00104 00106 const std::string & getZLabel() const; 00107 00109 virtual bool hasZAxis() const; 00110 00113 virtual bool wantsScaleFactor ( const std::string & axis ) const; 00114 00115 }; 00116 00117 #endif // _Hist2DProjImp_H_