diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2017-10-21 13:26:38 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2017-10-21 13:26:38 +0200 |
commit | 207a70f1cd99e9719a878b9c6b3909302a020e93 (patch) | |
tree | 57292ec9f356ce4bbafd5e45e3305cff0a529a82 /logic/tracker.h | |
parent | 3b5a3500766abd38907824a8b02991708309488e (diff) |
logic/tracker: rename to pipeline
Could use a better name.
Diffstat (limited to 'logic/tracker.h')
-rw-r--r-- | logic/tracker.h | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/logic/tracker.h b/logic/tracker.h deleted file mode 100644 index e7b4a76d..00000000 --- a/logic/tracker.h +++ /dev/null @@ -1,118 +0,0 @@ -/* Copyright (c) 2014-2015, Stanislaw Halik <sthalik@misaki.pl> - - * Permission to use, copy, modify, and/or distribute this - * software for any purpose with or without fee is hereby granted, - * provided that the above copyright notice and this permission - * notice appear in all copies. - */ - -#pragma once - -#include <vector> - -#include "compat/timer.hpp" -#include "api/plugin-support.hpp" -#include "mappings.hpp" -#include "compat/euler.hpp" -#include "runtime-libraries.hpp" -#include "extensions.hpp" - -#include "spline/spline.hpp" -#include "main-settings.hpp" -#include "options/options.hpp" -#include "tracklogger.hpp" - -#include <QMutex> -#include <QThread> - -#include <atomic> -#include <cmath> - -#include "export.hpp" - -namespace gui_tracker_impl { - -struct OTR_LOGIC_EXPORT bits -{ - enum flags : unsigned { - f_center = 1 << 0, - f_enabled_h = 1 << 1, - f_enabled_p = 1 << 2, - f_zero = 1 << 3, - }; - - std::atomic<unsigned> b; - - void set(flags flag_, bool val_); - void negate(flags flag_); - bool get(flags flag); - bits(); -}; - -class OTR_LOGIC_EXPORT Tracker : private QThread, private bits -{ - Q_OBJECT -private: - using rmat = euler::rmat; - using euler_t = euler::euler_t; - - QMutex mtx; - main_settings s; - Mappings& m; - event_handler& ev; - - Timer t; - Pose output_pose, raw_6dof, last_mapped, last_raw; - - Pose newpose; - runtime_libraries const& libs; - // The owner of the reference is the main window. - // This design might be usefull if we decide later on to swap out - // the logger while the tracker is running. - TrackLogger& logger; - - struct state - { - rmat rot_center; - rmat rotation; - - state() : rot_center(rmat::eye()) - {} - }; - - state real_rotation, scaled_rotation; - euler_t t_center; - - time_units::ns backlog_time; - - bool tracking_started; - - double map(double pos, Map& axis); - void logic(); - void t_compensate(const rmat& rmat, const euler_t& ypr, euler_t& output, - bool disable_tx, bool disable_ty, bool disable_tz); - void run() override; - - static constexpr double r2d = 180. / M_PI; - static constexpr double d2r = M_PI / 180.; - - // note: float exponent base is 2 - static constexpr double c_mult = 16; - static constexpr double c_div = 1./c_mult; -public: - Tracker(Mappings& m, runtime_libraries& libs, event_handler& ev, TrackLogger& logger); - ~Tracker(); - - void raw_and_mapped_pose(double* mapped, double* raw) const; - void start() { QThread::start(QThread::HighPriority); } - - void center(); - void set_toggle(bool value); - void set_zero(bool value); - void zero(); - void toggle_enabled(); -}; - -} // ns impl - -using gui_tracker_impl::Tracker; |