6e34ce5b1772d6c735eb79e9fa5c81b19d3a1945
[debian/gnuradio] / gr-qtgui / src / lib / waterfallGlobalData.h
1 #ifndef WATERFALL_GLOBAL_DATA_HPP
2 #define WATERFALL_GLOBAL_DATA_HPP
3
4 #include <qwt_raster_data.h>
5 #include <qwt3d_function.h>
6
7 class Waterfall3DDisplayPlot;
8
9 class WaterfallData: public QwtRasterData
10 {
11 public:
12   WaterfallData(const double, const double, const uint64_t, const unsigned int);
13   virtual ~WaterfallData();
14   
15   virtual void Reset();
16   virtual void Copy(const WaterfallData*);
17   
18   virtual void ResizeData(const double, const double, const uint64_t);
19   
20   virtual QwtRasterData *copy() const;
21   virtual QwtDoubleInterval range() const;
22   virtual void setRange(const QwtDoubleInterval&);
23
24   virtual double value(double x, double y) const;
25   
26   virtual uint64_t GetNumFFTPoints()const;
27   virtual void addFFTData(const double*, const uint64_t, const int);
28   
29   virtual double* GetSpectrumDataBuffer()const;
30   virtual void SetSpectrumDataBuffer(const double*);
31   
32   virtual int GetNumLinesToUpdate()const;
33   virtual void SetNumLinesToUpdate(const int);
34   virtual void IncrementNumLinesToUpdate();
35
36 protected:
37
38   double* _spectrumData;
39   uint64_t _fftPoints;
40   uint64_t _historyLength;
41   int _numLinesToUpdate;
42   QwtDoubleInterval _intensityRange;
43
44 private:
45
46 };
47
48 class Waterfall3DData: public WaterfallData, public Qwt3D::Function
49 {
50 public:
51   Waterfall3DData(const double, const double, const uint64_t, const unsigned int);
52   virtual ~Waterfall3DData();
53     
54   virtual void ResizeData(const double, const double, const uint64_t);
55
56   virtual bool create();
57   virtual void setMesh(unsigned int columns, unsigned int rows); //!< Sets number of rows and columns. 
58
59   virtual double operator()(double x, double y);
60
61   virtual double GetFloorValue()const;
62   virtual void SetFloorValue(const double);
63
64   virtual double minZ()const;
65   virtual double maxZ()const;
66
67 protected:
68   void _ResizeMesh();
69
70   double** data;
71   double _floorValue;
72
73 private:
74
75 };
76
77
78 #endif /* WATERFALL_GLOBAL_DATA_HPP */