summaryrefslogtreecommitdiff
path: root/platform/darwin/src/NSValue+MGLAdditions.m
blob: 0d2128bea83dd3583971d44255406890faf9d9a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#import "NSValue+MGLAdditions.h"

@implementation NSValue (MGLAdditions)

#pragma mark Geometry

+ (instancetype)valueWithMGLCoordinate:(CLLocationCoordinate2D)coordinate {
    return [self valueWithBytes:&coordinate objCType:@encode(CLLocationCoordinate2D)];
}

- (CLLocationCoordinate2D)MGLCoordinateValue {
    CLLocationCoordinate2D coordinate;
    [self getValue:&coordinate];
    return coordinate;
}

+ (instancetype)valueWithMGLCoordinateSpan:(MGLCoordinateSpan)span {
    return [self valueWithBytes:&span objCType:@encode(MGLCoordinateSpan)];
}

- (MGLCoordinateSpan)MGLCoordinateSpanValue {
    MGLCoordinateSpan span;
    [self getValue:&span];
    return span;
}

+ (instancetype)valueWithMGLCoordinateBounds:(MGLCoordinateBounds)bounds {
    return [self valueWithBytes:&bounds objCType:@encode(MGLCoordinateBounds)];
}

- (MGLCoordinateBounds)MGLCoordinateBoundsValue {
    MGLCoordinateBounds bounds;
    [self getValue:&bounds];
    return bounds;
}

#pragma mark Offline maps

+ (NSValue *)valueWithMGLOfflinePackProgress:(MGLOfflinePackProgress)progress {
    return [NSValue value:&progress withObjCType:@encode(MGLOfflinePackProgress)];
}

- (MGLOfflinePackProgress)MGLOfflinePackProgressValue {
    MGLOfflinePackProgress progress;
    [self getValue:&progress];
    return progress;
}

@end