diff --git a/source/RobotAPI/libraries/aron/converter/eigen/EigenConverter.h b/source/RobotAPI/libraries/aron/converter/eigen/EigenConverter.h index 6c45ffbdb7400b4d3bbc365559c3fa6563e1fd89..9d83042a1ce7e0254c827350a87d515f05761665 100644 --- a/source/RobotAPI/libraries/aron/converter/eigen/EigenConverter.h +++ b/source/RobotAPI/libraries/aron/converter/eigen/EigenConverter.h @@ -135,6 +135,16 @@ namespace armarx::aron::converter } } + template<typename T> + static data::NDArrayPtr ConvertFromQuaternion( + const Eigen::Quaternion<T>& quat) + { + data::NDArrayPtr ndArr(new data::NDArray); + ndArr->setShape({1, 4}); + ndArr->setData(sizeof(T) * 4, reinterpret_cast <const unsigned char* >(quat.coeffs().data())); + + return ndArr; + } template<typename T> static data::NDArrayPtr ConvertFromMatrix( @@ -148,6 +158,18 @@ namespace armarx::aron::converter return ndArr; } + template<typename T, int Rows = Eigen::Dynamic, int Cols = Eigen::Dynamic> + static data::NDArrayPtr ConvertFromMatrix( + const Eigen::Matrix < T, Rows, Cols >& mat) + { + data::NDArrayPtr ndArr(new data::NDArray); + + ndArr->setShape({Rows, Cols}); + ndArr->setData(sizeof(T) * mat.size(), reinterpret_cast <const unsigned char* >(mat.data())); + + return ndArr; + } + // Eigen::Array