From edc4a2d314182ed2f6d7a08cf9b06263be9203bf Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Thu, 10 Nov 2022 12:13:24 +0100 Subject: [PATCH] Allow using the ObjectPoseClient plugin without being user --- .../plugins/ObjectPoseClientPlugin.cpp | 13 ++++--------- .../ArmarXObjects/plugins/ObjectPoseClientPlugin.h | 11 ++++------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp index 2e59775c3..6525be6b5 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp +++ b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp @@ -23,7 +23,7 @@ namespace armarx::plugins void ObjectPoseClientPlugin::preOnConnectComponent() { - parent<ObjectPoseClientPluginUser>().objectPoseStorage = createObjectPoseStorage(); + _objectPoseStorage = createObjectPoseStorage(); } objpose::ObjectPoseStorageInterfacePrx ObjectPoseClientPlugin::createObjectPoseStorage() @@ -63,23 +63,18 @@ namespace armarx objpose::ObjectPoseClient ObjectPoseClientPluginUser::getClient() const { - return objpose::ObjectPoseClient(objectPoseStorage, getObjectFinder()); + return plugin->createClient(); } objpose::ObjectPoseSeq ObjectPoseClientPluginUser::getObjectPoses() { - if (!objectPoseStorage) - { - ARMARX_WARNING << "No object pose observer."; - return {}; - } - return objpose::fromIce(objectPoseStorage->getObjectPoses()); + return getClient().fetchObjectPoses(); } objpose::ObjectPoseSeq ObjectPoseClientPluginUser::getObjectPosesByProvider(const std::string& providerName) { - return objpose::ObjectPoseClient(objectPoseStorage, getObjectFinder()).fetchObjectPosesFromProvider(providerName); + return getClient().fetchObjectPosesFromProvider(providerName); } diff --git a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h index 229987238..7f27d9768 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h +++ b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h @@ -16,9 +16,7 @@ namespace armarx::plugins using ComponentPlugin::ComponentPlugin; - void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override; objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage(); - objpose::ObjectPoseClient createClient(); template<class...Ts> @@ -45,12 +43,15 @@ namespace armarx::plugins private: + void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override; + void preOnInitComponent() override; void preOnConnectComponent() override; static constexpr const char* PROPERTY_NAME = "ObjectMemoryName"; ObjectFinder _finder; + objpose::ObjectPoseStorageInterfacePrx _objectPoseStorage; }; } @@ -73,12 +74,8 @@ namespace armarx ObjectPoseClientPluginUser(); - objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage(); - objpose::ObjectPoseStorageInterfacePrx objectPoseStorage; - - objpose::ObjectPoseClient getClient() const; - + objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage(); objpose::ObjectPoseSeq getObjectPoses(); objpose::ObjectPoseSeq getObjectPosesByProvider(const std::string& providerName); -- GitLab