How translation a matrix(4x4) in Eigen?
c++, eigen, matrix, translation
Solution
Like this:
Affine3f transform(Translation3f(1,2,3));
Matrix4f matrix = transform.matrix();
Here is the doc with more details.
Problem
How translation a matrix(4x4) in Eigen? ``` //identity matrix 4x4 /*type=*/Eigen::Matrix<float, 4, 4> /*name=*/result = Eigen::Matrix<float, 4, 4>::Identity(); //translation vector // 3.0f // 4.0f // 5.0f Translation<float, 3> trans(3.0f, 4.0f, 5.0f); ``` ie, I have matrix: 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 And I want get this: 1.0 0.0 0.0 3.0 0.0 1.0 0.0 4.0 0.0 0.0 1.0 5.0 0.0 0.0 0.0 1.0 Right? How I can do this? I can do this: ``` result(0, 3) = 3.0f; result(1, 3) = 4.0f; result(2, 3) = 5.0f; ``` But it's not elegant. =) What you advice?