Go to the documentation of this file.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 "qwt_double_rect.h"
00015
00016 #if QT_VERSION >= 0x040000
00017 #include <QPolygonF>
00018 #else
00019 #include "qwt_array.h"
00020 #endif
00021
00022
00023
00024 #if defined(QWT_TEMPLATEDLL)
00025
00026 #if QT_VERSION < 0x040000
00027 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
00028 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
00029 template class QWT_EXPORT QwtArray<QwtDoublePoint>;
00030 #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
00031 #endif
00032
00033 #endif
00034
00035
00036
00077 class QWT_EXPORT QwtSpline
00078 {
00079 public:
00081 enum SplineType
00082 {
00083 Natural,
00084 Periodic
00085 };
00086
00087 QwtSpline();
00088 QwtSpline( const QwtSpline & );
00089
00090 ~QwtSpline();
00091
00092 QwtSpline &operator=( const QwtSpline & );
00093
00094 void setSplineType(SplineType);
00095 SplineType splineType() const;
00096
00097 #if QT_VERSION < 0x040000
00098 bool setPoints(const QwtArray<QwtDoublePoint>& points);
00099 QwtArray<QwtDoublePoint> points() const;
00100 #else
00101 bool setPoints(const QPolygonF& points);
00102 QPolygonF points() const;
00103 #endif
00104
00105 void reset();
00106
00107 bool isValid() const;
00108 double value(double x) const;
00109
00110 const QwtArray<double> &coefficientsA() const;
00111 const QwtArray<double> &coefficientsB() const;
00112 const QwtArray<double> &coefficientsC() const;
00113
00114 protected:
00115
00116 #if QT_VERSION < 0x040000
00117 bool buildNaturalSpline(
00118 const QwtArray<QwtDoublePoint> &);
00119 bool buildPeriodicSpline(
00120 const QwtArray<QwtDoublePoint> &);
00121 #else
00122 bool buildNaturalSpline(const QPolygonF &);
00123 bool buildPeriodicSpline(const QPolygonF &);
00124 #endif
00125
00126 class PrivateData;
00127 PrivateData *d_data;
00128 };
00129
00130 #endif