src/ui/canvas.h

changeset 214
8e1fe64ce4e3
parent 205
1a4342d80de7
child 215
34c6e7bc4ee1
equal deleted inserted replaced
213:ee5758ddb6d2 214:8e1fe64ce4e3
4 #include <QPen> 4 #include <QPen>
5 #include "gl/partrenderer.h" 5 #include "gl/partrenderer.h"
6 #include "gl/gridprogram.h" 6 #include "gl/gridprogram.h"
7 #include "gl/axesprogram.h" 7 #include "gl/axesprogram.h"
8 #include "gl/vertexprogram.h" 8 #include "gl/vertexprogram.h"
9
10 class EditTools;
9 11
10 enum EditingMode 12 enum EditingMode
11 { 13 {
12 SelectMode, 14 SelectMode,
13 DrawMode 15 DrawMode
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;
72 Plane gridPlane; 74 Plane gridPlane;
73 int totalMouseMove = 0; 75 int totalMouseMove = 0;
74 bool isDark = true; 76 bool isDark = true;
75 QSet<ModelId> selection; 77 QSet<ModelId> selection;
76 OverpaintCallback overpaintCallback = nullptr; 78 OverpaintCallback overpaintCallback = nullptr;
77 EditorTabWidget* document; 79 EditTools* document;
78 }; 80 };
79 81
80 void adjustGridToView(Canvas* canvas); 82 void adjustGridToView(Canvas* canvas);

mercurial