2011-07-15 18 views
6

私にはこれがであり、実際にはとなるはずなので、実際にはそうではありません。原則的には、二重<、3トランスフォームにもかかわらず、アフィン>は> 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; 

結果= 'エラーが発生し、In-Place乗算演算子が同じ結果になり、Matrix4dをAffine3dで初期化しようとしても動作しません。 Transformクラスをどのように実用的に使うべきか、誰かが知っていますか?

おかげで、 カム

答えて

8

ただ書き:

m = m * rotMat.matrix(); 

を、それは固有が暗黙のうちにこの乗算を定義していないか、それが他のユースケースと干渉する可能性がある場合は見落としている場合、私は知りませんライブラリの

+0

ありがとうございました!あなたは私に多くの誓いを救った... – cmannett85