summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Wojciechowski <lucas@mapbox.com>2018-02-09 12:14:33 -0800
committerLucas Wojciechowski <lucas@mapbox.com>2018-03-07 11:46:16 -0800
commitaab8b157f1b96b8e1c0444cc1fbe4908dd63d7d2 (patch)
tree1a7074c9cfbf5b387aa667a521aad3b6cc2c775a
parent68b25f217dc02732bce0c440ab7e09cfb3629bbb (diff)
downloadqtlocation-mapboxgl-aab8b157f1b96b8e1c0444cc1fbe4908dd63d7d2.tar.gz
WIP
-rw-r--r--include/mbgl/style/filter.hpp2
-rw-r--r--include/mbgl/style/filter_evaluator.hpp8
-rw-r--r--src/mbgl/layout/symbol_layout.cpp2
-rw-r--r--src/mbgl/tile/geometry_tile_worker.cpp2
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();