Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2020-04-29 00:16:29 +0300
committerJulian Eisel <julian@blender.org>2020-04-29 14:53:25 +0300
commit0cfd2d6f4b24a7703be4faf615eb47d9448d355c (patch)
treef19d089a139a4db8e0fc948574bda83673456f4e /source/blender/windowmanager/xr/intern/wm_xr_intern.h
parentc57e4418bb85aec8bd3615fd775b990badb43d30 (diff)
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.
Diffstat (limited to 'source/blender/windowmanager/xr/intern/wm_xr_intern.h')
-rw-r--r--source/blender/windowmanager/xr/intern/wm_xr_intern.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/windowmanager/xr/intern/wm_xr_intern.h b/source/blender/windowmanager/xr/intern/wm_xr_intern.h
index b53ae45a29f..9b7e9a15948 100644
--- a/source/blender/windowmanager/xr/intern/wm_xr_intern.h
+++ b/source/blender/windowmanager/xr/intern/wm_xr_intern.h
@@ -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;