Fix caucluation of rotation between two vectors during auto-orient (#4144)

* Properly extract rotation matrix

* Another attempt to fix auto-orient
This commit is contained in:
Noisyfox 2024-02-20 22:28:06 +08:00 committed by GitHub
parent a74a1d26fd
commit bff50a5fd8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 5 deletions

View file

@ -418,7 +418,7 @@ Vec3d extract_euler_angles(const Transform3d& transform)
void rotation_from_two_vectors(Vec3d from, Vec3d to, Vec3d& rotation_axis, double& phi, Matrix3d* rotation_matrix)
{
const Matrix3d m = Transform3d(Eigen::Quaterniond().setFromTwoVectors(from, to)).matrix().block<3, 3>(0, 0);
const Matrix3d m = Eigen::Quaterniond().setFromTwoVectors(from, to).toRotationMatrix();
const Eigen::AngleAxisd aa(m);
rotation_axis = aa.axis();
phi = aa.angle();