From d1cc160cac4c67f1be1d9632d2c9ae622e126f34 Mon Sep 17 00:00:00 2001 From: Schmarni Date: Wed, 20 Nov 2024 10:33:59 +0100 Subject: [PATCH] only render hand gizmos if they are actively tracked Signed-off-by: Schmarni --- crates/bevy_xr_utils/src/hand_gizmos.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/bevy_xr_utils/src/hand_gizmos.rs b/crates/bevy_xr_utils/src/hand_gizmos.rs index c84aa6b..6809c0b 100644 --- a/crates/bevy_xr_utils/src/hand_gizmos.rs +++ b/crates/bevy_xr_utils/src/hand_gizmos.rs @@ -1,6 +1,7 @@ use bevy::color::palettes::css; use bevy::{prelude::*, transform::TransformSystem}; use bevy_mod_xr::hands::{HandBone, HandBoneRadius}; +use bevy_mod_xr::spaces::XrSpaceLocationFlags; pub struct HandGizmosPlugin; impl Plugin for HandGizmosPlugin { fn build(&self, app: &mut App) { @@ -12,9 +13,17 @@ impl Plugin for HandGizmosPlugin { } fn draw_hand_gizmos( mut gizmos: Gizmos, - query: Query<(&GlobalTransform, &HandBone, &HandBoneRadius)>, + query: Query<( + &GlobalTransform, + &HandBone, + &HandBoneRadius, + &XrSpaceLocationFlags, + )>, ) { - for (transform, bone, radius) in &query { + for (transform, bone, radius, flags) in &query { + if (!flags.position_tracked) || (!flags.rotation_tracked) { + continue; + } let pose = transform.compute_transform(); let pose = Isometry3d { translation: pose.translation.into(),