From 187d6ee7d10016e1dba37ddb76ddc4e528bd3b56 Mon Sep 17 00:00:00 2001 From: Nova Date: Wed, 31 May 2023 08:48:24 -0400 Subject: [PATCH] fix(pointer): proper direction --- src/nodes/input/pointer.rs | 6 +++--- src/objects/input/mouse_pointer.rs | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/nodes/input/pointer.rs b/src/nodes/input/pointer.rs index 29083bd..dd05c67 100644 --- a/src/nodes/input/pointer.rs +++ b/src/nodes/input/pointer.rs @@ -18,8 +18,8 @@ pub struct Pointer {} impl Pointer { fn ray_march(&self, space: &Arc, field: &Field) -> RayMarchResult { field.ray_march(Ray { - origin: vec3(0_f32, 0_f32, 0_f32), - direction: vec3(0_f32, 0_f32, 1_f32), + origin: vec3(0.0, 0.0, 0.0), + direction: vec3(0.0, 0.0, -1.0), space: space.clone(), }) } @@ -42,7 +42,7 @@ impl InputSpecialization for Pointer { local_to_handler_matrix: Mat4, ) -> InputDataType { let (_, orientation, origin) = local_to_handler_matrix.to_scale_rotation_translation(); - let direction = local_to_handler_matrix.transform_vector3(vec3(0_f32, 0_f32, 1_f32)); + let direction = local_to_handler_matrix.transform_vector3(vec3(0.0, 0.0, -1.0)); let ray_march = self.ray_march(&distance_link.method.spatial, &distance_link.handler.field); let deepest_point = (direction * ray_march.deepest_point_distance) + origin; diff --git a/src/objects/input/mouse_pointer.rs b/src/objects/input/mouse_pointer.rs index 8968b86..00e7caf 100644 --- a/src/objects/input/mouse_pointer.rs +++ b/src/objects/input/mouse_pointer.rs @@ -62,7 +62,12 @@ impl MousePointer { let ray = ray_from_mouse(mouse.pos).unwrap(); self.spatial.set_local_transform( - Mat4::look_to_rh(ray.pos.into(), -Vec3::from(ray.dir), vec3(0.0, 1.0, 0.0)).inverse(), + Mat4::look_to_rh( + Vec3::from(ray.pos), + Vec3::from(ray.dir), + vec3(0.0, 1.0, 0.0), + ) + .inverse(), ); { // Set pointer input datamap