src/document.h

changeset 263
59b6027b9843
parent 262
dc33f8a707c4
child 264
76a025db4948
--- a/src/document.h	Sun Jun 26 20:54:09 2022 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
- *  LDForge: LDraw parts authoring CAD
- *  Copyright (C) 2013 - 2020 Teemu Piippo
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#include <memory>
-#include <QWidget>
-#include <QToolBar>
-#include "model.h"
-#include "vertexmap.h"
-#include "gl/common.h"
-
-enum EditingMode
-{
-	SelectMode,
-	DrawMode,
-	CircleMode
-};
-
-Q_DECLARE_METATYPE(EditingMode)
-
-Q_DECLARE_METATYPE(ModelAction)
-
-class EditTools final : public QObject, public RenderLayer
-{
-	Q_OBJECT
-	std::vector<glm::vec3> polygon = {{0, 0, 0}};
-	std::size_t numpoints = 1;
-	EditingMode mode = SelectMode;
-	glm::mat4 mvpMatrix;
-	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;
-	void applyToVertices(VertexMap::ApplyFunction fn) const;
-	const QSet<ModelId> selectedObjects() const;
-	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);
-	void select(const QSet<ModelId>& ids, bool retain);
-protected:
-	void mvpMatrixChanged(const glm::mat4& matrix) override;
-	void mouseMoved(const QMouseEvent* event) override;
-	void mouseClick(const QMouseEvent* event) override;
-	void overpaint(QPainter* painter) override;
-private:
-	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();
-	bool isCloseToExistingPoints() const;
-};

mercurial