diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2015-10-30 07:37:41 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2015-10-30 08:39:32 +0100 |
commit | aa066bdd4622d4f6824fee864f6be6806813f04d (patch) | |
tree | 3df328b8b364cba2373a85827191b259bd78d546 /tracker-hydra/ftnoir_tracker_hydra.cpp | |
parent | d6a54431d178632a2bf466c9904f74abd143afe6 (diff) |
move to subdirectory-based build system
Closes #224
Diffstat (limited to 'tracker-hydra/ftnoir_tracker_hydra.cpp')
-rw-r--r-- | tracker-hydra/ftnoir_tracker_hydra.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tracker-hydra/ftnoir_tracker_hydra.cpp b/tracker-hydra/ftnoir_tracker_hydra.cpp new file mode 100644 index 00000000..8d0e6832 --- /dev/null +++ b/tracker-hydra/ftnoir_tracker_hydra.cpp @@ -0,0 +1,46 @@ +/* Copyright: "i couldn't care less what anyone does with the 5 lines of code i wrote" - mm0zct */ +#include "ftnoir_tracker_hydra.h" +#include "opentrack/plugin-api.hpp" +#include <cstdio> +#ifdef _WIN32 +# define SIXENSE_STATIC_LIB +# define SIXENSE_UTILS_STATIC_LIB +#endif +#include <sixense.h> + +Hydra_Tracker::Hydra_Tracker() : should_quit(false) {} + +#include <sixense_math.hpp> + +Hydra_Tracker::~Hydra_Tracker() +{ + + sixenseExit(); +} + +void Hydra_Tracker::start_tracker(QFrame*) +{ + sixenseInit(); +} + +void Hydra_Tracker::data(double *data) +{ + + sixenseSetActiveBase(0); + sixenseAllControllerData acd; + sixenseGetAllNewestData( &acd ); + sixenseMath::Matrix4 mat = sixenseMath::Matrix4(acd.controllers[0].rot_mat); + + float ypr[3]; + + mat.getEulerAngles().fill(ypr); + data[TX] = acd.controllers[0].pos[0]/50.0; + data[TY] = acd.controllers[0].pos[1]/50.0; + data[TZ] = acd.controllers[0].pos[2]/50.0; + static constexpr double r2d = 57.295781; + data[Yaw] = ypr[0] * r2d; + data[Pitch] = ypr[1] * r2d; + data[Roll] = ypr[2] * r2d; +} + +OPENTRACK_DECLARE_TRACKER(Hydra_Tracker, TrackerControls, FTNoIR_TrackerDll) |