Given an unsorted collection of edges, transform them according to the
given set of GraphOptions. This includes actions such as discarding
degenerate edges; merging duplicate edges; and canonicalizing sibling
edge pairs in several possible ways (e.g. discarding or creating them).
The output is suitable for passing to the Graph constructor.
If options.edge_type() == EdgeType::UNDIRECTED, then all input edges
should already have been transformed into a pair of directed edges.
"input_ids" is a vector of the same length as "edges" that indicates
which input edges were snapped to each edge. This vector is also updated
appropriately as edges are discarded, merged, etc.
Note that "options" may be modified by this method: in particular, the
edge_type() can be changed if sibling_pairs() is CREATE or REQUIRE (see
the description of S2Builder::GraphOptions).
Given an unsorted collection of edges, transform them according to the given set of GraphOptions. This includes actions such as discarding degenerate edges; merging duplicate edges; and canonicalizing sibling edge pairs in several possible ways (e.g. discarding or creating them). The output is suitable for passing to the Graph constructor.
If options.edge_type() == EdgeType::UNDIRECTED, then all input edges should already have been transformed into a pair of directed edges.
"input_ids" is a vector of the same length as "edges" that indicates which input edges were snapped to each edge. This vector is also updated appropriately as edges are discarded, merged, etc.
Note that "options" may be modified by this method: in particular, the edge_type() can be changed if sibling_pairs() is CREATE or REQUIRE (see the description of S2Builder::GraphOptions).