fix(pointer): proper distance
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user