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_double_interval.h"
00015 #include <qmap.h>
00016 #include <qlist.h>
00017 #include <qpolygon.h>
00018
00019 class QwtScaleMap;
00020
00032 class QWT_EXPORT QwtRasterData
00033 {
00034 public:
00035 typedef QMap<double, QPolygonF> ContourLines;
00036
00038 enum ConrecAttribute
00039 {
00040 IgnoreAllVerticesOnLevel = 1,
00041 IgnoreOutOfRange = 2
00042 };
00043
00044 QwtRasterData();
00045 QwtRasterData(const QRectF &);
00046 virtual ~QwtRasterData();
00047
00049 virtual QwtRasterData *copy() const = 0;
00050
00051 virtual void setBoundingRect(const QRectF &);
00052 QRectF boundingRect() const;
00053
00054 virtual QSize rasterHint(const QRectF &) const;
00055
00056 virtual void initRaster(const QRectF &, const QSize& raster);
00057 virtual void discardRaster();
00058
00064 virtual double value(double x, double y) const = 0;
00065
00067 virtual QwtDoubleInterval range() const = 0;
00068
00069 virtual ContourLines contourLines(const QRectF &rect,
00070 const QSize &raster, const QList<double> &levels,
00071 int flags) const;
00072
00073 class Contour3DPoint;
00074 class ContourPlane;
00075
00076 private:
00077 QRectF d_boundingRect;
00078 };
00079
00080 #endif