From e6e910d0f855a9466e84bec1aa0fab9aa4f4648b Mon Sep 17 00:00:00 2001 From: Justin Carpentier <justin.carpentier@inria.fr> Date: Fri, 15 Nov 2019 21:06:04 +0100 Subject: [PATCH] core: add isScalarConvertible --- include/eigenpy/details.hpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/include/eigenpy/details.hpp b/include/eigenpy/details.hpp index 222b361..d727910 100644 --- a/include/eigenpy/details.hpp +++ b/include/eigenpy/details.hpp @@ -346,6 +346,27 @@ namespace eigenpy template<typename MatType> struct EigenFromPy { + + static bool isScalarConvertible(const int np_type) + { + if(NumpyEquivalentType<typename MatType::Scalar>::type_code == np_type) + return true; + + switch(np_type) + { + case NPY_INT: + return FromTypeToType<int,typename MatType::Scalar>::value; + case NPY_LONG: + return FromTypeToType<long,typename MatType::Scalar>::value; + case NPY_FLOAT: + return FromTypeToType<float,typename MatType::Scalar>::value; + case NPY_DOUBLE: + return FromTypeToType<double,typename MatType::Scalar>::value; + default: + return false; + } + } + /// \brief Determine if pyObj can be converted into a MatType object static void* convertible(PyArrayObject* pyArray) { -- GitLab