diff --git a/unittest/matrix.cpp b/unittest/matrix.cpp index 84a116f151a37d52e4ec1b97296ed9141232deea..b7cbc593d5703e85a2d1f70de6b7f8efa8468155 100644 --- a/unittest/matrix.cpp +++ b/unittest/matrix.cpp @@ -81,12 +81,22 @@ MatrixDerived base(const Eigen::MatrixBase<MatrixDerived> & m) return m.derived(); } +template<typename Scalar> +Eigen::Matrix<Scalar,6,6> matrix6(const Scalar & value) +{ + typedef Eigen::Matrix<Scalar,6,6> ReturnType; + return ReturnType::Constant(value); +} + BOOST_PYTHON_MODULE(matrix) { using namespace Eigen; namespace bp = boost::python; eigenpy::enableEigenPy(); + typedef Eigen::Matrix<double,6,6> Matrix6; + eigenpy::enableEigenPySpecific<Matrix6>(); + Eigen::MatrixXd (*naturalsXX)(int,int,bool) = naturals; Eigen::VectorXd (*naturalsX)(int,bool) = naturals; Eigen::Matrix3d (*naturals33)(bool) = naturals; @@ -108,4 +118,6 @@ BOOST_PYTHON_MODULE(matrix) bp::def("base", base<VectorXd>); bp::def("base", base<MatrixXd>); + + bp::def("matrix6", matrix6<double>); } diff --git a/unittest/python/test_matrix.py b/unittest/python/test_matrix.py index 18fce68edb6a3bbb6936bf9922aabca5f77abfc6..5734eb92af3f25b6569cff7cb50a3f37f8e676c9 100644 --- a/unittest/python/test_matrix.py +++ b/unittest/python/test_matrix.py @@ -126,3 +126,7 @@ assert(mat1x1[0,0] == value) vec1x1 = eigenpy.vector1x1(value) assert(vec1x1.size == 1) assert(vec1x1[0] == value) + +# test registration of matrix6 +mat6 = eigenpy.matrix6(0.) +assert(mat6.size == 36)