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)
/* sort by: | */
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 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 FourSides Type = 4
const OneSide Type = 0
const ThreeSides Type = 3
const TwoSidesCorner Type = 1