1 // Copyright 2004 "Gilles Degottex"
2 
3 // This file is part of "fmit"
4 
5 // "fmit" is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 //
10 // "fmit" is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 
19 #ifndef _GLSample_h_
20 #define _GLSample_h_
21 
22 #include <deque>
23 using namespace std;
24 
25 #include <QOpenGLWidget>
26 #include <qaction.h>
27 #include <qspinbox.h>
28 class QTimer;
29 #include "View.h"
30 
31 class GLSample : public QOpenGLWidget, public View
32 {
33 	Q_OBJECT
34 
35     QFont m_font;
36 
mouseReleaseEvent(QMouseEvent * e)37     virtual void mouseReleaseEvent(QMouseEvent* e){View::mouseReleaseEvent(e);}
38 
39 	double m_max_value;
40 
41   public:
42 	GLSample(QWidget* parent);
43 
44 	struct Sample
45 	{
46 		double time;
47 		deque<double> data;
48 		double max_value;
49 		Sample(double t, const deque<double>& d);
50 	};
51 	deque<Sample> m_samples;
52 
53 	void add(double time, const deque<double>& data);
clear()54 	void clear()	{m_samples.clear();}
55 
56 	// settings
57 	QAction* setting_hasFading;
58 	QSpinBox* setting_spinNumFading;
59 	virtual void save();
60 	virtual void load();
61 	virtual void clearSettings();
62 
63   public slots:
64 	void initializeGL();
65 	void paintGL();
66 	void resizeGL( int w, int h );
67 };
68 
69 #endif // _GLSample_h_
70 
71