package p1cycles
Import Path
github.com/d2lang/elk-go/internal/layered/p1cycles (on go.dev)
Dependency Relation
imports 6 packages, and imported by one package
Involved Source Files
depth_first.go
dfs_node_order.go
Package p1cycles implements ELK Layered phase 1.
interactive.go
model_order.go
scc_node_type.go
Package-Level Type Names (total 6)
DepthFirstCycleBreaker is the direct ELK 0.8.1 depth-first cycle breaker.
Edges encountered while their target is active on the DFS path are reversed
after traversal, preserving Java's edge-iteration and reversal order.
(*DepthFirstCycleBreaker) Process(arena *layered.LGraphArena, graphID layered.LGraphID) error
(*DepthFirstCycleBreaker) ProcessorConfiguration(_ *layered.LGraphArena, _ layered.LGraphID) layered.ProcessorConfiguration
*DepthFirstCycleBreaker : github.com/d2lang/elk-go/internal/layered.ConfiguredProcessor
*DepthFirstCycleBreaker : github.com/d2lang/elk-go/internal/layered.LayoutProcessor
DFSNodeOrderCycleBreaker ports ELK 0.12.0's depth-first cycle breaker that
visits outgoing targets in node model order (or enforced group-model order)
instead of raw edge order.
(*DFSNodeOrderCycleBreaker) Process(arena *layered.LGraphArena, graphID layered.LGraphID) error
(*DFSNodeOrderCycleBreaker) ProcessorConfiguration(_ *layered.LGraphArena, _ layered.LGraphID) layered.ProcessorConfiguration
*DFSNodeOrderCycleBreaker : github.com/d2lang/elk-go/internal/layered.ConfiguredProcessor
*DFSNodeOrderCycleBreaker : github.com/d2lang/elk-go/internal/layered.LayoutProcessor
ModelOrderTies bool
(*GreedyCycleBreaker) Process(arena *layered.LGraphArena, graphID layered.LGraphID) error
(*GreedyCycleBreaker) ProcessorConfiguration(_ *layered.LGraphArena, _ layered.LGraphID) layered.ProcessorConfiguration
*GreedyCycleBreaker : github.com/d2lang/elk-go/internal/layered.ConfiguredProcessor
*GreedyCycleBreaker : github.com/d2lang/elk-go/internal/layered.LayoutProcessor
func NewGreedyCycleBreaker() *GreedyCycleBreaker
func NewGreedyModelOrderCycleBreaker() *GreedyCycleBreaker
InteractiveCycleBreaker first follows the direction suggested by existing
x coordinates, then uses ELK's DFS pass to remove any remaining cycles.
(*InteractiveCycleBreaker) Process(arena *layered.LGraphArena, graphID layered.LGraphID) error
(*InteractiveCycleBreaker) ProcessorConfiguration(_ *layered.LGraphArena, _ layered.LGraphID) layered.ProcessorConfiguration
*InteractiveCycleBreaker : github.com/d2lang/elk-go/internal/layered.ConfiguredProcessor
*InteractiveCycleBreaker : github.com/d2lang/elk-go/internal/layered.LayoutProcessor
ModelOrderCycleBreaker reverses edges that run against the imported model
order, including ELK's offsets for first/last layer constraints.
(*ModelOrderCycleBreaker) Process(arena *layered.LGraphArena, graphID layered.LGraphID) error
(*ModelOrderCycleBreaker) ProcessorConfiguration(_ *layered.LGraphArena, _ layered.LGraphID) layered.ProcessorConfiguration
*ModelOrderCycleBreaker : github.com/d2lang/elk-go/internal/layered.ConfiguredProcessor
*ModelOrderCycleBreaker : github.com/d2lang/elk-go/internal/layered.LayoutProcessor
SCCNodeTypeCycleBreaker ports ELK 0.12's SCC_NODE_TYPE strategy. It first
finds strongly connected components, then chooses reversals from each
component using constrained model order and the preferred source/target
group IDs.
(*SCCNodeTypeCycleBreaker) Process(arena *layered.LGraphArena, graphID layered.LGraphID) error
(*SCCNodeTypeCycleBreaker) ProcessorConfiguration(_ *layered.LGraphArena, _ layered.LGraphID) layered.ProcessorConfiguration
*SCCNodeTypeCycleBreaker : github.com/d2lang/elk-go/internal/layered.ConfiguredProcessor
*SCCNodeTypeCycleBreaker : github.com/d2lang/elk-go/internal/layered.LayoutProcessor
Package-Level Functions (total 2)
![]() |
The pages are generated with Golds v0.8.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |