diff options
Diffstat (limited to 'tracker-pt/ftnoir_tracker_pt.h')
-rw-r--r-- | tracker-pt/ftnoir_tracker_pt.h | 57 |
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; |