From 2c227c6c073c24e3b7fcad32b3ea9a0b1c23eebe Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 7 Oct 2016 10:08:13 +0200 Subject: tracker/pt: C++11-ize --- tracker-pt/point_tracker.cpp | 27 ++++++++++----------------- tracker-pt/point_tracker.h | 11 ++--------- 2 files changed, 12 insertions(+), 26 deletions(-) (limited to 'tracker-pt') diff --git a/tracker-pt/point_tracker.cpp b/tracker-pt/point_tracker.cpp index 24edca45..7873a010 100644 --- a/tracker-pt/point_tracker.cpp +++ b/tracker-pt/point_tracker.cpp @@ -34,11 +34,6 @@ static void set_row(mat33& m, int i, const vec3& v) m(i,2) = v[2]; } -static bool d_vals_sort(const std::pair a, const std::pair b) -{ - return a.first < b.first; -} - PointModel::PointModel(settings_pt& s) { set_model(s); @@ -75,15 +70,15 @@ void PointModel::set_model(settings_pt& s) void PointModel::get_d_order(const std::vector& points, int* d_order, const vec2& d) const { // fit line to orthographically projected points - std::vector> d_vals; + using t = std::pair; + std::vector d_vals; // get sort indices with respect to d scalar product for (unsigned i = 0; i < PointModel::N_POINTS; ++i) d_vals.push_back(std::pair(d.dot(points[i]), i)); std::sort(d_vals.begin(), d_vals.end(), - d_vals_sort - ); + [](const t& a, const t& b) { return a.first < b.first; }); for (unsigned i = 0; i < PointModel::N_POINTS; ++i) d_order[i] = d_vals[i].second; @@ -101,9 +96,9 @@ PointTracker::PointOrder PointTracker::find_correspondences_previous(const std:: int h) { PointTracker::PointOrder p; - p.points[0] = project(vec3(0,0,0), focal_length); - p.points[1] = project(model.M01, focal_length); - p.points[2] = project(model.M02, focal_length); + p[0] = project(vec3(0,0,0), focal_length); + p[1] = project(model.M01, focal_length); + p[2] = project(model.M02, focal_length); const int diagonal = int(std::sqrt(w*w + h*h)); static constexpr int div = 100; @@ -121,7 +116,7 @@ PointTracker::PointOrder PointTracker::find_correspondences_previous(const std:: // find closest point to projected model point i for (unsigned j=0; j #include #include +#include #include class Affine final @@ -89,15 +90,7 @@ public: private: // the points in model order - struct PointOrder - { - vec2 points[PointModel::N_POINTS]; - PointOrder() - { - for (unsigned i = 0; i < PointModel::N_POINTS; i++) - points[i] = vec2(0, 0); - } - }; + using PointOrder = std::array; PointOrder find_correspondences(const std::vector& projected_points, const PointModel &model); PointOrder find_correspondences_previous(const std::vector& points, const PointModel &model, f focal_length, int w, int h); -- cgit v1.2.3