Skip to content

Commit

Permalink
Add Anchor.Opposite() func
Browse files Browse the repository at this point in the history
  • Loading branch information
roipoussiere committed Aug 12, 2020
1 parent 2342984 commit c9681ce
Showing 1 changed file with 23 additions and 6 deletions.
29 changes: 23 additions & 6 deletions geometry.go
Original file line number Diff line number Diff line change
Expand Up @@ -553,13 +553,13 @@ type Anchor Vec
var (
Center = Anchor{0.5, 0.5}
Top = Anchor{0.5, 0}
TopRight = Anchor{0, 0}
Right = Anchor{0, 0.5}
BottomRight = Anchor{0, 1}
TopRight = Anchor{0, 0}
Right = Anchor{0, 0.5}
BottomRight = Anchor{0, 1}
Bottom = Anchor{0.5, 1}
BottomLeft = Anchor{1, 1}
Left = Anchor{1, 0.5}
TopLeft = Anchor{1, 0}
BottomLeft = Anchor{1, 1}
Left = Anchor{1, 0.5}
TopLeft = Anchor{1, 0}
)

var anchorStrings map[Anchor]string = map[Anchor]string{
Expand All @@ -579,6 +579,23 @@ func (anchor Anchor) String() string {
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.
func (r Rect) AnchorPos(anchor Anchor) Vec {
return r.Size().ScaledXY(V(0, 0).Sub(Vec(anchor)))
Expand Down

0 comments on commit c9681ce

Please sign in to comment.