if r.Max.Y > s.Max.Y {
r.Max.Y = s.Max.Y
}
- // Letting r0 and s0 be the values of r and s at the time that the method
- // is called, this next line is equivalent to:
- //
- // if max(r0.Min.X, s0.Min.X) >= min(r0.Max.X, s0.Max.X) || likewiseForY { etc }
- if r.Empty() {
+ if r.Min.X > r.Max.X || r.Min.Y > r.Max.Y {
return ZR
}
return r
rects := []Rectangle{
Rect(0, 0, 10, 10),
- Rect(10, 0, 20, 10),
Rect(1, 2, 3, 4),
Rect(4, 6, 10, 10),
Rect(2, 3, 12, 5),
if err := in(a, s); err != nil {
t.Errorf("Intersect: r=%s, s=%s, a=%s, a not in s: %v", r, s, a, err)
}
- if isZero, overlaps := a == (Rectangle{}), r.Overlaps(s); isZero == overlaps {
- t.Errorf("Intersect: r=%s, s=%s, a=%s: isZero=%t same as overlaps=%t",
- r, s, a, isZero, overlaps)
+ if a.Empty() == r.Overlaps(s) {
+ t.Errorf("Intersect: r=%s, s=%s, a=%s: empty=%t same as overlaps=%t",
+ r, s, a, a.Empty(), r.Overlaps(s))
}
largerThanA := [4]Rectangle{a, a, a, a}
largerThanA[0].Min.X--