void EdgeMesh::Face::Bridge(Edge& e0, Edge& e1) { assert(IsValid()); assert(e0.face == this && e1.face != this); AdoptEdgeLoop(e1); e0.BridgeTo(e1); assert(IsValid()); }
EdgeMesh::FacePtr EdgeMesh::Face::Split(Edge& e0, Edge& e1) { assert(IsValid()); assert(e0.face == this && e1.face == this); FacePtr newFace = std::make_unique<Face>(); e0.BridgeTo(e1); // e0 loop now separate. newFace->AdoptEdgeLoop(e0); assert(IsValid()); assert(newFace->IsValid()); return newFace; }