11 Model* model, |
11 Model* model, |
12 DocumentManager* documents, |
12 DocumentManager* documents, |
13 const ldraw::ColorTable& colorTable, |
13 const ldraw::ColorTable& colorTable, |
14 QWidget* parent = nullptr); |
14 QWidget* parent = nullptr); |
15 public slots: |
15 public slots: |
16 void handleSelectionChange(const QSet<ldraw::Id>& selectedIds, const QSet<ldraw::Id>& deselectedIds); |
16 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds); |
17 protected: |
17 protected: |
18 void mouseMoveEvent(QMouseEvent* event) override; |
18 void mouseMoveEvent(QMouseEvent* event) override; |
19 void mousePressEvent(QMouseEvent* event) override; |
19 void mousePressEvent(QMouseEvent* event) override; |
20 void mouseReleaseEvent(QMouseEvent* event) override; |
20 void mouseReleaseEvent(QMouseEvent* event) override; |
21 void initializeGL() override; |
21 void initializeGL() override; |
22 void paintGL() override; |
22 void paintGL() override; |
23 signals: |
23 signals: |
24 void newStatusText(const QString& newStatusText); |
24 void newStatusText(const QString& newStatusText); |
25 void selectionChanged(const QSet<ldraw::Id>& newSelection); |
25 void selectionChanged(const QSet<ldraw::id_t>& newSelection); |
26 private: |
26 private: |
27 void updateGridMatrix(); |
27 void updateGridMatrix(); |
28 glm::vec3 cameraVector() const; |
28 glm::vec3 cameraVector() const; |
29 bool isGridPerpendicularToScreen(float threshold) const; |
29 bool isGridPerpendicularToScreen(float threshold) const; |
30 std::optional<GridProgram> gridProgram; |
30 std::optional<GridProgram> gridProgram; |
31 std::optional<AxesProgram> axesProgram; |
31 std::optional<AxesProgram> axesProgram; |
32 std::optional<glm::vec3> worldPosition; |
32 std::optional<glm::vec3> worldPosition; |
33 glm::mat4 gridMatrix; |
33 glm::mat4 gridMatrix; |
34 geom::Plane gridPlane; |
34 geom::Plane gridPlane; |
35 int totalMouseMove = 0; |
35 int totalMouseMove = 0; |
36 QSet<ldraw::Id> selection; |
36 QSet<ldraw::id_t> selection; |
37 }; |
37 }; |