私は次のコードを持っています:
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);
そのため、the 演算子は正常に動作しているように見えますが、anを使用し=
て構築するコンストラクターは定義されていません。Eigen::Affine3d
Eigen::Translation3d
ドキュメントには、クラスに関する次の注意事項があります。Translation
このクラスは、平行移動変換を格納するために使用されるのではなく、Transform オブジェクトの構築と更新を容易にすることを目的としています。
Translation
上記の関数を宣言して、Eigen/Geomerty で宣言されているような変換オブジェクトを使用して (一時変数を使用せずに) 直接呼び出す方法はありますか?