func (p *place) Align() (float64, float64) { x, y := math.Floor(p.Center().X), math.Floor(p.Center().Y) shiftX, shiftY := geometry.Align(x, y, GridDefaultGap) if shiftX == 0 && shiftY == 0 { return 0, 0 } p.Move(x, y) p.Shift(shiftX, shiftY) return shiftX, shiftY }
func (g *group) Align() (float64, float64) { x, y := math.Floor(g.Center().X), math.Floor(g.Center().Y) shiftX, shiftY := geometry.Align(x, y, GridDefaultGap) if shiftX == 0 && shiftY == 0 { return 0, 0 } g.Move(x, y) g.Shift(shiftX, shiftY) return shiftX, shiftY }
func (t *transition) Align() (float64, float64) { if t.proxy != nil { return 0, 0 //hack } x, y := math.Floor(t.Center().X), math.Floor(t.Center().Y) shiftX, shiftY := geometry.Align(x, y, GridDefaultGap) if shiftX == 0 && shiftY == 0 { return 0, 0 } t.Move(x, y) t.Shift(shiftX, shiftY) for _, p := range t.in { p.refineControls() } for _, p := range t.out { p.refineControls() } return shiftX, shiftY }