summaryrefslogtreecommitdiffhomepage
path: root/tracker-fusion/fusion.h
diff options
context:
space:
mode:
Diffstat (limited to 'tracker-fusion/fusion.h')
-rw-r--r--tracker-fusion/fusion.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/tracker-fusion/fusion.h b/tracker-fusion/fusion.h
new file mode 100644
index 00000000..a943fe06
--- /dev/null
+++ b/tracker-fusion/fusion.h
@@ -0,0 +1,59 @@
+#pragma once
+#include "api/plugin-api.hpp"
+#include "api/plugin-support.hpp"
+#include <QFrame>
+#include <QCoreApplication>
+
+#include "options/options.hpp"
+using namespace options;
+
+struct fusion_settings final : opts
+{
+ value<QString> rot_tracker_name;
+ value<QString> pos_tracker_name;
+
+ fusion_settings();
+};
+
+struct has_modules
+{
+ Modules modules;
+ has_modules();
+};
+
+struct fusion_tracker : public ITracker, has_modules
+{
+ fusion_tracker();
+ ~fusion_tracker() override;
+ void start_tracker(QFrame *) override;
+ void data(double *data) override;
+
+ double rot_tracker_data[6], pos_tracker_data[6];
+
+ std::unique_ptr<QFrame> other_frame;
+ std::shared_ptr<dylib> rot_dylib, pos_dylib;
+ std::shared_ptr<ITracker> rot_tracker, pos_tracker;
+};
+
+#include "ui_fusion.h"
+
+class fusion_dialog : public ITrackerDialog, has_modules
+{
+ Q_OBJECT
+
+ fusion_settings s;
+ Ui::fusion_ui ui;
+public:
+ fusion_dialog();
+private slots:
+ void doOK();
+ void doCancel();
+};
+
+class fusion_metadata : public Metadata
+{
+public:
+ QString name() { return QString(QCoreApplication::translate("fusion_metadata", "Fusion")); }
+ QIcon icon() { return QIcon(":/images/fusion-tracker-logo.png"); }
+};
+