summaryrefslogtreecommitdiffhomepage
path: root/tracker-pt/ftnoir_tracker_pt.h
diff options
context:
space:
mode:
Diffstat (limited to 'tracker-pt/ftnoir_tracker_pt.h')
-rw-r--r--tracker-pt/ftnoir_tracker_pt.h57
1 files changed, 23 insertions, 34 deletions
diff --git a/tracker-pt/ftnoir_tracker_pt.h b/tracker-pt/ftnoir_tracker_pt.h
index 03812092..a793f94b 100644
--- a/tracker-pt/ftnoir_tracker_pt.h
+++ b/tracker-pt/ftnoir_tracker_pt.h
@@ -9,59 +9,47 @@
#pragma once
#include "api/plugin-api.hpp"
-
-#include "cv/numeric.hpp"
-
#include "pt-api.hpp"
#include "point_tracker.h"
-#include "cv/video-widget.hpp"
+#include "cv/numeric.hpp"
+#include "video/video-widget.hpp"
+#include "point-filter.hpp"
#include <atomic>
#include <memory>
#include <vector>
-#include <opencv2/core.hpp>
-
#include <QThread>
#include <QMutex>
#include <QLayout>
-#include <QTimer>
-class TrackerDialog_PT;
+namespace pt_impl {
-namespace pt_module {
+class TrackerDialog_PT;
-using namespace types;
+using namespace numeric_types;
-class Tracker_PT : public QThread, public ITracker
+struct Tracker_PT : QThread, ITracker
{
- Q_OBJECT
+ friend class TrackerDialog_PT;
- friend class ::TrackerDialog_PT;
+ template<typename t> using pointer = pt_pointer<t>;
- template<typename t>
- using pointer = typename pt_runtime_traits::pointer<t>;
-
-public:
- Tracker_PT(pointer<pt_runtime_traits> pt_runtime_traits);
+ explicit Tracker_PT(pointer<pt_runtime_traits> const& pt_runtime_traits);
~Tracker_PT() override;
module_status start_tracker(QFrame* parent_window) override;
void data(double* data) override;
bool center() override;
- Affine pose();
int get_n_points();
- bool get_cam_info(pt_camera_info* info);
-public slots:
- bool maybe_reopen_camera();
- void set_fov(int value);
-protected:
- void run() override;
+ [[nodiscard]] bool get_cam_info(pt_camera_info& info);
+ Affine pose() const;
+
private:
- pointer<pt_runtime_traits> traits;
+ void run() override;
+ [[nodiscard]] bool check_camera();
- QMutex camera_mtx;
- QMutex data_mtx;
+ pointer<pt_runtime_traits> traits;
PointTracker point_tracker;
@@ -74,17 +62,18 @@ private:
pointer<pt_point_extractor> point_extractor;
pointer<pt_camera> camera;
- pointer<cv_video_widget> video_widget;
+ pointer<video_widget> widget;
pointer<pt_frame> frame;
pointer<pt_preview> preview_frame;
- std::atomic<unsigned> point_count = 0;
+ std::atomic<unsigned> point_count { 0 };
std::atomic<bool> ever_success = false;
-
- static constexpr inline f rad2deg = f(180/M_PI);
- //static constexpr float deg2rad = float(M_PI/180);
+ std::atomic<bool> reopen_camera_flag = true;
+ std::atomic<bool> open_camera_dialog_flag = false;
+ mutable QMutex center_lock, data_lock;
+ point_filter filter{s};
};
} // ns pt_impl
-using pt_module::Tracker_PT;
+using Tracker_PT = pt_impl::Tracker_PT;