-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathqwt_raster_data.h
82 lines (63 loc) · 2.25 KB
/
qwt_raster_data.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#pragma once
#include "qwt_interval.h"
#include <qmap.h>
#include <qlist.h>
#include <qpolygon.h>
class QwtScaleMap;
/*!
\brief QwtRasterData defines an interface to any type of raster data.
QwtRasterData is an abstract interface, that is used by
QwtPlotRasterItem to find the values at the pixels of its raster.
Often a raster item is used to display values from a matrix. Then the
derived raster data class needs to implement some sort of resampling,
that maps the raster of the matrix into the requested raster of
the raster item ( depending on resolution and scales of the canvas ).
*/
class QwtRasterData
{
public:
//! Contour lines
typedef QMap<double, QPolygonF> ContourLines;
//! Flags to modify the contour algorithm
enum ConrecFlag
{
//! Ignore all verices on the same level
IgnoreAllVerticesOnLevel = 0x01,
//! Ignore all values, that are out of range
IgnoreOutOfRange = 0x02
};
//! Flags to modify the contour algorithm
typedef QFlags<ConrecFlag> ConrecFlags;
QwtRasterData();
virtual ~QwtRasterData();
virtual void setInterval( Qt::Axis, const QwtInterval & );
virtual const QwtInterval interval(Qt::Axis) const;
virtual QRectF pixelHint( const QRectF & ) const;
virtual void initRaster( const QRectF &, const QSize& raster );
virtual void discardRaster();
/*!
\return the value at a raster position
\param x X value in plot coordinates
\param y Y value in plot coordinates
*/
virtual double value( double x, double y ) const = 0;
virtual ContourLines contourLines( const QRectF &rect,
const QSize &raster, const QList<double> &levels,
ConrecFlags ) const;
class Contour3DPoint;
class ContourPlane;
private:
// Disabled copy constructor and operator=
QwtRasterData( const QwtRasterData & );
QwtRasterData &operator=( const QwtRasterData & );
QwtInterval d_intervals[3];
};
/*!
\return Bounding interval for a axis
\sa setInterval
*/
inline const QwtInterval QwtRasterData::interval( Qt::Axis axis) const
{
return d_intervals[axis];
}
Q_DECLARE_OPERATORS_FOR_FLAGS( QwtRasterData::ConrecFlags )