00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_SPECTROGRAM_H
00011 #define QWT_PLOT_SPECTROGRAM_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_raster_data.h"
00015 #include "qwt_plot_rasteritem.h"
00016 #include <qlist.h>
00017
00018 class QwtColorMap;
00019
00034 class QWT_EXPORT QwtPlotSpectrogram: public QwtPlotRasterItem
00035 {
00036 public:
00050 enum DisplayMode
00051 {
00052 ImageMode = 1,
00053 ContourMode = 2
00054 };
00055
00056 explicit QwtPlotSpectrogram( const QString &title = QString::null );
00057 virtual ~QwtPlotSpectrogram();
00058
00059 void setRenderThreadCount( uint numThreads );
00060 uint renderThreadCount() const;
00061
00062 void setDisplayMode( DisplayMode, bool on = true );
00063 bool testDisplayMode( DisplayMode ) const;
00064
00065 void setData( QwtRasterData *data );
00066 const QwtRasterData *data() const;
00067 QwtRasterData *data();
00068
00069 void setColorMap( QwtColorMap * );
00070 const QwtColorMap *colorMap() const;
00071
00072 virtual QwtInterval interval(Qt::Axis) const;
00073 virtual QRectF pixelHint( const QRectF & ) const;
00074
00075 void setDefaultContourPen( const QPen & );
00076 QPen defaultContourPen() const;
00077
00078 virtual QPen contourPen( double level ) const;
00079
00080 void setConrecAttribute( QwtRasterData::ConrecAttribute, bool on );
00081 bool testConrecAttribute( QwtRasterData::ConrecAttribute ) const;
00082
00083 void setContourLevels( const QList<double> & );
00084 QList<double> contourLevels() const;
00085
00086 virtual int rtti() const;
00087
00088 virtual void draw( QPainter *p,
00089 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00090 const QRectF &rect ) const;
00091
00092 protected:
00093 virtual QImage renderImage(
00094 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00095 const QRectF &area, const QSize &imageSize ) const;
00096
00097 virtual QSize contourRasterSize(
00098 const QRectF &, const QRect & ) const;
00099
00100 virtual QwtRasterData::ContourLines renderContourLines(
00101 const QRectF &rect, const QSize &raster ) const;
00102
00103 virtual void drawContourLines( QPainter *p,
00104 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00105 const QwtRasterData::ContourLines& lines ) const;
00106
00107 void renderTile( const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00108 const QRect &imageRect, QImage *image ) const;
00109
00110 private:
00111 class PrivateData;
00112 PrivateData *d_data;
00113 };
00114
00115 #endif