1
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
3
* Copyright (C) 1997 Josef Wilgen
4
* Copyright (C) 2002 Uwe Rathmann
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
*****************************************************************************/
15
#include "qwt_global.h"
16
#include "qwt_array.h"
17
#include "qwt_double_rect.h"
18
#if QT_VERSION >= 0x040000
24
#if defined(QWT_TEMPLATEDLL)
26
template class QWT_EXPORT QwtArray<double>;
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
40
\brief QwtData defines an interface to any type of curve data.
42
Classes, derived from QwtData may:
43
- store the data in almost any type of container
44
- calculate the data on the fly instead of storing it
47
class QWT_EXPORT QwtData
53
//! \return Pointer to a copy (virtual copy constructor)
54
virtual QwtData *copy() const = 0;
56
//! \return Size of the data set
57
virtual size_t size() const = 0;
60
Return the x value of data point i
62
\return x X value of data point i
64
virtual double x(size_t i) const = 0;
66
Return the y value of data point i
68
\return y Y value of data point i
70
virtual double y(size_t i) const = 0;
72
virtual QwtDoubleRect boundingRect() const;
76
Assignment operator (virtualized)
78
QwtData &operator=(const QwtData &);
83
\brief Data class containing a single QwtArray<QwtDoublePoint> object.
85
class QWT_EXPORT QwtPolygonFData: public QwtData
88
#if QT_VERSION < 0x040000
89
QwtPolygonFData(const QwtArray<QwtDoublePoint> &);
91
QwtPolygonFData(const QPolygonF &);
94
QwtPolygonFData &operator=(const QwtPolygonFData &);
95
virtual QwtData *copy() const;
97
virtual size_t size() const;
98
virtual double x(size_t i) const;
99
virtual double y(size_t i) const;
101
#if QT_VERSION < 0x040000
102
const QwtArray<QwtDoublePoint> &data() const;
104
const QPolygonF &data() const;
108
#if QT_VERSION < 0x040000
109
QwtArray<QwtDoublePoint> d_data;
116
\brief Data class containing two QwtArray<double> objects.
119
class QWT_EXPORT QwtArrayData: public QwtData
122
QwtArrayData(const QwtArray<double> &x, const QwtArray<double> &y);
123
QwtArrayData(const double *x, const double *y, size_t size);
124
QwtArrayData &operator=(const QwtArrayData &);
125
virtual QwtData *copy() const;
127
virtual size_t size() const;
128
virtual double x(size_t i) const;
129
virtual double y(size_t i) const;
131
const QwtArray<double> &xData() const;
132
const QwtArray<double> &yData() const;
134
virtual QwtDoubleRect boundingRect() const;
137
QwtArray<double> d_x;
138
QwtArray<double> d_y;
142
\brief Data class containing two pointers to memory blocks of doubles.
144
class QWT_EXPORT QwtCPointerData: public QwtData
147
QwtCPointerData(const double *x, const double *y, size_t size);
148
QwtCPointerData &operator=(const QwtCPointerData &);
149
virtual QwtData *copy() const;
151
virtual size_t size() const;
152
virtual double x(size_t i) const;
153
virtual double y(size_t i) const;
155
const double *xData() const;
156
const double *yData() const;
158
virtual QwtDoubleRect boundingRect() const;