From 07cbf565a30a667e5829ccce5c0bfc46ec13eee8 Mon Sep 17 00:00:00 2001 From: Stefano Date: Mon, 20 Jan 2025 13:03:48 +0100 Subject: [PATCH 1/3] Added compilation of bindings for iFrameTransform --- bindings/yarp.i | 2 ++ src/libYARP_dev/src/yarp/dev/all.h | 1 + 2 files changed, 3 insertions(+) diff --git a/bindings/yarp.i b/bindings/yarp.i index 1de8af2e346..73115db1f09 100644 --- a/bindings/yarp.i +++ b/bindings/yarp.i @@ -430,6 +430,7 @@ MAKE_COMMS(Bottle) %include %include %include +#include #ifndef YARP_NO_DEPRECATED // Since YARP 3.5.0 %include @@ -825,6 +826,7 @@ typedef yarp::os::BufferedPort BufferedPortImageRgbFloat; CAST_POLYDRIVER_TO_INTERFACE(ISpeechSynthesizer) CAST_POLYDRIVER_TO_INTERFACE(ISpeechTranscription) CAST_POLYDRIVER_TO_INTERFACE(ILLM) + CAST_POLYDRIVER_TO_INTERFACE(IFrameTransform) // These views are currently disabled in SWIG + java generator since they are // useless without the EXTENDED_ANALOG_SENSOR_INTERFACE part. diff --git a/src/libYARP_dev/src/yarp/dev/all.h b/src/libYARP_dev/src/yarp/dev/all.h index 1365618c1be..8661b9a9cc5 100644 --- a/src/libYARP_dev/src/yarp/dev/all.h +++ b/src/libYARP_dev/src/yarp/dev/all.h @@ -41,6 +41,7 @@ #include #include #include +#include #ifndef YARP_NO_DEPRECATED // since YARP 3.5 #define YARP_INCLUDING_DEPRECATED_HEADER_YARP_DEV_FRAMEGRABBER_H_ON_PURPOSE From 31bdd7be276daa91de5c567eb6033fdd50ad2e68 Mon Sep 17 00:00:00 2001 From: Stefano Date: Mon, 20 Jan 2025 14:57:48 +0100 Subject: [PATCH 2/3] Added swig extensions for the IFrrameTransform methods returning strings or vectors --- bindings/yarp.i | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/bindings/yarp.i b/bindings/yarp.i index 73115db1f09..24d18189e47 100644 --- a/bindings/yarp.i +++ b/bindings/yarp.i @@ -1590,6 +1590,29 @@ typedef yarp::os::BufferedPort BufferedPortImageRgbFloat; } } +%extend yarp::dev::IFrameTransform { + std::string allFramesAsString() { + std::string outputString; + bool ok = self->allFramesAsString(outputString); + if (!ok) return ""; + return outputString; + } + + std::vector getAllFrameIds() { + std::vector frameIds; + bool ok = self->getAllFrameIds(frameIds); + if (!ok) return std::vector(); + return frameIds; + } + + std::string getParent(const std::string& frameId) { + std::string parent; + bool ok = self->getParent(frameId, parent); + if (!ok) return "unknown"; + return parent; + } +} + // This is part is currently broken in SWIG + java generator since SWIG 3.0.3 // (last swig version tested: 3.0.12) // See also https://github.com/robotology/yarp/issues/1770 From f269a3b1445f013be75e2dbfef1c99d16faf746a Mon Sep 17 00:00:00 2001 From: Stefano Date: Mon, 20 Jan 2025 14:23:20 +0100 Subject: [PATCH 3/3] Include iFrameTransform in yarp/dev/all.h only if the math is compiled --- cmake/YarpFindDependencies.cmake | 4 ++++ src/libYARP_dev/src/yarp/dev/all.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/cmake/YarpFindDependencies.cmake b/cmake/YarpFindDependencies.cmake index 71561a5c746..46c42aabdac 100644 --- a/cmake/YarpFindDependencies.cmake +++ b/cmake/YarpFindDependencies.cmake @@ -497,6 +497,10 @@ yarp_dependent_option( ) yarp_renamed_option(CREATE_LIB_MATH YARP_COMPILE_libYARP_math) # Deprecated since YARP 3.2 +if(NOT YARP_COMPILE_libYARP_math) + add_definitions(-DYARP_NO_MATH) +endif() + yarp_dependent_option( YARP_COMPILE_libYARP_robotinterface "Do you want to compile the library YARP_robotinterface?" ON "YARP_HAS_TinyXML" OFF diff --git a/src/libYARP_dev/src/yarp/dev/all.h b/src/libYARP_dev/src/yarp/dev/all.h index 8661b9a9cc5..5fd85860c9d 100644 --- a/src/libYARP_dev/src/yarp/dev/all.h +++ b/src/libYARP_dev/src/yarp/dev/all.h @@ -41,7 +41,11 @@ #include #include #include + +#ifndef YARP_NO_MATH #include +#endif // YARP_NO_MATH + #ifndef YARP_NO_DEPRECATED // since YARP 3.5 #define YARP_INCLUDING_DEPRECATED_HEADER_YARP_DEV_FRAMEGRABBER_H_ON_PURPOSE