Select the types of activity you want to include in your feed.
d/wmr: Make WMR to OpenXR coordinate transform explicit
Instead of negating Y and Z readings from the IMU when parsing, parse the native values, then apply the rotation using the centerline transform before fusion.
···984984 u_var_add_gui_header(wh, &wh->gui.misc, "Misc");
985985 u_var_add_log_level(wh, &wh->log_level, "log_level");
986986987987- // Compute centerline in the HMD's calibration coordinate space as the average of the two display poses
987987+ // Compute centerline in the HMD's calibration coordinate space as the average of the two display poses,
988988+ // then rotate around the X axis to convert coordinate system from WMR (X right, Y down, Z away)
989989+ // to OpenXR (X right, Y up, Z towards)
988990 math_quat_slerp(&wh->config.eye_params[0].pose.orientation, &wh->config.eye_params[1].pose.orientation, 0.5f,
989991 &wh->centerline.orientation);
990992 wh->centerline.position.x =
···993995 (wh->config.eye_params[0].pose.position.y + wh->config.eye_params[1].pose.position.y) * 0.5f;
994996 wh->centerline.position.z =
995997 (wh->config.eye_params[0].pose.position.z + wh->config.eye_params[1].pose.position.z) * 0.5f;
998998+999999+ struct xrt_pose wmr_to_openxr_xform = {
10001000+ .position = {0.0, 0.0, 0.0},
10011001+ .orientation = {.x = 1.0, .y = 0.0, .z = 0.0, .w = 0.0},
10021002+ };
10031003+10041004+ math_pose_transform(&wmr_to_openxr_xform, &wh->centerline, &wh->centerline);
99610059971006 // Compute display and sensor offsets relative to the centerline
9981007 for (int dIdx = 0; dIdx < 2; ++dIdx) {