From d49c8f8ecd55f3976a6f829ddb9457ebbd0bcafe Mon Sep 17 00:00:00 2001
From: Markus Grotz <markus.grotz@kit.edu>
Date: Tue, 7 Jun 2016 12:09:48 +0200
Subject: [PATCH] filtered saliency maps by time

---
 .../ViewSelection/ViewSelection.cpp           | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/source/RobotAPI/components/ViewSelection/ViewSelection.cpp b/source/RobotAPI/components/ViewSelection/ViewSelection.cpp
index 34c80fd1f..4ee7ad2dd 100644
--- a/source/RobotAPI/components/ViewSelection/ViewSelection.cpp
+++ b/source/RobotAPI/components/ViewSelection/ViewSelection.cpp
@@ -140,6 +140,30 @@ void ViewSelection::onExitComponent()
 
 ViewTargetBasePtr ViewSelection::nextAutomaticViewTarget()
 {
+    IceUtil::Time currentTime =  armarx::TimeUtil::GetTime();
+    std::vector<std::string> activeSaliencyMaps;
+    for (const auto & p : saliencyMaps)
+    {
+        if (p.second->validUntil)
+        {
+            TimestampVariantPtr time = TimestampVariantPtr::dynamicCast(p.second->validUntil);
+            if (time->toTime() > currentTime)
+            {
+                activeSaliencyMaps.push_back(p.second->name);
+            }
+        }
+        else
+        {
+            activeSaliencyMaps.push_back(p.second->name);
+        }
+
+    }
+
+    if (activeSaliencyMaps.empty())
+    {
+        return nullptr;
+    }
+
     SharedRobotInterfacePrx robotPrx = robotStateComponent->getSynchronizedRobot();
     TNodeList* visibilityMaskGraphNodes = visibilityMaskGraph->getNodes();
 
-- 
GitLab