28 Q_OBJECT |
30 Q_OBJECT |
29 public: |
31 public: |
30 using OverpaintCallback = std::function<void(Canvas*, QPainter*)>; |
32 using OverpaintCallback = std::function<void(Canvas*, QPainter*)>; |
31 Canvas( |
33 Canvas( |
32 Model* model, |
34 Model* model, |
33 EditorTabWidget* document, |
35 EditTools* document, |
34 DocumentManager* documents, |
36 DocumentManager* documents, |
35 const ColorTable& colorTable, |
37 const ColorTable& colorTable, |
36 QWidget* parent = nullptr); |
38 QWidget* parent = nullptr); |
37 void setOverpaintCallback(OverpaintCallback fn); |
39 void setOverpaintCallback(OverpaintCallback fn); |
38 void drawWorldPoint(QPainter* painter, const glm::vec3& worldPoint) const; |
40 void drawWorldPoint(QPainter* painter, const glm::vec3& worldPoint) const; |
46 glm::vec3 cameraVector() const; |
48 glm::vec3 cameraVector() const; |
47 std::optional<glm::vec3> worldPosition; |
49 std::optional<glm::vec3> worldPosition; |
48 DrawState* drawState = nullptr; |
50 DrawState* drawState = nullptr; |
49 public Q_SLOTS: |
51 public Q_SLOTS: |
50 void handleSelectionChange(const QSet<ModelId>& selectedIds, const QSet<ModelId>& deselectedIds); |
52 void handleSelectionChange(const QSet<ModelId>& selectedIds, const QSet<ModelId>& deselectedIds); |
51 void rebuildVertices(EditorTabWidget *document); |
53 void rebuildVertices(VertexMap* vertexMap); |
52 void setGridMatrix(const glm::mat4 &newMatrix); |
54 void setGridMatrix(const glm::mat4 &newMatrix); |
53 protected: |
55 protected: |
54 void mouseMoveEvent(QMouseEvent* event) override; |
56 void mouseMoveEvent(QMouseEvent* event) override; |
55 void mousePressEvent(QMouseEvent* event) override; |
57 void mousePressEvent(QMouseEvent* event) override; |
56 void mouseReleaseEvent(QMouseEvent* event) override; |
58 void mouseReleaseEvent(QMouseEvent* event) override; |