LogTransform.h

Go to the documentation of this file.
00001 /* -*- mode: c++ -*- */
00002 
00014 #ifndef _LogTransform_H_
00015 #define _LogTransform_H_
00016 
00017 #include "UnaryTransform.h"
00018 
00019 namespace hippodraw {
00020 
00021 class AxisModelBase;
00022 class AxisTick;
00023 
00028 class MDL_HIPPOPLOT_API LogTransform : public UnaryTransform
00029 {
00030 private:
00031 
00034   std::vector < AxisTick > m_ticks;
00035 
00036   void setFirstTick( AxisModelBase & );
00037   void setTickStep( AxisModelBase & );
00038   const std::vector < AxisTick > &
00039   genTicks ( AxisModelBase & );
00040   
00041   double prevStep ( double current, AxisModelBase & axis );
00042   double nextStep ( double current, AxisModelBase & axis );
00043 
00044   const Range & adjustLogValues ( AxisModelBase & axis );
00045   
00046 public:
00047 
00049   LogTransform ();
00050 
00052   LogTransform ( const LogTransform & );
00053 
00055   virtual ~LogTransform();
00056 
00058 #ifdef CLONE_DEFECT
00059   virtual TransformBase * clone () const;
00060 #else
00061   virtual LogTransform  * clone () const;
00062 #endif
00063 
00064   virtual bool isLinear () const;
00065   
00069   virtual void transform ( double & x ) const;
00070   
00072   virtual void inverseTransform ( double & x ) const;
00073   
00076   virtual void transform ( std::vector< double > & x ) const;
00077   
00080   virtual void validate ( Range & ) const;
00081   
00084   virtual const std::vector < AxisTick > &
00085   setTicks ( AxisModelBase & axis );
00086   
00090   const Range & adjustValues ( AxisModelBase & axis, const Range & limit );
00091 
00092 };
00093 
00094 } // namespace hippodraw
00095 
00096 #endif // _LogTransform_H_

Generated for HippoDraw Class Library by doxygen