From 4e8fc08458b32c396a2eb49b4ca8f6124f5a1025 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Tue, 6 Oct 2015 20:48:51 +0200 Subject: [PATCH] made the changes as suggested by @hyperlogic --- interface/src/scripting/HMDScriptingInterface.cpp | 9 +++++++-- interface/src/scripting/HMDScriptingInterface.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/interface/src/scripting/HMDScriptingInterface.cpp b/interface/src/scripting/HMDScriptingInterface.cpp index 4629ff5917..ca25f5f72a 100644 --- a/interface/src/scripting/HMDScriptingInterface.cpp +++ b/interface/src/scripting/HMDScriptingInterface.cpp @@ -58,16 +58,21 @@ float HMDScriptingInterface::getIPD() const { return Application::getInstance()->getActiveDisplayPlugin()->getIPD(); } +glm::mat4 HMDScriptingInterface::getWorldHMDMatrix() const { + MyAvatar* myAvatar = DependencyManager::get()->getMyAvatar(); + return myAvatar->getSensorToWorldMatrix() * myAvatar->getHMDSensorMatrix(); +} + glm::vec3 HMDScriptingInterface::getPosition() const { if (Application::getInstance()->getActiveDisplayPlugin()->isHmd()) { - return glm::vec3(Application::getInstance()->getActiveDisplayPlugin()->getHeadPose()[3]); + return extractTranslation(getWorldHMDMatrix()); } return glm::vec3(); } glm::quat HMDScriptingInterface::getOrientation() const { if (Application::getInstance()->getActiveDisplayPlugin()->isHmd()) { - return glm::quat_cast(Application::getInstance()->getActiveDisplayPlugin()->getHeadPose()); + return glm::normalize(glm::quat_cast(getWorldHMDMatrix())); } return glm::quat(); } diff --git a/interface/src/scripting/HMDScriptingInterface.h b/interface/src/scripting/HMDScriptingInterface.h index 50944ab695..ac2ab0149e 100644 --- a/interface/src/scripting/HMDScriptingInterface.h +++ b/interface/src/scripting/HMDScriptingInterface.h @@ -46,6 +46,7 @@ private: bool getHUDLookAtPosition3D(glm::vec3& result) const; + glm::mat4 getWorldHMDMatrix() const; }; #endif // hifi_HMDScriptingInterface_h