From 249618fcb748a3c34d57ff30a1f09f5d14490545 Mon Sep 17 00:00:00 2001 From: Justin Carpentier <justin.carpentier@inria.fr> Date: Mon, 9 Dec 2019 20:39:35 +0100 Subject: [PATCH] core: use implicitly_convertible --- include/eigenpy/details.hpp | 31 ++----------------------------- 1 file changed, 2 insertions(+), 29 deletions(-) diff --git a/include/eigenpy/details.hpp b/include/eigenpy/details.hpp index 92f62a6..6f0ce38 100644 --- a/include/eigenpy/details.hpp +++ b/include/eigenpy/details.hpp @@ -515,33 +515,6 @@ namespace eigenpy } }; - template<typename MatType> - struct EigenFromPy< Eigen::MatrixBase<MatType> > - { - typedef EigenFromPy<MatType> EigenFromPyDerived; - typedef Eigen::MatrixBase<MatType> Base; - - /// \brief Determine if pyObj can be converted into a MatType object - static void* convertible(PyArrayObject* pyObj) - { - return EigenFromPyDerived::convertible(pyObj); - } - - /// \brief Allocate memory and copy pyObj in the new storage - static void construct(PyObject* pyObj, - bp::converter::rvalue_from_python_stage1_data* memory) - { - EigenFromPyDerived::construct(pyObj,memory); - } - - static void registration() - { - bp::converter::registry::push_back - (reinterpret_cast<void *(*)(_object *)>(&EigenFromPy::convertible), - &EigenFromPy::construct,bp::type_id<Base>()); - } - }; - template<typename MatType,typename EigenEquivalentType> void enableEigenPySpecific() { @@ -557,7 +530,8 @@ namespace eigenpy // Add also conversion to Eigen::MatrixBase<MatType> typedef Eigen::MatrixBase<MatType> MatTypeBase; - EigenFromPy<MatTypeBase>::registration(); + bp::implicitly_convertible<MatType,MatTypeBase>(); + bp::implicitly_convertible<MatTypeBase,MatType>(); } }; @@ -585,7 +559,6 @@ namespace eigenpy bp::to_python_converter<MatType,EigenToPy<MatType> >(); EigenFromPyConverter<MatType>::registration(); - } } // namespace eigenpy -- GitLab