diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2021-09-25 13:52:02 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-03-29 00:04:47 +0200 |
commit | 75c76a673253b6bb780b2fe1a8719bff9e32827d (patch) | |
tree | 0655f966dad0b993e1226740358af161c6e61777 /tracker-trackhat/extractor.cpp | |
parent | cefacef8befa30050a27f008ec57cb7764af1c1d (diff) |
tracker/trackhat: initial revision
Diffstat (limited to 'tracker-trackhat/extractor.cpp')
-rw-r--r-- | tracker-trackhat/extractor.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tracker-trackhat/extractor.cpp b/tracker-trackhat/extractor.cpp new file mode 100644 index 00000000..5e50b4b4 --- /dev/null +++ b/tracker-trackhat/extractor.cpp @@ -0,0 +1,26 @@ +#include "trackhat.hpp" +#include <algorithm> +#include <iterator> + +void trackhat_extractor::extract_points(const pt_frame& data, + pt_preview&, bool, + std::vector<vec2>& points) +{ + points.clear(); + points.reserve(trackhat_camera::point_count); + trackHat_Points_t copy = data.as_const<trackhat_frame>()->points; + + std::sort(std::begin(copy.m_point), std::end(copy.m_point), + [](trackHat_Point_t p1, trackHat_Point_t p2) { + return p1.m_brightness > p2.m_brightness; + }); + + for (const auto& pt : copy.m_point) + { + if (pt.m_brightness == 0) + continue; + constexpr int sz = trackhat_camera::sensor_size; + auto [ x, y ] = to_screen_pos(pt.m_x, pt.m_y, sz, sz); + points.push_back({x, y}); + } +} |