From 8670d5fcf3b7f998972e9db75166d45e6204b860 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Mon, 4 Dec 2023 14:28:55 +0100
Subject: [PATCH] Replace armarx::arondto::ObjectNames with
 armarx::arondto::Names

---
 .../libraries/ArmarXObjects/CMakeLists.txt    |  1 -
 .../ArmarXObjects/aron/ObjectNames.xml        | 23 ---------
 .../armem_objects/aron/ObjectClass.xml        |  4 +-
 .../armem_objects/aron_conversions.cpp        | 50 +++++++++++--------
 .../armem_objects/aron_conversions.h          |  5 +-
 .../armem_objects/server/class/Segment.cpp    |  4 +-
 .../RobotAPI/libraries/armem_objects/types.h  |  3 +-
 7 files changed, 37 insertions(+), 53 deletions(-)
 delete mode 100644 source/RobotAPI/libraries/ArmarXObjects/aron/ObjectNames.xml

diff --git a/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt b/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
index 3e503f9a7..879422d20 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
+++ b/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
@@ -82,7 +82,6 @@ armarx_enable_aron_file_generation_for_target(
         "${LIB_NAME}"
     ARON_FILES
         aron/ObjectID.xml
-        aron/ObjectNames.xml
         aron/ObjectPose.xml
         aron/ObjectType.xml
         aron/PoseManifoldGaussian.xml
diff --git a/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectNames.xml b/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectNames.xml
deleted file mode 100644
index eb99bea9c..000000000
--- a/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectNames.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
-Recognized and spoken names of a known object.
--->
-<?xml version="1.0" encoding="UTF-8" ?>
-<AronTypeDefinition>
-    <GenerateTypes>
-
-        <Object name="armarx::arondto::ObjectNames">
-            <ObjectChild key="recognizedNames">
-                <List>
-                    <String/>
-                </List>
-            </ObjectChild>
-            <ObjectChild key="spokenNames">
-                <List>
-                    <String/>
-                </List>
-            </ObjectChild>
-        </Object>
-
-    </GenerateTypes>
-</AronTypeDefinition>
-
diff --git a/source/RobotAPI/libraries/armem_objects/aron/ObjectClass.xml b/source/RobotAPI/libraries/armem_objects/aron/ObjectClass.xml
index 019987f50..190e105b4 100644
--- a/source/RobotAPI/libraries/armem_objects/aron/ObjectClass.xml
+++ b/source/RobotAPI/libraries/armem_objects/aron/ObjectClass.xml
@@ -8,7 +8,7 @@ Core segment type of Object/Class.
         <PackagePath package="RobotAPI" path="libraries/aron/common/aron/OrientedBox.xml" />
         <PackagePath package="RobotAPI" path="libraries/aron/common/aron/PackagePath.xml" />
         <PackagePath package="RobotAPI" path="libraries/ArmarXObjects/aron/ObjectID.xml" />
-        <PackagePath package="RobotAPI" path="libraries/ArmarXObjects/aron/ObjectNames.xml" />
+        <PackagePath package="RobotAPI" path="libraries/aron/common/aron/Names.xml" />
         <PackagePath package="RobotAPI" path="libraries/armem/aron/MemoryID.xml" />
     </AronIncludes>
     <GenerateTypes>
@@ -83,7 +83,7 @@ Core segment type of Object/Class.
             </ObjectChild>
 
             <ObjectChild key="names">
-                <armarx::arondto::ObjectNames />
+                <armarx::arondto::Names />
             </ObjectChild>
 
             <ObjectChild key="ivtFeatures">
diff --git a/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp b/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
index da32c2771..62ee858c9 100644
--- a/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
+++ b/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
@@ -4,50 +4,53 @@
 #include <RobotAPI/libraries/armem/core/aron_conversions.h>
 #include <RobotAPI/libraries/aron/common/aron_conversions.h>
 
-namespace armarx::armem
+namespace armarx
 {
 
     void
-    fromAron(const arondto::ObjectInstance& dto, objpose::arondto::ObjectPose& bo)
+    armem::fromAron(const arondto::ObjectInstance& dto, objpose::arondto::ObjectPose& bo)
     {
         bo = dto.pose;
     }
 
     void
-    toAron(arondto::ObjectInstance& dto, const objpose::arondto::ObjectPose& bo)
+    armem::toAron(arondto::ObjectInstance& dto, const objpose::arondto::ObjectPose& bo)
     {
         dto.pose = bo;
     }
 
     void
-    fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo)
+    armem::fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo)
     {
         objpose::fromAron(dto.pose, bo);
     }
 
     void
