src/document.h

changeset 232
8efa3a33172e
parent 228
948867719906
child 250
2837b549e616
--- 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();

mercurial