diff options
Diffstat (limited to 'examples/demo/opengl/glcontrolwidget.h')
-rw-r--r-- | examples/demo/opengl/glcontrolwidget.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/examples/demo/opengl/glcontrolwidget.h b/examples/demo/opengl/glcontrolwidget.h new file mode 100644 index 0000000..05d026f --- /dev/null +++ b/examples/demo/opengl/glcontrolwidget.h @@ -0,0 +1,56 @@ +#ifndef GLCONTROLWIDGET_H +#define GLCONTROLWIDGET_H + +#include <qgl.h> + +class GLControlWidget : public QGLWidget +{ + Q_OBJECT + +public: + GLControlWidget( QWidget *parent, const char *name = 0, QGLWidget *share = 0, WFlags f = 0 ); + + virtual void transform(); + +public slots: + void setXRotation( double degrees ); + void setYRotation( double degrees ); + void setZRotation( double degrees ); + + void setScale( double s ); + + void setXTrans( double x ); + void setYTrans( double y ); + void setZTrans( double z ); + + virtual void setRotationImpulse( double x, double y, double z ); + virtual void setTranslationImpulse( double x, double y, double z ); + void drawText(); + +protected: + void setAnimationDelay( int ms ); + void mousePressEvent( QMouseEvent *e ); + void mouseReleaseEvent( QMouseEvent *e ); + void mouseMoveEvent( QMouseEvent * ); + void mouseDoubleClickEvent( QMouseEvent * ); + void wheelEvent( QWheelEvent * ); + + void showEvent( QShowEvent * ); + void hideEvent( QHideEvent * ); + + GLfloat xRot, yRot, zRot; + GLfloat xTrans, yTrans, zTrans; + GLfloat scale; + bool animation; + +protected slots: + virtual void animate(); + +private: + bool wasAnimated; + QPoint oldPos; + QTimer* timer; + int delay; +}; + +#endif |