From ff5b84a751a0d2ee64d3521d5f62f317bb2d73b8 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Fri, 23 Apr 2021 17:47:50 +0200
Subject: [PATCH] Tweak MemoryViewer

---
 .../libraries/armem_gui/MemoryViewer.cpp      | 10 ++++++--
 .../armem_gui/instance/sanitize_typename.cpp  | 25 +++++++++++++++++++
 .../libraries/armem_gui/memory/TreeWidget.cpp | 13 +++-------
 .../armem_objects/server/class/Segment.cpp    | 12 +++------
 4 files changed, 40 insertions(+), 20 deletions(-)

diff --git a/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp b/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
index 78097af1a..51137a0db 100644
--- a/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
+++ b/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
@@ -257,7 +257,7 @@ namespace armarx::armem::gui
 
     void MemoryViewer::loadSettings(QSettings* settings)
     {
-        mnsName = settings->value(QString::fromStdString(CONFIG_KEY_MEMORY), "ArMemMemoryNameSystem").toString().toStdString();
+        mnsName = settings->value(QString::fromStdString(CONFIG_KEY_MEMORY), "MemoryNameSystem").toString().toStdString();
         debugObserverName = settings->value(QString::fromStdString(CONFIG_KEY_DEBUG_OBSERVER), "DebugObserver").toString().toStdString();
     }
     void MemoryViewer::saveSettings(QSettings* settings)
@@ -268,12 +268,18 @@ namespace armarx::armem::gui
 
     void MemoryViewer::writeConfigDialog(SimpleConfigDialog* dialog)
     {
-        dialog->addProxyFinder<armarx::armem::mns::MemoryNameSystemInterfacePrx>({CONFIG_KEY_MEMORY, "ArMemMemoryNameSystem", "*"});
+        dialog->addProxyFinder<armarx::armem::mns::MemoryNameSystemInterfacePrx>({CONFIG_KEY_MEMORY, "MemoryNameSystem", "*"});
         dialog->addProxyFinder<armarx::DebugObserverInterfacePrx>({CONFIG_KEY_DEBUG_OBSERVER, "Debug Observer", "DebugObserver"});
     }
     void MemoryViewer::readConfigDialog(SimpleConfigDialog* dialog)
     {
         mnsName = dialog->getProxyName(CONFIG_KEY_MEMORY);
+        ARMARX_IMPORTANT << VAROUT(mnsName);
+        if (mnsName.empty())
+        {
+            mnsName = "MemoryNameSystem";
+        }
+        ARMARX_IMPORTANT << VAROUT(mnsName);
         debugObserverName = dialog->getProxyName(CONFIG_KEY_DEBUG_OBSERVER);
     }
 
diff --git a/source/RobotAPI/libraries/armem_gui/instance/sanitize_typename.cpp b/source/RobotAPI/libraries/armem_gui/instance/sanitize_typename.cpp
index ac5494864..9db048145 100644
--- a/source/RobotAPI/libraries/armem_gui/instance/sanitize_typename.cpp
+++ b/source/RobotAPI/libraries/armem_gui/instance/sanitize_typename.cpp
@@ -1,10 +1,21 @@
 #include "sanitize_typename.h"
 
+#include <sstream>
+
 #include <SimoxUtility/algorithm/string.h>
 
+#include <RobotAPI/libraries/armem/aron/MemoryID.aron.generated.h>
+
+
+static const std::string MemoryIDTypeName = armarx::armem::arondto::MemoryID::toInitialAronType()->getName();
 
 std::string armarx::armem::gui::instance::sanitizeTypeName(const std::string& typeName)
 {
+    if (typeName == MemoryIDTypeName)
+    {
+        return "MemoryID";
+    }
+
     namespace s = simox::alg;
     std::string n = typeName;
     n = s::replace_all(n, "Aron", "");
@@ -16,6 +27,20 @@ std::string armarx::armem::gui::instance::sanitizeTypeName(const std::string& ty
         std::string end = ">";
         n = n.substr(begin.size(), n.size() - begin.size() - end.size());
     }
+
+    if (true)
+    {
+        const std::string del = "::";
+        size_t find = n.rfind(del);
+        if (find != n.npos)
+        {
+            find += del.size();  // include del
+            std::stringstream ss;
+            ss << n.substr(find) << "    (" << n.substr(0, find - del.size()) << ")";
+            n = ss.str();
+        }
+    }
+
     return n;
 
 }
diff --git a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp
index e622a3a44..44133ed4d 100644
--- a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp
+++ b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp
@@ -1,5 +1,7 @@
 #include "TreeWidget.h"
 
+#include <RobotAPI/libraries/armem_gui/instance/sanitize_typename.h>
+
 #include <RobotAPI/libraries/aron/core/navigator/type/container/Object.h>
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
@@ -292,16 +294,7 @@ namespace armarx::armem::gui::memory
         if (container.aronType())
         {
             typeName = container.aronType()->getName();
-
-            std::string del = "::";
-            size_t find = typeName.rfind(del);
-            if (find != typeName.npos)
-            {
-                find += del.size();  // include del
-                std::stringstream ss;
-                ss << typeName.substr(find) << " (" << typeName.substr(0, find) << ")";
-                typeName = ss.str();
-            }
+            typeName = instance::sanitizeTypeName(typeName);
         }
         else
         {
diff --git a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
index f4fa5e8d1..e4d46ae5e 100644
--- a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
@@ -122,14 +122,10 @@ namespace armarx::armem::server::obj::clazz
             toAron(data.meshWrlPath, info.file(".wrl"));
         }
 
-        if (auto aabb = info.loadAABB())
-        {
-            toAron(data.aabb, aabb.value());
-        }
-        if (auto oobb = info.loadOOBB())
-        {
-            toAron(data.oobb, oobb.value());
-        }
+        auto aabb = info.loadAABB();
+        toAron(data.aabb, aabb ? aabb.value() : simox::AxisAlignedBoundingBox());
+        auto oobb = info.loadOOBB();
+        toAron(data.oobb, oobb ? oobb.value() : simox::OrientedBoxf());
 
         if (auto recogNames = info.loadRecognizedNames())
         {
-- 
GitLab