diff --git a/examples/xr.rs b/examples/xr.rs index 7cd7009..184104c 100644 --- a/examples/xr.rs +++ b/examples/xr.rs @@ -271,8 +271,7 @@ pub fn update_hand_states( } } -fn draw_skeleton_hands( - mut gizmos: Gizmos, +fn update_emulated_hand_skeletons( right_controller_query: Query<(&GlobalTransform, With)>, left_controller_query: Query<(&GlobalTransform, With)>, hand_states_option: Option>, @@ -285,8 +284,7 @@ fn draw_skeleton_hands( .unwrap() .0 .compute_transform(); - draw_hand_bones( - &mut gizmos, + update_hand_bones_emulated( left_hand_transform, Hand::Left, hands.left, @@ -297,9 +295,7 @@ fn draw_skeleton_hands( .unwrap() .0 .compute_transform(); - // draw_hand(&mut gizmos, right_hand_transform, Hand::Right); - draw_hand_bones( - &mut gizmos, + update_hand_bones_emulated( right_hand_transform, Hand::Right, hands.right, @@ -474,8 +470,7 @@ fn get_bone_gizmo_style(hand_bone: &HandBone) -> (f32, Color) { } } -fn draw_hand_bones( - mut gizmos: &mut Gizmos, +fn update_hand_bones_emulated( controller_transform: Transform, hand: Hand, hand_state: HandState, @@ -503,49 +498,26 @@ fn draw_hand_bones( let grip_curl = hand_state.grip; let index_curl = hand_state.get_index_curl(); let thumb_curl = hand_state.get_thumb_curl(); - //get paml quat + //get palm quat let y = Quat::from_rotation_y(-90.0 * PI / 180.0); let x = Quat::from_rotation_x(-90.0 * PI / 180.0); let palm_quat = controller_quat.mul_quat(y).mul_quat(x); - //draw debug rays - // gizmos.ray( - // hand_translation, - // palm_quat.mul_vec3(Vec3::Z * 0.2), - // Color::BLUE, - // ); - // gizmos.ray( - // hand_translation, - // palm_quat.mul_vec3(Vec3::Y * 0.2), - // Color::GREEN, - // ); - // gizmos.ray( - // hand_translation, - // palm_quat.mul_vec3(Vec3::X * 0.2), - // Color::RED, - // ); //get simulated bones let hand_transform_array: [Transform; 26] = get_simulated_open_hand_transforms(hand); - //draw controller-palm bone(should be zero length) + //palm let palm = hand_transform_array[HandJoint::PALM]; - gizmos.ray(hand_translation, palm.translation, Color::WHITE); calc_transforms[HandJoint::PALM] = Transform { translation: hand_translation + palm.translation, ..default() }; - //draw palm-wrist + //wrist let wrist = hand_transform_array[HandJoint::WRIST]; - gizmos.ray( - hand_translation + palm.translation, - palm_quat.mul_vec3(wrist.translation), - Color::GRAY, - ); calc_transforms[HandJoint::WRIST] = Transform { translation: hand_translation + palm.translation + palm_quat.mul_vec3(wrist.translation), ..default() }; //thumb - //better finger drawing? let thumb_joints = [ HandJoint::THUMB_METACARPAL, HandJoint::THUMB_PROXIMAL, @@ -555,7 +527,6 @@ fn draw_hand_bones( let mut prior_start: Option = None; let mut prior_quat: Option = None; let mut prior_vector: Option = None; - let color = Color::RED; let splay = Quat::from_rotation_y(splay_direction * 30.0 * PI / 180.0); let huh = Quat::from_rotation_x(-35.0 * PI / 180.0); let splay_quat = palm_quat.mul_quat(huh).mul_quat(splay); @@ -568,7 +539,6 @@ fn draw_hand_bones( let thumb_prox = hand_transform_array[*bone]; let tp_start = start + prior_vector.unwrap(); let tp_vector = tp_quat.mul_vec3(thumb_prox.translation); - gizmos.ray(tp_start, tp_vector, color); prior_start = Some(tp_start); prior_quat = Some(tp_quat); prior_vector = Some(tp_vector); @@ -584,7 +554,6 @@ fn draw_hand_bones( + palm_quat.mul_vec3(palm.translation) + palm_quat.mul_vec3(wrist.translation); let tm_vector = palm_quat.mul_vec3(thumb_meta.translation); - gizmos.ray(tm_start, tm_vector, color); prior_start = Some(tm_start); prior_quat = Some(splay_quat); prior_vector = Some(tm_vector); @@ -598,7 +567,6 @@ fn draw_hand_bones( } //index - //better finger drawing? let thumb_joints = [ HandJoint::INDEX_METACARPAL, HandJoint::INDEX_PROXIMAL, @@ -609,7 +577,6 @@ fn draw_hand_bones( let mut prior_start: Option = None; let mut prior_quat: Option = None; let mut prior_vector: Option = None; - let color = Color::ORANGE; let splay = Quat::from_rotation_y(splay_direction * 10.0 * PI / 180.0); let splay_quat = palm_quat.mul_quat(splay); for bone in thumb_joints.iter() { @@ -621,7 +588,6 @@ fn draw_hand_bones( let thumb_prox = hand_transform_array[*bone]; let tp_start = start + prior_vector.unwrap(); let tp_vector = tp_quat.mul_vec3(thumb_prox.translation); - gizmos.ray(tp_start, tp_vector, color); prior_start = Some(tp_start); prior_quat = Some(tp_quat); prior_vector = Some(tp_vector); @@ -637,7 +603,6 @@ fn draw_hand_bones( + palm_quat.mul_vec3(palm.translation) + palm_quat.mul_vec3(wrist.translation); let tm_vector = palm_quat.mul_vec3(thumb_meta.translation); - gizmos.ray(tm_start, tm_vector, color); prior_start = Some(tm_start); prior_quat = Some(splay_quat); prior_vector = Some(tm_vector); @@ -650,7 +615,7 @@ fn draw_hand_bones( } } - //better finger drawing? + //middle let thumb_joints = [ HandJoint::MIDDLE_METACARPAL, HandJoint::MIDDLE_PROXIMAL, @@ -661,7 +626,6 @@ fn draw_hand_bones( let mut prior_start: Option = None; let mut prior_quat: Option = None; let mut prior_vector: Option = None; - let color = Color::YELLOW; let splay = Quat::from_rotation_y(splay_direction * 0.0 * PI / 180.0); let splay_quat = palm_quat.mul_quat(splay); for bone in thumb_joints.iter() { @@ -673,7 +637,6 @@ fn draw_hand_bones( let thumb_prox = hand_transform_array[*bone]; let tp_start = start + prior_vector.unwrap(); let tp_vector = tp_quat.mul_vec3(thumb_prox.translation); - gizmos.ray(tp_start, tp_vector, color); prior_start = Some(tp_start); prior_quat = Some(tp_quat); prior_vector = Some(tp_vector); @@ -689,7 +652,6 @@ fn draw_hand_bones( + palm_quat.mul_vec3(palm.translation) + palm_quat.mul_vec3(wrist.translation); let tm_vector = palm_quat.mul_vec3(thumb_meta.translation); - gizmos.ray(tm_start, tm_vector, color); prior_start = Some(tm_start); prior_quat = Some(splay_quat); prior_vector = Some(tm_vector); @@ -701,7 +663,7 @@ fn draw_hand_bones( } } } - //better finger drawing? + //ring let thumb_joints = [ HandJoint::RING_METACARPAL, HandJoint::RING_PROXIMAL, @@ -712,7 +674,6 @@ fn draw_hand_bones( let mut prior_start: Option = None; let mut prior_quat: Option = None; let mut prior_vector: Option = None; - let color = Color::GREEN; let splay = Quat::from_rotation_y(splay_direction * -10.0 * PI / 180.0); let splay_quat = palm_quat.mul_quat(splay); for bone in thumb_joints.iter() { @@ -724,7 +685,6 @@ fn draw_hand_bones( let thumb_prox = hand_transform_array[*bone]; let tp_start = start + prior_vector.unwrap(); let tp_vector = tp_quat.mul_vec3(thumb_prox.translation); - gizmos.ray(tp_start, tp_vector, color); prior_start = Some(tp_start); prior_quat = Some(tp_quat); prior_vector = Some(tp_vector); @@ -740,7 +700,6 @@ fn draw_hand_bones( + palm_quat.mul_vec3(palm.translation) + palm_quat.mul_vec3(wrist.translation); let tm_vector = palm_quat.mul_vec3(thumb_meta.translation); - gizmos.ray(tm_start, tm_vector, color); prior_start = Some(tm_start); prior_quat = Some(splay_quat); prior_vector = Some(tm_vector); @@ -753,7 +712,7 @@ fn draw_hand_bones( } } - //better finger drawing? + //little let thumb_joints = [ HandJoint::LITTLE_METACARPAL, HandJoint::LITTLE_PROXIMAL, @@ -764,7 +723,6 @@ fn draw_hand_bones( let mut prior_start: Option = None; let mut prior_quat: Option = None; let mut prior_vector: Option = None; - let color = Color::BLUE; let splay = Quat::from_rotation_y(splay_direction * -20.0 * PI / 180.0); let splay_quat = palm_quat.mul_quat(splay); for bone in thumb_joints.iter() { @@ -776,7 +734,6 @@ fn draw_hand_bones( let thumb_prox = hand_transform_array[*bone]; let tp_start = start + prior_vector.unwrap(); let tp_vector = tp_quat.mul_vec3(thumb_prox.translation); - gizmos.ray(tp_start, tp_vector, color); prior_start = Some(tp_start); prior_quat = Some(tp_quat); prior_vector = Some(tp_vector); @@ -792,7 +749,6 @@ fn draw_hand_bones( + palm_quat.mul_vec3(palm.translation) + palm_quat.mul_vec3(wrist.translation); let tm_vector = palm_quat.mul_vec3(thumb_meta.translation); - gizmos.ray(tm_start, tm_vector, color); prior_start = Some(tm_start); prior_quat = Some(splay_quat); prior_vector = Some(tm_vector);