From 62e037dd1a884696e99fcf84c9f726d872d30304 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Sat, 2 Mar 2019 18:57:01 +0100 Subject: [PATCH] fix direction for line tool --- src/brush.cpp | 5 +++-- src/canvas_modes.cpp | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/brush.cpp b/src/brush.cpp index b3122ff..be52ec8 100644 --- a/src/brush.cpp +++ b/src/brush.cpp @@ -189,9 +189,10 @@ std::vector Stroke::compute_samples() auto pos = glm::lerp(A.pos, B.pos, t); float pressure = glm::lerp(A.pressure, B.pressure, t); - if (m_dir_dist > m_dir_step && m_last_kp != m_dir_kp) + if (m_dir_dist > m_dir_step) { - glm::vec2 v = glm::normalize(m_keypoints[m_last_kp].pos - m_keypoints[m_dir_kp].pos); + int next_kp = m_last_kp == m_dir_kp ? m_last_kp + 1 : m_dir_kp; + glm::vec2 v = glm::normalize(m_keypoints[m_last_kp].pos - m_keypoints[next_kp].pos); m_dir_angle = -glm::orientedAngle(v, m_dir_ref); if (m_brush->m_tip_angle_smooth > 0 && (glm::abs(m_dir_angle) > glm::radians(30.f) || !m_dir_valid)) { diff --git a/src/canvas_modes.cpp b/src/canvas_modes.cpp index 8ffe485..6c6abdc 100644 --- a/src/canvas_modes.cpp +++ b/src/canvas_modes.cpp @@ -291,6 +291,7 @@ void CanvasModeLine::on_MouseEvent(MouseEvent* me, glm::vec2& loc) { Canvas::I->stroke_start({ m_drag_start, 0 }, 1.f); Canvas::I->stroke_update({ m_drag_pos, 0 }, 1.f); + Canvas::I->stroke_draw(); Canvas::I->stroke_end(); } m_dragging = false;