DirectedEdge.neg()

This commit is contained in:
Quaternions 2023-11-20 19:14:41 -08:00
parent c9f2ea0308
commit 2eadb541cc

View File

@ -19,6 +19,10 @@ pub trait DirectedEdge{
type UndirectedEdge:Copy+UndirectedEdge; type UndirectedEdge:Copy+UndirectedEdge;
fn as_undirected(&self)->Self::UndirectedEdge; fn as_undirected(&self)->Self::UndirectedEdge;
fn parity(&self)->bool; fn parity(&self)->bool;
//this is stupid but may work fine
fn neg(&self)-><<Self as DirectedEdge>::UndirectedEdge as UndirectedEdge>::DirectedEdge{
self.as_undirected().as_directed(!self.parity())
}
} }
/// DirectedEdgeId refers to an EdgeId when undirected. /// DirectedEdgeId refers to an EdgeId when undirected.
#[derive(Debug,Clone,Copy,Hash,Eq,PartialEq)] #[derive(Debug,Clone,Copy,Hash,Eq,PartialEq)]
@ -462,7 +466,7 @@ impl MeshQuery<MinkowskiFace,MinkowskiDirectedEdge,MinkowskiVert> for MinkowskiM
match face_id{ match face_id{
MinkowskiFace::VertFace(v0,f1)=>{ MinkowskiFace::VertFace(v0,f1)=>{
Cow::Owned(self.mesh1.face_edges(f1).iter().map(|&edge_id1|{ Cow::Owned(self.mesh1.face_edges(f1).iter().map(|&edge_id1|{
MinkowskiDirectedEdge::VertEdge(v0,edge_id1) MinkowskiDirectedEdge::VertEdge(v0,edge_id1.neg())
}).collect()) }).collect())
}, },
MinkowskiFace::EdgeEdge(e0,e1,parity)=>{ MinkowskiFace::EdgeEdge(e0,e1,parity)=>{