-    toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo)
+    armem::toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo)
     {
         objpose::toAron(dto.pose, bo);
     }
 
     /* Attachments */
     void
-    fromAron(const arondto::attachment::AgentDescription& dto, attachment::AgentDescription& bo)
+    armem::fromAron(const arondto::attachment::AgentDescription& dto,
+                    attachment::AgentDescription& bo)
     {
         fromAron(dto.id, bo.id);
         aron::fromAron(dto.frame, bo.frame);
     }
 
     void
-    toAron(arondto::attachment::AgentDescription& dto, const attachment::AgentDescription& bo)
+    armem::toAron(arondto::attachment::AgentDescription& dto,
+                  const attachment::AgentDescription& bo)
     {
         toAron(dto.id, bo.id);
         aron::toAron(dto.frame, bo.frame);
     }
 
     void
-    fromAron(const arondto::attachment::ObjectAttachment& dto, attachment::ObjectAttachment& bo)
+    armem::fromAron(const arondto::attachment::ObjectAttachment& dto,
+                    attachment::ObjectAttachment& bo)
     {
         fromAron(dto.agent, bo.agent);
         aron::fromAron(dto.transformation, bo.transformation);
@@ -57,7 +60,8 @@ namespace armarx::armem
     }
 
     void
-    toAron(arondto::attachment::ObjectAttachment& dto, const attachment::ObjectAttachment& bo)
+    armem::toAron(arondto::attachment::ObjectAttachment& dto,
+                  const attachment::ObjectAttachment& bo)
     {
         toAron(dto.agent, bo.agent);
         aron::toAron(dto.transformation, bo.transformation);
@@ -67,8 +71,8 @@ namespace armarx::armem
     }
 
     void
-    fromAron(const arondto::attachment::ArticulatedObjectAttachment& dto,
-             attachment::ArticulatedObjectAttachment& bo)
+    armem::fromAron(const arondto::attachment::ArticulatedObjectAttachment& dto,
+                    attachment::ArticulatedObjectAttachment& bo)
     {
         fromAron(dto.agent, bo.agent);
         aron::fromAron(dto.transformation, bo.transformation);
@@ -78,8 +82,8 @@ namespace armarx::armem
     }
 
     void
-    toAron(arondto::attachment::ArticulatedObjectAttachment& dto,
-           const attachment::ArticulatedObjectAttachment& bo)
+    armem::toAron(arondto::attachment::ArticulatedObjectAttachment& dto,
+                  const attachment::ArticulatedObjectAttachment& bo)
     {
         toAron(dto.agent, bo.agent);
         aron::toAron(dto.transformation, bo.transformation);
@@ -89,7 +93,7 @@ namespace armarx::armem
     }
 
     void
-    toAron(arondto::Marker& dto, const marker::Marker& bo)
+    armem::toAron(arondto::Marker& dto, const marker::Marker& bo)
     {
         dto.name = bo.name;
         armarx::toAron(dto.robotGlobal, bo.robotGlobal);
@@ -100,7 +104,7 @@ namespace armarx::armem
     }
 
     void
-    fromAron(const arondto::Marker& dto, marker::Marker& bo)
+    armem::fromAron(const arondto::Marker& dto, marker::Marker& bo)
     {
         bo.name = dto.name;
         armarx::fromAron(dto.robotGlobal, bo.robotGlobal);
@@ -109,13 +113,13 @@ namespace armarx::armem
         armarx::fromAron(dto.markerPose, bo.markerPose);
     }
 
-} // namespace armarx::armem
+} // namespace armarx
 
