Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_RASTER_DATA_H
00011 #define QWT_RASTER_DATA_H 1
00012
00013 #include "qwt_global.h"
00014 #include "qwt_interval.h"
00015 #include <qmap.h>
00016 #include <qlist.h>
00017 #include <qpolygon.h>
00018
00019 class QwtScaleMap;
00020
00040 class QWT_EXPORT QwtRasterData
00041 {
00042 public:
00044 typedef QMap<double, QPolygonF> ContourLines;
00045
00052 enum Attribute
00053 {
00069 WithoutGaps = 0x01
00070 };
00071
00073 typedef QFlags<Attribute> Attributes;
00074
00076 enum ConrecFlag
00077 {
00079 IgnoreAllVerticesOnLevel = 0x01,
00080
00082 IgnoreOutOfRange = 0x02
00083 };
00084
00086 typedef QFlags<ConrecFlag> ConrecFlags;
00087
00088 QwtRasterData();
00089 virtual ~QwtRasterData();
00090
00091 void setAttribute( Attribute, bool on = true );
00092 bool testAttribute( Attribute ) const;
00093
00098 virtual QwtInterval interval( Qt::Axis ) const = 0;
00099
00100 virtual QRectF pixelHint( const QRectF & ) const;
00101
00102 virtual void initRaster( const QRectF &, const QSize& raster );
00103 virtual void discardRaster();
00104
00110 virtual double value( double x, double y ) const = 0;
00111
00112 virtual ContourLines contourLines( const QRectF &rect,
00113 const QSize &raster, const QList<double> &levels,
00114 ConrecFlags ) const;
00115
00116 class Contour3DPoint;
00117 class ContourPlane;
00118
00119 private:
00120 Q_DISABLE_COPY(QwtRasterData)
00121
00122 class PrivateData;
00123 PrivateData *d_data;
00124 };
00125
00126 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtRasterData::ConrecFlags )
00127 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtRasterData::Attributes )
00128
00129 #endif