00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _Map3Projector_H_ 00015 #define _Map3Projector_H_ 00016 00017 #include "NTupleProjector.h" 00018 00019 #include "axes/Range.h" 00020 00021 namespace hippodraw { 00022 00030 class MDL_HIPPOPLOT_API Map3Projector : public NTupleProjector 00031 { 00032 00033 private: 00034 00036 Range m_z_range; 00037 00038 protected: 00039 00041 Map3Projector ( const Map3Projector & projector ); 00042 00046 virtual void changedNTuple(); 00047 00048 bool m_z_log; 00049 bool m_z_auto_scale; 00050 bool m_z_auto_tick; 00051 00053 virtual void addPointReps (); 00054 00055 public: 00056 00058 Map3Projector(); 00059 00062 ProjectorBase * clone(); 00063 00066 virtual Range valueRange() const; 00067 00070 virtual Range dataRangeOn ( hippodraw::Axes::Type ) const; 00071 00074 virtual double getPosOn ( hippodraw::Axes::Type axis ) const; 00075 00078 const std::string & getZLabel() const; 00079 00081 virtual double getZValue ( double x, double y ) const; 00082 00083 virtual DataSource * createNTuple () const; 00084 00085 virtual void prepareValues (); 00086 00087 protected: 00088 00089 virtual void fillProjectedValues ( DataSource * ntuple, 00090 bool in_range = false ) const; 00091 00092 }; 00093 00094 } // namespace hippodraw 00095 00096 #endif // _Map3Projector_H_