diff options
author | Lucas Wojciechowski <lucas@mapbox.com> | 2018-02-09 12:14:33 -0800 |
---|---|---|
committer | Lucas Wojciechowski <lucas@mapbox.com> | 2018-03-07 11:46:16 -0800 |
commit | aab8b157f1b96b8e1c0444cc1fbe4908dd63d7d2 (patch) | |
tree | 1a7074c9cfbf5b387aa667a521aad3b6cc2c775a | |
parent | 68b25f217dc02732bce0c440ab7e09cfb3629bbb (diff) | |
download | qtlocation-mapboxgl-aab8b157f1b96b8e1c0444cc1fbe4908dd63d7d2.tar.gz |
WIP
-rw-r--r-- | include/mbgl/style/filter.hpp | 2 | ||||
-rw-r--r-- | include/mbgl/style/filter_evaluator.hpp | 8 | ||||
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile_worker.cpp | 2 |
4 files changed, 8 insertions, 6 deletions
diff --git a/include/mbgl/style/filter.hpp b/include/mbgl/style/filter.hpp index 31fef05a4a..4728b8a1c3 100644 --- a/include/mbgl/style/filter.hpp +++ b/include/mbgl/style/filter.hpp @@ -281,7 +281,7 @@ public: bool operator()(const GeometryTileFeature&) const; template <class PropertyAccessor> - bool operator()(FeatureType type, optional<FeatureIdentifier> id, PropertyAccessor accessor) const; + bool operator()(FeatureType type, optional<FeatureIdentifier> id, PropertyAccessor accessor, float zoom) const; }; } // namespace style diff --git a/include/mbgl/style/filter_evaluator.hpp b/include/mbgl/style/filter_evaluator.hpp index bd63caa0a0..67882d2c0d 100644 --- a/include/mbgl/style/filter_evaluator.hpp +++ b/include/mbgl/style/filter_evaluator.hpp @@ -247,16 +247,18 @@ inline bool Filter::operator()(const Feature& feature) const { if (it == feature.properties.end()) return {}; return it->second; - }); + }, 0); } template <class GeometryTileFeature> bool Filter::operator()(const GeometryTileFeature& feature) const { - return operator()(feature.getType(), feature.getID(), [&] (const auto& key) { return feature.getValue(key); }); + return operator()(feature.getType(), feature.getID(), [&] (const auto& key) { return feature.getValue(key); }, 0); } template <class PropertyAccessor> -bool Filter::operator()(FeatureType type, optional<FeatureIdentifier> id, PropertyAccessor accessor) const { +// TODO add zoom & expression-compatible feature reference to this call +bool Filter::operator()(FeatureType type, optional<FeatureIdentifier> id, PropertyAccessor accessor, float zoom) const { + (void) zoom; return FilterBase::visit(*this, FilterEvaluator<PropertyAccessor> { type, id, accessor }); } diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index a41a98fcaf..8a70f9ce56 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -100,7 +100,7 @@ SymbolLayout::SymbolLayout(const BucketParameters& parameters, const size_t featureCount = sourceLayer->featureCount(); for (size_t i = 0; i < featureCount; ++i) { auto feature = sourceLayer->getFeature(i); - if (!leader.filter(feature->getType(), feature->getID(), [&] (const auto& key) { return feature->getValue(key); })) + if (!leader.filter(feature->getType(), feature->getID(), [&] (const auto& key) { return feature->getValue(key); }, 0)) continue; SymbolFeature ft(std::move(feature)); diff --git a/src/mbgl/tile/geometry_tile_worker.cpp b/src/mbgl/tile/geometry_tile_worker.cpp index 24841dd125..ecbbcb5308 100644 --- a/src/mbgl/tile/geometry_tile_worker.cpp +++ b/src/mbgl/tile/geometry_tile_worker.cpp @@ -339,7 +339,7 @@ void GeometryTileWorker::redoLayout() { for (std::size_t i = 0; !obsolete && i < geometryLayer->featureCount(); i++) { std::unique_ptr<GeometryTileFeature> feature = geometryLayer->getFeature(i); - if (!filter(feature->getType(), feature->getID(), [&] (const auto& key) { return feature->getValue(key); })) + if (!filter(feature->getType(), feature->getID(), [&] (const auto& key) { return feature->getValue(key); }, 0)) continue; GeometryCollection geometries = feature->getGeometries(); |