src/layers/edittools.h

changeset 314
4642ba1218e8
parent 311
fab454611f9b
child 315
23b47902d857
equal deleted inserted replaced
313:c24d87f64bed 314:4642ba1218e8
42 std::size_t numpoints = 1; 42 std::size_t numpoints = 1;
43 EditingMode mode = SelectMode; 43 EditingMode mode = SelectMode;
44 glm::mat4 mvpMatrix; 44 glm::mat4 mvpMatrix;
45 glm::mat4 gridMatrix{1}; 45 glm::mat4 gridMatrix{1};
46 Plane gridPlane; 46 Plane gridPlane;
47 QPointF localPosition;
47 opt<glm::vec3> worldPosition; 48 opt<glm::vec3> worldPosition;
48 CircleToolOptions circleToolOptions = { 49 CircleToolOptions circleToolOptions = {
49 .fraction = {16, 16}, 50 .fraction = {16, 16},
50 .type = CircularPrimitive::Circle, 51 .type = CircularPrimitive::Circle,
51 }; 52 };
52 public: 53 public:
53 explicit EditTools(QObject *parent = nullptr); 54 explicit EditTools(QObject *parent = nullptr);
54 ~EditTools() override; 55 ~EditTools() override;
55 void applyToVertices(VertexMap::ApplyFunction fn) const; 56 void applyToVertices(VertexMap::ApplyFunction fn) const;
56 const QSet<ModelId> selectedObjects() const; 57 [[nodiscard]] const QSet<ModelId> selectedObjects() const;
57 EditingMode currentEditingMode() const; 58 [[nodiscard]] EditingMode currentEditingMode() const;
58 Q_SLOT void setEditMode(EditingMode mode); 59 Q_SLOT void setEditMode(EditingMode mode);
59 Q_SLOT void setGridMatrix(const glm::mat4& gridMatrix); 60 Q_SLOT void setGridMatrix(const glm::mat4& gridMatrix);
60 Q_SLOT void setCircleToolOptions(const CircleToolOptions& options); 61 Q_SLOT void setCircleToolOptions(const CircleToolOptions& options);
61 Q_SIGNALS: 62 Q_SIGNALS:
62 void newStatusText(const QString& newStatusText); 63 void newStatusText(const QString& newStatusText);
67 void mvpMatrixChanged(const glm::mat4& matrix) override; 68 void mvpMatrixChanged(const glm::mat4& matrix) override;
68 void mouseMoved(const QMouseEvent* event) override; 69 void mouseMoved(const QMouseEvent* event) override;
69 void mouseClick(const QMouseEvent* event) override; 70 void mouseClick(const QMouseEvent* event) override;
70 void overpaint(QPainter* painter) override; 71 void overpaint(QPainter* painter) override;
71 private: 72 private:
72 const std::vector<ModelAction> modelActions() const; 73 [[nodiscard]] const std::vector<ModelAction> modelActions() const;
73 const std::vector<ModelAction> circleModeActions() const; 74 [[nodiscard]] const std::vector<ModelAction> circleModeActions() const;
74 const std::vector<ModelAction> drawModeActions() const; 75 [[nodiscard]] const std::vector<ModelAction> drawModeActions() const;
75 bool usePolygon() const; 76 bool usePolygon() const;
76 void closeShape(); 77 void closeShape();
77 void renderPreview(QPainter* painter, const void* pensptr); 78 void renderPreview(QPainter* painter, const void* pensptr);
78 void removeLastPoint(); 79 void removeLastPoint();
79 bool isCloseToExistingPoints() const; 80 [[nodiscard]] bool isCloseToExistingPoints() const;
81 [[nodiscard]] std::size_t calcNumPoints() const;
80 }; 82 };

mercurial