在特征中乘以变换和矩阵类型

cma*_*t85 7 c++ transform matrix eigen

对我而言,这应该是有效的,所以事实并非如此,几乎可以肯定,这意味着我是错误的.尽管原则上变换<double,3,Affine>与Matrix <double,4,4>相同,但它们不能合理地使用:

Affine3d rotMat( AngleAxisd( 45.0, ( Vector3d() << 0.0, 1.0, 0.0 ).finished() ) );
Matrix4d m;
m << 1.0, 0.0, 0.0, 6.0,
     0.0, 1.0, 0.0, 6.0,
     0.0, 0.0, 1.0, 6.0,
     0.0, 0.0, 0.0, 1.0;

m = m * rotMat;
Run Code Online (Sandbox Code Playgroud)

导致最后一行的'不匹配运算符='错误,并且就地乘法运算符导致相同,尝试使用Affine3d初始化Matrix4d也不起作用.有人知道如何以任何有用的方式实际使用Transform类吗?

谢谢,Cam

ant*_*kos 9

写吧:

m = m * rotMat.matrix();
Run Code Online (Sandbox Code Playgroud)

我不知道这是否是一个疏忽,Eigen没有隐含地定义这个乘法,或者它是否会干扰库的其他用例.