Commit Graph

2 Commits

Author SHA1 Message Date
Ivan Krysak 4a2898596f Import graph preparation from caliban
(the following is the original commit message)

Preparation includes:
- ensuring there are no loops.
- ensuring there are no edges spanning more than a single layer.
- ensuring there are no backwards facing edges that were not split
  into a bunch of parts to simplify laying them out.
- ensuring there are no self loops (they are treated similarly to
  backwards facing edges, which they theoretically are).

Subproducts include:
- `Classifier` allowing to cheaply determine whether a given node is
  adjacent to an artificial edge.
- `Ranks` container allowing to easily determine the layer each of the
  nodes belongs to.
2022-06-14 18:55:59 +03:00
Ivan Krysak fc45885841 Outline sugiyama style layouter interface 2022-06-14 18:55:59 +03:00