49 lines
992 B
C++
49 lines
992 B
C++
#ifndef GLWIDGET_H
|
|
#define GLWIDGET_H
|
|
|
|
#include "camera.h"
|
|
#include "terrain.h"
|
|
#include "config.h"
|
|
|
|
#include <QOpenGLWidget>
|
|
#include <QOpenGLShaderProgram>
|
|
#include <QOpenGLFunctions_4_5_Core>
|
|
#include <QMouseEvent>
|
|
#include <QWheelEvent>
|
|
#include <QTimer>
|
|
#include <QTime>
|
|
|
|
QT_FORWARD_DECLARE_CLASS(QOpenGLShaderProgram)
|
|
|
|
enum VboIndex { Vertices, Normals};
|
|
|
|
class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions_4_5_Core
|
|
{
|
|
Q_OBJECT
|
|
|
|
private:
|
|
Terrain* m_terrain;
|
|
QPoint m_lastMousePosition;
|
|
|
|
public:
|
|
explicit GLWidget(QWidget *parent = nullptr);
|
|
virtual ~GLWidget() override;
|
|
|
|
Terrain *terrain() const;
|
|
|
|
protected:
|
|
void initializeGL() override;
|
|
void paintGL() override;
|
|
void resizeGL(int width, int height) override;
|
|
void mouseMoveEvent(QMouseEvent *event) override;
|
|
void mousePressEvent(QMouseEvent *event) override;
|
|
void wheelEvent(QWheelEvent *event) override;
|
|
|
|
signals:
|
|
|
|
public slots:
|
|
private slots:
|
|
};
|
|
|
|
#endif // GLWIDGET_H
|