00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_SPLINE_H
00011 #define QWT_SPLINE_H
00012
00013 #include "qwt_global.h"
00014 #include <qpolygon.h>
00015 #include <qvector.h>
00016
00057 class QWT_EXPORT QwtSpline
00058 {
00059 public:
00061 enum SplineType
00062 {
00063 Natural,
00064 Periodic
00065 };
00066
00067 QwtSpline();
00068 QwtSpline( const QwtSpline & );
00069
00070 ~QwtSpline();
00071
00072 QwtSpline &operator=( const QwtSpline & );
00073
00074 void setSplineType( SplineType );
00075 SplineType splineType() const;
00076
00077 bool setPoints( const QPolygonF& points );
00078 QPolygonF points() const;
00079
00080 void reset();
00081
00082 bool isValid() const;
00083 double value( double x ) const;
00084
00085 const QVector<double> &coefficientsA() const;
00086 const QVector<double> &coefficientsB() const;
00087 const QVector<double> &coefficientsC() const;
00088
00089 protected:
00090 bool buildNaturalSpline( const QPolygonF & );
00091 bool buildPeriodicSpline( const QPolygonF & );
00092
00093 private:
00094 class PrivateData;
00095 PrivateData *d_data;
00096 };
00097
00098 #endif