diff options
Diffstat (limited to 'tracker-fusion/fusion.h')
| -rw-r--r-- | tracker-fusion/fusion.h | 62 |
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"); } +}; + |
