From 14fe938221a9a23b28d8c065984dbff4a1ee4f19 Mon Sep 17 00:00:00 2001 From: Corvin-N <corvin@navarro.de> Date: Mon, 15 Aug 2022 19:51:42 +0200 Subject: [PATCH] Implement HumanTracker::mostRecentTrackedHumans() --- .../dynamic_scene_provider/HumanTracker.cpp | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/source/armarx/navigation/components/dynamic_scene_provider/HumanTracker.cpp b/source/armarx/navigation/components/dynamic_scene_provider/HumanTracker.cpp index fd15dc3b..dcd76e7d 100644 --- a/source/armarx/navigation/components/dynamic_scene_provider/HumanTracker.cpp +++ b/source/armarx/navigation/components/dynamic_scene_provider/HumanTracker.cpp @@ -49,6 +49,32 @@ namespace armarx::navigation::components::dynamic_scene_provider { } + std::vector<human::Human> + HumanTracker::mostRecentTrackedHumans() const + { + if (trackedHumans.empty()) + { + return {}; + } + + std::sort(trackedHumans.begin(), + trackedHumans.end(), + [](human::Human a, human::Human b) -> bool + { return a.detectionTime.operator<=(b.detectionTime); }); + DateTime mostRecentTime = trackedHumans.back().detectionTime; + + std::vector<human::Human> mostRecentHumans; + + for (human::Human trackedHuman : trackedHumans) + { + if (trackedHuman.detectionTime == mostRecentTime) + { + mostRecentHumans.push_back(trackedHuman); + } + } + + return mostRecentHumans; + } void HumanTracker::reset() -- GitLab