![]() |
Projet d'Informatique 2012
Simulation générique de systèmes physiques simples : vers les machines de Rube Goldberg
|
00001 00005 #ifndef GUI_H 00006 #define GUI_H 00007 00008 #include <QtOpenGL> 00009 #include <QWidget> 00010 #include <QTimer> 00011 #include "include/Systeme.h" 00012 00018 class GUI : public QGLWidget 00019 { 00020 Q_OBJECT 00021 00022 public: 00023 00031 explicit GUI(Systeme* systeme, int imagesParSecondes = 50, QWidget* parent = 0, char* nom = 0); 00032 00037 Systeme* systeme(); 00038 00043 QTimer* timer() const; 00044 00045 protected: 00046 00050 virtual void initializeGL(); 00051 00055 virtual void resizeGL(int width, int height); 00056 00060 virtual void paintGL(); 00061 00066 virtual void keyPressEvent(QKeyEvent* keyEvent); 00067 00072 virtual void mousePressEvent (QMouseEvent* mouseEvent); 00073 00078 virtual void wheelEvent (QWheelEvent* wheel_event); 00079 00084 virtual void mouseMoveEvent (QMouseEvent* move_event); 00085 00090 virtual void mouseDoubleClickEvent(QMouseEvent * mouseEvent); 00091 00092 00093 private: 00094 00098 QTimer* m_Timer; 00099 00103 Systeme* m_systeme; 00104 00108 double h; 00109 00113 double theta; 00114 00118 double z; 00119 00123 double y; 00124 00125 QPoint lastPos; 00126 00127 public slots: 00128 00133 virtual void timeOutSlot(); 00134 00139 void stopSimulation(); 00140 00145 void startSimulation(); 00146 00151 void setImagesParSecondes(int nmbrImgSec); 00152 00153 00154 signals: 00155 00159 void simulationStarted(bool = true); 00160 00164 void simulationStopped(bool = true); 00165 00166 }; 00167 00168 #endif // GUI_H