QWT 7.0.1
Loading...
Searching...
No Matches
qwt_raster_data.h
1/******************************************************************************
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 * Modified by ChenZongYan in 2024 <czy.t@163.com>
10 * Summary of major modifications (see ChangeLog.md for full history):
11 * 1. CMake build system & C++11 throughout.
12 * 2. Core panner/ zoomer refactored:
13 * - QwtPanner → QwtCachePanner (pixmap-cache version)
14 * - New real-time QwtPlotPanner derived from QwtPicker.
15 * 3. Zoomer supports multi-axis.
16 * 4. Parasite-plot framework:
17 * - QwtFigure, QwtPlotParasiteLayout, QwtPlotTransparentCanvas,
18 * - QwtPlotScaleEventDispatcher, built-in pan/zoom on axis.
19 * 5. New picker: QwtPlotSeriesDataPicker (works with date axis).
20 * 6. Raster & color-map extensions:
21 * - QwtGridRasterData (2-D table + interpolation)
22 * - QwtLinearColorMap::stopColors(), stopPos() API rename.
23 * 7. Bar-chart: expose pen/brush control.
24 * 8. Amalgamated build: single QwtPlot.h / QwtPlot.cpp pair in src-amalgamate.
25 *****************************************************************************/
26
27#ifndef QWT_RASTER_DATA_H
28#define QWT_RASTER_DATA_H
29
30#include "qwt_global.h"
31#include <qnamespace.h>
32
33class QwtInterval;
34class QPolygonF;
35class QRectF;
36class QSize;
37template< typename T > class QList;
38template< class Key, class T > class QMap;
39
59class QWT_EXPORT QwtRasterData
60{
61 public:
64
72 {
88 WithoutGaps = 0x01
89 };
90
91 Q_DECLARE_FLAGS( Attributes, Attribute )
92
93
95 {
97 IgnoreAllVerticesOnLevel = 0x01,
98
100 IgnoreOutOfRange = 0x02
101 };
102
103 Q_DECLARE_FLAGS( ConrecFlags, ConrecFlag )
104
106 virtual ~QwtRasterData();
107
108 void setAttribute( Attribute, bool on = true );
109 bool testAttribute( Attribute ) const;
110
115 virtual QwtInterval interval( Qt::Axis ) const = 0;
116
117 virtual QRectF pixelHint( const QRectF& ) const;
118
119 virtual void initRaster( const QRectF&, const QSize& raster );
120 virtual void discardRaster();
121
127 virtual double value( double x, double y ) const = 0;
128
129 virtual ContourLines contourLines( const QRectF& rect,
130 const QSize& raster, const QList< double >& levels,
131 ConrecFlags ) const;
132
133 class Contour3DPoint;
134 class ContourPlane;
135
136 private:
137 Q_DISABLE_COPY(QwtRasterData)
138
139 class PrivateData;
140 PrivateData* m_data;
141};
142
143Q_DECLARE_OPERATORS_FOR_FLAGS( QwtRasterData::ConrecFlags )
144Q_DECLARE_OPERATORS_FOR_FLAGS( QwtRasterData::Attributes )
145
146#endif
Definition qwt_dyngrid_layout.h:33
Definition qwt_compass.h:36
A class representing an interval.
Definition qwt_interval.h:40
Definition qwt_raster_data.cpp:38
QwtRasterData defines an interface to any type of raster data.
Definition qwt_raster_data.h:60
QMap< double, QPolygonF > ContourLines
Contour lines.
Definition qwt_raster_data.h:63
virtual double value(double x, double y) const =0
Attribute
Raster data attributes.
Definition qwt_raster_data.h:72
virtual QwtInterval interval(Qt::Axis) const =0
ConrecFlag
Flags to modify the contour algorithm.
Definition qwt_raster_data.h:95