Given a set of clipping instructions encoded as a set of InputEdgeCrossings,
GraphEdgeClipper determines which graph edges correspond to clipped
portions of input edges and removes them.
The clipping model is as follows. The input consists of edge chains. The
clipper maintains an "inside" boolean state as it clips each chain, and
toggles this state whenever an input edge is crossed. Any edges that are
deemed to be "outside" after clipping are removed.
The "inside" state can be reset when necessary (e.g., when jumping to the
start of a new chain) by adding a special crossing marked kSetInside.
There are also two other special "crossings" that modify the clipping
Given a set of clipping instructions encoded as a set of InputEdgeCrossings, GraphEdgeClipper determines which graph edges correspond to clipped portions of input edges and removes them.
The clipping model is as follows. The input consists of edge chains. The clipper maintains an "inside" boolean state as it clips each chain, and toggles this state whenever an input edge is crossed. Any edges that are deemed to be "outside" after clipping are removed.
The "inside" state can be reset when necessary (e.g., when jumping to the start of a new chain) by adding a special crossing marked kSetInside. There are also two other special "crossings" that modify the clipping