--- a/src/document.h Wed Jun 15 19:47:02 2022 +0300 +++ b/src/document.h Mon Jun 20 02:04:51 2022 +0300 @@ -27,7 +27,8 @@ enum EditingMode { SelectMode, - DrawMode + DrawMode, + CircleMode }; Q_DECLARE_METATYPE(EditingMode); @@ -56,6 +57,10 @@ glm::mat4 gridMatrix{1}; Plane gridPlane; opt<glm::vec3> worldPosition; + CircleToolOptions circleToolOptions = { + .fraction = {16, 16}, + .type = CircularPrimitive::Circle, + }; public: explicit EditTools(QObject *parent = nullptr); ~EditTools() override; @@ -64,6 +69,7 @@ EditingMode currentEditingMode() const; Q_SLOT void setEditMode(EditingMode mode); Q_SLOT void setGridMatrix(const glm::mat4& gridMatrix); + Q_SLOT void setCircleToolOptions(const CircleToolOptions& options); Q_SIGNALS: void newStatusText(const QString& newStatusText); void modelAction(const ModelAction& action); @@ -74,7 +80,9 @@ void mouseClick(const QMouseEvent* event) override; void overpaint(QPainter* painter) override; private: - const std::vector<ModelAction> actions() const; + const std::vector<ModelAction> modelActions() const; + const std::vector<ModelAction> circleModeActions() const; + const std::vector<ModelAction> drawModeActions() const; void closeShape(); void renderPreview(QPainter* painter, const void* pensptr); void removeLastPoint();