diff options
author | Fabian Guerra <fabian.guerra@mapbox.com> | 2018-04-23 10:44:02 -0400 |
---|---|---|
committer | Fabian Guerra <fabian.guerra@mapbox.com> | 2018-04-23 10:44:02 -0400 |
commit | e08b6fe87f5824ab05a4cc67d9a76af5bb5ddd3b (patch) | |
tree | 886e10260bfa044f62943186ec837b9ccd02934c /platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm | |
parent | 2bb785dad2489d04db179fa9cf65514640db0a96 (diff) | |
parent | a45670cfb5752866b9c8130024a313944684c2db (diff) | |
download | qtlocation-mapboxgl-upstream/fabian-merge-v4.0.0.tar.gz |
Merge branch 'release-boba' into masterupstream/fabian-merge-v4.0.0
# Conflicts:
# circle.yml
# include/mbgl/style/expression/let.hpp
# platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLngBounds.java
# platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
# platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapKeyListener.java
# platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
# platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
# platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java
# platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
# platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngBoundsTest.java
# platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
# platform/android/gradle/dependencies.gradle
# platform/android/src/example_custom_layer.cpp
# platform/android/src/geojson/point.cpp
# platform/darwin/src/NSPredicate+MGLAdditions.mm
# platform/darwin/test/MGLExpressionTests.mm
# platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec
# platform/ios/Mapbox-iOS-SDK-symbols.podspec
# platform/ios/Mapbox-iOS-SDK.podspec
# platform/ios/app/MBXViewController.m
# src/mbgl/renderer/layers/render_custom_layer.cpp
# src/mbgl/style/conversion/filter.cpp
# src/mbgl/style/expression/interpolate.cpp
# src/mbgl/style/expression/value.cpp
# test/style/filter.test.cpp
Diffstat (limited to 'platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm')
-rw-r--r-- | platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm | 60 |
1 files changed, 4 insertions, 56 deletions
diff --git a/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm b/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm index 19568b8033..5a98b763ea 100644 --- a/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm +++ b/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm @@ -1,8 +1,12 @@ #import "NSCompoundPredicate+MGLAdditions.h" +#import "MGLStyleValue_Private.h" + #import "NSPredicate+MGLAdditions.h" #import "NSExpression+MGLPrivateAdditions.h" +#include <mbgl/style/conversion/property_value.hpp> + @implementation NSCompoundPredicate (MGLAdditions) - (std::vector<mbgl::style::Filter>)mgl_subfilters @@ -14,62 +18,6 @@ return filters; } -- (mbgl::style::Filter)mgl_filter -{ - switch (self.compoundPredicateType) { - case NSNotPredicateType: { - NSAssert(self.subpredicates.count <= 1, @"NOT predicate cannot have multiple subpredicates."); - NSPredicate *subpredicate = self.subpredicates.firstObject; - mbgl::style::Filter subfilter = subpredicate.mgl_filter; - - // Convert NOT(!= nil) to NotHasFilter. - if (subfilter.is<mbgl::style::HasFilter>()) { - auto hasFilter = subfilter.get<mbgl::style::HasFilter>(); - return mbgl::style::NotHasFilter { .key = hasFilter.key }; - } - - // Convert NOT(== nil) to HasFilter. - if (subfilter.is<mbgl::style::NotHasFilter>()) { - auto hasFilter = subfilter.get<mbgl::style::NotHasFilter>(); - return mbgl::style::HasFilter { .key = hasFilter.key }; - } - - // Convert NOT(IN) or NOT(CONTAINS) to NotInFilter. - if (subfilter.is<mbgl::style::InFilter>()) { - auto inFilter = subfilter.get<mbgl::style::InFilter>(); - mbgl::style::NotInFilter notInFilter; - notInFilter.key = inFilter.key; - notInFilter.values = inFilter.values; - return notInFilter; - } - - // Convert NOT(), NOT(AND), NOT(NOT), NOT(==), etc. into NoneFilter. - mbgl::style::NoneFilter noneFilter; - if (subfilter.is<mbgl::style::AnyFilter>()) { - // Flatten NOT(OR). - noneFilter.filters = subfilter.get<mbgl::style::AnyFilter>().filters; - } else if (subpredicate) { - noneFilter.filters = { subfilter }; - } - return noneFilter; - } - case NSAndPredicateType: { - mbgl::style::AllFilter filter; - filter.filters = self.mgl_subfilters; - return filter; - } - case NSOrPredicateType: { - mbgl::style::AnyFilter filter; - filter.filters = self.mgl_subfilters; - return filter; - } - } - - [NSException raise:@"Compound predicate type not handled" - format:@""]; - return {}; -} - @end @implementation NSCompoundPredicate (MGLExpressionAdditions) |