From fc020f5716249525b922a680b95858fb9f1459e6 Mon Sep 17 00:00:00 2001 From: Fabian Reister <fabian.reister@kit.edu> Date: Thu, 10 Mar 2022 09:06:45 +0100 Subject: [PATCH] ObjectPoseClient: fetchObjectPose --- .../ArmarXObjects/ObjectPoseClient.cpp | 17 ++++++++++++++++- .../libraries/ArmarXObjects/ObjectPoseClient.h | 5 ++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/source/RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.cpp b/source/RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.cpp index 8710af33c..a707e9c3c 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.cpp +++ b/source/RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.cpp @@ -1,4 +1,6 @@ #include "ObjectPoseClient.h" +#include <optional> +#include "RobotAPI/libraries/ArmarXObjects/ObjectPose.h" namespace armarx::objpose @@ -54,7 +56,21 @@ namespace armarx::objpose } return map; } + + + std::optional<ObjectPose> ObjectPoseClient::fetchObjectPose(const ObjectID& objectID) + { + const auto *object = findObjectPoseByID(fetchObjectPoses(), objectID); + + if(object != nullptr) + { + return *object; + } + + return std::nullopt; + } + ObjectPoseSeq ObjectPoseClient::fetchObjectPosesFromProvider(const std::string& providerName) { if (!objectPoseStorage) @@ -66,7 +82,6 @@ namespace armarx::objpose } - const ObjectPoseStorageInterfacePrx& ObjectPoseClient::getObjectPoseStorage() const { diff --git a/source/RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.h b/source/RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.h index 33f9a6dd7..9bae3131e 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.h +++ b/source/RobotAPI/libraries/ArmarXObjects/ObjectPoseClient.h @@ -1,5 +1,6 @@ #pragma once +#include "RobotAPI/libraries/ArmarXObjects/ObjectID.h" #include <RobotAPI/interface/objectpose/ObjectPoseStorageInterface.h> #include <RobotAPI/libraries/ArmarXObjects/ObjectFinder.h> #include <RobotAPI/libraries/ArmarXObjects/ObjectPose.h> @@ -31,10 +32,12 @@ namespace armarx::objpose ObjectPoseMap fetchObjectPosesAsMap(); + std::optional<ObjectPose> + fetchObjectPose(const ObjectID& objectID); + ObjectPoseSeq fetchObjectPosesFromProvider(const std::string& providerName); - const ObjectPoseStorageInterfacePrx& getObjectPoseStorage() const; -- GitLab