//[Verify (PlatformInvoke)]
 public static extern bool BMKMapRectContainsPoint(BMKMapRect rect, BMKMapPoint point);
 //[Verify (PlatformInvoke)]
 public static extern bool BMKMapRectContainsRect(BMKMapRect rect1, BMKMapRect rect2);
 //[Verify (PlatformInvoke)]
 public static extern BMKMapRect BMKMapRectOffset(BMKMapRect rect, double dx, double dy);
 //[Verify (PlatformInvoke)]
 public static extern unsafe void BMKMapRectDivide(BMKMapRect rect, BMKMapRect *slice, BMKMapRect *remainder, double amount, CGRectEdge edge);
 // double BMKMapRectGetMaxX (BMKMapRect rect);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern double BMKMapRectGetMaxX (BMKMapRect rect);
 public static double BMKMapRectGetMaxX(BMKMapRect rect)
 {
     return(rect.origin.x + rect.size.width);
 }
 //[Verify (PlatformInvoke)]
 public static extern BMKMapRect BMKMapRectIntersection(BMKMapRect rect1, BMKMapRect rect2);
 // BOOL BMKMapRectIsEmpty (BMKMapRect rect);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern bool BMKMapRectIsEmpty (BMKMapRect rect);
 public static bool BMKMapRectIsEmpty(BMKMapRect rect)
 {
     return(BMKMapRectIsNull(rect) || (0.0 == rect.size.width && 0.0 == rect.size.height));
 }
 //[Verify (PlatformInvoke)]
 public static extern bool BMKMapRectSpans180thMeridian(BMKMapRect rect);
 // BOOL BMKMapRectEqualToRect (BMKMapRect rect1, BMKMapRect rect2);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern bool BMKMapRectEqualToRect (BMKMapRect rect1, BMKMapRect rect2);
 public static bool BMKMapRectEqualToRect(BMKMapRect rect1, BMKMapRect rect2)
 {
     return(BMKMapPointEqualToPoint(rect1.origin, rect2.origin) &&
            BMKMapSizeEqualToSize(rect1.size, rect2.size));
 }
 // BOOL BMKMapRectIsNull (BMKMapRect rect);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern bool BMKMapRectIsNull (BMKMapRect rect);
 public static bool BMKMapRectIsNull(BMKMapRect rect)
 {
     // return isinf(rect.origin.x) || isinf(rect.origin.y);
     return(double.IsInfinity(rect.origin.x) || double.IsInfinity(rect.origin.y));
 }
 // double BMKMapRectGetHeight (BMKMapRect rect);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern double BMKMapRectGetHeight (BMKMapRect rect);
 public static double BMKMapRectGetHeight(BMKMapRect rect)
 {
     return(rect.size.height);
 }
 // double BMKMapRectGetWidth (BMKMapRect rect);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern double BMKMapRectGetWidth (BMKMapRect rect);
 public static double BMKMapRectGetWidth(BMKMapRect rect)
 {
     return(rect.size.width);
 }
 // double BMKMapRectGetMaxY (BMKMapRect rect);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern double BMKMapRectGetMaxY (BMKMapRect rect);
 public static double BMKMapRectGetMaxY(BMKMapRect rect)
 {
     return(rect.origin.y + rect.size.height);
 }
 //[Verify (PlatformInvoke)]
 public static extern bool BMKMapRectIntersectsRect(BMKMapRect rect1, BMKMapRect rect2);
 // NSString * BMKStringFromMapRect (BMKMapRect rect);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern NSString BMKStringFromMapRect (BMKMapRect rect);
 public static string BMKStringFromMapRect(BMKMapRect rect)
 {
     // "{%@, %@}"
     return($"{{{BMKStringFromMapPoint(rect.origin)}, {BMKStringFromMapSize(rect.size)}}}");
 }
 //[Verify (PlatformInvoke)]
 public static extern BMKCoordinateRegion BMKCoordinateRegionForMapRect(BMKMapRect rect);
 //[Verify (PlatformInvoke)]
 public static extern BMKMapRect BMKMapRectUnion(BMKMapRect rect1, BMKMapRect rect2);
 //[Verify (PlatformInvoke)]
 public static extern int BMKMapRectRemainder(BMKMapRect rect);
 // double BMKMapRectGetMinY (BMKMapRect rect);
 //[DllImport ("__Internal")]
 //[Verify (PlatformInvoke)]
 //static extern double BMKMapRectGetMinY (BMKMapRect rect);
 public static double BMKMapRectGetMinY(BMKMapRect rect)
 {
     return(rect.origin.y);
 }