From 815eb4bd78b1d7b4fc030258b822daa33d75129b Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Tue, 6 Feb 2024 02:21:43 +0100 Subject: [PATCH] openxr: prevent invalid poses --- src/backend/openxr/helpers.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/openxr/helpers.rs b/src/backend/openxr/helpers.rs index 376c765..bbb76f9 100644 --- a/src/backend/openxr/helpers.rs +++ b/src/backend/openxr/helpers.rs @@ -146,7 +146,10 @@ pub(super) fn transform_to_posef(transform: &Affine3A) -> xr::Posef { let norm_mat3 = transform .matrix3 .mul_scalar(1.0 / transform.matrix3.x_axis.length()); - let rotation = Quat::from_mat3a(&norm_mat3).normalize(); + let mut rotation = Quat::from_mat3a(&norm_mat3).normalize(); + if !rotation.is_finite() { + rotation = Quat::IDENTITY; + } xr::Posef { orientation: xr::Quaternionf {