From 9db39d2a623da97e4f3da15d2e7611a1051ed620 Mon Sep 17 00:00:00 2001 From: Quaternions <krakow20@gmail.com> Date: Fri, 23 May 2025 14:40:06 -0700 Subject: [PATCH] physics: face crawler opti --- engine/physics/src/face_crawler.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/engine/physics/src/face_crawler.rs b/engine/physics/src/face_crawler.rs index f30a004..a012fd1 100644 --- a/engine/physics/src/face_crawler.rs +++ b/engine/physics/src/face_crawler.rs @@ -119,10 +119,11 @@ impl<F:Copy,M:MeshQuery<Normal=Vector3<F>,Offset=Fixed<4,128>>> FEV<M> }, &FEV::Edge(edge_id)=>{ //test each face collision time, ignoring roots with zero or conflicting derivative - let edge_n=mesh.edge_n(edge_id); let edge_verts=mesh.edge_verts(edge_id); let &[ev0,ev1]=edge_verts.as_ref(); - let delta_pos=body.position*2-(mesh.vert(ev0)+mesh.vert(ev1)); + let (v0,v1)=(mesh.vert(ev0),mesh.vert(ev1)); + let edge_n=v1-v0; + let delta_pos=body.position*2-(v0+v1); for (i,&edge_face_id) in mesh.edge_faces(edge_id).as_ref().iter().enumerate(){ let face_n=mesh.face_nd(edge_face_id).0; //edge_n gets parity from the order of edge_faces