+3
-10
src/xrt/drivers/steamvr_lh/device.cpp
+3
-10
src/xrt/drivers/steamvr_lh/device.cpp
···
1061
1061
relation.linear_velocity = copy_vec3(newPose.vecVelocity);
1062
1062
relation.angular_velocity = copy_vec3(newPose.vecAngularVelocity);
1063
1063
1064
-
// local transform (head to driver offset)
1065
-
const xrt_pose local = copy_pose(newPose.qDriverFromHeadRotation, newPose.vecDriverFromHeadTranslation);
1066
-
1067
-
// IMU linear velocity contribution due to rotation around driver origin (tangential velocity)
1068
-
xrt_vec3 tangential_velocity;
1069
-
math_vec3_cross(&relation.angular_velocity, &local.position, &tangential_velocity);
1070
-
math_quat_rotate_vec3(&relation.pose.orientation, &tangential_velocity, &tangential_velocity);
1071
-
math_vec3_accum(&tangential_velocity, &relation.linear_velocity);
1072
-
1073
-
// apply local transform
1074
1064
math_quat_rotate_vec3(&relation.pose.orientation, &relation.angular_velocity, &relation.angular_velocity);
1065
+
1066
+
// apply over local transform
1067
+
const xrt_pose local = copy_pose(newPose.qDriverFromHeadRotation, newPose.vecDriverFromHeadTranslation);
1075
1068
math_pose_transform(&relation.pose, &local, &relation.pose);
1076
1069
1077
1070
// apply world transform