From 8542a5c02bb7ff086565f893194d2129f5767cb3 Mon Sep 17 00:00:00 2001 From: Nova Date: Fri, 16 Sep 2022 19:12:23 -0400 Subject: [PATCH] fix(box field): halve size in local_distance --- src/nodes/fields/box.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/nodes/fields/box.rs b/src/nodes/fields/box.rs index 52ff9ea..7210b58 100644 --- a/src/nodes/fields/box.rs +++ b/src/nodes/fields/box.rs @@ -49,7 +49,11 @@ impl BoxField { impl FieldTrait for BoxField { fn local_distance(&self, p: Vec3A) -> f32 { let size = self.size.lock(); - let q = vec3(p.x.abs() - size.x, p.y.abs() - size.y, p.z.abs() - size.z); + let q = vec3( + p.x.abs() - (size.x * 0.5_f32), + p.y.abs() - (size.y * 0.5_f32), + p.z.abs() - (size.z * 0.5_f32), + ); let v = vec3a(q.x.max(0_f32), q.y.max(0_f32), q.z.max(0_f32)); v.length() + q.x.max(q.y.max(q.z)).min(0_f32) }