UnaryTransform.h

Go to the documentation of this file.
00001 /* -*- mode: c++ -*- */
00002 
00014 #ifndef _UnaryTransform_H_
00015 #define _UnaryTransform_H_
00016 
00017 #ifdef _MSC_VER
00018 #include "msdevstudio/MSconfig.h" // for CLONE_DEFECT
00019 #endif
00020 
00021 #include "TransformBase.h"
00022 
00023 #include "axes/Range.h"
00024 
00025 namespace hippodraw {
00026 
00027 class AxisModelBase;
00028 class AxisTick;
00029 
00035 class MDL_HIPPOPLOT_API UnaryTransform : public TransformBase
00036 {
00037 
00038 protected:
00039 
00041   const Range m_limits;
00042 
00044   UnaryTransform ( double low, double high );
00045 
00046 public:
00047 
00049   virtual ~UnaryTransform();
00050 
00052 #ifdef CLONE_DEFECT
00053   virtual TransformBase *   clone () const = 0;
00054 #else
00055   virtual UnaryTransform * clone () const = 0;
00056 #endif
00057 
00058   virtual bool isLinear () const = 0;
00059 
00062   virtual void transform ( double & x ) const = 0;
00063 
00065   virtual void inverseTransform ( double & x ) const = 0;
00066 
00068   virtual void transform ( std::vector< double > & x ) const = 0;
00069 
00072   virtual void validate ( Range & ) const = 0;
00073 
00075   virtual const Range & limits () const;
00076 
00079   virtual const std::vector < AxisTick > &
00080   setTicks ( AxisModelBase & axis ) = 0;
00081 
00085   virtual const Range & adjustValues ( AxisModelBase & model,
00086                                        const Range & limit ) = 0;
00087 
00088 };
00089 
00090 } // namespace hippodraw
00091 
00092 #endif // _UnaryTransform_H_

Generated for HippoDraw Class Library by doxygen