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.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/tracker-fusion/fusion.h b/tracker-fusion/fusion.h
new file mode 100644
index 00000000..daadf27d
--- /dev/null
+++ b/tracker-fusion/fusion.h
@@ -0,0 +1,62 @@
+#pragma once
+
+#include "api/plugin-api.hpp"
+#include "api/plugin-support.hpp"
+#include "options/options.hpp"
+using namespace options;
+
+#include <memory>
+
+#include <QObject>
+#include <QFrame>
+#include <QCoreApplication>
+
+struct fusion_settings final : opts
+{
+ value<QVariant> rot_tracker_name, pos_tracker_name;
+
+ fusion_settings();
+};
+
+class fusion_tracker : public QObject, public ITracker
+{
+ Q_OBJECT
+
+ double rot_tracker_data[6] {}, pos_tracker_data[6] {};
+
+ std::unique_ptr<QFrame> other_frame { std::make_unique<QFrame>() };
+ std::shared_ptr<dylib> rot_dylib, pos_dylib;
+ std::shared_ptr<ITracker> rot_tracker, pos_tracker;
+
+public:
+ fusion_tracker();
+ ~fusion_tracker() override;
+ module_status start_tracker(QFrame*) override;
+ void data(double* data) override;
+
+ static const QString& caption();
+};
+
+#include "ui_fusion.h"
+
+class fusion_dialog : public ITrackerDialog
+{
+ Q_OBJECT
+
+ fusion_settings s;
+ Ui::fusion_ui ui;
+public:
+ fusion_dialog();
+private slots:
+ void doOK();
+ void doCancel();
+};
+
+class fusion_metadata : public Metadata
+{
+ Q_OBJECT
+
+ QString name() { return tr("Fusion"); }
+ QIcon icon() { return QIcon(":/images/fusion-tracker-logo.png"); }
+};
+