From 479611da9c21b49e3d9bac14218ece77938bcea0 Mon Sep 17 00:00:00 2001 From: Danil Pavlenko Date: Mon, 13 Jan 2025 12:57:16 +0100 Subject: [PATCH] Introduce points_reached to ReachResultSummary & implement at calculateResults --- include/reach/types.h | 4 ++++ src/python/python_bindings.cpp | 1 + src/types.cpp | 1 + 3 files changed, 6 insertions(+) diff --git a/include/reach/types.h b/include/reach/types.h index a05257c6..37dd5557 100644 --- a/include/reach/types.h +++ b/include/reach/types.h @@ -75,6 +75,9 @@ class ReachRecord class ReachResultSummary { public: + /** @brief The number of target poses that were reachable */ + float points_reached = 0.0f; + /** * @brief The total pose score for all reachable points * @details This score is generally only significant relative to the score of a different reach study using the same @@ -96,6 +99,7 @@ class ReachResultSummary { std::stringstream ss; ss << "------------------------------------------------\n"; + ss << "Points Reached = " << points_reached << "\n"; ss << "Percent Reached = " << reach_percentage << "\n"; ss << "Total points score = " << total_pose_score << "\n"; ss << "Normalized total points score = " << norm_total_pose_score << "\n"; diff --git a/src/python/python_bindings.cpp b/src/python/python_bindings.cpp index 6a3ccec7..16a94c3c 100644 --- a/src/python/python_bindings.cpp +++ b/src/python/python_bindings.cpp @@ -273,6 +273,7 @@ BOOST_PYTHON_MODULE(MODULE_NAME) .def("computeHeatMapColors", &ReachDatabase::computeHeatMapColors); bp::class_("ReachResultSummary") + .def_readonly("reached_points", &ReachResultSummary::points_reached) .def_readonly("total_pose_score", &ReachResultSummary::total_pose_score) .def_readonly("norm_total_pose_score", &ReachResultSummary::norm_total_pose_score) .def_readonly("reach_percentage", &ReachResultSummary::reach_percentage) diff --git a/src/types.cpp b/src/types.cpp index 330da56f..d0cda9ae 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -104,6 +104,7 @@ ReachResultSummary calculateResults(const ReachResult& db) const float pct_success = static_cast(success) / static_cast(total); ReachResultSummary results; + results.points_reached = success; results.reach_percentage = 100.0f * pct_success; results.total_pose_score = score; results.norm_total_pose_score = score / pct_success;