| 26 | } |
| 27 | |
| 28 | Eigen::Matrix<float, 4, 4, Eigen::DontAlign> alignRotationMatrix(const sibr::Vector3f & from, const sibr::Vector3f & to) |
| 29 | { |
| 30 | sibr::Quaternionf q = sibr::Quaternionf::FromTwoVectors(from, to); |
| 31 | q.normalize(); |
| 32 | Eigen::Matrix3f R = q.toRotationMatrix(); |
| 33 | sibr::Matrix4f R4; |
| 34 | R4.setIdentity(); |
| 35 | R4.block<3, 3>(0, 0) = R; |
| 36 | return R4; |
| 37 | } |
| 38 | |
| 39 | } // namespace sibr |