summaryrefslogtreecommitdiff
path: root/include/mbgl/style/filter.hpp
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-06-15 14:55:45 -0700
committerGitHub <noreply@github.com>2016-06-15 14:55:45 -0700
commita0b298211908036da269e7dcc2c78025476e2bf2 (patch)
tree3ef9df845e52290f8d6df918728c8eae92abd340 /include/mbgl/style/filter.hpp
parent199ea2a82a74cf2f7b63078e2dd4b8274c061851 (diff)
downloadqtlocation-mapboxgl-a0b298211908036da269e7dcc2c78025476e2bf2.tar.gz
[core] Prepare Filter and FilterEvaluator for extraction (#5366)
Diffstat (limited to 'include/mbgl/style/filter.hpp')
-rw-r--r--include/mbgl/style/filter.hpp42
1 files changed, 26 insertions, 16 deletions
diff --git a/include/mbgl/style/filter.hpp b/include/mbgl/style/filter.hpp
index 9cf84f5e1d..6a5afb7b47 100644
--- a/include/mbgl/style/filter.hpp
+++ b/include/mbgl/style/filter.hpp
@@ -2,6 +2,7 @@
#include <mbgl/util/variant.hpp>
#include <mbgl/util/feature.hpp>
+#include <mbgl/util/geometry.hpp>
#include <string>
#include <vector>
@@ -9,22 +10,7 @@
namespace mbgl {
namespace style {
-typedef variant<
- class NullFilter,
- class EqualsFilter,
- class NotEqualsFilter,
- class LessThanFilter,
- class LessThanEqualsFilter,
- class GreaterThanFilter,
- class GreaterThanEqualsFilter,
- class InFilter,
- class NotInFilter,
- class AnyFilter,
- class AllFilter,
- class NoneFilter,
- class HasFilter,
- class NotHasFilter
- > Filter;
+class Filter;
class NullFilter {};
@@ -101,5 +87,29 @@ public:
std::string key;
};
+using FilterBase = variant<
+ class NullFilter,
+ class EqualsFilter,
+ class NotEqualsFilter,
+ class LessThanFilter,
+ class LessThanEqualsFilter,
+ class GreaterThanFilter,
+ class GreaterThanEqualsFilter,
+ class InFilter,
+ class NotInFilter,
+ class AnyFilter,
+ class AllFilter,
+ class NoneFilter,
+ class HasFilter,
+ class NotHasFilter>;
+
+class Filter : public FilterBase {
+public:
+ using FilterBase::FilterBase;
+
+ template <class PropertyAccessor>
+ bool operator()(FeatureType type, PropertyAccessor accessor) const;
+};
+
} // namespace style
} // namespace mbgl