diff options
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}); + } +} |