objc2_map_kit/generated/
MKGeometry.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8#[cfg(feature = "objc2-core-location")]
9use objc2_core_location::*;
10use objc2_foundation::*;
11
12use crate::*;
13
14/// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkcoordinatespan?language=objc)
15#[cfg(feature = "objc2-core-location")]
16#[repr(C)]
17#[derive(Clone, Copy, Debug, PartialEq)]
18pub struct MKCoordinateSpan {
19    pub latitudeDelta: CLLocationDegrees,
20    pub longitudeDelta: CLLocationDegrees,
21}
22
23#[cfg(feature = "objc2-core-location")]
24unsafe impl Encode for MKCoordinateSpan {
25    const ENCODING: Encoding = Encoding::Struct(
26        "?",
27        &[<CLLocationDegrees>::ENCODING, <CLLocationDegrees>::ENCODING],
28    );
29}
30
31#[cfg(feature = "objc2-core-location")]
32unsafe impl RefEncode for MKCoordinateSpan {
33    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
34}
35
36/// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkcoordinateregion?language=objc)
37#[cfg(feature = "objc2-core-location")]
38#[repr(C)]
39#[derive(Clone, Copy, Debug, PartialEq)]
40pub struct MKCoordinateRegion {
41    pub center: CLLocationCoordinate2D,
42    pub span: MKCoordinateSpan,
43}
44
45#[cfg(feature = "objc2-core-location")]
46unsafe impl Encode for MKCoordinateRegion {
47    const ENCODING: Encoding = Encoding::Struct(
48        "?",
49        &[
50            <CLLocationCoordinate2D>::ENCODING,
51            <MKCoordinateSpan>::ENCODING,
52        ],
53    );
54}
55
56#[cfg(feature = "objc2-core-location")]
57unsafe impl RefEncode for MKCoordinateRegion {
58    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
59}
60
61#[cfg(feature = "objc2-core-location")]
62impl MKCoordinateSpan {
63    // TODO: pub fn MKCoordinateSpanMake(latitude_delta: CLLocationDegrees,longitude_delta: CLLocationDegrees,) -> MKCoordinateSpan;
64}
65
66#[cfg(feature = "objc2-core-location")]
67impl MKCoordinateRegion {
68    // TODO: pub fn MKCoordinateRegionMake(center_coordinate: CLLocationCoordinate2D,span: MKCoordinateSpan,) -> MKCoordinateRegion;
69
70    #[doc(alias = "MKCoordinateRegionMakeWithDistance")]
71    #[cfg(feature = "objc2-core-location")]
72    #[inline]
73    pub unsafe fn with_distance(
74        center_coordinate: CLLocationCoordinate2D,
75        latitudinal_meters: CLLocationDistance,
76        longitudinal_meters: CLLocationDistance,
77    ) -> MKCoordinateRegion {
78        extern "C-unwind" {
79            fn MKCoordinateRegionMakeWithDistance(
80                center_coordinate: CLLocationCoordinate2D,
81                latitudinal_meters: CLLocationDistance,
82                longitudinal_meters: CLLocationDistance,
83            ) -> MKCoordinateRegion;
84        }
85        unsafe {
86            MKCoordinateRegionMakeWithDistance(
87                center_coordinate,
88                latitudinal_meters,
89                longitudinal_meters,
90            )
91        }
92    }
93}
94
95/// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkmappoint?language=objc)
96#[repr(C)]
97#[derive(Clone, Copy, Debug, PartialEq)]
98pub struct MKMapPoint {
99    pub x: c_double,
100    pub y: c_double,
101}
102
103unsafe impl Encode for MKMapPoint {
104    const ENCODING: Encoding = Encoding::Struct("?", &[<c_double>::ENCODING, <c_double>::ENCODING]);
105}
106
107unsafe impl RefEncode for MKMapPoint {
108    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
109}
110
111/// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkmapsize?language=objc)
112#[repr(C)]
113#[derive(Clone, Copy, Debug, PartialEq)]
114pub struct MKMapSize {
115    pub width: c_double,
116    pub height: c_double,
117}
118
119unsafe impl Encode for MKMapSize {
120    const ENCODING: Encoding = Encoding::Struct("?", &[<c_double>::ENCODING, <c_double>::ENCODING]);
121}
122
123unsafe impl RefEncode for MKMapSize {
124    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
125}
126
127/// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkmaprect?language=objc)
128#[repr(C)]
129#[derive(Clone, Copy, Debug, PartialEq)]
130pub struct MKMapRect {
131    pub origin: MKMapPoint,
132    pub size: MKMapSize,
133}
134
135unsafe impl Encode for MKMapRect {
136    const ENCODING: Encoding =
137        Encoding::Struct("?", &[<MKMapPoint>::ENCODING, <MKMapSize>::ENCODING]);
138}
139
140unsafe impl RefEncode for MKMapRect {
141    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
142}
143
144/// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkzoomscale?language=objc)
145#[cfg(feature = "objc2-core-foundation")]
146pub type MKZoomScale = CGFloat;
147
148extern "C" {
149    /// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkmapsizeworld?language=objc)
150    pub static MKMapSizeWorld: MKMapSize;
151}
152
153extern "C" {
154    /// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkmaprectworld?language=objc)
155    pub static MKMapRectWorld: MKMapRect;
156}
157
158impl MKMapPoint {
159    #[doc(alias = "MKMapPointForCoordinate")]
160    #[cfg(feature = "objc2-core-location")]
161    #[inline]
162    pub unsafe fn for_coordinate(coordinate: CLLocationCoordinate2D) -> MKMapPoint {
163        extern "C-unwind" {
164            fn MKMapPointForCoordinate(coordinate: CLLocationCoordinate2D) -> MKMapPoint;
165        }
166        unsafe { MKMapPointForCoordinate(coordinate) }
167    }
168}
169
170extern "C-unwind" {
171    #[cfg(feature = "objc2-core-location")]
172    pub fn MKCoordinateForMapPoint(map_point: MKMapPoint) -> CLLocationCoordinate2D;
173}
174
175extern "C-unwind" {
176    #[cfg(feature = "objc2-core-location")]
177    pub fn MKMetersPerMapPointAtLatitude(latitude: CLLocationDegrees) -> CLLocationDistance;
178}
179
180extern "C-unwind" {
181    #[cfg(feature = "objc2-core-location")]
182    pub fn MKMapPointsPerMeterAtLatitude(latitude: CLLocationDegrees) -> c_double;
183}
184
185extern "C-unwind" {
186    #[cfg(feature = "objc2-core-location")]
187    pub fn MKMetersBetweenMapPoints(a: MKMapPoint, b: MKMapPoint) -> CLLocationDistance;
188}
189
190extern "C" {
191    /// [Apple's documentation](https://developer.apple.com/documentation/mapkit/mkmaprectnull?language=objc)
192    pub static MKMapRectNull: MKMapRect;
193}
194
195impl MKMapPoint {
196    // TODO: pub fn MKMapPointMake(x: c_double,y: c_double,) -> MKMapPoint;
197}
198
199impl MKMapSize {
200    // TODO: pub fn MKMapSizeMake(width: c_double,height: c_double,) -> MKMapSize;
201}
202
203impl MKMapRect {
204    // TODO: pub fn MKMapRectMake(x: c_double,y: c_double,width: c_double,height: c_double,) -> MKMapRect;
205
206    // TODO: pub fn MKMapRectGetMinX(rect: MKMapRect,) -> c_double;
207
208    // TODO: pub fn MKMapRectGetMinY(rect: MKMapRect,) -> c_double;
209
210    // TODO: pub fn MKMapRectGetMidX(rect: MKMapRect,) -> c_double;
211
212    // TODO: pub fn MKMapRectGetMidY(rect: MKMapRect,) -> c_double;
213
214    // TODO: pub fn MKMapRectGetMaxX(rect: MKMapRect,) -> c_double;
215
216    // TODO: pub fn MKMapRectGetMaxY(rect: MKMapRect,) -> c_double;
217
218    // TODO: pub fn MKMapRectGetWidth(rect: MKMapRect,) -> c_double;
219
220    // TODO: pub fn MKMapRectGetHeight(rect: MKMapRect,) -> c_double;
221}
222
223impl MKMapPoint {
224    // TODO: pub fn MKMapPointEqualToPoint(point1: MKMapPoint,point2: MKMapPoint,) -> Bool;
225}
226
227impl MKMapSize {
228    // TODO: pub fn MKMapSizeEqualToSize(size1: MKMapSize,size2: MKMapSize,) -> Bool;
229}
230
231impl MKMapRect {
232    // TODO: pub fn MKMapRectEqualToRect(rect1: MKMapRect,rect2: MKMapRect,) -> Bool;
233
234    // TODO: pub fn MKMapRectIsNull(rect: MKMapRect,) -> Bool;
235
236    // TODO: pub fn MKMapRectIsEmpty(rect: MKMapRect,) -> Bool;
237}
238
239// TODO: pub fn MKStringFromMapPoint(point: MKMapPoint,)-> *mut NSString;
240
241// TODO: pub fn MKStringFromMapSize(size: MKMapSize,)-> *mut NSString;
242
243// TODO: pub fn MKStringFromMapRect(rect: MKMapRect,)-> *mut NSString;
244
245impl MKMapRect {
246    #[doc(alias = "MKMapRectUnion")]
247    #[inline]
248    pub unsafe fn union(self: MKMapRect, rect2: MKMapRect) -> MKMapRect {
249        extern "C-unwind" {
250            fn MKMapRectUnion(rect1: MKMapRect, rect2: MKMapRect) -> MKMapRect;
251        }
252        unsafe { MKMapRectUnion(self, rect2) }
253    }
254
255    #[doc(alias = "MKMapRectIntersection")]
256    #[inline]
257    pub unsafe fn intersection(self: MKMapRect, rect2: MKMapRect) -> MKMapRect {
258        extern "C-unwind" {
259            fn MKMapRectIntersection(rect1: MKMapRect, rect2: MKMapRect) -> MKMapRect;
260        }
261        unsafe { MKMapRectIntersection(self, rect2) }
262    }
263
264    #[doc(alias = "MKMapRectInset")]
265    #[inline]
266    pub unsafe fn inset(self: MKMapRect, dx: c_double, dy: c_double) -> MKMapRect {
267        extern "C-unwind" {
268            fn MKMapRectInset(rect: MKMapRect, dx: c_double, dy: c_double) -> MKMapRect;
269        }
270        unsafe { MKMapRectInset(self, dx, dy) }
271    }
272
273    #[doc(alias = "MKMapRectOffset")]
274    #[inline]
275    pub unsafe fn offset(self: MKMapRect, dx: c_double, dy: c_double) -> MKMapRect {
276        extern "C-unwind" {
277            fn MKMapRectOffset(rect: MKMapRect, dx: c_double, dy: c_double) -> MKMapRect;
278        }
279        unsafe { MKMapRectOffset(self, dx, dy) }
280    }
281
282    #[doc(alias = "MKMapRectDivide")]
283    #[cfg(feature = "objc2-core-foundation")]
284    #[inline]
285    pub unsafe fn divide(
286        self: MKMapRect,
287        slice: NonNull<MKMapRect>,
288        remainder: NonNull<MKMapRect>,
289        amount: c_double,
290        edge: CGRectEdge,
291    ) {
292        extern "C-unwind" {
293            fn MKMapRectDivide(
294                rect: MKMapRect,
295                slice: NonNull<MKMapRect>,
296                remainder: NonNull<MKMapRect>,
297                amount: c_double,
298                edge: CGRectEdge,
299            );
300        }
301        unsafe { MKMapRectDivide(self, slice, remainder, amount, edge) }
302    }
303
304    #[doc(alias = "MKMapRectContainsPoint")]
305    #[inline]
306    pub unsafe fn contains_point(self: MKMapRect, point: MKMapPoint) -> bool {
307        extern "C-unwind" {
308            fn MKMapRectContainsPoint(rect: MKMapRect, point: MKMapPoint) -> Bool;
309        }
310        unsafe { MKMapRectContainsPoint(self, point) }.as_bool()
311    }
312
313    #[doc(alias = "MKMapRectContainsRect")]
314    #[inline]
315    pub unsafe fn contains_rect(self: MKMapRect, rect2: MKMapRect) -> bool {
316        extern "C-unwind" {
317            fn MKMapRectContainsRect(rect1: MKMapRect, rect2: MKMapRect) -> Bool;
318        }
319        unsafe { MKMapRectContainsRect(self, rect2) }.as_bool()
320    }
321
322    #[doc(alias = "MKMapRectIntersectsRect")]
323    #[inline]
324    pub unsafe fn intersects_rect(self: MKMapRect, rect2: MKMapRect) -> bool {
325        extern "C-unwind" {
326            fn MKMapRectIntersectsRect(rect1: MKMapRect, rect2: MKMapRect) -> Bool;
327        }
328        unsafe { MKMapRectIntersectsRect(self, rect2) }.as_bool()
329    }
330}
331
332#[cfg(feature = "objc2-core-location")]
333impl MKCoordinateRegion {
334    #[doc(alias = "MKCoordinateRegionForMapRect")]
335    #[cfg(feature = "objc2-core-location")]
336    #[inline]
337    pub unsafe fn for_map_rect(rect: MKMapRect) -> MKCoordinateRegion {
338        extern "C-unwind" {
339            fn MKCoordinateRegionForMapRect(rect: MKMapRect) -> MKCoordinateRegion;
340        }
341        unsafe { MKCoordinateRegionForMapRect(rect) }
342    }
343}
344
345impl MKMapRect {
346    #[doc(alias = "MKMapRectSpans180thMeridian")]
347    #[inline]
348    pub unsafe fn spans180th_meridian(self: MKMapRect) -> bool {
349        extern "C-unwind" {
350            fn MKMapRectSpans180thMeridian(rect: MKMapRect) -> Bool;
351        }
352        unsafe { MKMapRectSpans180thMeridian(self) }.as_bool()
353    }
354
355    #[doc(alias = "MKMapRectRemainder")]
356    #[inline]
357    pub unsafe fn remainder(self: MKMapRect) -> MKMapRect {
358        extern "C-unwind" {
359            fn MKMapRectRemainder(rect: MKMapRect) -> MKMapRect;
360        }
361        unsafe { MKMapRectRemainder(self) }
362    }
363}
364
365mod private_NSValueMapKitGeometryExtensions {
366    pub trait Sealed {}
367}
368
369/// Category on [`NSValue`].
370pub unsafe trait NSValueMapKitGeometryExtensions:
371    ClassType + Sized + private_NSValueMapKitGeometryExtensions::Sealed
372{
373    extern_methods!(
374        #[cfg(feature = "objc2-core-location")]
375        #[unsafe(method(valueWithMKCoordinate:))]
376        #[unsafe(method_family = none)]
377        unsafe fn valueWithMKCoordinate(coordinate: CLLocationCoordinate2D) -> Retained<NSValue>;
378
379        #[cfg(feature = "objc2-core-location")]
380        #[unsafe(method(valueWithMKCoordinateSpan:))]
381        #[unsafe(method_family = none)]
382        unsafe fn valueWithMKCoordinateSpan(span: MKCoordinateSpan) -> Retained<NSValue>;
383
384        #[cfg(feature = "objc2-core-location")]
385        #[unsafe(method(MKCoordinateValue))]
386        #[unsafe(method_family = none)]
387        unsafe fn MKCoordinateValue(&self) -> CLLocationCoordinate2D;
388
389        #[cfg(feature = "objc2-core-location")]
390        #[unsafe(method(MKCoordinateSpanValue))]
391        #[unsafe(method_family = none)]
392        unsafe fn MKCoordinateSpanValue(&self) -> MKCoordinateSpan;
393    );
394}
395
396impl private_NSValueMapKitGeometryExtensions::Sealed for NSValue {}
397unsafe impl NSValueMapKitGeometryExtensions for NSValue {}
398
399extern "C-unwind" {
400    #[cfg(feature = "objc2-core-location")]
401    #[deprecated = "renamed to `MKCoordinateRegion::with_distance`"]
402    pub fn MKCoordinateRegionMakeWithDistance(
403        center_coordinate: CLLocationCoordinate2D,
404        latitudinal_meters: CLLocationDistance,
405        longitudinal_meters: CLLocationDistance,
406    ) -> MKCoordinateRegion;
407}
408
409extern "C-unwind" {
410    #[cfg(feature = "objc2-core-location")]
411    #[deprecated = "renamed to `MKMapPoint::for_coordinate`"]
412    pub fn MKMapPointForCoordinate(coordinate: CLLocationCoordinate2D) -> MKMapPoint;
413}
414
415extern "C-unwind" {
416    #[deprecated = "renamed to `MKMapRect::union`"]
417    pub fn MKMapRectUnion(rect1: MKMapRect, rect2: MKMapRect) -> MKMapRect;
418}
419
420extern "C-unwind" {
421    #[deprecated = "renamed to `MKMapRect::intersection`"]
422    pub fn MKMapRectIntersection(rect1: MKMapRect, rect2: MKMapRect) -> MKMapRect;
423}
424
425extern "C-unwind" {
426    #[deprecated = "renamed to `MKMapRect::inset`"]
427    pub fn MKMapRectInset(rect: MKMapRect, dx: c_double, dy: c_double) -> MKMapRect;
428}
429
430extern "C-unwind" {
431    #[deprecated = "renamed to `MKMapRect::offset`"]
432    pub fn MKMapRectOffset(rect: MKMapRect, dx: c_double, dy: c_double) -> MKMapRect;
433}
434
435extern "C-unwind" {
436    #[cfg(feature = "objc2-core-foundation")]
437    #[deprecated = "renamed to `MKMapRect::divide`"]
438    pub fn MKMapRectDivide(
439        rect: MKMapRect,
440        slice: NonNull<MKMapRect>,
441        remainder: NonNull<MKMapRect>,
442        amount: c_double,
443        edge: CGRectEdge,
444    );
445}
446
447#[deprecated = "renamed to `MKMapRect::contains_point`"]
448#[inline]
449pub unsafe extern "C-unwind" fn MKMapRectContainsPoint(rect: MKMapRect, point: MKMapPoint) -> bool {
450    extern "C-unwind" {
451        fn MKMapRectContainsPoint(rect: MKMapRect, point: MKMapPoint) -> Bool;
452    }
453    unsafe { MKMapRectContainsPoint(rect, point) }.as_bool()
454}
455
456#[deprecated = "renamed to `MKMapRect::contains_rect`"]
457#[inline]
458pub unsafe extern "C-unwind" fn MKMapRectContainsRect(rect1: MKMapRect, rect2: MKMapRect) -> bool {
459    extern "C-unwind" {
460        fn MKMapRectContainsRect(rect1: MKMapRect, rect2: MKMapRect) -> Bool;
461    }
462    unsafe { MKMapRectContainsRect(rect1, rect2) }.as_bool()
463}
464
465#[deprecated = "renamed to `MKMapRect::intersects_rect`"]
466#[inline]
467pub unsafe extern "C-unwind" fn MKMapRectIntersectsRect(
468    rect1: MKMapRect,
469    rect2: MKMapRect,
470) -> bool {
471    extern "C-unwind" {
472        fn MKMapRectIntersectsRect(rect1: MKMapRect, rect2: MKMapRect) -> Bool;
473    }
474    unsafe { MKMapRectIntersectsRect(rect1, rect2) }.as_bool()
475}
476
477extern "C-unwind" {
478    #[cfg(feature = "objc2-core-location")]
479    #[deprecated = "renamed to `MKCoordinateRegion::for_map_rect`"]
480    pub fn MKCoordinateRegionForMapRect(rect: MKMapRect) -> MKCoordinateRegion;
481}
482
483#[deprecated = "renamed to `MKMapRect::spans180th_meridian`"]
484#[inline]
485pub unsafe extern "C-unwind" fn MKMapRectSpans180thMeridian(rect: MKMapRect) -> bool {
486    extern "C-unwind" {
487        fn MKMapRectSpans180thMeridian(rect: MKMapRect) -> Bool;
488    }
489    unsafe { MKMapRectSpans180thMeridian(rect) }.as_bool()
490}
491
492extern "C-unwind" {
493    #[deprecated = "renamed to `MKMapRect::remainder`"]
494    pub fn MKMapRectRemainder(rect: MKMapRect) -> MKMapRect;
495}