summaryrefslogtreecommitdiff
path: root/src/mbgl/style/style_bucket_parameters.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/style_bucket_parameters.cpp')
-rw-r--r--src/mbgl/style/style_bucket_parameters.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mbgl/style/style_bucket_parameters.cpp b/src/mbgl/style/style_bucket_parameters.cpp
new file mode 100644
index 0000000000..1f9b5ab1c0
--- /dev/null
+++ b/src/mbgl/style/style_bucket_parameters.cpp
@@ -0,0 +1,19 @@
+#include <mbgl/style/style_bucket_parameters.hpp>
+#include <mbgl/map/geometry_tile.hpp>
+
+namespace mbgl {
+
+void StyleBucketParameters::eachFilteredFeature(const FilterExpression& filter,
+ std::function<void (const GeometryTileFeature&)> function) {
+ for (std::size_t i = 0; !cancelled() && i < layer.featureCount(); i++) {
+ auto feature = layer.getFeature(i);
+
+ GeometryTileFeatureExtractor extractor(*feature);
+ if (!evaluate(filter, extractor))
+ continue;
+
+ function(*feature);
+ }
+}
+
+}