Wed, 01 Jan 2020 17:45:56 +0200
things
17 | 1 | #pragma once |
2 | #include <QOpenGLWidget> | |
3 | #include <QOpenGLFunctions> | |
4 | #include <QQuaternion> | |
5 | #include "main.h" | |
18 | 6 | #include "gl/common.h" |
21 | 7 | #include "gl/compiler.h" |
17 | 8 | |
9 | class PartRenderer : public QOpenGLWidget, protected QOpenGLFunctions | |
10 | { | |
21 | 11 | Q_OBJECT |
17 | 12 | public: |
21 | 13 | PartRenderer(Model* model, DocumentManager* documents, QWidget* parent = nullptr); |
17 | 14 | protected: |
15 | void initializeGL() override; | |
16 | void resizeGL(int width, int height) override; | |
17 | void paintGL() override; | |
18 | void mouseMoveEvent(QMouseEvent* event) override; | |
21 | 19 | void setCompiler(gl::Compiler* compiler); |
18 | 20 | private slots: |
21 | void setRenderStyle(const gl::RenderStyle newStyle); | |
17 | 22 | private: |
21 | 23 | Model* const model; |
24 | DocumentManager* const documents; | |
17 | 25 | QPointF lastMousePosition; |
26 | bool initialized = false; | |
18 | 27 | gl::RenderStyle renderStyle = gl::RenderStyle::Normal; |
17 | 28 | QQuaternion rotation; |
29 | void initializeLighting(); | |
21 | 30 | gl::Compiler* compiler; |
17 | 31 | }; |