13 |
13 |
14 class PartRenderer : public QOpenGLWidget, protected QOpenGLFunctions |
14 class PartRenderer : public QOpenGLWidget, protected QOpenGLFunctions |
15 { |
15 { |
16 Q_OBJECT |
16 Q_OBJECT |
17 public: |
17 public: |
18 PartRenderer(Model* model, DocumentManager* documents, const ColorTable& colorTable, QWidget* parent = nullptr); |
18 PartRenderer( |
|
19 Model* model, |
|
20 DocumentManager* documents, |
|
21 const ldraw::ColorTable& colorTable, |
|
22 QWidget* parent = nullptr); |
19 ~PartRenderer() override; |
23 ~PartRenderer() override; |
20 protected: |
24 protected: |
21 void initializeGL() override; |
25 void initializeGL() override; |
22 void resizeGL(int width, int height) override; |
26 void resizeGL(int width, int height) override; |
23 void paintGL() override; |
27 void paintGL() override; |
28 private: |
32 private: |
29 void renderScene(); |
33 void renderScene(); |
30 void updateViewMatrix(); |
34 void updateViewMatrix(); |
31 Model* const model; |
35 Model* const model; |
32 DocumentManager* const documents; |
36 DocumentManager* const documents; |
33 const ColorTable& colorTable; |
37 const ldraw::ColorTable& colorTable; |
34 QPointF lastMousePosition; |
38 QPointF lastMousePosition; |
35 gl::Compiler* compiler; |
39 gl::Compiler* compiler; |
36 gl::RenderStyle renderStyle = gl::RenderStyle::Normal; |
40 gl::RenderStyle renderStyle = gl::RenderStyle::Normal; |
37 glm::mat4 projectionMatrix; |
41 glm::mat4 projectionMatrix; |
38 glm::mat4 viewMatrix; |
42 glm::mat4 viewMatrix; |