polygon selection snap
This commit is contained in:
@@ -625,7 +625,7 @@ void CanvasModeMaskLine::leave()
|
||||
std::vector<vertex_t> points;
|
||||
for (int i = 0; i < (int)m_points2d.size(); i++)
|
||||
points.emplace_back(m_points2d[i]);
|
||||
auto v = canvas->triangulate(points);
|
||||
auto v = canvas->triangulate(poly_remove_duplicate(points));
|
||||
canvas->project2Dpoints(v);
|
||||
LOG("%d points", (int)v.size());
|
||||
|
||||
@@ -698,6 +698,8 @@ void CanvasModeMaskLine::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
{
|
||||
if (m_dragging)
|
||||
{
|
||||
if (glm::distance(m_points2d.front(), loc) < 10)
|
||||
loc = m_points2d.front();
|
||||
m_points.back().pos = glm::vec4(loc, 0, 1);
|
||||
m_points2d.back() = loc;
|
||||
m_shape.update_vertices(m_points.data(), (int)m_points.size());
|
||||
@@ -725,7 +727,7 @@ void CanvasModeMaskLine::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
|
||||
void CanvasModeMaskLine::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera)
|
||||
{
|
||||
if (m_points.size() > 3)
|
||||
if (m_points.size() > 1)
|
||||
{
|
||||
if (m_active_tool)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user