2011-07-15 77 views
6

對我來說,這應該只是工作,所以事實並非如此,幾乎肯定意味着我是錯誤的。儘管在原則上變換<雙,三,仿射>是相同的矩陣<雙,4,4>,它們不能同時明智地使用:Eigen中乘以變換和矩陣類型

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; 

結果在「不匹配運算符= '在最後一行出現錯誤,並且就地乘法運算符結果相同,嘗試使用Affine3d初始化Matrix4d也不起作用。有人知道如何以任何有用的方式實際使用Transform類嗎?

感謝, 凸輪

回答

8

只要寫:

m = m * rotMat.matrix(); 

我不知道這是否是本徵並不隱含地定義這個乘法,或者它可能與其他使用情況干涉監督的圖書館。

+0

謝謝!你爲我節省了很多咒罵 – cmannett85