34 #ifndef _vpEigenConversion_h_
35 #define _vpEigenConversion_h_
37 #include <visp3/core/vpConfig.h>
38 #ifdef VISP_HAVE_EIGEN3
39 #include <Eigen/Dense>
41 #include <visp3/core/vpMatrix.h>
45 #ifdef VISP_HAVE_EIGEN3
53 dst.
buildFrom(src.x(), src.y(), src.z(), src.w());
58 dst.
buildFrom(src.angle() * src.axis()(0), src.angle() * src.axis()(1), src.angle() * src.axis()(2));
66 template <
typename Derived>
void visp2eigen(
const vpMatrix &src, Eigen::MatrixBase<Derived> &dst)
68 dst = Eigen::Map<Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> >(src.
data, src.
getRows(),
74 dst = Eigen::Map<Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> >(src.
data, src.
getRows(),
80 dst.w() =
static_cast<Type
>(src.
w());
81 dst.x() =
static_cast<Type
>(src.
x());
82 dst.y() =
static_cast<Type
>(src.
y());
83 dst.z() =
static_cast<Type
>(src.
z());
88 dst.angle() =
static_cast<Type
>(src.
getTheta());
89 dst.axis()(0) =
static_cast<Type
>(src.
getU()[0]);
90 dst.axis()(1) =
static_cast<Type
>(src.
getU()[1]);
91 dst.axis()(2) =
static_cast<Type
>(src.
getU()[2]);
unsigned int getCols() const
Type * data
Address of the first element of the data array.
unsigned int getRows() const
Implementation of column vector and the associated operations.
Implementation of an homogeneous matrix and operations on such kind of matrices.
Implementation of a matrix and operations on matrices.
Implementation of a rotation vector as quaternion angle minimal representation.
const double & z() const
Returns the z-component of the quaternion.
const double & x() const
Returns the x-component of the quaternion.
const double & y() const
Returns the y-component of the quaternion.
const double & w() const
Returns the w-component of the quaternion.
vpQuaternionVector buildFrom(const double qx, const double qy, const double qz, const double qw)
Implementation of row vector and the associated operations.
Implementation of a rotation vector as axis-angle minimal representation.
vpThetaUVector buildFrom(const vpHomogeneousMatrix &M)
void visp2eigen(const vpMatrix &src, Eigen::MatrixBase< Derived > &dst)
VISP_EXPORT void eigen2visp(const Eigen::MatrixXd &src, vpMatrix &dst)