implement motion controllers and vr drawing with brush preview
This commit is contained in:
@@ -46,7 +46,7 @@ void CanvasModeBasicCamera::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
case kEventType::MouseMove:
|
||||
if (m_draggingR)
|
||||
{
|
||||
auto dir = App::I.has_vr ? glm::vec2(1, 1) : glm::vec2(-1, -1);
|
||||
auto dir = (App::I.has_vr && App::I.vr_active) ? glm::vec2(1, 1) : glm::vec2(-1, -1);
|
||||
canvas->m_pan = m_pan_start + (me->m_pos - m_dragR_start) * dir * (canvas->m_cam_fov / 85.f);
|
||||
auto angle = canvas->m_pan * 0.003f;
|
||||
canvas->m_cam_rot = glm::eulerAngleXY(angle.y, angle.x);
|
||||
@@ -108,7 +108,7 @@ void CanvasModePen::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
}
|
||||
else
|
||||
{
|
||||
canvas->stroke_start(loc, me->m_pressure, canvas->m_current_brush);
|
||||
canvas->stroke_start({ loc, 0 }, me->m_pressure, canvas->m_current_brush);
|
||||
}
|
||||
m_dragging = true;
|
||||
node->mouse_capture();
|
||||
@@ -150,7 +150,7 @@ void CanvasModePen::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
break;
|
||||
case kEventType::MouseMove:
|
||||
if (m_dragging && !m_picking && !m_resizing)
|
||||
canvas->stroke_update(loc, me->m_pressure);
|
||||
canvas->stroke_update({ loc, 0 }, me->m_pressure);
|
||||
if (m_dragging && m_picking)
|
||||
{
|
||||
glm::vec4 pix = canvas->pick_get(loc);
|
||||
@@ -250,8 +250,8 @@ void CanvasModeLine::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
node->mouse_release();
|
||||
if (m_dragging)
|
||||
{
|
||||
canvas->stroke_start(m_drag_start, 1.f, canvas->m_current_brush);
|
||||
canvas->stroke_update(m_drag_pos, 1.f);
|
||||
canvas->stroke_start({ m_drag_start, 0 }, 1.f, canvas->m_current_brush);
|
||||
canvas->stroke_update({ m_drag_pos, 0 }, 1.f);
|
||||
canvas->stroke_end();
|
||||
}
|
||||
m_dragging = false;
|
||||
|
||||
Reference in New Issue
Block a user