summaryrefslogtreecommitdiffhomepage
path: root/tracker-trackhat/extractor.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2021-09-25 13:52:02 +0200
committerStanislaw Halik <sthalik@misaki.pl>2022-03-29 00:04:47 +0200
commit75c76a673253b6bb780b2fe1a8719bff9e32827d (patch)
tree0655f966dad0b993e1226740358af161c6e61777 /tracker-trackhat/extractor.cpp
parentcefacef8befa30050a27f008ec57cb7764af1c1d (diff)
tracker/trackhat: initial revision
Diffstat (limited to 'tracker-trackhat/extractor.cpp')
-rw-r--r--tracker-trackhat/extractor.cpp26
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});
+ }
+}