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
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 virtual ~QwtRasterData();
00046
00047 virtual void setInterval( Qt::Axis, const QwtInterval & );
00048 const QwtInterval &interval(Qt::Axis) const;
00049
00050 virtual QRectF pixelHint( const QRectF & ) const;
00051
00052 virtual void initRaster( const QRectF &, const QSize& raster );
00053 virtual void discardRaster();
00054
00060 virtual double value( double x, double y ) const = 0;
00061
00062 virtual ContourLines contourLines( const QRectF &rect,
00063 const QSize &raster, const QList<double> &levels,
00064 int flags ) const;
00065
00066 class Contour3DPoint;
00067 class ContourPlane;
00068
00069 private:
00070
00071 QwtRasterData( const QwtRasterData & );
00072 QwtRasterData &operator=( const QwtRasterData & );
00073
00074 QwtInterval d_intervals[3];
00075 };
00076
00081 inline const QwtInterval &QwtRasterData::interval( Qt::Axis axis) const
00082 {
00083 return d_intervals[axis];
00084 }
00085
00086 #endif