func (r Rectangle) Union(s Rectangle) Rectangle {
	if r.Empty() {
		return s
	}
	if s.Empty() {
		return r
	}
	if r.Min.X > s.Min.X {
		r.Min.X = s.Min.X
	}
	if r.Min.Y > s.Min.Y {
		r.Min.Y = s.Min.Y
	}
	if r.Max.X < s.Max.X {
		r.Max.X = s.Max.X
	}
	if r.Max.Y < s.Max.Y {
		r.Max.Y = s.Max.Y
	}
	return r
}
func (r Rectangle) Union(s Rectangle) Rectangle {
	if r.Empty() {
		return s
	}
	if s.Empty() {
		return r
	}
	if r.Min.X > s.Min.X {
		r.Min.X = s.Min.X
	}
	if r.Min.Y > s.Min.Y {
		r.Min.Y = s.Min.Y
	}
	if r.Max.X < s.Max.X {
		r.Max.X = s.Max.X
	}
	if r.Max.Y < s.Max.Y {
		r.Max.Y = s.Max.Y
	}
	return r
}
func ( r Rectangle ) Union ( s Rectangle ) Rectangle { if r . Empty ( ) { return s } if s . Empty ( ) { return r } if r . Min . X > s . Min . X { r . Min . X = s . Min . X } if r . Min . Y > s . Min . Y { r . Min . Y = s . Min . Y } if r . Max . X < s . Max . X { r . Max . X = s . Max . X } if r . Max . Y < s . Max . Y { r . Max . Y = s . Max . Y } return r }
// Union returns the smallest rectangle that contains both r and s.
Union returns the smallest rectangle that contains both r and s .