2016-10-03 16 views
0

私は既存のプロジェクトでEigenを使用しようとしていて、止まっています。Eigen :: Quaternionf、どうすれば値にアクセスできますか?

私はそうのように、マトリックスからquaternionfを作成しています:

Eigen::Quaternionf quats(path.block(0, 0, 3, 3));

行列が有効であり、この構造は動作するはずです。

私はこのような、しかしX、Y、Z、Wの値を呼び出そうとすると:

float test = quats.x();

それが私に与えて、コンパイルされません。

use of undefined type 'Eigen::internal::quaternionbase_assign_impl<MatrixDerived,-1,-1>'

で:

\eigen\src\Geometry\Quaternion.h

私はここで何が欠けていますか?

ありがとうございました。

答えて

2

問題ですquats.x()はありませんが、初期化中:

Eigen::Quaternionf quats(path.block<3,3>(0, 0)); 

かさえ:

Eigen::Quaternionf quats(path.block(0, 0, 3, 3)); 

あなたは、あなたのコンパイル時に3×3行列を渡していることを固有に伝える必要があります

Eigen::Quaternionf quats(path.topLeftCorner<3,3>()); 
+0

ああ、完璧です。ありがとうございました! – anti

関連する問題