Imported Upstream version 3.2.2
[debian/gnuradio] / gr-qtgui / src / lib / plot_waterfall.h
1 #ifndef PLOT_WATERFALL_H
2 #define PLOT_WATERFALL_H
3
4 #include <qglobal.h>
5 #include <waterfallGlobalData.h>
6
7 #include "qwt_valuelist.h" 
8 #include "qwt_plot_rasteritem.h" 
9
10 class QwtColorMap;
11
12 /*!
13   \brief A plot item, which displays a waterfall spectrogram
14
15   A waterfall displays threedimenional data, where the 3rd dimension
16   ( the intensity ) is displayed using colors. The colors are calculated
17   from the values using a color map.
18   
19   \image html spectrogram3.png
20
21   \sa QwtRasterData, QwtColorMap
22 */
23
24 class QWT_EXPORT PlotWaterfall: public QwtPlotRasterItem
25 {
26 public:
27     explicit PlotWaterfall(WaterfallData* data, const QString &title = QString::null);
28     virtual ~PlotWaterfall();
29
30     const WaterfallData* data()const;
31
32     void setColorMap(const QwtColorMap &);
33     const QwtColorMap &colorMap() const;
34
35     virtual QwtDoubleRect boundingRect() const;
36     virtual QSize rasterHint(const QwtDoubleRect &) const;
37
38     virtual int rtti() const;
39
40     virtual void draw(QPainter *p,
41         const QwtScaleMap &xMap, const QwtScaleMap &yMap,
42         const QRect &rect) const;
43
44 protected:
45     virtual QImage renderImage(
46         const QwtScaleMap &xMap, const QwtScaleMap &yMap, 
47         const QwtDoubleRect &rect) const;
48
49 private:
50     class PrivateData;
51     PrivateData *d_data;
52 };
53
54 #endif