Given two input edges A and B that intersect, suppose that A maps to a
chain of snapped edges A_0, A_1, ..., A_m and B maps to a chain of snapped
edges B_0, B_1, ..., B_n. CrossingGraphEdge represents an edge from chain
B that shares a vertex with chain A. It is used as a temporary data
representation while processing chain A. The arguments are:
"id" - the Graph::EdgeId of an edge from chain B.
"a_index" - the index of the vertex (A_i) that is shared with chain A.
"outgoing" - true if the shared vertex is the first vertex of the B edge.
"dst" - the Graph::VertexId of the vertex that is not shared with chain A.
Note that if an edge from the B chain shares both vertices with the A
chain, there will be two entries: an outgoing edge that treats its first
vertex as being shared, and an incoming edge that treats its second vertex
as being shared.
Given two input edges A and B that intersect, suppose that A maps to a chain of snapped edges A_0, A_1, ..., A_m and B maps to a chain of snapped edges B_0, B_1, ..., B_n. CrossingGraphEdge represents an edge from chain B that shares a vertex with chain A. It is used as a temporary data representation while processing chain A. The arguments are:
"id" - the Graph::EdgeId of an edge from chain B. "a_index" - the index of the vertex (A_i) that is shared with chain A. "outgoing" - true if the shared vertex is the first vertex of the B edge. "dst" - the Graph::VertexId of the vertex that is not shared with chain A.
Note that if an edge from the B chain shares both vertices with the A chain, there will be two entries: an outgoing edge that treats its first vertex as being shared, and an incoming edge that treats its second vertex as being shared.