-namespace armarx::armem::clazz
+namespace armarx::armem
 {
 
     void
-    fromAron(const arondto::Feature& dto, Feature& bo)
+    clazz::fromAron(const arondto::Feature& dto, Feature& bo)
     {
         bo.angle = dto.angle;
         bo.scale = dto.scale;
@@ -125,7 +129,7 @@ namespace armarx::armem::clazz
     }
 
     void
-    toAron(arondto::Feature& dto, const Feature& bo)
+    clazz::toAron(arondto::Feature& dto, const Feature& bo)
     {
         dto.angle = bo.angle;
         dto.scale = bo.scale;
@@ -135,7 +139,7 @@ namespace armarx::armem::clazz
     }
 
     void
-    fromAron(const arondto::ObjectClass& dto, ObjectClass& bo)
+    clazz::fromAron(const arondto::ObjectClass& dto, ObjectClass& bo)
     {
         armarx::fromAron(dto.id, bo.id);
         armarx::fromAron(dto.simoxXmlPath, bo.simoxXmlPath);
@@ -147,6 +151,7 @@ namespace armarx::armem::clazz
         armarx::fromAron(dto.meshObjPath, bo.meshObjPath);
         armarx::fromAron(dto.aabb, bo.aabb);
         armarx::fromAron(dto.oobb, bo.oobb);
+        fromAron(dto.names, bo.names);
         bo.ivtFeatures.clear();
         for (const auto& i : dto.ivtFeatures)
         {
@@ -155,7 +160,7 @@ namespace armarx::armem::clazz
     }
 
     void
-    toAron(arondto::ObjectClass& dto, const ObjectClass& bo)
+    clazz::toAron(arondto::ObjectClass& dto, const ObjectClass& bo)
     {
         armarx::toAron(dto.id, bo.id);
         armarx::toAron(dto.simoxXmlPath, bo.simoxXmlPath);
@@ -167,6 +172,7 @@ namespace armarx::armem::clazz
         armarx::toAron(dto.meshObjPath, bo.meshObjPath);
         armarx::toAron(dto.aabb, bo.aabb);
         armarx::toAron(dto.oobb, bo.oobb);
+        toAron(dto.names, bo.names);
         dto.ivtFeatures.clear();
         for (const auto& i : bo.ivtFeatures)
         {
@@ -174,7 +180,7 @@ namespace armarx::armem::clazz
         }
     }
 
-} // namespace armarx::armem::clazz
+} // namespace armarx::armem
 
 armarx::armem::MemoryID
 armarx::armem::obj::makeObjectInstanceMemoryID(const objpose::ObjectPose& objectPose)
diff --git a/source/RobotAPI/libraries/armem_objects/aron_conversions.h b/source/RobotAPI/libraries/armem_objects/aron_conversions.h
index b61164a5d..a41c7ccf4 100644
--- a/source/RobotAPI/libraries/armem_objects/aron_conversions.h
+++ b/source/RobotAPI/libraries/armem_objects/aron_conversions.h
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <RobotAPI/libraries/ArmarXObjects/ObjectPose.h>
+#include <RobotAPI/libraries/armem/core/MemoryID.h>
 #include <RobotAPI/libraries/armem_objects/aron/Attachment.aron.generated.h>
 #include <RobotAPI/libraries/armem_objects/aron/Marker.aron.generated.h>
 #include <RobotAPI/libraries/armem_objects/aron/ObjectClass.aron.generated.h>
@@ -32,6 +33,7 @@ namespace armarx::armem
 
     void fromAron(const arondto::Marker& dto, marker::Marker& bo);
     void toAron(arondto::Marker& dto, const marker::Marker& bo);
+
 } // namespace armarx::armem
 
 namespace armarx::armem::clazz
@@ -44,10 +46,9 @@ namespace armarx::armem::clazz
 
 } // namespace armarx::armem::clazz
 
-#include <RobotAPI/libraries/armem/core/MemoryID.h>
-
 namespace armarx::armem::obj
 {
     /// Make a Memory ID for the object instance snapshot representing this pose.
     MemoryID makeObjectInstanceMemoryID(const objpose::ObjectPose& objectPose);
+
 } // namespace armarx::armem::obj
diff --git a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
index c841afc4d..b827d07ed 100644
--- a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
@@ -206,11 +206,11 @@ namespace armarx::armem::server::obj::clazz
 
         if (auto recogNames = info.loadRecognizedNames())
         {
-            data.names.recognizedNames = recogNames.value();
+            data.names.recognized = recogNames.value();
         }
         if (auto spokenNames = info.loadSpokenNames())
         {
-            data.names.spokenNames = spokenNames.value();
+            data.names.spoken = spokenNames.value();
         }
 
         return data;
diff --git a/source/RobotAPI/libraries/armem_objects/types.h b/source/RobotAPI/libraries/armem_objects/types.h
index 598c78ca9..564bf3b46 100644
--- a/source/RobotAPI/libraries/armem_objects/types.h
+++ b/source/RobotAPI/libraries/armem_objects/types.h
@@ -30,6 +30,7 @@
 #include <RobotAPI/libraries/armem/core/Time.h>
 #include <RobotAPI/libraries/armem_robot/types.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
+#include <RobotAPI/libraries/core/Names.h>
 
 #include "aron_forward_declarations.h"
 
@@ -67,7 +68,7 @@ namespace armarx::armem::clazz
         armarx::PackagePath meshObjPath;
         simox::AxisAlignedBoundingBox aabb;
         simox::OrientedBoxf oobb;
-        // TODO NAMES
+        armarx::Names names;
         std::vector<Feature> ivtFeatures;
     };
 } // namespace armarx::armem::clazz
-- 
GitLab