separate pen mode and camera in different modes to be composed, start implementing line draw mode

This commit is contained in:
2017-05-05 21:57:02 +01:00
parent 484bf6fab4
commit 427dd66976
7 changed files with 147 additions and 92 deletions

View File

@@ -10,17 +10,22 @@ class CanvasMode
public:
static class NodeCanvas* node;
static ui::Canvas* canvas;
virtual void on_MouseDownL(MouseEvent* me, glm::vec2& loc) {}
virtual void on_MouseUpL(MouseEvent* me, glm::vec2& loc) {}
virtual void on_MouseDownR(MouseEvent* me, glm::vec2& loc) {}
virtual void on_MouseUpR(MouseEvent* me, glm::vec2& loc) {}
virtual void on_MouseMove(MouseEvent* me, glm::vec2& loc) {}
virtual void on_MouseScroll(MouseEvent* me, glm::vec2& loc) {}
virtual void on_MouseCancel(MouseEvent* me, glm::vec2& loc) {}
virtual void on_KeyDown(KeyEvent* ke) {}
virtual void on_KeyUp(KeyEvent* ke) {}
virtual void on_GestureStart(GestureEvent* ge) {}
virtual void on_GestureMove(GestureEvent* ge) {}
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) {}
virtual void on_KeyEvent(KeyEvent* ke) {}
virtual void on_GestureEvent(GestureEvent* ge) {}
};
class CanvasModeBasicCamera : public CanvasMode
{
bool m_draggingR = false;
glm::vec2 m_dragR_start;
glm::vec2 m_pan_start;
float m_camera_fov;
float m_zoom_canvas = 1.f;
float m_zoom_start;
public:
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
virtual void on_GestureEvent(GestureEvent* ge) override;
};
class CanvasModePen : public CanvasMode
@@ -29,19 +34,16 @@ class CanvasModePen : public CanvasMode
bool m_draggingR = false;
glm::vec2 m_dragR_start;
glm::vec2 m_pan_start;
glm::vec2 m_pan;
glm::vec2 m_cur;
float m_camera_fov;
float m_zoom_canvas = 1.f;
float m_zoom_start;
public:
virtual void on_MouseDownL(MouseEvent* me, glm::vec2& loc) override;
virtual void on_MouseUpL(MouseEvent* me, glm::vec2& loc) override;
virtual void on_MouseDownR(MouseEvent* me, glm::vec2& loc) override;
virtual void on_MouseUpR(MouseEvent* me, glm::vec2& loc) override;
virtual void on_MouseMove(MouseEvent* me, glm::vec2& loc) override;
virtual void on_MouseScroll(MouseEvent* me, glm::vec2& loc) override;
virtual void on_MouseCancel(MouseEvent* me, glm::vec2& loc) override;
virtual void on_GestureStart(GestureEvent* ge) override;
virtual void on_GestureMove(GestureEvent* ge) override;
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
};
class CanvasModeLine : public CanvasMode
{
int m_stage{0};
public:
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
};