From 3210693dd04349cbb027da7f4db46ba0c73ef568 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Wed, 9 Nov 2022 17:21:09 +0100
Subject: [PATCH] Add armem_locations (copy of Locations from navigation).
 ToDo: Also migrate other ARON types

---
 source/RobotAPI/libraries/CMakeLists.txt      |  1 +
 .../libraries/armem_locations/CMakeLists.txt  | 30 +++++++++++++
 .../armem_locations/aron/Location.xml         | 44 +++++++++++++++++++
 .../armem_locations/aron_conversions.cpp      |  6 +++
 .../armem_locations/aron_conversions.h        |  7 +++
 5 files changed, 88 insertions(+)
 create mode 100644 source/RobotAPI/libraries/armem_locations/CMakeLists.txt
 create mode 100644 source/RobotAPI/libraries/armem_locations/aron/Location.xml
 create mode 100644 source/RobotAPI/libraries/armem_locations/aron_conversions.cpp
 create mode 100644 source/RobotAPI/libraries/armem_locations/aron_conversions.h

diff --git a/source/RobotAPI/libraries/CMakeLists.txt b/source/RobotAPI/libraries/CMakeLists.txt
index 099ad8b4b..ac58ce8b0 100644
--- a/source/RobotAPI/libraries/CMakeLists.txt
+++ b/source/RobotAPI/libraries/CMakeLists.txt
@@ -20,6 +20,7 @@ add_subdirectory(aron)
 add_subdirectory(armem)
 add_subdirectory(armem_grasping)
 add_subdirectory(armem_gui)
+add_subdirectory(armem_locations)
 add_subdirectory(armem_motions)
 add_subdirectory(armem_mps)
 add_subdirectory(armem_objects)
diff --git a/source/RobotAPI/libraries/armem_locations/CMakeLists.txt b/source/RobotAPI/libraries/armem_locations/CMakeLists.txt
new file mode 100644
index 000000000..22d418142
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_locations/CMakeLists.txt
@@ -0,0 +1,30 @@
+set(LIB_NAME       armem_locations)
+
+armarx_component_set_name("${LIB_NAME}")
+armarx_set_target("Library: ${LIB_NAME}")
+
+armarx_add_library(
+    LIBS     
+        ArmarXCoreInterfaces
+        ArmarXCore
+        ArmarXCoreObservers
+
+        RobotAPI::Core
+        RobotAPI::armem
+        # aronjsonconverter
+    SOURCES  
+        ./aron_conversions.cpp
+
+    HEADERS  
+        ./aron_conversions.h
+)
+
+armarx_enable_aron_file_generation_for_target(
+    TARGET_NAME
+        "${LIB_NAME}"
+    ARON_FILES
+        aron/Location.xml
+)
+
+
+add_library(RobotAPI::armem_locations ALIAS armem_locations)
diff --git a/source/RobotAPI/libraries/armem_locations/aron/Location.xml b/source/RobotAPI/libraries/armem_locations/aron/Location.xml
new file mode 100644
index 000000000..9a0539d5d
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_locations/aron/Location.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<AronTypeDefinition>
+    <CodeIncludes>
+    </CodeIncludes>
+    <AronIncludes>
+        <Include include="<RobotAPI/libraries/armem/aron/MemoryID.xml>" autoinclude="true"/>
+    </AronIncludes>
+
+    <GenerateTypes>
+
+        <!--
+        ToDo: Model regions. Ideas:
+        - Polygon (convex, non-convex)
+        -
+        -->
+
+
+        <Object name='armarx::navigation::location::arondto::ObjectRelativeLocation'>
+
+            <ObjectChild key='objectInstanceID'>
+                <armarx::armem::arondto::MemoryID />
+            </ObjectChild>
+
+            <ObjectChild key='relativeRobotPose'>
+                <Pose />
+            </ObjectChild>
+
+        </Object>
+
+
+        <Object name='armarx::navigation::location::arondto::Location'>
+
+            <ObjectChild key='globalRobotPose'>
+                <Pose />
+            </ObjectChild>
+
+            <ObjectChild key='relativeToObject'>
+                <armarx::navigation::location::arondto::ObjectRelativeLocation optional="true" />
+            </ObjectChild>
+
+        </Object>
+
+    </GenerateTypes>
+</AronTypeDefinition>
diff --git a/source/RobotAPI/libraries/armem_locations/aron_conversions.cpp b/source/RobotAPI/libraries/armem_locations/aron_conversions.cpp
new file mode 100644
index 000000000..50ef19ce2
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_locations/aron_conversions.cpp
@@ -0,0 +1,6 @@
+#include "aron_conversions.h"
+
+namespace armarx::armem
+{
+
+}
diff --git a/source/RobotAPI/libraries/armem_locations/aron_conversions.h b/source/RobotAPI/libraries/armem_locations/aron_conversions.h
new file mode 100644
index 000000000..93e57fbce
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_locations/aron_conversions.h
@@ -0,0 +1,7 @@
+#pragma once
+
+
+namespace armarx::armem
+{
+
+}
-- 
GitLab