summaryrefslogtreecommitdiffhomepage
path: root/ftnoir_tracker_rift
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2015-10-29 10:34:44 +0100
committerStanislaw Halik <sthalik@misaki.pl>2015-10-29 10:34:44 +0100
commit5049312cc8847f5bd8cc9cf32dd42e39ae0bb1f5 (patch)
tree983894ee8303c8d271182c6e52f0d4770cdf3ce2 /ftnoir_tracker_rift
parentb0fbe9605b47437d06694a747e607a1b9558c8b3 (diff)
support rift 0.2.5, 0.4.2, 0.8.0
Issue: #263
Diffstat (limited to 'ftnoir_tracker_rift')
-rw-r--r--ftnoir_tracker_rift/ftnoir_rift.qrc7
-rw-r--r--ftnoir_tracker_rift/ftnoir_rift_clientcontrols.ui176
-rw-r--r--ftnoir_tracker_rift/ftnoir_tracker_rift.cpp71
-rw-r--r--ftnoir_tracker_rift/ftnoir_tracker_rift.h60
-rw-r--r--ftnoir_tracker_rift/ftnoir_tracker_rift_dialog.cpp26
-rw-r--r--ftnoir_tracker_rift/images/medium.pngbin5764 -> 0 bytes
-rw-r--r--ftnoir_tracker_rift/images/rift_medium.pngbin5764 -> 0 bytes
-rw-r--r--ftnoir_tracker_rift/images/rift_small.pngbin1212 -> 0 bytes
-rw-r--r--ftnoir_tracker_rift/images/rift_tiny.pngbin624 -> 0 bytes
-rw-r--r--ftnoir_tracker_rift/images/small.pngbin1212 -> 0 bytes
-rw-r--r--ftnoir_tracker_rift/images/tiny.pngbin624 -> 0 bytes
11 files changed, 0 insertions, 340 deletions
diff --git a/ftnoir_tracker_rift/ftnoir_rift.qrc b/ftnoir_tracker_rift/ftnoir_rift.qrc
deleted file mode 100644
index cd174fc4..00000000
--- a/ftnoir_tracker_rift/ftnoir_rift.qrc
+++ /dev/null
@@ -1,7 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>images/rift_medium.png</file>
- <file>images/rift_small.png</file>
- <file>images/rift_tiny.png</file>
- </qresource>
-</RCC>
diff --git a/ftnoir_tracker_rift/ftnoir_rift_clientcontrols.ui b/ftnoir_tracker_rift/ftnoir_rift_clientcontrols.ui
deleted file mode 100644
index 20c8f00b..00000000
--- a/ftnoir_tracker_rift/ftnoir_rift_clientcontrols.ui
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>UIRiftControls</class>
- <widget class="QWidget" name="UIRiftControls">
- <property name="windowModality">
- <enum>Qt::NonModal</enum>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>218</width>
- <height>200</height>
- </rect>
- </property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="windowTitle">
- <string>Oculus Rift tracker settings FaceTrackNoIR</string>
- </property>
- <property name="windowIcon">
- <iconset>
- <normaloff>images/FaceTrackNoIR.png</normaloff>images/FaceTrackNoIR.png</iconset>
- </property>
- <property name="layoutDirection">
- <enum>Qt::LeftToRight</enum>
- </property>
- <property name="autoFillBackground">
- <bool>false</bool>
- </property>
- <layout class="QGridLayout" name="gridLayout_2">
- <item row="0" column="0">
- <widget class="QGroupBox" name="groupBox">
- <property name="title">
- <string>Yaw spring</string>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QCheckBox" name="yawSpring">
- <property name="text">
- <string>Enable</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Persistence</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QDoubleSpinBox" name="persistence">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>23</height>
- </size>
- </property>
- <property name="decimals">
- <number>5</number>
- </property>
- <property name="minimum">
- <double>0.900000000000000</double>
- </property>
- <property name="maximum">
- <double>1.000000000000000</double>
- </property>
- <property name="singleStep">
- <double>0.001000000000000</double>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Constant drift</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QDoubleSpinBox" name="constantDrift">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>23</height>
- </size>
- </property>
- <property name="decimals">
- <number>5</number>
- </property>
- <property name="minimum">
- <double>0.000100000000000</double>
- </property>
- <property name="maximum">
- <double>0.100000000000000</double>
- </property>
- <property name="singleStep">
- <double>0.001000000000000</double>
- </property>
- </widget>
- </item>
- <item row="3" column="0">
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Deadzone</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1">
- <widget class="QDoubleSpinBox" name="deadzone">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>23</height>
- </size>
- </property>
- <property name="decimals">
- <number>5</number>
- </property>
- <property name="maximum">
- <double>0.100000000000000</double>
- </property>
- <property name="singleStep">
- <double>0.010000000000000</double>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
- <slots>
- <slot>startEngineClicked()</slot>
- <slot>stopEngineClicked()</slot>
- <slot>cameraSettingsClicked()</slot>
- </slots>
-</ui>
diff --git a/ftnoir_tracker_rift/ftnoir_tracker_rift.cpp b/ftnoir_tracker_rift/ftnoir_tracker_rift.cpp
deleted file mode 100644
index 74208272..00000000
--- a/ftnoir_tracker_rift/ftnoir_tracker_rift.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright: "i couldn't care less what anyone does with the 5 lines of code i wrote" - mm0zct */
-#include "ftnoir_tracker_rift.h"
-#include "opentrack/plugin-api.hpp"
-#include "OVR_CAPI.h"
-#include "Kernel/OVR_Math.h"
-#include <cstdio>
-
-using namespace OVR;
-
-Rift_Tracker::Rift_Tracker() : old_yaw(0), hmd(nullptr)
-{
-}
-
-Rift_Tracker::~Rift_Tracker()
-{
- ovrHmd_Destroy(hmd);
- ovr_Shutdown();
-}
-
-void Rift_Tracker::start_tracker(QFrame*)
-{
- ovr_Initialize();
- hmd = ovrHmd_Create(0);
- if (hmd)
- {
- ovrHmd_ConfigureTracking(hmd, ovrTrackingCap_Orientation | ovrTrackingCap_MagYawCorrection | ovrTrackingCap_Position, ovrTrackingCap_Orientation);
- }
- else
- {
- // XXX need change ITracker et al api to allow for failure reporting
- // this qmessagebox doesn't give any relevant details either -sh 20141012
- QMessageBox::warning(0,"FaceTrackNoIR Error", "Unable to start Rift tracker",QMessageBox::Ok,QMessageBox::NoButton);
- }
-}
-
-
-void Rift_Tracker::data(double *data)
-{
- if (hmd)
- {
- ovrHSWDisplayState hsw;
- if (ovrHmd_GetHSWDisplayState(hmd, &hsw), hsw.Displayed)
- ovrHmd_DismissHSWDisplay(hmd);
- ovrTrackingState ss = ovrHmd_GetTrackingState(hmd, 0);
- if(ss.StatusFlags & ovrStatus_OrientationTracked) {
- auto pose = ss.HeadPose.ThePose;
- Quatf quat = pose.Orientation;
- float yaw, pitch, roll;
- quat.GetEulerAngles<Axis_Y, Axis_X, Axis_Z>(&yaw, &pitch, &roll);
- // XXX TODO move to core
- if (s.useYawSpring)
- {
- yaw = old_yaw*s.persistence + (yaw-old_yaw);
- if(yaw > s.deadzone)
- yaw -= s.constant_drift;
- if(yaw < -s.deadzone)
- yaw += s.constant_drift;
- old_yaw=yaw;
- }
- constexpr double d2r = 57.295781;
- data[Yaw] = yaw * -d2r;
- data[Pitch] = pitch * d2r;
- data[Roll] = roll * d2r;
- data[TX] = pose.Position.x * -1e2;
- data[TY] = pose.Position.y * 1e2;
- data[TZ] = pose.Position.z * 1e2;
- }
- }
-}
-
-OPENTRACK_DECLARE_TRACKER(Rift_Tracker, TrackerControls, FTNoIR_TrackerDll)
diff --git a/ftnoir_tracker_rift/ftnoir_tracker_rift.h b/ftnoir_tracker_rift/ftnoir_tracker_rift.h
deleted file mode 100644
index f4458413..00000000
--- a/ftnoir_tracker_rift/ftnoir_tracker_rift.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#pragma once
-#include "ui_ftnoir_rift_clientcontrols.h"
-#include <QMessageBox>
-#include <QWaitCondition>
-#include <cmath>
-#include "opentrack/plugin-api.hpp"
-#include "OVR.h"
-#include <memory>
-#include "opentrack/options.hpp"
-using namespace options;
-
-struct settings : opts {
- value<bool> useYawSpring;
- value<double> constant_drift, persistence, deadzone;
- settings() :
- opts("Rift"),
- useYawSpring(b, "yaw-spring", false),
- constant_drift(b, "constant-drift", 0.000005),
- persistence(b, "persistence", 0.99999),
- deadzone(b, "deadzone", 0.02)
- {}
-};
-
-class Rift_Tracker : public ITracker
-{
-public:
- Rift_Tracker();
- ~Rift_Tracker() override;
- void start_tracker(QFrame *) override;
- void data(double *data) override;
-private:
- double old_yaw;
- ovrHmd hmd;
- settings s;
-};
-
-class TrackerControls: public ITrackerDialog
-{
- Q_OBJECT
-public:
- TrackerControls();
-
- void register_tracker(ITracker *) {}
- void unregister_tracker() {}
-
-private:
- Ui::UIRiftControls ui;
- settings s;
-private slots:
- void doOK();
- void doCancel();
-};
-
-class FTNoIR_TrackerDll : public Metadata
-{
-public:
- QString name() { return QString("Oculus Rift DK2 -- HMD"); }
- QIcon icon() { return QIcon(":/images/rift_tiny.png"); }
-};
-
diff --git a/ftnoir_tracker_rift/ftnoir_tracker_rift_dialog.cpp b/ftnoir_tracker_rift/ftnoir_tracker_rift_dialog.cpp
deleted file mode 100644
index 6c8e9cd7..00000000
--- a/ftnoir_tracker_rift/ftnoir_tracker_rift_dialog.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "ftnoir_tracker_rift.h"
-#include "opentrack/plugin-api.hpp"
-
-TrackerControls::TrackerControls()
-{
- ui.setupUi( this );
-
- connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(doOK()));
- connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(doCancel()));
-
- tie_setting(s.constant_drift, ui.constantDrift);
- tie_setting(s.deadzone, ui.deadzone);
- tie_setting(s.persistence, ui.persistence);
- tie_setting(s.useYawSpring, ui.yawSpring);
-}
-
-void TrackerControls::doOK() {
- s.b->save();
- this->close();
-}
-
-void TrackerControls::doCancel() {
- s.b->reload();
- close();
-}
-
diff --git a/ftnoir_tracker_rift/images/medium.png b/ftnoir_tracker_rift/images/medium.png
deleted file mode 100644
index a5ba49e7..00000000
--- a/ftnoir_tracker_rift/images/medium.png
+++ /dev/null
Binary files differ
diff --git a/ftnoir_tracker_rift/images/rift_medium.png b/ftnoir_tracker_rift/images/rift_medium.png
deleted file mode 100644
index a5ba49e7..00000000
--- a/ftnoir_tracker_rift/images/rift_medium.png
+++ /dev/null
Binary files differ
diff --git a/ftnoir_tracker_rift/images/rift_small.png b/ftnoir_tracker_rift/images/rift_small.png
deleted file mode 100644
index 3f18080c..00000000
--- a/ftnoir_tracker_rift/images/rift_small.png
+++ /dev/null
Binary files differ
diff --git a/ftnoir_tracker_rift/images/rift_tiny.png b/ftnoir_tracker_rift/images/rift_tiny.png
deleted file mode 100644
index 76fe0f58..00000000
--- a/ftnoir_tracker_rift/images/rift_tiny.png
+++ /dev/null
Binary files differ
diff --git a/ftnoir_tracker_rift/images/small.png b/ftnoir_tracker_rift/images/small.png
deleted file mode 100644
index 3f18080c..00000000
--- a/ftnoir_tracker_rift/images/small.png
+++ /dev/null
Binary files differ
diff --git a/ftnoir_tracker_rift/images/tiny.png b/ftnoir_tracker_rift/images/tiny.png
deleted file mode 100644
index 76fe0f58..00000000
--- a/ftnoir_tracker_rift/images/tiny.png
+++ /dev/null
Binary files differ