00001 // -*- mode: c++; -*- 00002 /* 00003 * HippoPlot BinnerAxisLinear class interface 00004 * 00005 * Copyright (C) 2001-2004 The Board of Trustees of The Leland 00006 * Stanford Junior University. All Rights Reserved. 00007 * 00008 * $Id: BinnerAxisLinear.h,v 1.39 2004/04/18 01:35:08 pfkeb Exp $ 00009 */ 00010 00011 #ifndef _BinnerAxisLinear_H_ 00012 #define _BinnerAxisLinear_H_ 00013 00014 #ifdef _MSC_VER 00015 #include "msdevstudio/MSconfig.h" 00016 #endif 00017 00018 #include "BinnerAxis.h" 00019 00026 class MDL_HIPPOPLOT_API BinnerAxisLinear : public BinnerAxis 00027 { 00028 00029 protected: 00030 00032 BinnerAxisLinear ( const BinnerAxisLinear & binner ); 00033 00034 public: // member functions 00035 00037 BinnerAxisLinear (); 00038 00040 virtual ~BinnerAxisLinear(); 00041 00044 BinnerAxis * clone(); 00045 00049 virtual bool hasEqualWidths () const; 00050 00052 virtual void axisSetNumberOfBins( int nb ); 00053 00056 virtual int axisBinNumber(double x) const; 00057 00061 virtual double getCoordinate ( int i ) const; 00062 00064 virtual double axisBinWidth ( int i ) const; 00065 00068 virtual const Range & setBinWidth (double width ); 00069 00070 virtual double calcBinWidth ( int parm, bool dragging ) const; 00071 virtual double calcOffset ( int parm, bool dragging ) const; 00072 00074 virtual double getOffset () const; 00075 00077 virtual const void setOffset ( double offset ); 00078 00081 virtual double scaleFactorWid ( ); 00082 00083 virtual const Range & setRange ( const Range &, 00084 bool hold_width = true ); 00085 00087 virtual double getConstWid ( ) const; 00088 00089 virtual double getBinWidth ( ) const; 00090 00092 virtual void setConstWid ( ); 00093 00094 private: // member functions 00095 00096 virtual int getNob ( double wid ) const; 00097 virtual int getNob ( const Range & range ) const; 00098 00099 }; 00100 00101 #endif // _BinnerAxisLinear_H_