Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BinsFunction.h

Go to the documentation of this file.
00001 /* -*- mode: c++ -*- */
00002 
00014 #ifndef _BinsFunction_H_
00015 #define _BinsFunction_H_
00016 
00017 #include "axes/AxesType.h"
00018 #include "axes/Range.h"
00019 
00020 #include <list>
00021 
00022 // class ProjValueBase;
00023 class FunctionBase;
00024 
00039 class MDL_HIPPOPLOT_API BinsFunction //: public BinsBase
00040 {
00041 protected:
00042 
00044   int m_num_bins;
00045 
00048   Range m_x_range;
00049 
00052   Range m_y_range;
00053 
00056   Range m_xv_range;
00057 
00060   Range m_yv_range;
00061 
00063   FunctionBase * m_function;
00064 
00066   bool m_values_dirty;
00067 
00071   void resize ( unsigned int new_size, 
00072                 std::list < std::vector < double > > & values );
00073 
00075   void smoothCurve ( std::list < std::vector < double > > & );
00076 
00077 public:
00078 
00083   BinsFunction ( int num_bins = 10,
00084                  double low = 0.0,
00085                  double high = 50.0 );
00086 
00088   BinsFunction ( const BinsFunction & binner );
00089 
00091   virtual ~BinsFunction ();
00092 
00095   virtual BinsFunction * clone() const;
00096 
00097   virtual void setNumberOfBins ( hippodraw::Axes::Type axis, int num_bins );
00098 
00100   virtual void 
00101   createValuesArray ( std::list < std::vector < double > > & array );
00102 
00103   virtual const Range & setRange ( hippodraw::Axes::Type axis, 
00104                                    const Range &, 
00105                                    bool hold_width = true );
00106 
00110   void setRangeOn ( hippodraw::Axes::Type axis, 
00111                     const Range & data,  const Range & view );
00112 
00114   void setFunction ( FunctionBase * );
00115 
00116 };
00117 
00118 #endif // _BinsFunction_H_

Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3