package components
import "github.com/d2lang/elk-go/internal/layered"
var modelOrderConstraints = map [uint8 ][]uint8 {
sidesNorth : {
sidesNone , sidesEast , sidesSouth , sidesWest , sidesNorthEast ,
sidesEastSouth , sidesSouthWest , sidesEastWest , sidesEastSouthWest ,
sidesNorthSouthWest , sidesNorthEastSouth ,
},
sidesWest : {
sidesNone , sidesEast , sidesSouth , sidesNorthEast , sidesEastSouth ,
sidesSouthWest , sidesEastSouthWest , sidesNorthEastSouth ,
},
sidesNorthEast : {
sidesNone , sidesEast , sidesSouth , sidesWest , sidesNorthEast ,
sidesEastSouth , sidesSouthWest , sidesEastWest , sidesEastSouthWest ,
sidesNorthSouthWest , sidesNorthEastSouth , sidesNorthEastSouthWest ,
},
sidesNorthWest : {
sidesNone , sidesNorth , sidesEast , sidesSouth , sidesWest , sidesNorthEast ,
sidesEastSouth , sidesSouthWest , sidesEastWest , sidesEastSouthWest ,
sidesNorthEastSouth , sidesNorthEastSouthWest ,
},
sidesNorthSouthWest : {
sidesNone , sidesEast , sidesSouth , sidesNorthEast , sidesEastSouth ,
},
sidesNorthEastWest : {
sidesNone , sidesEast , sidesSouth , sidesWest , sidesEastSouth ,
sidesSouthWest , sidesEastWest , sidesEastSouthWest ,
},
sidesNone : {
sidesEast , sidesSouth , sidesEastSouth , sidesSouthWest ,
sidesEastSouthWest , sidesNorthEastSouth ,
},
sidesEast : {
sidesSouth , sidesEastSouth , sidesSouthWest , sidesEastSouthWest ,
sidesNorthSouthWest ,
},
sidesSouth : {
sidesEastSouth , sidesNorthSouthWest , sidesNorthEastSouth ,
},
sidesNorthSouth : {
sidesEast , sidesSouth , sidesEastSouth , sidesSouthWest ,
sidesEastSouthWest , sidesNorthEastSouth , sidesNone , sidesNorth ,
},
sidesEastWest : {
sidesEast , sidesSouth , sidesEastSouth , sidesSouthWest ,
sidesEastSouthWest , sidesNone , sidesWest ,
},
sidesSouthWest : {
sidesSouth , sidesEastSouth , sidesSouthWest , sidesEastWest ,
},
sidesNorthEastSouth : {
sidesSouth , sidesSouthWest ,
},
sidesNorthEastSouthWest : {
sidesEastSouth , sidesSouthWest ,
},
}
type modelOrderComponentGroup struct {
group *componentGroup
componentOrder []layered .LGraphID
}
func newModelOrderComponentGroup(
arena *layered .LGraphArena ,
component layered .LGraphID ,
) *modelOrderComponentGroup {
group := &modelOrderComponentGroup {
group : &componentGroup {componentsBySides : make (map [uint8 ][]layered .LGraphID )},
}
group .add (arena , component )
group .componentOrder = append (group .componentOrder , component )
return group
}
func (group *modelOrderComponentGroup ) add (
arena *layered .LGraphArena ,
component layered .LGraphID ,
) bool {
if !group .group .canAdd (arena , component , modelOrderConstraints ) {
return false
}
group .group .insert (arena , component )
group .componentOrder = append (group .componentOrder , component )
return true
}
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 .