add explicit true type == "no filter"

This commit is contained in:
Konstantin Käfer
2014-06-01 00:06:33 +02:00
parent 99b6a700ef
commit dd4c8a67ba
4 changed files with 7 additions and 4 deletions

View File

@@ -48,7 +48,8 @@ class PropertyExpression;
typedef util::variant<
util::recursive_wrapper<PropertyFilter>,
util::recursive_wrapper<PropertyExpression>
util::recursive_wrapper<PropertyExpression>,
std::true_type
> PropertyFilterExpression;

View File

@@ -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;

View File

@@ -127,6 +127,8 @@ bool FilteredVectorTileLayer::iterator::matchesFilterExpression(const PropertyFi
return matchesFilter(filterExpression.get<util::recursive_wrapper<PropertyFilter>>().get(), tags_pbf);
} else if (filterExpression.is<util::recursive_wrapper<PropertyExpression>>()) {
return matchesExpression(filterExpression.get<util::recursive_wrapper<PropertyExpression>>().get(), tags_pbf);
} else if (filterExpression.is<std::true_type>()) {
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<util::recursive_wrapper<PropertyExpression>>() && expression.get<util::recursive_wrapper<PropertyExpression>>().get().operands.size() == 0) {
if (expression.is<std::true_type>()) {
matched = true;
}

View File

@@ -67,7 +67,7 @@ PropertyFilterExpression StyleParser::parseFilterOrExpression(JSVal value) {
}
}
return std::move(util::recursive_wrapper<PropertyExpression>());
return std::true_type();
}
BucketDescription StyleParser::parseBucket(JSVal value) {