Qwt User's Guide
svn
|
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 00002 * Qwt Widget Library 00003 * Copyright (C) 1997 Josef Wilgen 00004 * Copyright (C) 2002 Uwe Rathmann 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the Qwt License, Version 1.0 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: 00036 typedef QMap<double, QPolygonF> ContourLines; 00037 00039 enum ConrecFlag 00040 { 00042 IgnoreAllVerticesOnLevel = 0x01, 00043 00045 IgnoreOutOfRange = 0x02 00046 }; 00047 00049 typedef QFlags<ConrecFlag> ConrecFlags; 00050 00051 QwtRasterData(); 00052 virtual ~QwtRasterData(); 00053 00054 virtual void setInterval( Qt::Axis, const QwtInterval & ); 00055 const QwtInterval &interval(Qt::Axis) const; 00056 00057 virtual QRectF pixelHint( const QRectF & ) const; 00058 00059 virtual void initRaster( const QRectF &, const QSize& raster ); 00060 virtual void discardRaster(); 00061 00067 virtual double value( double x, double y ) const = 0; 00068 00069 virtual ContourLines contourLines( const QRectF &rect, 00070 const QSize &raster, const QList<double> &levels, 00071 ConrecFlags ) const; 00072 00073 class Contour3DPoint; 00074 class ContourPlane; 00075 00076 private: 00077 // Disabled copy constructor and operator= 00078 QwtRasterData( const QwtRasterData & ); 00079 QwtRasterData &operator=( const QwtRasterData & ); 00080 00081 QwtInterval d_intervals[3]; 00082 }; 00083 00088 inline const QwtInterval &QwtRasterData::interval( Qt::Axis axis) const 00089 { 00090 return d_intervals[axis]; 00091 } 00092 00093 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtRasterData::ConrecFlags ) 00094 00095 #endif