blob: 14560689380dd1990ea2f094646435812e9f9565 (
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
50
51
52
53
54
|
#import "NSArray+MGLStyleAttributeAdditions.h"
#import "NSArray+MGLStyleAttributeAdditions_Private.h"
#import "MGLStyleAttributeValue_Private.h"
#include <array>
@interface NSArray(Private) <MGLStyleAttributeValue_Private>
@end
@implementation NSArray (MGLStyleAttributeAdditions)
- (mbgl::style::PropertyValue<std::array<float, 2>>)mbgl_offsetPropertyValue
{
NSAssert(self.count == 2, @"Offset must contain 2 values (dx, dy)");
NSNumber *dx = self[0];
NSNumber *dy = self[1];
return {{dx.floatValue, dy.floatValue}};
}
- (mbgl::style::PropertyValue<std::array<float, 4> >)mbgl_paddingPropertyValue
{
NSAssert(self.count == 4, @"Padding must contain 4 values (top, left, bottom & right)");
NSNumber *top = self[0];
NSNumber *left = self[1];
NSNumber *bottom = self[2];
NSNumber *right = self[3];
return {{top.floatValue, left.floatValue, bottom.floatValue, right.floatValue}};
}
- (mbgl::style::PropertyValue<std::vector<std::string> >)mbgl_stringArrayPropertyValue
{
std::vector<std::string>fonts;
for (NSString *font in self) {
fonts.emplace_back(font.UTF8String);
}
return {{fonts}};
}
- (mbgl::style::PropertyValue<std::vector<float> >)mbgl_numberArrayPropertyValue
{
std::vector<float>values;
for (NSNumber *n in self) {
values.emplace_back(n.floatValue);
}
return {{values}};
}
@end
|