Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Preconditions
  • The graph has a proper layering. (except for self-loops)
  • Node orders are fixed.
  • Port positions are fixed.
  • An implementation may allow in-layer connections.
  • An implementation may require node margins to be set.
Postconditions
  • Each node is assigned a y coordinate such that no two nodes overlap.
  • The height of each layer is set.
  • The height of the graph is set to the maximal layer height.
Remarks
  • Support for in-layer connections may be required to be able to handle certain problems. (odd port sides, for instance)
  • If node margins are supported, the NodeMarginCalculator can compute them.
  • Port positions can be fixed by using the PortPositionProcessor.
Implementations
  • LinearSegmentsNodePlacer. Builds linear segments of nodes that should have the same y coordinate and tries to respect those linear segments. Linear segments are placed according to a barycenter heuristic. Inspired by
    • Georg Sander, A fast heuristic for hierarchical Manhattan layout. In Proceedings of the Symposium on Graph Drawing (GD'95), LNCS vol. 1027, pp. 447-458, Springer, 1996.

  • BKNodePlacer. ??? Inspired by Assembles nodes into blocks placed in straight lines in an attempt to minimize the number of edge bends, similar to the linear segments node placer. However, instead of using a barycenter heuristic to place nodes, the placement also tries to minimize the number of edge bends, usually resulting in diagrams that require more space.
    • Ulrik Brandes and Boris Köpf, Fast and simple horizontal coordinate assignment. In Proceedings of the 9th International Symposium on Graph Drawing (GD'01), LNCS vol. 2265, pp. 33-36, Springer, 2002.

...