LayeredLayout.PortDistribution
- Package
- purescript-layered-layout
- Repository
- markgrafhq/purescript-layered-layout
Turn the physical port order selected by crossing minimization into offsets shared by BK and routing. A rank identifies a physical port: several edges at the same rank occupy one slot, not several slots.
Re-exports from LayeredLayout.EdgeRouting.PortAssignment
#EdgePortOffsets Source
type EdgePortOffsets = Map (EdgeId /\ Side) NumberPort-distribution result: per-edge x-offset on a node side, in
fine-grid coordinates relative to the node's left edge. Built by
LayeredLayout.PortDistribution.distributePorts (post-BK) and
consumed by assignPorts (edge routing) so the recorded offset
overrides the per-call distributeAlongSide re-derivation.
#distributeAlongSide Source
distributeAlongSide :: { hi :: Number, lo :: Number } -> Array EdgeId -> Map EdgeId NumberEven-distribution port-spacing formula from ELK's LGraphUtil.placePorts.
position_i = lo + (i + 1) * width / (n + 1)
with i ∈ [0, n), so 1 sibling sits at center; 2 at thirds; 3 at quarters.
The order of the input array decides which sibling lands at which slot —
callers sort by their preferred criterion (target layer-index, source
barycenter, etc.) before passing in.
- 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