diff -r a9bf6bab5ea2 -r 8efa3a33172e src/document.h --- 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 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 actions() const; + const std::vector modelActions() const; + const std::vector circleModeActions() const; + const std::vector drawModeActions() const; void closeShape(); void renderPreview(QPainter* painter, const void* pensptr); void removeLastPoint();