From 9d7ad651c0f35264059cc4baeadaf25a38f69ce3 Mon Sep 17 00:00:00 2001 From: Justin Carpentier <justin.carpentier@inria.fr> Date: Mon, 30 Jan 2023 18:42:20 +0100 Subject: [PATCH] geometry: fix quaternion holder type --- include/eigenpy/quaternion.hpp | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/include/eigenpy/quaternion.hpp b/include/eigenpy/quaternion.hpp index 5b93ce4..5fc4c51 100644 --- a/include/eigenpy/quaternion.hpp +++ b/include/eigenpy/quaternion.hpp @@ -350,15 +350,22 @@ class QuaternionVisitor public: static void expose() { - bp::class_<Quaternion>("Quaternion", - "Quaternion representing rotation.\n\n" - "Supported operations " - "('q is a Quaternion, 'v' is a Vector3): " - "'q*q' (rotation composition), " - "'q*=q', " - "'q*v' (rotating 'v' by 'q'), " - "'q==q', 'q!=q', 'q[0..3]'.", - bp::no_init) +#if BOOST_VERSION / 100 % 1000 < 71 + typedef EIGENPY_CLASS_HOLDER_TYPE(Quaternion) HolderType; +#else + typedef ::boost::python::detail::not_specified HolderType; +#endif + + bp::class_<Quaternion, HolderType>( + "Quaternion", + "Quaternion representing rotation.\n\n" + "Supported operations " + "('q is a Quaternion, 'v' is a Vector3): " + "'q*q' (rotation composition), " + "'q*=q', " + "'q*v' (rotating 'v' by 'q'), " + "'q==q', 'q!=q', 'q[0..3]'.", + bp::no_init) .def(QuaternionVisitor<Quaternion>()); // Cast to Eigen::QuaternionBase and vice-versa -- GitLab