source: pacpusframework/branches/2.0-beta1/include/extlib/qwt-5.2.1/qwt_data.h@ 89

Last change on this file since 89 was 89, checked in by morasjul, 11 years ago

PACPUS 2.0 Beta deployed in new branch

Major changes:
-Add communication interface between components
-Add examples for communications interface (TestComponents)
-Move to Qt5 support

  • Property svn:executable set to *
File size: 4.0 KB
Line 
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// vim: expandtab
11
12#ifndef QWT_DATA_H
13#define QWT_DATA_H 1
14
15#include "qwt_global.h"
16#include "qwt_array.h"
17#include "qwt_double_rect.h"
18#if QT_VERSION >= 0x040000
19#include <QPolygonF>
20#endif
21
22// MOC_SKIP_BEGIN
23
24#if defined(QWT_TEMPLATEDLL)
25
26template class QWT_EXPORT QwtArray<double>;
27
28#if QT_VERSION < 0x040000
29#ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
30#define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
31template 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 QwtData defines an interface to any type of curve data.
41
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
45 */
46
47class QWT_EXPORT QwtData
48{
49public:
50 QwtData();
51 virtual ~QwtData();
52
53 //! \return Pointer to a copy (virtual copy constructor)
54 virtual QwtData *copy() const = 0;
55
56 //! \return Size of the data set
57 virtual size_t size() const = 0;
58
59 /*!
60 Return the x value of data point i
61 \param i Index
62 \return x X value of data point i
63 */
64 virtual double x(size_t i) const = 0;
65 /*!
66 Return the y value of data point i
67 \param i Index
68 \return y Y value of data point i
69 */
70 virtual double y(size_t i) const = 0;
71
72 virtual QwtDoubleRect boundingRect() const;
73
74protected:
75 /*!
76 Assignment operator (virtualized)
77 */
78 QwtData &operator=(const QwtData &);
79};
80
81
82/*!
83 \brief Data class containing a single QwtArray<QwtDoublePoint> object.
84 */
85class QWT_EXPORT QwtPolygonFData: public QwtData
86{
87public:
88#if QT_VERSION < 0x040000
89 QwtPolygonFData(const QwtArray<QwtDoublePoint> &);
90#else
91 QwtPolygonFData(const QPolygonF &);
92#endif
93
94 QwtPolygonFData &operator=(const QwtPolygonFData &);
95 virtual QwtData *copy() const;
96
97 virtual size_t size() const;
98 virtual double x(size_t i) const;
99 virtual double y(size_t i) const;
100
101#if QT_VERSION < 0x040000
102 const QwtArray<QwtDoublePoint> &data() const;
103#else
104 const QPolygonF &data() const;
105#endif
106
107private:
108#if QT_VERSION < 0x040000
109 QwtArray<QwtDoublePoint> d_data;
110#else
111 QPolygonF d_data;
112#endif
113};
114
115/*!
116 \brief Data class containing two QwtArray<double> objects.
117 */
118
119class QWT_EXPORT QwtArrayData: public QwtData
120{
121public:
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;
126
127 virtual size_t size() const;
128 virtual double x(size_t i) const;
129 virtual double y(size_t i) const;
130
131 const QwtArray<double> &xData() const;
132 const QwtArray<double> &yData() const;
133
134 virtual QwtDoubleRect boundingRect() const;
135
136private:
137 QwtArray<double> d_x;
138 QwtArray<double> d_y;
139};
140
141/*!
142 \brief Data class containing two pointers to memory blocks of doubles.
143 */
144class QWT_EXPORT QwtCPointerData: public QwtData
145{
146public:
147 QwtCPointerData(const double *x, const double *y, size_t size);
148 QwtCPointerData &operator=(const QwtCPointerData &);
149 virtual QwtData *copy() const;
150
151 virtual size_t size() const;
152 virtual double x(size_t i) const;
153 virtual double y(size_t i) const;
154
155 const double *xData() const;
156 const double *yData() const;
157
158 virtual QwtDoubleRect boundingRect() const;
159
160private:
161 const double *d_x;
162 const double *d_y;
163 size_t d_size;
164};
165
166#endif // !QWT_DATA
Note: See TracBrowser for help on using the repository browser.