LayeredLayout.EdgeLabels
- Package
- purescript-layered-layout
- Repository
- markgrafhq/purescript-layered-layout
#EndLabelAlignment Source
data EndLabelAlignmentTAIL labels follow their authored source even when cycle removal reverses
the routing direction. Adjacent is ELK's end-label behaviour; the
explicit terminal-run mode is a renderer-neutral extension.
Constructors
Instances
#LabelPlacement Source
#EdgeLabelSpec Source
type EdgeLabelSpec = { placement :: LabelPlacement, size :: GridSize }#LabelState Source
type LabelState = { dummies :: Array LabelDummy, edges :: Array Edge, nodes :: Array Node, reservations :: Map EdgeId NodeId, specs :: Map EdgeId EdgeLabelSpec }#insert Source
insert :: Map EdgeId EdgeLabelSpec -> Graph -> Array Edge -> LabelState#prepareTailCells Source
prepareTailCells :: NodeMargins -> Graph -> LabelState -> Array { edgeId :: EdgeId, nodes :: Array NodeId } -> EdgePortOffsets -> Map NodeId GridSize -> TailCellsMeasure every tail cell in its authored source's physical coordinate system before coordinate assignment. The resulting envelope feeds layer sizing; materialization later is only a translation by the source's physical placement, so it cannot grow a planned routing gap afterwards.
#routingObstacles Source
routingObstacles :: TailCells -> Array NodePlacement -> Array NodePlacementMaterialize pre-measured source-local cells after physical owner placements are known. Do not recalculate side choice or stacking here: the exact cells that sized the layer gaps must be the routing obstacles.
#portOffsets Source
portOffsets :: LabelState -> Array Edge -> EdgePortOffsets -> EdgePortOffsets#selectSides Source
selectSides :: Array (Array NodeId) -> DummyResult -> LabelState -> LabelState#switchDummies Source
switchDummies :: LabelState -> DummyResult -> { dummies :: DummyResult, labels :: LabelState }#tailPlacements Source
tailPlacements :: NodeMargins -> Graph -> LabelState -> Array NodePlacement -> Array EdgePath -> Map EdgeId EdgeLabelPlacement -> Array EdgeLabelPlacement -> Array EdgeLabelPlacementFinal source-owned placement runs after routing and compaction. Bent terminal runs center along their own axis; their compacted reservation is retained as the only fallback when route-adjacent candidates are blocked.
- Modules
- LayeredLayout
- LayeredLayout.
Aesthetics - LayeredLayout.
Compaction. EdgeAwareScanlineConstraints - LayeredLayout.
Compaction. HorizontalGraphCompactor - LayeredLayout.
Compaction. LGraphToCGraphTransformer - LayeredLayout.
Compaction. NetworkSimplexCompaction - LayeredLayout.
Compaction. OneD - LayeredLayout.
Compaction. VerticalSegment - LayeredLayout.
Components - LayeredLayout.
CoordAssignment - LayeredLayout.
CrossingMin - LayeredLayout.
CrossingMin. Constraints - LayeredLayout.
CrossingMin. NorthSouth - LayeredLayout.
CrossingMin. Ports - LayeredLayout.
CycleRemoval - LayeredLayout.
DummyNodes - LayeredLayout.
EdgeLabels - LayeredLayout.
EdgeLabels. SelfLoops - LayeredLayout.
EdgeLabels. SelfLoops. Model - LayeredLayout.
EdgeLabels. SelfLoops. Routing - LayeredLayout.
EdgeRouting - LayeredLayout.
EdgeRouting. HyperEdgeCycleDetector - LayeredLayout.
EdgeRouting. HyperEdges - LayeredLayout.
EdgeRouting. LineJump - LayeredLayout.
EdgeRouting. Orthogonal - LayeredLayout.
EdgeRouting. PortAssignment - LayeredLayout.
Graph - LayeredLayout.
Grid - LayeredLayout.
JavaRandom - LayeredLayout.
LayerAssignment - LayeredLayout.
LayerAssignment. NetworkSimplex - LayeredLayout.
NetworkSimplex - LayeredLayout.
PortDistribution - LayeredLayout.
PortDummies - LayeredLayout.
Result