summaryrefslogtreecommitdiffhomepage
path: root/ftnoir_tracker_rift
diff options
context:
space:
mode:
Diffstat (limited to 'ftnoir_tracker_rift')
-rw-r--r--ftnoir_tracker_rift/ftnoir_tracker_rift.cpp67
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;