physics: face crawler opti
This commit is contained in:
@ -119,10 +119,11 @@ impl<F:Copy,M:MeshQuery<Normal=Vector3<F>,Offset=Fixed<4,128>>> FEV<M>
|
|||||||
},
|
},
|
||||||
&FEV::Edge(edge_id)=>{
|
&FEV::Edge(edge_id)=>{
|
||||||
//test each face collision time, ignoring roots with zero or conflicting derivative
|
//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 edge_verts=mesh.edge_verts(edge_id);
|
||||||
let &[ev0,ev1]=edge_verts.as_ref();
|
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(){
|
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;
|
let face_n=mesh.face_nd(edge_face_id).0;
|
||||||
//edge_n gets parity from the order of edge_faces
|
//edge_n gets parity from the order of edge_faces
|
||||||
|
Reference in New Issue
Block a user