Monobjc.ApplicationServices.CGRect.CGRectIntersection C# (CSharp) Method

CGRectIntersection() public static method

Returns the intersection of two rectangles.
Original declaration is : CGRect CGRectIntersection ( CGRect rect1, CGRect rect2 );
public static CGRectIntersection ( CGRect rect1, CGRect rect2 ) : CGRect
rect1 CGRect The first source rectangle.
rect2 CGRect The second source rectangle.
return CGRect
        public static CGRect CGRectIntersection(CGRect rect1, CGRect rect2)
        {
            if (((CGRectGetMaxX(rect1) <= CGRectGetMinX(rect2)) || (CGRectGetMaxX(rect2) <= CGRectGetMinX(rect1))) ||
                ((CGRectGetMaxY(rect1) <= CGRectGetMinY(rect2)) || (CGRectGetMaxY(rect2) <= CGRectGetMinY(rect1))))
            {
                return CGRectZero;
            }

            CGRect result = new CGRect();

            result.origin.x = (CGRectGetMinX(rect1) <= CGRectGetMinX(rect2)) ? CGRectGetMinX(rect2) : CGRectGetMinX(rect1);
            result.origin.y = (CGRectGetMinY(rect1) <= CGRectGetMinY(rect2)) ? CGRectGetMinY(rect2) : CGRectGetMinY(rect1);

            result.size.width = (CGRectGetMaxX(rect1) >= CGRectGetMaxX(rect2)) ? (CGRectGetMaxX(rect2) - result.origin.x) : (CGRectGetMaxX(rect1) - result.origin.x);
            result.size.height = (CGRectGetMaxY(rect1) >= CGRectGetMaxY(rect2)) ? (CGRectGetMaxY(rect2) - result.origin.y) : (CGRectGetMaxY(rect1) - result.origin.y);

            return result;
        }