d/vive: Port to u_device_get_view_pose

This commit is contained in:
Ryan Pavlik 2021-04-26 15:37:06 -05:00 committed by Jakob Bornecrantz
parent 2d47c496e6
commit 3b0a6a558c

View file

@ -142,27 +142,9 @@ vive_device_get_view_pose(struct xrt_device *xdev,
uint32_t view_index,
struct xrt_pose *out_pose)
{
u_device_get_view_pose(eye_relation, view_index, out_pose);
struct vive_device *d = vive_device(xdev);
struct xrt_pose pose = {{0.0f, 0.0f, 0.0f, 1.0f}, {0.0f, 0.0f, 0.0f}};
bool adjust = view_index == 0;
pose.orientation = d->config.display.rot[view_index];
pose.position.x = eye_relation->x / 2.0f;
pose.position.y = eye_relation->y / 2.0f;
pose.position.z = eye_relation->z / 2.0f;
// Adjust for left/right while also making sure there aren't any -0.f.
if (pose.position.x > 0.0f && adjust) {
pose.position.x = -pose.position.x;
}
if (pose.position.y > 0.0f && adjust) {
pose.position.y = -pose.position.y;
}
if (pose.position.z > 0.0f && adjust) {
pose.position.z = -pose.position.z;
}
*out_pose = pose;
out_pose->orientation = d->config.display.rot[view_index];
}
static int