add history to guides

This commit is contained in:
2019-06-19 17:55:35 +02:00
parent 6058f05d3f
commit 9ad3c351ce
7 changed files with 395 additions and 11 deletions

View File

@@ -3,6 +3,7 @@
#include "shape.h"
#include "brush.h"
#include "texture.h"
#include "action.h"
#include <poly2tri.h>
enum class kCanvasMode
@@ -106,6 +107,7 @@ public:
virtual void leave(kCanvasMode next) override;
};
struct ray_t { glm::vec3 o, d; };
class CanvasModeGrid : public CanvasMode
{
LineSegment m_line;
@@ -113,15 +115,30 @@ class CanvasModeGrid : public CanvasMode
glm::vec3 dir;
int m_plane_id;
bool m_dragging = false;
struct ray_t { glm::vec3 o, d; };
std::vector<ray_t> m_lines;
bool m_added = false;
std::unique_ptr<class ActionModeGrid> m_action;
public:
bool m_highlight = false;
int m_selected_index;
std::vector<ray_t> m_lines;
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
virtual void on_KeyEvent(KeyEvent* ke) override;
virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override;
virtual void init() override;
void commit();
void clear();
};
struct ActionModeGrid : public Action
{
CanvasModeGrid* m_mode;
bool m_highlight;
int m_selected_index;
std::vector<ray_t> m_lines;
virtual void run() override { }
virtual Action* get_redo() override;
virtual void undo() override;
virtual size_t memory() override { return 0; }
};
class CanvasModeCamera : public CanvasMode
{