From ee8f789f74fbce9a4fdb5edc22d7b9bd4ffd8ec7 Mon Sep 17 00:00:00 2001 From: Nova Date: Wed, 27 Sep 2023 01:16:44 -0400 Subject: [PATCH] feat(suis/hand): distance per joint --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- src/nodes/input/hand.rs | 6 +++++- src/objects/input/sk_hand.rs | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0aff0fa..737fc06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2063,9 +2063,9 @@ dependencies = [ [[package]] name = "stardust-xr-schemas" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6c9d64628296b42a49f86a1523e9c7dca81d723a1a07bd7d56b1a9798f0a762" +checksum = "68d1cc2732943497bc7ae6a55630d18bb2efdcfd0ea9462340ac703724bf1372" dependencies = [ "flatbuffers", "flexbuffers", diff --git a/Cargo.toml b/Cargo.toml index bf34772..09d881b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ rustc-hash = "1.1.0" tokio = { version = "1.27.0", features = ["rt-multi-thread", "signal"] } send_wrapper = "0.6.0" prisma = "0.1.1" -stardust-xr = "0.14.0" +stardust-xr = "0.14.1" directories = "5.0.0" serde = { version = "1.0.160", features = ["derive"] } serde_repr = "0.1.16" diff --git a/src/nodes/input/hand.rs b/src/nodes/input/hand.rs index f3989c9..893bf9d 100644 --- a/src/nodes/input/hand.rs +++ b/src/nodes/input/hand.rs @@ -31,7 +31,7 @@ impl InputSpecialization for Hand { } fn serialize( &self, - _distance_link: &DistanceLink, + distance_link: &DistanceLink, local_to_handler_matrix: Mat4, ) -> InputDataType { let mut hand = self.base; @@ -68,6 +68,10 @@ impl InputSpecialization for Hand { let (_, rotation, position) = joint_matrix.to_scale_rotation_translation(); joint.position = position.into(); joint.rotation = rotation.into(); + joint.distance = distance_link + .handler + .field + .distance(&distance_link.handler.spatial, position.into()); } InputDataType::Hand(Box::new(hand)) diff --git a/src/objects/input/sk_hand.rs b/src/objects/input/sk_hand.rs index fd61136..9f848d5 100644 --- a/src/objects/input/sk_hand.rs +++ b/src/objects/input/sk_hand.rs @@ -20,6 +20,7 @@ fn convert_joint(joint: HandJoint) -> Joint { position: joint.position.into(), rotation: joint.orientation.into(), radius: joint.radius, + distance: 0.0, } }