From aeb8f82ffd1c6c32c4b63f897a867efd759ceb16 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Fri, 18 Sep 2020 09:52:15 +0200
Subject: [PATCH] Still try to draw object when not found locally

---
 .../ObjectPoseObserver/CMakeLists.txt         |  1 +
 .../ObjectPoseObserver/ObjectPoseObserver.cpp | 21 ++++++++-----------
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/source/RobotAPI/components/ObjectPoseObserver/CMakeLists.txt b/source/RobotAPI/components/ObjectPoseObserver/CMakeLists.txt
index 867170f06..f369dd024 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/CMakeLists.txt
+++ b/source/RobotAPI/components/ObjectPoseObserver/CMakeLists.txt
@@ -5,6 +5,7 @@ set(COMPONENT_LIBS
     ArmarXCore ArmarXCoreInterfaces
     ArmarXGuiComponentPlugins
     RobotAPIArmarXObjects RobotAPIComponentPlugins
+    ArViz
 
     ${PROJECT_NAME}Interfaces
 )
diff --git a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
index 773d52d34..76fb10b23 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
+++ b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
@@ -382,26 +382,23 @@ namespace armarx
             const armarx::ObjectID id = objectPose.objectID;
             std::string key = id.str();
 
-            std::optional<ObjectInfo> objectInfo = objectFinder.findObject(id);
-
             Eigen::Matrix4f pose = visu.inGlobalFrame ? objectPose.objectPoseGlobal : objectPose.objectPoseRobot;
-
-            if (objectInfo)
             {
-                viz::Object object = viz::Object(key)
-                                     .file(objectInfo->package(), objectInfo->simoxXML().relativePath)
-                                     .pose(pose);
+                viz::Object object = viz::Object(key).pose(pose);
+                if (std::optional<ObjectInfo> objectInfo = objectFinder.findObject(id))
+                {
+                    object.file(objectInfo->package(), objectInfo->simoxXML().relativePath);
+                }
+                else
+                {
+                    object.fileByObjectFinder(id);
+                }
                 if (visu.alpha < 1)
                 {
                     object.overrideColor(simox::Color::white().with_alpha(visu.alpha));
                 }
-
                 layer.add(object);
             }
-            else
-            {
-                ARMARX_WARNING << "Cannot visualize object '" << key << "'.";
-            }
 
             if (visu.oobbs && objectPose.localOOBB)
             {
-- 
GitLab