physics: predict_collision_face_out returns directed edge

This commit is contained in:
Quaternions 2025-03-19 14:32:40 -07:00
parent 02615af1fd
commit 2a5f610650

@ -757,7 +757,7 @@ impl MinkowskiMesh<'_>{
.map(|(face,time)|(face,-time))
})
}
pub fn predict_collision_face_out(&self,relative_body:&Body,Range{start:start_time,end:time_limit}:Range<Time>,contact_face_id:MinkowskiFace)->Option<(MinkowskiEdge,GigaTime)>{
pub fn predict_collision_face_out(&self,relative_body:&Body,Range{start:start_time,end:time_limit}:Range<Time>,contact_face_id:MinkowskiFace)->Option<(MinkowskiDirectedEdge,GigaTime)>{
//no algorithm needed, there is only one state and two cases (Edge,None)
//determine when it passes an edge ("sliding off" case)
let start_time={
@ -787,7 +787,7 @@ impl MinkowskiMesh<'_>{
}
}
}
best_edge.map(|e|(e.as_undirected(),best_time))
best_edge.map(|e|(e,best_time))
}
fn infinity_in(&self,infinity_body:Body)->Option<(MinkowskiFace,GigaTime)>{
let infinity_fev=self.infinity_fev(-infinity_body.velocity,infinity_body.position);