From dd4c8a67ba7610679f0049ebccce989eafc36ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Ka=CC=88fer?= Date: Sun, 1 Jun 2014 00:06:33 +0200 Subject: [PATCH] add explicit true type == "no filter" --- include/llmr/map/filter_expression.hpp | 3 ++- include/llmr/style/bucket_description.hpp | 2 +- src/map/vector_tile.cpp | 4 +++- src/style/style_parser.cpp | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/llmr/map/filter_expression.hpp b/include/llmr/map/filter_expression.hpp index 0748a63fc..29abb9a25 100644 --- a/include/llmr/map/filter_expression.hpp +++ b/include/llmr/map/filter_expression.hpp @@ -48,7 +48,8 @@ class PropertyExpression; typedef util::variant< util::recursive_wrapper, - util::recursive_wrapper + util::recursive_wrapper, + std::true_type > PropertyFilterExpression; diff --git a/include/llmr/style/bucket_description.hpp b/include/llmr/style/bucket_description.hpp index 4ce25d238..f77ff5170 100644 --- a/include/llmr/style/bucket_description.hpp +++ b/include/llmr/style/bucket_description.hpp @@ -117,7 +117,7 @@ public: std::string source_name; std::string source_layer; - PropertyFilterExpression filter; + PropertyFilterExpression filter = std::true_type(); // Specifies how the geometry for this bucket should be created BucketGeometryDescription geometry; diff --git a/src/map/vector_tile.cpp b/src/map/vector_tile.cpp index b30b997e7..97adec277 100644 --- a/src/map/vector_tile.cpp +++ b/src/map/vector_tile.cpp @@ -127,6 +127,8 @@ bool FilteredVectorTileLayer::iterator::matchesFilterExpression(const PropertyFi return matchesFilter(filterExpression.get>().get(), tags_pbf); } else if (filterExpression.is>()) { return matchesExpression(filterExpression.get>().get(), tags_pbf); + } else if (filterExpression.is()) { + return true; } else { return false; } @@ -201,7 +203,7 @@ void FilteredVectorTileLayer::iterator::operator++() { bool matched = false; // Treat the absence of any expression filters as a match. - if (expression.is>() && expression.get>().get().operands.size() == 0) { + if (expression.is()) { matched = true; } diff --git a/src/style/style_parser.cpp b/src/style/style_parser.cpp index c774d0fca..b686c0ec5 100644 --- a/src/style/style_parser.cpp +++ b/src/style/style_parser.cpp @@ -67,7 +67,7 @@ PropertyFilterExpression StyleParser::parseFilterOrExpression(JSVal value) { } } - return std::move(util::recursive_wrapper()); + return std::true_type(); } BucketDescription StyleParser::parseBucket(JSVal value) {