fix(pointer): proper distance

This commit is contained in:
Nova
2023-10-08 19:18:51 -04:00
parent 98e2740116
commit 5c8563f165
2 changed files with 7 additions and 5 deletions

View File

@@ -388,9 +388,7 @@ pub fn process_input() {
}); });
}); });
distance_links.reverse();
distance_links.truncate(LIMIT); distance_links.truncate(LIMIT);
distance_links.reverse();
distance_links distance_links
} }
}); });

View File

@@ -34,9 +34,13 @@ impl Pointer {
impl InputSpecialization for Pointer { impl InputSpecialization for Pointer {
fn compare_distance(&self, space: &Arc<Spatial>, field: &Field) -> f32 { fn compare_distance(&self, space: &Arc<Spatial>, field: &Field) -> f32 {
let ray_info = self.ray_march(space, field); let ray_info = self.ray_march(space, field);
ray_info if ray_info.min_distance > 0.0 {
.deepest_point_distance ray_info.deepest_point_distance + 1000.0
.hypot(ray_info.min_distance.recip()) } else {
ray_info
.deepest_point_distance
.hypot(0.001 / ray_info.min_distance)
}
} }
fn true_distance(&self, space: &Arc<Spatial>, field: &Field) -> f32 { fn true_distance(&self, space: &Arc<Spatial>, field: &Field) -> f32 {
let ray_info = self.ray_march(space, field); let ray_info = self.ray_march(space, field);