Bins1DBase.h

Go to the documentation of this file.
00001 /* -*- mode: c++ -*- */
00002 
00014 #ifndef _Bins1DBase_H_
00015 #define _Bins1DBase_H_
00016 
00017 #include "BinsBase.h"
00018 
00019 #include "BinnerAxis.h"
00020 
00021 namespace hippodraw {
00022 
00030 class MDL_HIPPOPLOT_API Bins1DBase : public BinsBase
00031 {
00032 private: 
00033 
00035   void resize ();
00036 
00037 protected:
00038   
00040   BinnerAxis * binner_axis;
00041 
00043   Bins1DBase ( const char * name );
00044 
00046   Bins1DBase ( const Bins1DBase & binner );
00047 
00048   virtual double getLow ( hippodraw::Axes::Type axis ) const;
00049 
00051   virtual void resize ( int number ) = 0;
00052 
00057   virtual NTuple * prepareNTuple ( unsigned int rows ) const;
00058 
00059 public:
00060 
00062   virtual ~Bins1DBase ();
00063 
00064   virtual int getNumberOfAxes () const;
00065 
00066   virtual int numberOfBins ( hippodraw::Axes::Type axis ) const;
00067 
00068   virtual bool hasEqualWidths () const;
00069 
00074   double binWidth ( int i ) const;
00075 
00076   virtual const BinnerAxis * getBinnerOn ( hippodraw::Axes::Type axis ) const;
00077 
00080   virtual void setBinnerOn ( BinnerAxis *, hippodraw::Axes::Type axis );
00081 
00083   double getHigh() const;
00084 
00085   virtual void setNumberOfBins ( hippodraw::Axes::Type axis, int num_bins );
00086 
00089   inline int binNumber(double x);
00090 
00091   virtual const Range & setBinWidth ( hippodraw::Axes::Type axis, 
00092                                       double value );
00093 
00096   double calcBinWidth ( hippodraw::Axes::Type axis, 
00097                         int parm, 
00098                         bool dragging ) const;
00099 
00101   virtual double calcOffset ( const std::string &,
00102                              int parm,
00103                              bool dragging ) const;
00104 
00106   virtual double getOffset ( hippodraw::Axes::Type axis ) const;
00107 
00110   virtual void setOffset ( hippodraw::Axes::Type axis, double value );
00111 
00112   virtual const Range & setRange ( hippodraw::Axes::Type axis, 
00113                                    const Range &, 
00114                                    bool hold_width = true );
00115 
00117   virtual const Range & getRange ( hippodraw::Axes::Type axis );
00118 
00122   virtual double scaleFactor () const;
00123 
00124   
00125   virtual double binWidth ( hippodraw::Axes::Type axis ) const;
00126 
00131   virtual int getNumberOfEntries ( int i ) const  = 0;
00132   
00133 };
00134 
00135 inline
00136 int
00137 Bins1DBase::binNumber(double x)
00138 {
00139   return binner_axis->axisBinNumber(x);
00140 }
00141 
00142 
00143 } // namespace hippodraw
00144 
00145 #endif // _Bins1DBase_H_

Generated for HippoDraw Class Library by doxygen