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