diff options
author | Lucas Wojciechowski <lucas@mapbox.com> | 2018-02-09 10:10:23 -0800 |
---|---|---|
committer | Lucas Wojciechowski <lucas@mapbox.com> | 2018-03-07 11:46:16 -0800 |
commit | 68b25f217dc02732bce0c440ab7e09cfb3629bbb (patch) | |
tree | f7dfb866d56683cdbcded2833bc4731c3aad22c4 | |
parent | 268a4d7404d30dc4f866711e3fd1e778892bbe35 (diff) | |
download | qtlocation-mapboxgl-68b25f217dc02732bce0c440ab7e09cfb3629bbb.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> |