00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _Map3Projector_H_ 00015 #define _Map3Projector_H_ 00016 00017 #include "NTupleProjector.h" 00018 00019 #include "axes/Range.h" 00020 00028 class MDL_HIPPOPLOT_API Map3Projector : public NTupleProjector 00029 { 00030 00031 private: 00032 00034 Range m_z_range; 00035 00036 protected: 00037 00039 Map3Projector ( const Map3Projector & projector ); 00040 00044 virtual void changedNTuple(); 00045 00046 bool m_z_log; 00047 bool m_z_auto_scale; 00048 bool m_z_auto_tick; 00049 00051 virtual void addPointReps (); 00052 00053 public: 00054 00056 Map3Projector(); 00057 00059 ~Map3Projector(); 00060 00063 ProjectorBase * clone(); 00064 00067 virtual Range valueRange() const; 00068 00071 virtual Range dataRangeOn ( hippodraw::Axes::Type ) const; 00072 00075 virtual double getPosOn ( hippodraw::Axes::Type axis ) const; 00076 00079 const std::string & getZLabel() const; 00080 00082 virtual double getZValue ( double x, double y ) const; 00083 00084 virtual DataSource * createNTuple () const; 00085 00086 virtual void prepareValues (); 00087 00088 protected: 00089 00090 virtual void fillProjectedValues ( DataSource * ntuple, 00091 bool in_range = false ) const; 00092 virtual void fillDataSource ( DataSource * ntuple, 00093 bool in_range = false ) const; 00094 00095 }; 00096 00097 #endif // _Map3Projector_H_