00001
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 }
00095
00096 #endif // _Map3Projector_H_