diff --git a/src/eigenpy.cpp b/src/eigenpy.cpp index a7e46423bc2139c65ffbb260638f39ed62c7d34c..dae15e9d21fc932f12b4e867b16006cfe06dd9c9 100644 --- a/src/eigenpy.cpp +++ b/src/eigenpy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 LAAS-CNRS + * Copyright (c) 2015-2018 LAAS-CNRS * * This file is part of eigenpy. * eigenpy is free software: you can redistribute it and/or @@ -22,17 +22,18 @@ namespace eigenpy /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instance. */ void enableEigenPy() { + using namespace Eigen; Exception::registerException(); - enableEigenPySpecific<Eigen::MatrixXd>(); - enableEigenPySpecific<Eigen::Matrix2d>(); - enableEigenPySpecific<Eigen::Matrix3d>(); - enableEigenPySpecific<Eigen::Matrix4d>(); - - enableEigenPySpecific<Eigen::VectorXd>(); - enableEigenPySpecific<Eigen::Vector2d>(); - enableEigenPySpecific<Eigen::Vector3d>(); - enableEigenPySpecific<Eigen::Vector4d>(); + ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXd); + ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2d); + ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3d); + ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4d); + + ENABLE_SPECIFIC_MATRIX_TYPE(VectorXd); + ENABLE_SPECIFIC_MATRIX_TYPE(Vector2d); + ENABLE_SPECIFIC_MATRIX_TYPE(Vector3d); + ENABLE_SPECIFIC_MATRIX_TYPE(Vector4d); } } // namespace eigenpy diff --git a/src/eigenpy.hpp b/src/eigenpy.hpp index 40cf58782ced5cc86506d39c61a1cd2ca25732dc..9fcecc7ce29815f09f02791c2228e889ee26e886 100644 --- a/src/eigenpy.hpp +++ b/src/eigenpy.hpp @@ -18,15 +18,18 @@ #define __eigenpy_eigenpy_hpp__ #include "eigenpy/fwd.hpp" -#include "eigenpy/memory.hpp" #include "eigenpy/deprecated.hh" +#include "eigenpy/ref.hpp" + +#define ENABLE_SPECIFIC_MATRIX_TYPE(TYPE) \ + enableEigenPySpecific<TYPE>(); \ + enableEigenPySpecific< eigenpy::Ref<TYPE> >(); namespace eigenpy { /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instance. */ void enableEigenPy(); - template<typename MatType> void enableEigenPySpecific();