From 279778d5a6296791af1260a868ea60da010b62fd Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Thu, 1 Feb 2024 20:11:34 +0100 Subject: [PATCH] fix openvr space drag --- src/backend/input.rs | 2 +- src/backend/openvr/playspace.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/input.rs b/src/backend/input.rs index 73d6ae9..4cfd6b3 100644 --- a/src/backend/input.rs +++ b/src/backend/input.rs @@ -400,7 +400,7 @@ impl Pointer { offset, grabbed_id: overlay.state.id, }); - log::debug!("Hand {}: grabbed {}", self.idx, overlay.state.name); + log::info!("Hand {}: grabbed {}", self.idx, overlay.state.name); } fn handle_grabbed(&mut self, overlay: &mut OverlayData, hmd: &Affine3A) diff --git a/src/backend/openvr/playspace.rs b/src/backend/openvr/playspace.rs index d06f1b3..d3d4031 100644 --- a/src/backend/openvr/playspace.rs +++ b/src/backend/openvr/playspace.rs @@ -35,14 +35,15 @@ impl PlayspaceMover { } let hand_pos = state.input_state.pointers[hand].pose.translation; + let relative_pos = hand_pos - self.start_position; overlays.iter_mut().for_each(|overlay| { if overlay.state.grabbable { - overlay.state.transform.translation += hand_pos * -1.0; + overlay.state.transform.translation += relative_pos * -1.0; } }); - self.offset += hand_pos; + self.offset += relative_pos; self.apply_offset(chaperone_mgr); } else { for (i, pointer) in state.input_state.pointers.iter().enumerate() {