qwt_spline.h

00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  * 
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
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 // MOC_SKIP_BEGIN
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 // MOC_SKIP_END
00036 
00077 class QWT_EXPORT QwtSpline
00078 {
00079 public:
00080     enum SplineType
00081     {
00082         Natural,
00083         Periodic
00084     };
00085 
00086     QwtSpline();
00087     QwtSpline( const QwtSpline & );
00088 
00089     ~QwtSpline();
00090 
00091     QwtSpline &operator=( const QwtSpline & );
00092 
00093     void setSplineType(SplineType);
00094     SplineType splineType() const;
00095 
00096 #if QT_VERSION < 0x040000
00097     bool setPoints(const QwtArray<QwtDoublePoint>& points);
00098     QwtArray<QwtDoublePoint> points() const;
00099 #else
00100     bool setPoints(const QPolygonF& points);
00101     QPolygonF points() const;
00102 #endif
00103 
00104     void reset();
00105 
00106     bool isValid() const;
00107     double value(double x) const;
00108 
00109 protected:
00110 
00111 #if QT_VERSION < 0x040000
00112     bool buildNaturalSpline(
00113         const QwtArray<QwtDoublePoint> &);
00114     bool buildPeriodicSpline(
00115         const QwtArray<QwtDoublePoint> &);
00116 #else
00117     bool buildNaturalSpline(const QPolygonF &);
00118     bool buildPeriodicSpline(const QPolygonF &);
00119 #endif
00120 
00121     class PrivateData;
00122     PrivateData *d_data;
00123 };
00124 
00125 #endif

Generated on Mon Feb 26 21:22:38 2007 for Qwt User's Guide by  doxygen 1.4.6