00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
#ifndef QWT_DATA_H
00013
#define QWT_DATA_H 1
00014
00015
#include "qwt_global.h"
00016
#include "qwt_array.h"
00017
#include "qwt_double_rect.h"
00018
00019
#if defined(QWT_TEMPLATEDLL)
00020
00021
template class QWT_EXPORT QwtArray<QwtDoublePoint>;
00022
template class QWT_EXPORT QwtArray<double>;
00023
00024
#endif
00025
00040 class QWT_EXPORT
QwtData
00041 {
00042
public:
00043
QwtData();
00044
virtual ~
QwtData();
00048
virtual QwtData *copy()
const = 0;
00049
00053
virtual size_t size()
const = 0;
00059
virtual double x(size_t i)
const = 0;
00065
virtual double y(size_t i)
const = 0;
00066
00067
virtual QwtDoubleRect boundingRect()
const;
00068
00069
protected:
00073
QwtData &operator=(
const QwtData &);
00074 };
00075
00079 class QWT_EXPORT
QwtDoublePointData:
public QwtData
00080 {
00081
public:
00087
QwtDoublePointData(
const QwtArray<QwtDoublePoint> &);
00088
QwtDoublePointData &operator=(
const QwtDoublePointData &);
00089
virtual QwtData *copy()
const;
00090
00091
virtual size_t size()
const;
00092
virtual double x(size_t i)
const;
00093
virtual double y(size_t i)
const;
00094
00095
private:
00096 QwtArray<QwtDoublePoint> d_data;
00097 };
00098
00103 class QWT_EXPORT
QwtArrayData:
public QwtData
00104 {
00105
public:
00106
QwtArrayData(
const QwtArray<double> &x,
const QwtArray<double> &y);
00107
QwtArrayData(
const double *x,
const double *y, size_t size);
00108
QwtArrayData &operator=(
const QwtArrayData &);
00109
virtual QwtData *copy()
const;
00110
00111
virtual size_t size()
const;
00112
virtual double x(size_t i)
const;
00113
virtual double y(size_t i)
const;
00114
00115
virtual QwtDoubleRect boundingRect()
const;
00116
00117
private:
00118 QwtArray<double> d_x;
00119 QwtArray<double> d_y;
00120 };
00121
00125 class QWT_EXPORT
QwtCPointerData:
public QwtData
00126 {
00127
public:
00136
QwtCPointerData(
const double *x,
const double *y, size_t size);
00137
QwtCPointerData &operator=(
const QwtCPointerData &);
00138
virtual QwtData *copy()
const;
00139
00140
virtual size_t size()
const;
00141
virtual double x(size_t i)
const;
00142
virtual double y(size_t i)
const;
00143
00144
virtual QwtDoubleRect boundingRect()
const;
00145
00146
private:
00147
const double *d_x;
00148
const double *d_y;
00149 size_t d_size;
00150 };
00151
00152
#endif // !QWT_DATA
00153
00154
00155
00156
00157
00158
00159