Как перевод матрицы (4x4) в Eigen?Как перевод матрицы (4x4) в 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);
т.е., у меня есть матрица:
1,0 0,0 0,0 0,0
0,0 1,0 0,0 0,0
,0 0,0 1,0 0,0
0,0 0,0 0,0 1,0
И я хочу получить это:
1,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
правой? Как я могу это сделать?
Я могу это сделать:
result(0, 3) = 3.0f;
result(1, 3) = 4.0f;
result(2, 3) = 5.0f;
Но это не элегантно. =) Что вы советуете?
Если вы не довольный написанием трех строк кода для выполнения перевода, тогда мой совет должен был написать функцию для выполнения этого перевода, а затем вызвать эту функцию везде, где вам нужно сделать перевод. Это нормальное элегантное программирование на любом языке. – john