Merge pull request #8157 from jherico/qml_fixes

HMD UI Fixes
This commit is contained in:
Brad Davis 2016-06-30 13:26:57 -07:00 committed by GitHub
commit 7b0b56d793
4 changed files with 14 additions and 5 deletions

View file

@ -137,12 +137,14 @@ ScrollingWindow {
} }
function updateVisiblity() { function updateVisiblity() {
for (var i = 0; i < tabView.count; ++i) { if (visible) {
if (tabView.getTab(i).enabled) { for (var i = 0; i < tabView.count; ++i) {
return; if (tabView.getTab(i).enabled) {
return;
}
} }
shown = false;
} }
shown = false;
} }
function findIndexForUrl(source) { function findIndexForUrl(source) {

View file

@ -425,7 +425,7 @@ glm::mat4 CompositorHelper::getReticleTransform(const glm::mat4& eyePose, const
d = glm::normalize(overlaySurfacePoint); d = glm::normalize(overlaySurfacePoint);
} }
reticlePosition = headPosition + (d * getReticleDepth()); 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()); vec3 reticleScale = vec3(Cursor::Manager::instance().getScale() * reticleSize * getReticleDepth());
return glm::inverse(eyePose) * createMatFromScaleQuatAndPos(reticleScale, reticleOrientation, reticlePosition); return glm::inverse(eyePose) * createMatFromScaleQuatAndPos(reticleScale, reticleOrientation, reticlePosition);
} else { } else {

View file

@ -466,6 +466,12 @@ glm::mat4 createMatFromScaleQuatAndPos(const glm::vec3& scale, const glm::quat&
glm::vec4(zAxis, 0.0f), glm::vec4(trans, 1.0f)); glm::vec4(zAxis, 0.0f), glm::vec4(trans, 1.0f));
} }
// cancel out roll
glm::quat cancelOutRoll(const glm::quat& q) {
glm::vec3 forward = q * Vectors::FRONT;
return glm::quat_cast(glm::inverse(glm::lookAt(Vectors::ZERO, forward, Vectors::UP)));
}
// cancel out roll and pitch // cancel out roll and pitch
glm::quat cancelOutRollAndPitch(const glm::quat& q) { glm::quat cancelOutRollAndPitch(const glm::quat& q) {
glm::vec3 zAxis = q * glm::vec3(0.0f, 0.0f, 1.0f); glm::vec3 zAxis = q * glm::vec3(0.0f, 0.0f, 1.0f);

View file

@ -221,6 +221,7 @@ glm::detail::tvec4<T, P> lerp(const glm::detail::tvec4<T, P>& x, const glm::deta
glm::mat4 createMatFromQuatAndPos(const glm::quat& q, const glm::vec3& p); 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::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::quat cancelOutRollAndPitch(const glm::quat& q);
glm::mat4 cancelOutRollAndPitch(const glm::mat4& m); glm::mat4 cancelOutRollAndPitch(const glm::mat4& m);
glm::vec3 transformPoint(const glm::mat4& m, const glm::vec3& p); glm::vec3 transformPoint(const glm::mat4& m, const glm::vec3& p);