From 1dd62b272634ac534d04a5daa00af5018a09bd6d Mon Sep 17 00:00:00 2001 From: Sam Gondelman Date: Mon, 29 Jun 2015 18:22:31 -0700 Subject: [PATCH] general improvements, need to resolve dependency issues --- .../openvr/OpenVrDisplayPlugin.cpp | 8 ++++---- .../openvr/ViveControllerManager.cpp | 19 +++++++++---------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/libraries/display-plugins/src/display-plugins/openvr/OpenVrDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/openvr/OpenVrDisplayPlugin.cpp index bb5b27625f..d74f245c64 100644 --- a/libraries/display-plugins/src/display-plugins/openvr/OpenVrDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/openvr/OpenVrDisplayPlugin.cpp @@ -72,12 +72,12 @@ bool OpenVrDisplayPlugin::isSupported() const { } void OpenVrDisplayPlugin::activate(PluginContainer * container) { + vr::HmdError eError = vr::HmdError_None; if (!_hmd) { - vr::HmdError eError = vr::HmdError_None; _hmd = vr::VR_Init(&eError); - Q_ASSERT(eError == vr::HmdError_None); - Q_ASSERT(_hmd); - } + Q_ASSERT(eError == vr::HmdError_None); + } + Q_ASSERT(_hmd); _hmd->GetWindowBounds(&_windowPosition.x, &_windowPosition.y, &_windowSize.x, &_windowSize.y); _hmd->GetRecommendedRenderTargetSize(&_renderTargetSize.x, &_renderTargetSize.y); diff --git a/libraries/display-plugins/src/display-plugins/openvr/ViveControllerManager.cpp b/libraries/display-plugins/src/display-plugins/openvr/ViveControllerManager.cpp index 6d774f99f3..7e16bda06b 100644 --- a/libraries/display-plugins/src/display-plugins/openvr/ViveControllerManager.cpp +++ b/libraries/display-plugins/src/display-plugins/openvr/ViveControllerManager.cpp @@ -11,8 +11,11 @@ #include "ViveControllerManager.h" -#include "Application.h" #include +#include +#include + +#include "Application.h" #include "OpenVrDisplayPlugin.h" #include "OpenVrHelpers.h" #include "UserActivityLogger.h" @@ -74,7 +77,7 @@ void ViveControllerManager::update() { continue; } - const Matrix4 & mat = _trackedDevicePoseMat4[unTrackedDevice]; + const mat4& mat = _trackedDevicePoseMat4[unTrackedDevice]; PalmData* palm; bool foundHand = false; @@ -92,14 +95,14 @@ void ViveControllerManager::update() { palm = &(hand->getPalms()[hand->getNumPalms() - 1]); palm->setSixenseID(unTrackedDevice); _prevPalms[trackedControllerCount - 1] = palm; - qCDebug(interfaceapp, "Found new Vive hand controller, ID %i", unTrackedDevice); + //qDebug(interfaceapp, "Found new Vive hand controller, ID %i", unTrackedDevice); } palm->setActive(true); // handle inputs vr::VRControllerState_t* controllerState; - if(vr::GetControllerState(unTrackedDevice, controllerState)) { + if(_hmd->GetControllerState(unTrackedDevice, controllerState)) { } @@ -118,12 +121,8 @@ void ViveControllerManager::update() { // position = _orbRotation * (position - neck); // // Rotation of Palm - float w = sqrt(1.0f + _trackedDevicePoseMat4[0][0] + _trackedDevicePoseMat4[1][1] + _trackedDevicePoseMat4[2][2]) / 2.0f; - float x = (_trackedDevicePoseMat4[2][1] - _trackedDevicePoseMat4[1][2])/(4.0f * w); - float y = (_trackedDevicePoseMat4[0][2] - _trackedDevicePoseMat4[2][0])/(4.0f * w); - float z = (_trackedDevicePoseMat4[1][0] - _trackedDevicePoseMat4[0][1])/(4.0f * w); - glm::quat rotation(w, x, y, z); - rotation = glm::angleAxis(PI, glm::vec3(0.0f, 1.0f, 0.0f)) * rotation; + glm::quat rotation = glm::quat_cast(_trackedDevicePoseMat4[unTrackedDevice]); + //rotation = glm::angleAxis(PI, glm::vec3(0.0f, 1.0f, 0.0f)) * rotation; // // Compute current velocity from position change // glm::vec3 rawVelocity;