fix(input): O(n log n) instead of O(n^2)

This commit is contained in:
Nova
2022-12-02 11:09:23 -05:00
parent 6a3024657f
commit 03ccf9127d
4 changed files with 47 additions and 23 deletions

View File

@@ -26,8 +26,13 @@ impl Pointer {
}
impl InputSpecialization for Pointer {
fn distance(&self, space: &Arc<Spatial>, field: &Field) -> f32 {
self.ray_march(space, field).min_distance
fn compare_distance(&self, space: &Arc<Spatial>, field: &Field) -> f32 {
let ray_info = self.ray_march(space, field);
ray_info.deepest_point_distance.hypot(ray_info.min_distance)
}
fn true_distance(&self, space: &Arc<Spatial>, field: &Field) -> f32 {
let ray_info = self.ray_march(space, field);
ray_info.min_distance
}
fn serialize(
&self,