我有以下代码:
void mySetTransform(const Eigen::Affine3d& T);
...
mySetTransform(Eigen::Translation3d(1.0,2.0,3.0));
这不编译,它不能转换Eigen::Translation3d
为Eigen::Affine3d
. 以下行导致相同的错误:
Eigen::Affine3d test = Eigen::Translation3d(r);
但这很好:
Eigen::Affine3d test;
test = Eigen::Translation3d(r);
因此,看起来运算符工作正常,但未定义使用 an=
构建的构造函数。Eigen::Affine3d
Eigen::Translation3d
该文档对课程有以下说明Translation
:
此类并非旨在用于存储平移转换,而是使 Transform 对象的构造和更新更容易。
有什么方法可以声明上述函数,以便可以使用任何转换对象(如Translation
在 Eigen/Geomerty 中声明的)直接调用它(不使用临时变量)?