From 84b47423afd57c2253dfbf07f1a56274ba07653e Mon Sep 17 00:00:00 2001 From: NPatch Date: Thu, 18 Oct 2018 20:52:14 +0300 Subject: [PATCH] Fixed ImGuizmo::ROTATE (#1524) mtxSRT produced a matrix that ImGuizmo did not agree with when it came to rotation(ImGuizmo::ROTATE). Using ImGuizmo's RecomposeMatrixFromComponents fixes this issue. --- examples/32-particles/particles.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/examples/32-particles/particles.cpp b/examples/32-particles/particles.cpp index d44595fd5..514da7826 100644 --- a/examples/32-particles/particles.cpp +++ b/examples/32-particles/particles.cpp @@ -207,11 +207,9 @@ struct Emitter void gizmo(const float* _view, const float* _proj) { float mtx[16]; - bx::mtxSRT(mtx - , 1.0f, 1.0f, 1.0f - , m_uniforms.m_angle[0], m_uniforms.m_angle[1], m_uniforms.m_angle[2] - , m_uniforms.m_position[0], m_uniforms.m_position[1], m_uniforms.m_position[2] - ); + float scale[3]; + + ImGuizmo::RecomposeMatrixFromComponents(m_uniforms.m_position, m_uniforms.m_angle, scale, mtx); ImGuiIO& io = ImGui::GetIO(); ImGuizmo::SetRect(0, 0, io.DisplaySize.x, io.DisplaySize.y); @@ -224,7 +222,6 @@ struct Emitter , mtx ); - float scale[3]; ImGuizmo::DecomposeMatrixToComponents(mtx, m_uniforms.m_position, m_uniforms.m_angle, scale); } };