Add Anchor.Opposite() func
This commit is contained in:
parent
2342984744
commit
c9681cec8a
29
geometry.go
29
geometry.go
|
@ -553,13 +553,13 @@ type Anchor Vec
|
||||||
var (
|
var (
|
||||||
Center = Anchor{0.5, 0.5}
|
Center = Anchor{0.5, 0.5}
|
||||||
Top = Anchor{0.5, 0}
|
Top = Anchor{0.5, 0}
|
||||||
TopRight = Anchor{0, 0}
|
TopRight = Anchor{0, 0}
|
||||||
Right = Anchor{0, 0.5}
|
Right = Anchor{0, 0.5}
|
||||||
BottomRight = Anchor{0, 1}
|
BottomRight = Anchor{0, 1}
|
||||||
Bottom = Anchor{0.5, 1}
|
Bottom = Anchor{0.5, 1}
|
||||||
BottomLeft = Anchor{1, 1}
|
BottomLeft = Anchor{1, 1}
|
||||||
Left = Anchor{1, 0.5}
|
Left = Anchor{1, 0.5}
|
||||||
TopLeft = Anchor{1, 0}
|
TopLeft = Anchor{1, 0}
|
||||||
)
|
)
|
||||||
|
|
||||||
var anchorStrings map[Anchor]string = map[Anchor]string{
|
var anchorStrings map[Anchor]string = map[Anchor]string{
|
||||||
|
@ -579,6 +579,23 @@ func (anchor Anchor) String() string {
|
||||||
return anchorStrings[anchor]
|
return anchorStrings[anchor]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var oppositeAnchors map[Anchor]Anchor = map[Anchor]Anchor{
|
||||||
|
Center: Center,
|
||||||
|
Top: Bottom,
|
||||||
|
Bottom: Top,
|
||||||
|
Right: Left,
|
||||||
|
Left: Right,
|
||||||
|
TopRight: BottomLeft,
|
||||||
|
BottomLeft: TopRight,
|
||||||
|
BottomRight: TopLeft,
|
||||||
|
TopLeft: BottomRight,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Opposite returns the opposite position of the anchor (ie. Top -> Bottom; BottomLeft -> TopRight, etc.).
|
||||||
|
func (anchor Anchor) Opposite() Anchor {
|
||||||
|
return oppositeAnchors[anchor]
|
||||||
|
}
|
||||||
|
|
||||||
// AnchorPos returns the relative position of the given anchor.
|
// AnchorPos returns the relative position of the given anchor.
|
||||||
func (r Rect) AnchorPos(anchor Anchor) Vec {
|
func (r Rect) AnchorPos(anchor Anchor) Vec {
|
||||||
return r.Size().ScaledXY(V(0, 0).Sub(Vec(anchor)))
|
return r.Size().ScaledXY(V(0, 0).Sub(Vec(anchor)))
|
||||||
|
|
Loading…
Reference in New Issue