Files
MapLibreParticleLab/platform/macos/app/MLNStyle+MBXAdditions.m
mwilsnd 20d9e1028c Platform flattening overhaul (#1393)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Bart Louwers <bart@emeel.net>
2023-07-26 17:50:34 +02:00

43 lines
1.2 KiB
Objective-C

#import "MLNStyle+MBXAdditions.h"
@implementation MLNStyle (MBXAdditions)
+ (NSSet<NSString *> *)keyPathsForValuesAffectingReversedLayers {
return [NSSet setWithObject:@"layers"];
}
- (NSArray<__kindof MLNStyleLayer *> *)reversedLayers {
return self.layers.reverseObjectEnumerator.allObjects;
}
- (void)setReversedLayers:(NSArray<__kindof MLNStyleLayer *> *)reversedLayers {
self.layers = reversedLayers.reverseObjectEnumerator.allObjects;
}
- (NSUInteger)countOfReversedLayers {
return self.layers.count;
}
- (id)objectInReversedLayersAtIndex:(NSUInteger)index {
NSArray *layers = self.layers;
return layers[layers.count - 1 - index];
}
- (void)getReversedLayers:(__kindof MLNStyleLayer **)buffer range:(NSRange)inRange {
NSArray *layers = self.layers;
for (NSUInteger i = inRange.location; i < NSMaxRange(inRange); i++) {
MLNStyleLayer *styleLayer = layers[layers.count - 1 - i];
buffer[i] = styleLayer;
}
}
- (void)insertObject:(__kindof MLNStyleLayer *)object inReversedLayersAtIndex:(NSUInteger)index {
[self insertLayer:object atIndex:self.layers.count - index];
}
- (void)removeObjectFromReversedLayersAtIndex:(NSUInteger)index {
[self removeLayer:[self objectInReversedLayersAtIndex:index]];
}
@end