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(const QwtRasterData &data);
00066 const QwtRasterData &data() const;
00067
00068 void setColorMap(const QwtColorMap &);
00069 const QwtColorMap &colorMap() const;
00070
00071 virtual QRectF boundingRect() const;
00072 virtual QSize rasterHint(const QRectF &) const;
00073
00074 void setDefaultContourPen(const QPen &);
00075 QPen defaultContourPen() const;
00076
00077 virtual QPen contourPen(double level) const;
00078
00079 void setConrecAttribute(QwtRasterData::ConrecAttribute, bool on);
00080 bool testConrecAttribute(QwtRasterData::ConrecAttribute) const;
00081
00082 void setContourLevels(const QList<double> &);
00083 QList<double> contourLevels() const;
00084
00085 virtual int rtti() const;
00086
00087 virtual void draw(QPainter *p,
00088 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00089 const QRectF &rect) const;
00090
00091 protected:
00092 virtual QImage renderImage(
00093 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00094 const QRectF &rect) const;
00095
00096 virtual QSize contourRasterSize(
00097 const QRectF &, const QRect &) const;
00098
00099 virtual QwtRasterData::ContourLines renderContourLines(
00100 const QRectF &rect, const QSize &raster) const;
00101
00102 virtual void drawContourLines(QPainter *p,
00103 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00104 const QwtRasterData::ContourLines& lines) const;
00105
00106 void renderTile(const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00107 const QRect &rect, const QRect &imageRect, QImage *image) const;
00108
00109 private:
00110 class PrivateData;
00111 PrivateData *d_data;
00112 };
00113
00114 #endif