~ubuntu-branches/ubuntu/oneiric/qwt/oneiric-proposed

« back to all changes in this revision

Viewing changes to qwt-5.0.2/src/qwt_curve_fitter.h

  • Committer: Bazaar Package Importer
  • Author(s): Fathi Boudra
  • Date: 2007-10-05 15:20:41 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20071005152041-qmybqh4fj9jejyo2
Tags: 5.0.2-2
* Handle nostrip build option. (Closes: #437877)
* Build libqwt5-doc package in binary-indep target. (Closes: #443110)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 
2
 * Qwt Widget Library
 
3
 * Copyright (C) 1997   Josef Wilgen
 
4
 * Copyright (C) 2002   Uwe Rathmann
 
5
 * 
 
6
 * This library is free software; you can redistribute it and/or
 
7
 * modify it under the terms of the Qwt License, Version 1.0
 
8
 *****************************************************************************/
 
9
 
 
10
#ifndef QWT_CURVE_FITTER_H
 
11
#define QWT_CURVE_FITTER_H
 
12
 
 
13
#include "qwt_global.h"
 
14
#include "qwt_double_rect.h"
 
15
 
 
16
class QwtSpline;
 
17
 
 
18
#if QT_VERSION >= 0x040000
 
19
#include <QPolygonF>
 
20
#else
 
21
#include "qwt_array.h"
 
22
#endif
 
23
 
 
24
// MOC_SKIP_BEGIN
 
25
 
 
26
#if defined(QWT_TEMPLATEDLL)
 
27
 
 
28
#if QT_VERSION < 0x040000
 
29
#ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
 
30
#define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
 
31
template class QWT_EXPORT QwtArray<QwtDoublePoint>;
 
32
#endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
 
33
#endif
 
34
 
 
35
#endif
 
36
 
 
37
// MOC_SKIP_END
 
38
 
 
39
/*!
 
40
  \brief Abstract base class for a curve fitter
 
41
*/
 
42
class QWT_EXPORT QwtCurveFitter
 
43
{
 
44
public:
 
45
    virtual ~QwtCurveFitter();
 
46
 
 
47
#if QT_VERSION < 0x040000
 
48
    virtual QwtArray<QwtDoublePoint> fitCurve(
 
49
        const QwtArray<QwtDoublePoint>&) const = 0;
 
50
#else
 
51
    virtual QPolygonF fitCurve(const QPolygonF &) const = 0;
 
52
#endif
 
53
 
 
54
protected:
 
55
    QwtCurveFitter();
 
56
 
 
57
private:
 
58
    QwtCurveFitter( const QwtCurveFitter & );
 
59
    QwtCurveFitter &operator=( const QwtCurveFitter & );
 
60
};
 
61
 
 
62
/*!
 
63
  \brief A curve fitter using cubic splines
 
64
*/
 
65
class QWT_EXPORT QwtSplineCurveFitter: public QwtCurveFitter
 
66
{
 
67
public:
 
68
    enum FitMode
 
69
    {
 
70
        Auto,
 
71
        Spline,
 
72
        ParametricSpline
 
73
    };
 
74
 
 
75
    QwtSplineCurveFitter();
 
76
    virtual ~QwtSplineCurveFitter();
 
77
 
 
78
    void setFitMode(FitMode);
 
79
    FitMode fitMode() const;
 
80
 
 
81
    void setSpline(const QwtSpline&);
 
82
    const QwtSpline &spline() const;
 
83
    QwtSpline &spline();
 
84
 
 
85
    void setSplineSize(int size);
 
86
    int splineSize() const;
 
87
 
 
88
#if QT_VERSION < 0x040000
 
89
    virtual QwtArray<QwtDoublePoint> fitCurve(
 
90
        const QwtArray<QwtDoublePoint> &) const;
 
91
#else
 
92
    virtual QPolygonF fitCurve(const QPolygonF &) const;
 
93
#endif
 
94
 
 
95
private:
 
96
#if QT_VERSION < 0x040000
 
97
    QwtArray<QwtDoublePoint> fitSpline(
 
98
        const QwtArray<QwtDoublePoint> &) const;
 
99
    QwtArray<QwtDoublePoint> fitParametric(
 
100
        const QwtArray<QwtDoublePoint> &) const;
 
101
#else
 
102
    QPolygonF fitSpline(const QPolygonF &) const;
 
103
    QPolygonF fitParametric(const QPolygonF &) const;
 
104
#endif
 
105
    
 
106
    class PrivateData;
 
107
    PrivateData *d_data;
 
108
};
 
109
 
 
110
#endif