summaryrefslogtreecommitdiffhomepage
path: root/logic/tracker.h
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2017-10-21 13:26:38 +0200
committerStanislaw Halik <sthalik@misaki.pl>2017-10-21 13:26:38 +0200
commit207a70f1cd99e9719a878b9c6b3909302a020e93 (patch)
tree57292ec9f356ce4bbafd5e45e3305cff0a529a82 /logic/tracker.h
parent3b5a3500766abd38907824a8b02991708309488e (diff)
logic/tracker: rename to pipeline
Could use a better name.
Diffstat (limited to 'logic/tracker.h')
-rw-r--r--logic/tracker.h118
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;