00001
00002
00014 #ifndef _BinnerAxisLog_H_
00015 #define _BinnerAxisLog_H_
00016
00017 #include "BinnerAxis.h"
00018
00019 #include <vector>
00020
00021 namespace hippodraw {
00022
00032 class MDL_HIPPOPLOT_API BinnerAxisLog : public BinnerAxis
00033 {
00034 private:
00035
00037 BinnerAxisLog ( const BinnerAxisLog & binner );
00038
00041 std::vector<double> bins;
00042
00043 double calcWidthParm ( int number ) const;
00044
00045 public:
00046
00048 BinnerAxisLog ();
00049
00051 virtual ~BinnerAxisLog();
00052
00055 BinnerAxis * clone();
00056
00059 virtual int axisBinNumber ( double x ) const;
00060
00067 virtual double getCoordinate ( int i ) const;
00068
00071 virtual double axisBinWidth ( int bins_number) const;
00072
00074 virtual void axisSetNumberOfBins( int nb );
00075
00077 virtual double getConstWid ( ) const;
00078
00079 virtual double getBinWidth ( ) const;
00080
00081
00084 virtual double scaleFactorWid ( );
00085
00088 virtual const Range & setBinWidth ( double width );
00089
00090 virtual double calcOffset ( int parm, bool dragging ) const;
00091
00093 virtual double getOffset () const;
00094
00096 virtual const void setOffset ( double offset );
00097
00098
00099 virtual const Range & setRange ( const Range &,
00100 bool hold_width = true );
00101
00102 private:
00103
00104 virtual int getNob ( double wid ) const;
00105 virtual int getNob ( const Range & range ) const;
00106
00109 void setBins();
00110
00114 virtual void setConstWid ( );
00115
00116
00117 };
00118
00119 }
00120
00121 #endif // _BinnerAxisLog_H_