/// <summary> /// Intersect Shared Method /// </summary> /// /// <remarks> /// Produces a new Rectangle by intersecting 2 existing /// Rectangles. Returns null if there is no intersection. /// </remarks> public static Rectangle Intersect(Rectangle a, Rectangle b) { // MS.NET returns a non-empty rectangle if the two rectangles // touch each other if (!a.IntersectsWithInclusive(b)) { return(Empty); } return(Rectangle.FromLTRB( Math.Max(a.Left, b.Left), Math.Max(a.Top, b.Top), Math.Min(a.Right, b.Right), Math.Min(a.Bottom, b.Bottom))); }
/// <summary> /// Intersect Shared Method /// </summary> /// /// <remarks> /// Produces a new Rectangle by intersecting 2 existing /// Rectangles. Returns null if there is no intersection. /// </remarks> public static Rectangle Intersect(Rectangle a, Rectangle b) { // MS.NET returns a non-empty rectangle if the two rectangles // touch each other if (!a.IntersectsWithInclusive(b)) return Empty; return Rectangle.FromLTRB( Math.Max(a.Left, b.Left), Math.Max(a.Top, b.Top), Math.Min(a.Right, b.Right), Math.Min(a.Bottom, b.Bottom)); }