From df1003c9cb8dc5455c66e12496c0179904cb9486 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Thu, 22 Apr 2021 13:06:44 +0200
Subject: [PATCH] Add ObjectInstance.xml

---
 .../libraries/armem_objects/CMakeLists.txt    |  6 +++-
 .../armem_objects/aron/ObjectInstance.xml     | 28 +++++++++++++++++++
 .../armem_objects/aron_conversions.cpp        | 27 ++++++++++++++++++
 .../armem_objects/aron_conversions.h          | 15 ++++++++++
 4 files changed, 75 insertions(+), 1 deletion(-)
 create mode 100644 source/RobotAPI/libraries/armem_objects/aron/ObjectInstance.xml
 create mode 100644 source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
 create mode 100644 source/RobotAPI/libraries/armem_objects/aron_conversions.h

diff --git a/source/RobotAPI/libraries/armem_objects/CMakeLists.txt b/source/RobotAPI/libraries/armem_objects/CMakeLists.txt
index 04be23c59..d7d6e9739 100644
--- a/source/RobotAPI/libraries/armem_objects/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem_objects/CMakeLists.txt
@@ -14,12 +14,16 @@ armarx_add_library(
         RobotAPI::Core
         RobotAPI::libraries::armem
     HEADERS
+        aron_conversions.h
+
         server/instance/SegmentAdapter.h
         server/instance/Segment.h
         server/instance/Decay.h
         server/instance/RobotHeadMovement.h
         server/instance/Visu.h
     SOURCES
+        aron_conversions.cpp
+
         server/instance/SegmentAdapter.cpp
         server/instance/Segment.cpp
         server/instance/Decay.cpp
@@ -31,7 +35,7 @@ armarx_enable_aron_file_generation_for_target(
     TARGET_NAME
         "${LIB_NAME}"
     ARON_FILES
-        # aron/ObjectID.xml
+        aron/ObjectInstance.xml
 )
 
 add_library(${PROJECT_NAME}::armem_objects ALIAS armem_objects)
diff --git a/source/RobotAPI/libraries/armem_objects/aron/ObjectInstance.xml b/source/RobotAPI/libraries/armem_objects/aron/ObjectInstance.xml
new file mode 100644
index 000000000..46c9ef539
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_objects/aron/ObjectInstance.xml
@@ -0,0 +1,28 @@
+<!-- ARON DTO of armarx::objpose::ObjectPose. -->
+<?xml version="1.0" encoding="UTF-8" ?>
+<AronTypeDefinition>
+    <CodeIncludes>
+        <Include include="<RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.aron.generated.h>" />
+        <Include include="<RobotAPI/libraries/armem/aron/MemoryID.aron.generated.h>" />
+    </CodeIncludes>
+    <AronIncludes>
+        <Include include="<RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml>" />
+        <Include include="<RobotAPI/libraries/armem/aron/MemoryID.xml>" />
+    </AronIncludes>
+    <GenerateTypes>
+
+        <Object name="armarx::armem::arondto::ObjectInstance">
+
+            <ObjectChild key="pose">
+                <armarx::objpose::arondto::ObjectPose />
+            </ObjectChild>
+
+            <ObjectChild key="sourceID">
+                <armarx::armem::arondto::MemoryID />
+            </ObjectChild>
+
+        </Object>
+
+    </GenerateTypes>
+</AronTypeDefinition>
+
diff --git a/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp b/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
new file mode 100644
index 000000000..859f3d601
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
@@ -0,0 +1,27 @@
+#include "aron_conversions.h"
+
+#include <RobotAPI/libraries/ArmarXObjects/aron_conversions.h>
+
+
+void armarx::armem::fromAron(const arondto::ObjectInstance& dto, objpose::arondto::ObjectPose& bo)
+{
+    bo = dto.pose;
+}
+
+void armarx::armem::toAron(arondto::ObjectInstance& dto, const objpose::arondto::ObjectPose& bo)
+{
+    dto.pose = bo;
+}
+
+
+void armarx::armem::fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo)
+{
+    objpose::fromAron(dto.pose, bo);
+}
+
+void armarx::armem::toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo)
+{
+    objpose::toAron(dto.pose, bo);
+}
+
+
diff --git a/source/RobotAPI/libraries/armem_objects/aron_conversions.h b/source/RobotAPI/libraries/armem_objects/aron_conversions.h
new file mode 100644
index 000000000..7ea733e99
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_objects/aron_conversions.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <RobotAPI/libraries/ArmarXObjects/ObjectPose.h>
+
+#include <RobotAPI/libraries/armem_objects/aron/ObjectInstance.aron.generated.h>
+
+
+namespace armarx::armem
+{
+    void fromAron(const arondto::ObjectInstance& dto, objpose::arondto::ObjectPose& bo);
+    void toAron(arondto::ObjectInstance& dto, const objpose::arondto::ObjectPose& bo);
+
+    void fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo);
+    void toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo);
+}
-- 
GitLab