From 1dbc8459f848ec8afa813c8e254ba102bd418e52 Mon Sep 17 00:00:00 2001 From: Freddy Date: Wed, 25 Sep 2013 16:46:26 -0700 Subject: [PATCH] adding measured angular velocity to faceshift --- interface/src/devices/Faceshift.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/interface/src/devices/Faceshift.cpp b/interface/src/devices/Faceshift.cpp index 213fbec817..ebc5d5b880 100644 --- a/interface/src/devices/Faceshift.cpp +++ b/interface/src/devices/Faceshift.cpp @@ -142,8 +142,14 @@ void Faceshift::receive(const QByteArray& buffer) { case fsMsg::MSG_OUT_TRACKING_STATE: { const fsTrackingData& data = static_cast(msg.get())->tracking_data(); if ((_tracking = data.m_trackingSuccessful)) { - _headRotation = glm::quat(data.m_headRotation.w, -data.m_headRotation.x, - data.m_headRotation.y, -data.m_headRotation.z); + glm::quat newRotation = glm::quat(data.m_headRotation.w, -data.m_headRotation.x, + data.m_headRotation.y, -data.m_headRotation.z); + glm::quat r = newRotation * glm::inverse(_headRotation); + //printf("angle = %.3f\n", 2 * acos(r.w)); + _headRotation = newRotation; + + //_headRotation = glm::quat(data.m_headRotation.w, -data.m_headRotation.x, + // data.m_headRotation.y, -data.m_headRotation.z); const float TRANSLATION_SCALE = 0.02f; _headTranslation = glm::vec3(data.m_headTranslation.x, data.m_headTranslation.y, -data.m_headTranslation.z) * TRANSLATION_SCALE;