/* 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"aquarium.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); private: int _width; int _height; QTime now; QPoint last_pos; double x,y,z, distance; double x_rot,y_rot,z_rot; aquarium* aqua; int nb_obs; int _fps; GLuint _texture; protected slots: void _tick(); };