From 7f10714ff57e752ecfcd834cc13f90b78636acec Mon Sep 17 00:00:00 2001
From: Fabian Peller-Konrad <fabian.peller-konrad@kit.edu>
Date: Thu, 2 Dec 2021 14:27:35 +0100
Subject: [PATCH] fix so that poses use a resolved accessor when they are
 optional in the generated operator==

---
 .../codegenerator/codewriter/cpp/generator/ndarray/Pose.cpp   | 4 +++-
 .../RobotAPI/libraries/aron/core/test/aron/OptionalTest.xml   | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/source/RobotAPI/libraries/aron/core/codegenerator/codewriter/cpp/generator/ndarray/Pose.cpp b/source/RobotAPI/libraries/aron/core/codegenerator/codewriter/cpp/generator/ndarray/Pose.cpp
index d7292d0e0..b377dde0f 100644
--- a/source/RobotAPI/libraries/aron/core/codegenerator/codewriter/cpp/generator/ndarray/Pose.cpp
+++ b/source/RobotAPI/libraries/aron/core/codegenerator/codewriter/cpp/generator/ndarray/Pose.cpp
@@ -86,7 +86,9 @@ namespace armarx::aron::codegenerator::cpp::generator
     CppBlockPtr Pose::getEqualsBlock(const std::string& accessor, const std::string& otherInstanceAccessor) const
     {
         CppBlockPtr block_if_data = std::make_shared<CppBlock>();
-        block_if_data->addLine("if (not (" + accessor + nextEl() + "isApprox(" + otherInstanceAccessor + ")))");
+        std::string other_instance_resolved_accessor = this->resolveMaybeAccessor(otherInstanceAccessor);
+
+        block_if_data->addLine("if (not (" + accessor + nextEl() + "isApprox(" + other_instance_resolved_accessor + ")))");
         block_if_data->addLineAsBlock("return false;");
         return resolveMaybeEqualsBlock(block_if_data, accessor, otherInstanceAccessor);
     }
diff --git a/source/RobotAPI/libraries/aron/core/test/aron/OptionalTest.xml b/source/RobotAPI/libraries/aron/core/test/aron/OptionalTest.xml
index 332e9b13e..2b0d2d398 100644
--- a/source/RobotAPI/libraries/aron/core/test/aron/OptionalTest.xml
+++ b/source/RobotAPI/libraries/aron/core/test/aron/OptionalTest.xml
@@ -61,7 +61,9 @@
                 </List>
             </ObjectChild>
 
-
+            <ObjectChild key="an_optional_pose">
+                <Pose />
+            </ObjectChild>
 
         </Object>
     </GenerateTypes>
-- 
GitLab