diff options
Diffstat (limited to 'ftnoir_tracker_rift')
-rw-r--r-- | ftnoir_tracker_rift/ftnoir_tracker_rift.cpp | 67 |
1 files changed, 19 insertions, 48 deletions
diff --git a/ftnoir_tracker_rift/ftnoir_tracker_rift.cpp b/ftnoir_tracker_rift/ftnoir_tracker_rift.cpp index 13336313..3ef68260 100644 --- a/ftnoir_tracker_rift/ftnoir_tracker_rift.cpp +++ b/ftnoir_tracker_rift/ftnoir_tracker_rift.cpp @@ -1,23 +1,11 @@ /* Copyright: "i couldn't care less what anyone does with the 5 lines of code i wrote" - mm0zct */ #include "ftnoir_tracker_rift.h" #include "facetracknoir/global-settings.h" - #include "OVR.h" +#include "OVR.h" #include <cstdio> -#define SIXENSE_STATIC_LIB -#define SIXENSE_UTILS_STATIC_LIB -#include <sixense.h> -#include <sixense_math.hpp> -#ifdef WIN32 -#include <sixense_utils/mouse_pointer.hpp> -#endif -#include <sixense_utils/derivatives.hpp> -#include <sixense_utils/button_states.hpp> -#include <sixense_utils/event_triggers.hpp> -#include <sixense_utils/controller_manager/controller_manager.hpp> using namespace OVR; - Rift_Tracker::Rift_Tracker() { pSensor.Clear(); @@ -38,8 +26,6 @@ Rift_Tracker::Rift_Tracker() Rift_Tracker::~Rift_Tracker() { - - sixenseExit(); pSensor.Clear(); pHMD.Clear(); pManager.Clear(); @@ -48,7 +34,7 @@ Rift_Tracker::~Rift_Tracker() /* void controller_manager_setup_callback( sixenseUtils::ControllerManager::setup_step step ) { - + QMessageBox::warning(0,"OpenTrack Info", "controller manager callback",QMessageBox::Ok,QMessageBox::NoButton); if( sixenseUtils::getTheControllerManager()->isMenuVisible() ) { // Ask the controller manager what the next instruction string should be. @@ -61,18 +47,18 @@ void controller_manager_setup_callback( sixenseUtils::ControllerManager::setup_s void Rift_Tracker::StartTracker(QFrame* videoFrame) { - //QMessageBox::warning(0,"FaceTrackNoIR Notification", "Tracking loading settings...",QMessageBox::Ok,QMessageBox::NoButton); + //QMessageBox::warning(0,"FaceTrackNoIR Notification", "Tracking loading settings...",QMessageBox::Ok,QMessageBox::NoButton); loadSettings(); // // Startup the Oculus SDK device handling, use the first Rift sensor we find. // - System::Init(Log::ConfigureDefaultLog(LogMask_All)); - pManager = *DeviceManager::Create(); + System::Init(Log::ConfigureDefaultLog(LogMask_All)); + pManager = *DeviceManager::Create(); DeviceEnumerator<HMDDevice>& enumerator = pManager->EnumerateDevices<HMDDevice>(); if (enumerator.IsAvailable()) { pHMD = *enumerator.CreateDevice(); - + pSensor = *pHMD->GetSensor(); if (pSensor){ @@ -80,28 +66,17 @@ void Rift_Tracker::StartTracker(QFrame* videoFrame) }else{ QMessageBox::warning(0,"FaceTrackNoIR Error", "Unable to find Rift tracker",QMessageBox::Ok,QMessageBox::NoButton); } - isCalibrated = false; - MagCal.BeginAutoCalibration(SFusion); - SFusion.SetMagReference(SFusion.GetOrientation()); - + isCalibrated = false; + MagCal.BeginAutoCalibration(SFusion); + SFusion.SetMagReference(SFusion.GetOrientation()); } - // Init sixense - //QMessageBox::warning(0,"OpenTrack Info", "sixense init",QMessageBox::Ok,QMessageBox::NoButton); - sixenseInit(); - //QMessageBox::warning(0,"OpenTrack Info", "sixense init complete, setting controller manager",QMessageBox::Ok,QMessageBox::NoButton); - // Init the controller manager. This makes sure the controllers are present, assigned to left and right hands, and that - // the hemisphere calibration is complete. - //sixenseUtils::getTheControllerManager()->setGameType( sixenseUtils::ControllerManager::ONE_PLAYER_TWO_CONTROLLER ); - //sixenseUtils::getTheControllerManager()->registerSetupCallback( controller_manager_setup_callback ); - //QMessageBox::warning(0,"OpenTrack Info", "controller manager callback registered",QMessageBox::Ok,QMessageBox::NoButton); - return; } bool Rift_Tracker::GiveHeadPoseData(double *data) { if (pHMD.GetPtr() != NULL) { - +#if 0 if (SFusion.IsMagReady() && !isCalibrated ){ SFusion.SetYawCorrectionEnabled(true); QMessageBox::warning(0,"OpenTrack Info", "Calibrated magnetic sensor",QMessageBox::Ok,QMessageBox::NoButton); @@ -111,6 +86,7 @@ bool Rift_Tracker::GiveHeadPoseData(double *data) QMessageBox::warning(0,"OpenTrack Info", "Lost magnetic calibration",QMessageBox::Ok,QMessageBox::NoButton); } } +#endif // Magnetometer calibration procedure MagCal.UpdateAutoCalibration(SFusion); @@ -120,20 +96,15 @@ bool Rift_Tracker::GiveHeadPoseData(double *data) float roll = 0.0f; //hmdOrient.GetEulerAngles< Axis_X, Axis_Y, Axis_Z>(&pitch, &yaw, &roll); //hmdOrient.GetEulerAngles< Axis_X, Axis_Z, Axis_Y>(&pitch, &roll, &yaw); - hmdOrient.GetEulerAngles< Axis_Y, Axis_X, Axis_Z>(&yaw, &pitch, &roll); + hmdOrient.GetEulerAngles<Axis_Y, Axis_X, Axis_Z>(&yaw, &pitch , &roll); //hmdOrient.GetEulerAngles< Axis_Y, Axis_Z, Axis_X>(&yaw, &roll, &pitch); //hmdOrient.GetEulerAngles< Axis_Z, Axis_X, Axis_Y>(&roll, &pitch, &yaw); //hmdOrient.GetEulerAngles< Axis_Z, Axis_Y, Axis_X>(&roll, &yaw, &pitch); - newHeadPose[RY] =pitch; - newHeadPose[RZ] = roll; - newHeadPose[RX] = yaw; - + newHeadPose[Pitch] = pitch; + newHeadPose[Roll] = roll; + newHeadPose[Yaw] = yaw; - sixenseSetActiveBase(0); - sixenseAllControllerData acd; - sixenseGetAllNewestData( &acd ); - //sixenseUtils::getTheControllerManager()->update( &acd ); -#if 1 +#if 0 sixenseControllerData cd; newHeadPose[TX] = acd.controllers[0].pos[0]/50.0f; @@ -151,13 +122,13 @@ bool Rift_Tracker::GiveHeadPoseData(double *data) //} #endif if (bEnableYaw) { - data[RX] = newHeadPose[RX] * 57.295781f; + data[Yaw] = newHeadPose[Yaw] * 57.295781f; } if (bEnablePitch) { - data[RY] = newHeadPose[RY] * 57.295781f; + data[Pitch] = newHeadPose[Pitch] * 57.295781f; } if (bEnableRoll) { - data[RZ] = newHeadPose[RZ] * 57.295781f; + data[Roll] = newHeadPose[Roll] * 57.295781f; } } return pHMD.GetPtr() != NULL; |