add flood fill mode with custom cursor
This commit is contained in:
@@ -19,6 +19,7 @@ enum class kCanvasMode
|
||||
Fill,
|
||||
MaskFree,
|
||||
MaskLine,
|
||||
FloodFill,
|
||||
COUNT,
|
||||
};
|
||||
|
||||
@@ -37,6 +38,8 @@ class CanvasMode
|
||||
{
|
||||
public:
|
||||
static class NodeCanvas* node;
|
||||
bool hide_curor = false;
|
||||
bool m_draw_tip = false;
|
||||
//static Canvas* canvas;
|
||||
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) {}
|
||||
virtual void on_KeyEvent(KeyEvent* ke) {}
|
||||
@@ -78,7 +81,7 @@ class CanvasModePen : public CanvasMode
|
||||
// resizing the tip
|
||||
bool m_resizing = false;
|
||||
public:
|
||||
CanvasModePen() = default;
|
||||
CanvasModePen() { hide_curor = true; }
|
||||
|
||||
virtual void on_GestureEvent(GestureEvent* ge) override;
|
||||
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
|
||||
@@ -87,7 +90,6 @@ public:
|
||||
virtual void leave(kCanvasMode next) override;
|
||||
bool m_picking = false;
|
||||
glm::vec2 m_cur_pos;
|
||||
bool m_draw_tip = false;
|
||||
bool m_draw_outline = true;
|
||||
};
|
||||
|
||||
@@ -99,7 +101,6 @@ class CanvasModeLine : public CanvasMode
|
||||
glm::vec2 m_drag_pos;
|
||||
public:
|
||||
glm::vec2 m_cur_pos;
|
||||
bool m_draw_tip = false;
|
||||
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
|
||||
virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override;
|
||||
virtual void init() override;
|
||||
@@ -107,6 +108,19 @@ public:
|
||||
virtual void leave(kCanvasMode next) override;
|
||||
};
|
||||
|
||||
class CanvasModeFloodFill : public CanvasMode
|
||||
{
|
||||
const std::string m_cursor_path = "data/cursor/bucket-fill.png";
|
||||
const uint16_t m_cursor_id = const_hash(m_cursor_path.c_str());
|
||||
public:
|
||||
CanvasModeFloodFill() { hide_curor = true; }
|
||||
glm::vec2 m_cur_pos;
|
||||
virtual void init() override;
|
||||
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
|
||||
virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override;
|
||||
};
|
||||
|
||||
|
||||
struct ray_t { glm::vec3 o, d; };
|
||||
class CanvasModeGrid : public CanvasMode
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user