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 }