summaryrefslogtreecommitdiffstats
path: root/examples/demo/opengl/glcontrolwidget.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/demo/opengl/glcontrolwidget.h')
-rw-r--r--examples/demo/opengl/glcontrolwidget.h56
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