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; |