00001 #ifndef SIGEL_COMMONGUI_SIG_VISUALISATIONWIDGET_H 00002 #define SIGEL_COMMONGUI_SIG_VISUALISATIONWIDGET_H 00003 00004 #include <qgl.h> 00005 #include <qlabel.h> 00006 00007 #include "SIGEL_Visualisation/SIG_Visualisation.h" 00008 #include "SIGEL_CommonGUI/SIG_FloatingTextLabel.h" 00009 00010 using namespace SIGEL_CommonGUI; 00011 00016 namespace SIGEL_CommonGUI 00017 { 00018 00034 class SIG_VisualisationWidget : public QGLWidget 00035 { 00036 Q_OBJECT 00037 00038 public: 00039 00050 SIG_VisualisationWidget( QWidget *parent=0, 00051 char const *name=0, 00052 WFlags f=0 ); 00053 00057 ~SIG_VisualisationWidget(); 00058 00059 public slots: 00060 00061 virtual void setRenderMode( const QString & string ); 00062 00063 virtual void setAmbientLighting( int newValue ); 00064 00065 virtual void setShowAncorPoints( int state ); 00066 00076 virtual void setYaw( double yyaw ); 00077 00087 virtual void setPitch( double ppitch ); 00088 00097 virtual void setDistance( double ddistance ); 00098 00099 signals: 00100 00113 void signalMouseRotation(int, int); 00114 00126 void signalMouseZoom(int); 00127 00128 protected: 00129 00140 virtual void initializeGL(); 00141 00154 virtual void resizeGL(int width, int height); 00155 00167 virtual void paintGL(); 00168 00176 virtual void updateEyePoint(); 00177 00178 void initFloatingTextWidgets(); 00179 00190 virtual void mousePressEvent( QMouseEvent *event ); 00191 00202 virtual void mouseMoveEvent( QMouseEvent *event ); 00203 00209 SIGEL_Visualisation::SIG_Visualisation *visualisation; 00210 00214 double yaw; 00215 00219 double pitch; 00220 00224 double distance; 00225 00233 int mouseXPos; 00234 00242 int mouseYPos; 00243 00248 bool automaticRefresh; 00249 00256 double const mouseSensity; 00257 00264 double const pi; 00265 00266 QVector< SIG_FloatingTextLabel > floatingTextWidgets; 00267 00268 QSize floatingTextsSize; 00269 00270 int showAncorPointsState; 00271 00272 }; 00273 00274 } 00275 00276 #endif // SIGEL_COMMONGUI_SIG_VISUALISATIONWIDGET_H