From 94918be94951927100e70bc45f6ab205befd0caf Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Fri, 10 Jul 2015 12:28:34 -0700 Subject: [PATCH] another fix for viewing vive user in third person --- interface/src/Application.cpp | 2 +- interface/src/avatar/MyAvatar.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 4c76e18ba9..be4f50f80d 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3743,7 +3743,7 @@ void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool se } renderArgs->_debugFlags = renderDebugFlags; _entities.render(renderArgs); - ViveControllerManager::getInstance().render(renderArgs); + //ViveControllerManager::getInstance().render(renderArgs); } // render the ambient occlusion effect if enabled diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 086c658b0f..2af36cde11 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1313,9 +1313,10 @@ void MyAvatar::updateOrientation(float deltaTime) { if (qApp->isHMDMode()) { // these angles will be in radians - glm::quat orientation = qApp->getHeadOrientation(); + glm::quat orientation = glm::quat_cast(_sensorToWorldMat) * qApp->getHeadOrientation(); + glm::quat localOrientation = glm::inverse(bodyOrientation) * orientation; // ... so they need to be converted to degrees before we do math... - glm::vec3 euler = glm::eulerAngles(orientation) * DEGREES_PER_RADIAN; + glm::vec3 euler = glm::eulerAngles(localOrientation) * DEGREES_PER_RADIAN; //Invert yaw and roll when in mirror mode if (Application::getInstance()->getCamera()->getMode() == CAMERA_MODE_MIRROR) {