};
/* Do two rectangles intersect?
+ * Note: empty rectangles are valid as inputs (and never intersect).
*/
static inline boolean
u_rect_test_intersection(const struct u_rect *a,
return (!(a->x1 < b->x0 ||
b->x1 < a->x0 ||
a->y1 < b->y0 ||
- b->y1 < a->y0));
+ b->y1 < a->y0 ||
+ a->x1 < a->x0 ||
+ a->y1 < a->y0 ||
+ b->x1 < b->x0 ||
+ b->y1 < b->y0));
}
/* Find the intersection of two rectangles known to intersect.
u_rect_find_intersection(a,b);
}
else {
- b->x0 = b->x1 = b->y0 = b->y1 = 0;
+ /*
+ * Note the u_rect_xx tests deal with inclusive coordinates
+ * hence all-zero would not be an empty box.
+ */
+ b->x0 = b->y0 = 0;
+ b->x1 = b->y1 = -1;
}
}