src/layers/edittools.h

changeset 322
a39f454a3d7f
parent 315
23b47902d857
child 333
07e65a4c6611
equal deleted inserted replaced
321:180072db4a83 322:a39f454a3d7f
21 #include <QWidget> 21 #include <QWidget>
22 #include <QToolBar> 22 #include <QToolBar>
23 #include "src/model.h" 23 #include "src/model.h"
24 #include "src/vertexmap.h" 24 #include "src/vertexmap.h"
25 #include "src/gl/common.h" 25 #include "src/gl/common.h"
26 #include "src/inputvertices.h"
26 27
27 enum EditingMode 28 enum EditingMode
28 { 29 {
29 SelectMode, 30 SelectMode,
30 DrawMode, 31 DrawMode,
36 Q_DECLARE_METATYPE(ModelAction) 37 Q_DECLARE_METATYPE(ModelAction)
37 38
38 class EditTools final : public QObject, public RenderLayer 39 class EditTools final : public QObject, public RenderLayer
39 { 40 {
40 Q_OBJECT 41 Q_OBJECT
41 std::vector<glm::vec3> polygon = {{0, 0, 0}}; 42 InputVertices inputPolygon;
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 QPointF localPosition;
74 [[nodiscard]] const std::vector<ModelAction> circleModeActions() const; 74 [[nodiscard]] const std::vector<ModelAction> circleModeActions() const;
75 [[nodiscard]] const std::vector<ModelAction> drawModeActions() const; 75 [[nodiscard]] const std::vector<ModelAction> drawModeActions() const;
76 bool usePolygon() const; 76 bool usePolygon() const;
77 void closeShape(); 77 void closeShape();
78 void renderPreview(QPainter* painter, const void* pensptr); 78 void renderPreview(QPainter* painter, const void* pensptr);
79 void removeLastPoint();
80 [[nodiscard]] bool isCloseToExistingPoints() const;
81 [[nodiscard]] std::size_t calcNumPoints() const;
82 [[nodiscard]] opt<float> cylinderHeight() const; 79 [[nodiscard]] opt<float> cylinderHeight() const;
83 }; 80 };

mercurial