Overlaps and Intersect should use >= / <= for their checks.
func (r Rectangle) Overlaps(s Rectangle) bool {
return r.Min.X <= s.Max.X && s.Min.X <= r.Max.X &&
r.Min.Y <= s.Max.Y && s.Min.Y <= r.Max.Y
}
instead of
func (r Rectangle) Overlaps(s Rectangle) bool {
return r.Min.X < s.Max.X && s.Min.X < r.Max.X &&
r.Min.Y < s.Max.Y && s.Min.Y < r.Max.Y
}
Overlaps and Intersect should use >= / <= for their checks. func (r Rectangle) Overlaps(s Rectangle) bool { return r.Min.X <= s.Max.X && s.Min.X <= r.Max.X && r.Min.Y <= s.Max.Y && s.Min.Y <= r.Max.Y } instead of func (r Rectangle) Overlaps(s Rectangle) bool { return r.Min.X < s.Max.X && s.Min.X < r.Max.X && r.Min.Y < s.Max.Y && s.Min.Y < r.Max.Y }