summaryrefslogtreecommitdiffhomepage
path: root/tracker-pt/module.cxx
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2018-01-18 09:40:23 +0100
committerStanislaw Halik <sthalik@misaki.pl>2018-01-18 09:40:46 +0100
commita7a60c8f5328d8d1b6dbb2d73635ab64aa480d41 (patch)
tree2394df68f8cb40825ef6afcb89afbc81ec88f4f8 /tracker-pt/module.cxx
parent0d32aec11d09f1ac1088b05a214432b6be4b534b (diff)
tracker/pt: split impl and algorithm
Issue: #718
Diffstat (limited to 'tracker-pt/module.cxx')
-rw-r--r--tracker-pt/module.cxx69
1 files changed, 69 insertions, 0 deletions
diff --git a/tracker-pt/module.cxx b/tracker-pt/module.cxx
new file mode 100644
index 00000000..5c298ca5
--- /dev/null
+++ b/tracker-pt/module.cxx
@@ -0,0 +1,69 @@
+#include "ftnoir_tracker_pt.h"
+#include "api/plugin-api.hpp"
+
+#include "camera.h"
+#include "frame.hpp"
+#include "point_extractor.h"
+#include "ftnoir_tracker_pt_dialog.h"
+
+#include "pt-api.hpp"
+
+#include <memory>
+
+static const QString module_name = "tracker-pt";
+
+using namespace pt_module;
+
+struct pt_module_traits final : pt_runtime_traits
+{
+ pointer<pt_camera> make_camera() const override
+ {
+ return pointer<pt_camera>(new Camera(module_name));
+ }
+
+ pointer<pt_point_extractor> make_point_extractor() const override
+ {
+ return pointer<pt_point_extractor>(new PointExtractor(module_name));
+ }
+
+ QString get_module_name() const override
+ {
+ return module_name;
+ }
+
+ pointer<pt_frame> make_frame() const override
+ {
+ return pointer<pt_frame>(new Frame);
+ }
+
+ pointer<pt_preview> make_preview(int w, int h) const override
+ {
+ return pointer<pt_preview>(new Preview(w, h));
+ }
+};
+
+struct tracker_pt : Tracker_PT
+{
+ tracker_pt() : Tracker_PT(pointer<pt_runtime_traits>(new pt_module_traits))
+ {
+ }
+};
+
+struct dialog_pt : TrackerDialog_PT
+{
+ dialog_pt();
+};
+
+class metadata_pt : public Metadata
+{
+ QString name() { return _("PointTracker 1.1"); }
+ QIcon icon() { return QIcon(":/Resources/Logo_IR.png"); }
+};
+
+// ns pt_module
+
+using namespace pt_module;
+
+dialog_pt::dialog_pt() : TrackerDialog_PT(module_name) {}
+
+OPENTRACK_DECLARE_TRACKER(tracker_pt, dialog_pt, metadata_pt)