split transform into cut and copy commands and implement history

This commit is contained in:
2018-11-25 22:14:50 +01:00
parent 0d0cd3db7f
commit 0685155a45
5 changed files with 204 additions and 45 deletions

View File

@@ -122,12 +122,12 @@ class CanvasModeMaskFree : public CanvasMode
bool m_dragging = false;
std::vector<vertex_t> m_points;
std::vector<glm::vec2> m_points2d;
std::map<int, int> m_dirty_planes;
public:
virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override;
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
virtual void init() override;
virtual void leave() override;
void clear();
};
class CanvasModeMaskLine : public CanvasMode
@@ -170,9 +170,12 @@ class CanvasModeTransform : public CanvasMode
glm::mat4 m_drag_xform_local{1};
std::vector<vertex_t> m_points{};
std::vector<glm::vec2> m_points2d{};
std::vector<vertex_t> m_points_face[6];
std::map<int, int> m_dirty_planes{};
bool m_active_tool = false;
public:
enum class ActionType : uint8_t { Copy, Cut, Import };
ActionType m_action;
CanvasModeTransform() = default;
virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override;
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;