26 double zoom = 1.0; |
26 double zoom = 1.0; |
27 bool initialized = false; |
27 bool initialized = false; |
28 bool needBuild = true; |
28 bool needBuild = true; |
29 std::vector<RenderLayer*> activeRenderLayers; |
29 std::vector<RenderLayer*> activeRenderLayers; |
30 std::vector<RenderLayer*> inactiveRenderLayers; |
30 std::vector<RenderLayer*> inactiveRenderLayers; |
|
31 std::chrono::time_point<std::chrono::steady_clock> lastClickTime; |
31 bool frozen = false; |
32 bool frozen = false; |
32 public: |
33 public: |
33 PartRenderer( |
34 PartRenderer( |
34 Model* model, |
35 Model* model, |
35 DocumentManager* documents, |
36 DocumentManager* documents, |
43 std::optional<glm::vec3> screenToModelCoordinates(const QPointF& point, const Plane& plane) const; |
44 std::optional<glm::vec3> screenToModelCoordinates(const QPointF& point, const Plane& plane) const; |
44 QPointF modelToScreenCoordinates(const glm::vec3& point) const; |
45 QPointF modelToScreenCoordinates(const glm::vec3& point) const; |
45 bool isDark() const; |
46 bool isDark() const; |
46 ElementId pick(QPoint where); |
47 ElementId pick(QPoint where); |
47 void setSelection(const QSet<ElementId>& selectedIds); |
48 void setSelection(const QSet<ElementId>& selectedIds); |
|
49 glm::vec3 cameraVector(const QPointF& point) const; |
|
50 Line<3> cameraLine(const QPointF& point) const; |
48 Q_SIGNALS: |
51 Q_SIGNALS: |
49 void projectionMatrixChanged(const glm::mat4& newMatrix); |
52 void projectionMatrixChanged(const glm::mat4& newMatrix); |
50 void modelMatrixChanged(const glm::mat4& newMatrix); |
53 void modelMatrixChanged(const glm::mat4& newMatrix); |
51 void viewMatrixChanged(const glm::mat4& newMatrix); |
54 void viewMatrixChanged(const glm::mat4& newMatrix); |
52 void renderPreferencesChanged(); |
55 void renderPreferencesChanged(); |
58 void mouseMoveEvent(QMouseEvent* event) override; |
61 void mouseMoveEvent(QMouseEvent* event) override; |
59 void mousePressEvent(QMouseEvent* event) override; |
62 void mousePressEvent(QMouseEvent* event) override; |
60 void mouseReleaseEvent(QMouseEvent* event) override; |
63 void mouseReleaseEvent(QMouseEvent* event) override; |
61 void keyReleaseEvent(QKeyEvent* event) override; |
64 void keyReleaseEvent(QKeyEvent* event) override; |
62 void wheelEvent(QWheelEvent* event) override; |
65 void wheelEvent(QWheelEvent* event) override; |
63 Line<3> cameraLine(const QPointF& point) const; |
|
64 glm::vec3 unproject(const glm::vec3& win) const; |
66 glm::vec3 unproject(const glm::vec3& win) const; |
65 void setFragmentStyle(gl::FragmentStyle fragStyle); |
67 void setFragmentStyle(gl::FragmentStyle fragStyle); |
66 void renderScene(); |
68 void renderScene(); |
67 void updateViewMatrix(); |
69 void updateViewMatrix(); |
68 void updateModelMatrix(); |
70 void updateModelMatrix(); |