source: pacpusframework/branches/2.0-beta1/include/extlib/qwt-5.2.1/qwt_raster_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: 3.4 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_RASTER_DATA_H
13#define QWT_RASTER_DATA_H 1
14
15#include <qmap.h>
16#include "qwt_global.h"
17#include "qwt_double_rect.h"
18#include "qwt_double_interval.h"
19
20#if QT_VERSION >= 0x040000
21#include <qlist.h>
22#include <QPolygonF>
23
24#if defined(QWT_TEMPLATEDLL)
25// MOC_SKIP_BEGIN
26template class QWT_EXPORT QMap<double, QPolygonF>;
27// MOC_SKIP_END
28#endif
29
30#else
31#include <qvaluelist.h>
32#include "qwt_array.h"
33#include "qwt_double_rect.h"
34#if defined(QWT_TEMPLATEDLL)
35// MOC_SKIP_BEGIN
36#ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
37#define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
38template class QWT_EXPORT QwtArray<QwtDoublePoint>;
39#endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
40#ifndef QMAP_TEMPLATE_DOUBLE_QWTDOUBLEPOINT // by mjo3
41#define QMAP_TEMPLATE_DOUBLE_QWTDOUBLEPOINT
42template class QWT_EXPORT QMap<double, QwtArray<QwtDoublePoint> >;
43#endif //end of QMAP_TEMPLATE_QWTDOUBLEPOINT
44// MOC_SKIP_END
45#endif
46#endif
47
48class QwtScaleMap;
49
50/*!
51 \brief QwtRasterData defines an interface to any type of raster data.
52
53 QwtRasterData is an abstract interface, that is used by
54 QwtPlotRasterItem to find the values at the pixels of its raster.
55
56 Often a raster item is used to display values from a matrix. Then the
57 derived raster data class needs to implement some sort of resampling,
58 that maps the raster of the matrix into the requested raster of
59 the raster item ( depending on resolution and scales of the canvas ).
60*/
61class QWT_EXPORT QwtRasterData
62{
63public:
64#if QT_VERSION >= 0x040000
65 typedef QMap<double, QPolygonF> ContourLines;
66#else
67 typedef QMap<double, QwtArray<QwtDoublePoint> > ContourLines;
68#endif
69
70 //! Attribute to modify the contour algorithm
71 enum ConrecAttribute
72 {
73 IgnoreAllVerticesOnLevel = 1,
74 IgnoreOutOfRange = 2
75 };
76
77 QwtRasterData();
78 QwtRasterData(const QwtDoubleRect &);
79 virtual ~QwtRasterData();
80
81 //! Clone the data
82 virtual QwtRasterData *copy() const = 0;
83
84 virtual void setBoundingRect(const QwtDoubleRect &);
85 QwtDoubleRect boundingRect() const;
86
87 virtual QSize rasterHint(const QwtDoubleRect &) const;
88
89 virtual void initRaster(const QwtDoubleRect &, const QSize& raster);
90 virtual void discardRaster();
91
92 /*!
93 \return the value at a raster position
94 \param x X value in plot coordinates
95 \param y Y value in plot coordinates
96 */
97 virtual double value(double x, double y) const = 0;
98
99 //! \return the range of the values
100 virtual QwtDoubleInterval range() const = 0;
101
102#if QT_VERSION >= 0x040000
103 virtual ContourLines contourLines(const QwtDoubleRect &rect,
104 const QSize &raster, const QList<double> &levels,
105 int flags) const;
106#else
107 virtual ContourLines contourLines(const QwtDoubleRect &rect,
108 const QSize &raster, const QValueList<double> &levels,
109 int flags) const;
110#endif
111
112 class Contour3DPoint;
113 class ContourPlane;
114
115private:
116 QwtDoubleRect d_boundingRect;
117};
118
119#endif
Note: See TracBrowser for help on using the repository browser.