diff --git a/source/RobotAPI/components/ViewSelection/ViewSelection.cpp b/source/RobotAPI/components/ViewSelection/ViewSelection.cpp index 34c80fd1fdb4bd9b9d8d49f5f6323866f1bfce37..4ee7ad2dd828d175a65471434c30e5d2ae8263ca 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();