From 3b4338b03327f5a4450fcdea17eacc5439127935 Mon Sep 17 00:00:00 2001 From: numzero Date: Sat, 14 Sep 2024 15:18:35 +0300 Subject: [PATCH] =?UTF-8?q?Early=20=E2=80=9Creturn=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mesh_tracer.rs | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/mesh_tracer.rs b/src/mesh_tracer.rs index 1053e41..bb9bbc4 100644 --- a/src/mesh_tracer.rs +++ b/src/mesh_tracer.rs @@ -13,23 +13,24 @@ pub fn trace_to_mesh(mesh: &Mesh, base: Vec3, ray: Vec3) -> Option let mut dist = f32::INFINITY; for f in mesh { let fs = (0..3).map(|k| edge_dist(f.vertices[k], f.vertices[(k + 1) % 3], base, ray)); - if fs.into_iter().all(|f| f >= 0.0) { - let m = mat3( - f.vertices[1] - f.vertices[0], - f.vertices[2] - f.vertices[0], - -ray, - ); - let m = m.inverse(); - let rel = m * (base - f.vertices[0]); - if rel.z > dist { - continue; - } - dist = rel.z; - ret = Some(TraceResult { - distance: rel.z, - normal: f.normal, - }); + if fs.into_iter().any(|f| f < 0.0) { + continue; } + let m = mat3( + f.vertices[1] - f.vertices[0], + f.vertices[2] - f.vertices[0], + -ray, + ); + let m = m.inverse(); + let rel = m * (base - f.vertices[0]); + if rel.z > dist { + continue; + } + dist = rel.z; + ret = Some(TraceResult { + distance: rel.z, + normal: f.normal, + }); } ret }