| 11 Q_OBJECT |
11 Q_OBJECT |
| 12 public: |
12 public: |
| 13 PartRenderer( |
13 PartRenderer( |
| 14 Model* model, |
14 Model* model, |
| 15 DocumentManager* documents, |
15 DocumentManager* documents, |
| 16 const ldraw::ColorTable& colorTable, |
16 const ColorTable& colorTable, |
| 17 QWidget* parent = nullptr); |
17 QWidget* parent = nullptr); |
| 18 ~PartRenderer() override; |
18 ~PartRenderer() override; |
| 19 void setRenderPreferences(const gl::RenderPreferences& newPreferences); |
19 void setRenderPreferences(const gl::RenderPreferences& newPreferences); |
| 20 ModelId getHighlightedObject() const; |
20 ModelId getHighlightedObject() const; |
| 21 protected: |
21 protected: |
| 25 void paintGL() override; |
25 void paintGL() override; |
| 26 void mouseMoveEvent(QMouseEvent* event) override; |
26 void mouseMoveEvent(QMouseEvent* event) override; |
| 27 void wheelEvent(QWheelEvent* event) override; |
27 void wheelEvent(QWheelEvent* event) override; |
| 28 Model* const model; |
28 Model* const model; |
| 29 DocumentManager* const documents; |
29 DocumentManager* const documents; |
| 30 const ldraw::ColorTable& colorTable; |
30 const ColorTable& colorTable; |
| 31 BoundingBox boundingBox; |
31 BoundingBox boundingBox; |
| 32 gl::ModelShaders shaders; |
32 gl::ModelShaders shaders; |
| 33 ModelId highlighted = {0}; |
33 ModelId highlighted = {0}; |
| 34 std::optional<glm::vec3> screenToModelCoordinates(const QPoint& point, const Plane& plane) const; |
34 std::optional<glm::vec3> screenToModelCoordinates(const QPoint& point, const Plane& plane) const; |
| 35 QPointF modelToScreenCoordinates(const glm::vec3& point) const; |
35 QPointF modelToScreenCoordinates(const glm::vec3& point) const; |