package loops
Import Path
github.com/d2lang/elk-go/internal/layered/intermediate/loops (on go.dev)
Dependency Relation
imports 5 packages, and imported by 3 packages
Involved Source Files
Package loops contains ELK Layered 0.8.1's temporary self-loop model.
Package-Level Type Names (total 7)
HyperLoop *HyperLoop
LEdge layered.LEdgeID
Source *Port
Target *Port
IsInline reports whether this self-loop edge has at least one inline label.
ELK 0.11 uses the per-edge flag while routing opposing-side self loops.
LabelSide returns the aggregate side selected for this edge's hyper-loop.
func (*HyperLoop).AddEdge(arena *layered.LGraphArena, edge *Edge)
HyperLoops []*HyperLoop
LNode layered.LNodeID
PortOrder []layered.LPortID
Ports map[layered.LPortID]*Port
PortsHidden bool
RoutingSlotCount [5]int
func Install(arena *layered.LGraphArena, nodeID layered.LNodeID) (*Holder, error)
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/ordering.AssignPortSides(arena *layered.LGraphArena, holder *Holder) error
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/ordering.RestorePorts(arena *layered.LGraphArena, holder *Holder) error
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/routing.AssignRoutingSlots(arena *layered.LGraphArena, holder *Holder)
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/routing.DetermineLoopRoutes(arena *layered.LGraphArena, holder *Holder) error
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/routing.PlaceLabels(arena *layered.LGraphArena, holder *Holder) error
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/routing.RouteOrthogonal(arena *layered.LGraphArena, holder *Holder)
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/routing.RoutePolyline(arena *layered.LGraphArena, holder *Holder)
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/routing.RouteSpline(arena *layered.LGraphArena, holder *Holder)
Edges []*Edge
Holder *Holder
Labels *Labels
LeftmostPort *Port
OccupiedSides [5]bool
Ports []*Port
PortsBySide [5][]*Port
RightmostPort *Port
RoutingSlot [5]int
Type Type
(*HyperLoop) AddEdge(arena *layered.LGraphArena, edge *Edge)
(*HyperLoop) ComputePortsPerSide(arena *layered.LGraphArena) error
(*HyperLoop) HasPortsOnSide(side layered.PortSide) bool
(*HyperLoop) PortSides() []layered.PortSide
(*HyperLoop) SetRoutingSlot(side layered.PortSide, slot int)
func github.com/d2lang/elk-go/internal/layered/intermediate/loops/ordering.SortedTwoSideLoopPortSides(loop *HyperLoop) [2]layered.PortSide
LabelAlignment is SelfHyperLoopLabels.Alignment in declaration order.
const LabelCenter
const LabelLeft
const LabelRight
const LabelTop
Alignment LabelAlignment
AlignmentReference *Port
ID int
LLabels []layered.LLabelID
LabelLabelSpacing float64
LayoutDirection layered.Direction
Position geometry.Point
Side layered.PortSide
Size geometry.Point
(*Labels) Add(arena *layered.LGraphArena, ids []layered.LLabelID)
ApplyPlacement transfers the aggregate label box back to individual labels.
HadOnlySelfLoops bool
Hidden bool
Incoming []*Edge
LPort layered.LPortID
Outgoing []*Edge
(*Port) NetFlow() int
func TypeFromPortSides(sides [5]bool) (Type, error)
const FourSides
const OneSide
const ThreeSides
const TwoSidesCorner
const TwoSidesOpposing
Package-Level Functions (total 4)
func IndividualOrInherited(arena *layered.LGraphArena, nodeID layered.LNodeID, property basegraph.Property[float64]) float64 func NeedsProcessing(arena *layered.LGraphArena, nodeID layered.LNodeID) bool func TypeFromPortSides(sides [5]bool) (Type, error)
Package-Level Variables (only one)
HolderProperty is InternalProperties.SELF_LOOP_HOLDER. Keeping the
property here avoids making the shared layered package depend on an
intermediate processor package.
Package-Level Constants (total 9)
const LabelCenter LabelAlignment = 0 const LabelLeft LabelAlignment = 1 const LabelRight LabelAlignment = 2 const LabelTop LabelAlignment = 3 const ThreeSides Type = 3 const TwoSidesCorner Type = 1 const TwoSidesOpposing Type = 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. |