/* Copyright (C) 2013 Karl Phillip Buhr * * This work is licensed under the Creative Commons Attribution-ShareAlike License. * To view a copy of this license, visit: * https://creativecommons.org/licenses/by-sa/2.5/legalcode * * Or to read the human-readable summary of the license: * https://creativecommons.org/licenses/by-sa/2.5/ */ #pragma once #include #include #include #include #include "objet3d.h" class GLWidget : public QGLWidget { Q_OBJECT public: explicit GLWidget(QWidget* parent = 0); virtual ~GLWidget(); /* OpenGL initialization, viewport resizing, and painting */ void initializeGL(); void paintGL(); void resizeGL( int width, int height); void keyPressEvent(QKeyEvent *event); void wheelEvent(QWheelEvent *event); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); /* Helper functions */ void setXRotation(int angle); void setYRotation(int angle); void setZRotation(int angle); void _view_ortho(); void _view_perspective(); static void repereScene3D(float l); void _draw_text(double x, double y, double z, QString txt); private: int _width; int _height; QPoint last_pos; double x,y,z, distance; double x_rot,y_rot,z_rot; double t; uint interp; int _fps; GLuint _texture; Objet3D obj_visage_inter; deque visage; protected slots: void _tick(); };