diff options
author | Lucas Wojciechowski <lucas@mapbox.com> | 2018-02-09 10:10:23 -0800 |
---|---|---|
committer | Lucas Wojciechowski <lucas@mapbox.com> | 2018-02-19 14:16:31 -0800 |
commit | 79a8061f61a44f16654f2deb0b8e10a5faf3ead1 (patch) | |
tree | 41ec0bf40dba57e93547b88c8fe55b14e1784c14 | |
parent | 374bad18c04ae8fea574f85d2149af8aeffb8dcc (diff) | |
download | qtlocation-mapboxgl-79a8061f61a44f16654f2deb0b8e10a5faf3ead1.tar.gz |
WIP
-rw-r--r-- | include/mbgl/style/filter.hpp | 13 | ||||
-rw-r--r-- | include/mbgl/style/filter_evaluator.hpp | 4 | ||||
-rw-r--r-- | platform/darwin/src/NSPredicate+MGLAdditions.mm | 4 | ||||
-rw-r--r-- | src/mbgl/style/conversion/stringify.hpp | 4 |
4 files changed, 24 insertions, 1 deletions
diff --git a/include/mbgl/style/filter.hpp b/include/mbgl/style/filter.hpp index a204a2b17a..31fef05a4a 100644 --- a/include/mbgl/style/filter.hpp +++ b/include/mbgl/style/filter.hpp @@ -3,6 +3,7 @@ #include <mbgl/util/variant.hpp> #include <mbgl/util/feature.hpp> #include <mbgl/util/geometry.hpp> +#include <mbgl/style/expression/expression.hpp> #include <string> #include <vector> @@ -232,6 +233,15 @@ public: return true; } }; + +class ExpressionFilter { +public: + std::shared_ptr<mbgl::style::expression::Expression> expression; + + friend bool operator==(const ExpressionFilter& lhs, const ExpressionFilter& rhs) { + return lhs.expression == rhs.expression; + } +}; using FilterBase = variant< @@ -258,7 +268,8 @@ using FilterBase = variant< class IdentifierInFilter, class IdentifierNotInFilter, class HasIdentifierFilter, - class NotHasIdentifierFilter>; + class NotHasIdentifierFilter, + class ExpressionFilter>; class Filter : public FilterBase { public: diff --git a/include/mbgl/style/filter_evaluator.hpp b/include/mbgl/style/filter_evaluator.hpp index 66223d7282..bd63caa0a0 100644 --- a/include/mbgl/style/filter_evaluator.hpp +++ b/include/mbgl/style/filter_evaluator.hpp @@ -180,6 +180,10 @@ public: bool operator()(const NotHasIdentifierFilter&) const { return !featureIdentifier; } + + bool operator()(const ExpressionFilter&) const { + return false; + } private: template <class Op> diff --git a/platform/darwin/src/NSPredicate+MGLAdditions.mm b/platform/darwin/src/NSPredicate+MGLAdditions.mm index 3ffe200d01..1a643d41d0 100644 --- a/platform/darwin/src/NSPredicate+MGLAdditions.mm +++ b/platform/darwin/src/NSPredicate+MGLAdditions.mm @@ -194,6 +194,10 @@ public: NSPredicate *operator()(mbgl::style::NotHasIdentifierFilter filter) { return [NSPredicate predicateWithFormat:@"%K == nil", @"$id"]; } + + NSPredicate *operator()(mbgl::style::ExpressionFilter filter) { + return nil; + } }; @implementation NSPredicate (MGLAdditions) diff --git a/src/mbgl/style/conversion/stringify.hpp b/src/mbgl/style/conversion/stringify.hpp index 6ae6fede42..fd1af4ba0c 100644 --- a/src/mbgl/style/conversion/stringify.hpp +++ b/src/mbgl/style/conversion/stringify.hpp @@ -225,6 +225,10 @@ public: void operator()(const NotHasIdentifierFilter&) { stringifyUnaryFilter("!has", "$id"); } + + void operator()(const ExpressionFilter&) { + stringifyUnaryFilter("herp", "derp"); + } private: template <class F> |