コード例 #1
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Bounds(l, r, b, t float32) []simplex.Constraint {
	return []simplex.Constraint{
		simplex.Constrain(simplex.Coef{1, a.l}).GreaterEq(float64(l)),
		simplex.Constrain(simplex.Coef{1, a.r}).LessEq(float64(r)),
		simplex.Constrain(simplex.Coef{1, a.b}).GreaterEq(float64(b)),
		simplex.Constrain(simplex.Coef{1, a.t}).LessEq(float64(t)),
	}
}
コード例 #2
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) AlignTops(b Box, by float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, b.t}, simplex.Coef{-1, a.t}).GreaterEq(float64(by))
}
コード例 #3
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) After(b Box, by float32) simplex.Constraint {
	// TODO this is the crux of adaptive layout model, along with a Before method.
	// Consider how box a would be after box b if room, otherwise box a is below box b.
	// Note in the latter case, box a should not be aligned after box b when below.
	return simplex.Constrain(simplex.Coef{1, a.l}, simplex.Coef{-1, b.r}).GreaterEq(float64(by))
}
コード例 #4
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Below(b Box, by float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, b.b}, simplex.Coef{-1, a.t}).GreaterEq(float64(by))
}
コード例 #5
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) CenterHorizontalIn(b Box) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, b.l}, simplex.Coef{1, b.r}, simplex.Coef{-1, a.l}, simplex.Coef{-1, a.r})
}
コード例 #6
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Before(b Box, by float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, b.l}, simplex.Coef{-1, a.r}).GreaterEq(float64(by))
}
コード例 #7
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Z(z float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, a.z}).Equal(float64(z))
}
コード例 #8
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) CenterVerticalIn(b Box) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, b.b}, simplex.Coef{1, b.t}, simplex.Coef{-1, a.b}, simplex.Coef{-1, a.t})
}
コード例 #9
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Top(x float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, a.t}).Equal(float64(x))
}
コード例 #10
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Bottom(x float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, a.b}).Equal(float64(x))
}
コード例 #11
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Start(x float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, a.l}).Equal(float64(x))
}
コード例 #12
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Height(x float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, a.t}, simplex.Coef{-1, a.b}).Equal(float64(x))
}
コード例 #13
0
ファイル: layout.go プロジェクト: dskinner/material
func (a Box) Width(x float32) simplex.Constraint {
	return simplex.Constrain(simplex.Coef{1, a.r}, simplex.Coef{-1, a.l}).Equal(float64(x))
}