From 962f9d5f22b1debaf131c1322742cc4e06edb582 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 28 Jun 2016 18:10:06 -0700 Subject: [PATCH 1/3] Don't update the shown state of the tool window when it's already invisible --- interface/resources/qml/ToolWindow.qml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/interface/resources/qml/ToolWindow.qml b/interface/resources/qml/ToolWindow.qml index bbfc74493d..c957a37886 100644 --- a/interface/resources/qml/ToolWindow.qml +++ b/interface/resources/qml/ToolWindow.qml @@ -137,12 +137,15 @@ ScrollingWindow { } function updateVisiblity() { - for (var i = 0; i < tabView.count; ++i) { - if (tabView.getTab(i).enabled) { - return; + if (visible) { + for (var i = 0; i < tabView.count; ++i) { + if (tabView.getTab(i).enabled) { + console.log("QQQ tab is visible, returning early"); + return; + } } + shown = false; } - shown = false; } function findIndexForUrl(source) { From 21d2c977a36f656b0a1c3c56afa435c8c1c5098f Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 28 Jun 2016 18:30:07 -0700 Subject: [PATCH 2/3] Remove roll from cursor in HMD --- .../src/display-plugins/CompositorHelper.cpp | 2 +- libraries/shared/src/GLMHelpers.cpp | 6 ++++++ libraries/shared/src/GLMHelpers.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp b/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp index 032350a07c..89ff2e0c8d 100644 --- a/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp +++ b/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp @@ -425,7 +425,7 @@ glm::mat4 CompositorHelper::getReticleTransform(const glm::mat4& eyePose, const d = glm::normalize(overlaySurfacePoint); } reticlePosition = headPosition + (d * getReticleDepth()); - quat reticleOrientation = glm::quat_cast(_currentDisplayPlugin->getHeadPose()); + quat reticleOrientation = cancelOutRoll(glm::quat_cast(_currentDisplayPlugin->getHeadPose())); vec3 reticleScale = vec3(Cursor::Manager::instance().getScale() * reticleSize * getReticleDepth()); return glm::inverse(eyePose) * createMatFromScaleQuatAndPos(reticleScale, reticleOrientation, reticlePosition); } else { diff --git a/libraries/shared/src/GLMHelpers.cpp b/libraries/shared/src/GLMHelpers.cpp index 556c313f95..8dbd0a146f 100644 --- a/libraries/shared/src/GLMHelpers.cpp +++ b/libraries/shared/src/GLMHelpers.cpp @@ -466,6 +466,12 @@ glm::mat4 createMatFromScaleQuatAndPos(const glm::vec3& scale, const glm::quat& glm::vec4(zAxis, 0.0f), glm::vec4(trans, 1.0f)); } +// cancel out roll +glm::quat cancelOutRoll(const glm::quat& q) { + glm::vec3 forward = q * glm::vec3(0.0f, 0.0f, -1.0f); + return glm::quat_cast(glm::inverse(glm::lookAt(Vectors::ZERO, forward, Vectors::UP))); +} + // cancel out roll and pitch glm::quat cancelOutRollAndPitch(const glm::quat& q) { glm::vec3 zAxis = q * glm::vec3(0.0f, 0.0f, 1.0f); diff --git a/libraries/shared/src/GLMHelpers.h b/libraries/shared/src/GLMHelpers.h index ae9ec25195..ef3bfeb674 100644 --- a/libraries/shared/src/GLMHelpers.h +++ b/libraries/shared/src/GLMHelpers.h @@ -221,6 +221,7 @@ glm::detail::tvec4 lerp(const glm::detail::tvec4& x, const glm::deta glm::mat4 createMatFromQuatAndPos(const glm::quat& q, const glm::vec3& p); glm::mat4 createMatFromScaleQuatAndPos(const glm::vec3& scale, const glm::quat& rot, const glm::vec3& trans); +glm::quat cancelOutRoll(const glm::quat& q); glm::quat cancelOutRollAndPitch(const glm::quat& q); glm::mat4 cancelOutRollAndPitch(const glm::mat4& m); glm::vec3 transformPoint(const glm::mat4& m, const glm::vec3& p); From 5a9be817df1fc30898ca988efb5607150d8c93ce Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Wed, 29 Jun 2016 10:28:55 -0700 Subject: [PATCH 3/3] PR comments --- interface/resources/qml/ToolWindow.qml | 1 - libraries/shared/src/GLMHelpers.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/interface/resources/qml/ToolWindow.qml b/interface/resources/qml/ToolWindow.qml index c957a37886..f6a4600e06 100644 --- a/interface/resources/qml/ToolWindow.qml +++ b/interface/resources/qml/ToolWindow.qml @@ -140,7 +140,6 @@ ScrollingWindow { if (visible) { for (var i = 0; i < tabView.count; ++i) { if (tabView.getTab(i).enabled) { - console.log("QQQ tab is visible, returning early"); return; } } diff --git a/libraries/shared/src/GLMHelpers.cpp b/libraries/shared/src/GLMHelpers.cpp index 8dbd0a146f..0c02cd5b03 100644 --- a/libraries/shared/src/GLMHelpers.cpp +++ b/libraries/shared/src/GLMHelpers.cpp @@ -468,7 +468,7 @@ glm::mat4 createMatFromScaleQuatAndPos(const glm::vec3& scale, const glm::quat& // cancel out roll glm::quat cancelOutRoll(const glm::quat& q) { - glm::vec3 forward = q * glm::vec3(0.0f, 0.0f, -1.0f); + glm::vec3 forward = q * Vectors::FRONT; return glm::quat_cast(glm::inverse(glm::lookAt(Vectors::ZERO, forward, Vectors::UP))); }