// swaps an edge (a.org, b.org) with (a.dst, b.dst) void swap(edge er) { Edge_Record a, b; a = er.oprev(); b = er.sym().oprev(); splice(er, a); splice(er.sym(), b); splice(er, a.lnext()); splice(er.sym(), b.lnext()); er.get_qr().v = a.sym().get_qr().v; er.sym().get_qr().v = b.sym().get_qr().v; }
// removes an edge er, deletes its corresponding quadedge. void delete_edge(edge er) { splice(er, er.oprev()); splice(er.sym(), er.sym().oprev()); delete er.q; }