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