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