diff --git a/common/rect.h b/common/rect.h index 768d1ebbb963..1106ec171463 100644 --- a/common/rect.h +++ b/common/rect.h @@ -169,6 +169,20 @@ struct Rect { return (left < r.right) && (r.left < right) && (top < r.bottom) && (r.top < bottom); } + /** + * Find the intersecting rectangle between this rectangle and the given rectangle + * + * @param r the intersecting rectangle + * + * @return the intersection of the rectangles or an empty rectangle if not intersecting + */ + Rect findIntersectingRect(const Rect &r) const { + if (!intersects(r)) + return Rect(); + + return Rect(MAX(r.left, left), MAX(r.top, top), MIN(r.right, right), MIN(r.bottom, bottom)); + } + /** * Extend this rectangle so that it contains r *