示例#1
0
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
}
示例#2
0
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
}
示例#3
0
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
}