VR: Reset pose offsets when changing base pose
The offsets are applied after toggling positional tracking off, so that the view does not jump at that moment. But when changing the base pose, keeping that offset doesn't make sense. Especially with landmarks, which are supposed to give precise positions/rotations to jump to. For that part the VR Scene Inspection Add-on will need a little adjustment though. Also exposes an explicit function to the Python API to reset the offsets, to be used by the Add-on. This is mostly untested since I don't have access to an HMD currently.
This commit is contained in:
@@ -34,11 +34,16 @@ typedef struct wmXrSessionState {
|
||||
float viewer_viewmat[4][4];
|
||||
float focal_len;
|
||||
|
||||
/** Copy of XrSessionSettings.base_pose_ data to detect changes that need
|
||||
* resetting to base pose. */
|
||||
char prev_base_pose_type; /* eXRSessionBasePoseType */
|
||||
Object *prev_base_pose_object;
|
||||
/** Copy of XrSessionSettings.flag created on the last draw call, stored to detect changes. */
|
||||
int prev_settings_flag;
|
||||
/** Copy of wmXrDrawData.eye_position_ofs. */
|
||||
float prev_eye_position_ofs[3];
|
||||
|
||||
bool force_reset_to_base_pose;
|
||||
bool is_view_data_set;
|
||||
} wmXrSessionState;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user