Умножение типов преобразования и матрицы в собственном коде

мне это должно просто работать, поэтому тот факт, что это не так, почти наверняка означает, что я ошибаюсь. Хотя в принципе преобразование совпадает с матрицей, их нельзя использовать вместе разумно:

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;

приводит к ошибке "нет соответствия оператору=" в последней строке, и оператор умножения на месте приводит к тому же, попытка инициализировать Matrix4d с Affine3d также не работает. Делает кто-нибудь знает, как на самом деле использовать класс Transform любым полезным способом?

спасибо, Кэм!--4-->

1 ответов


просто написать:

m = m * rotMat.matrix();

Я не знаю, является ли это упущением, что Eigen не определяет это умножение неявно, или это может помешать другим случаям использования библиотеки.