diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-15 14:55:45 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-15 14:55:45 -0700 |
commit | a0b298211908036da269e7dcc2c78025476e2bf2 (patch) | |
tree | 3ef9df845e52290f8d6df918728c8eae92abd340 /include/mbgl/style/filter.hpp | |
parent | 199ea2a82a74cf2f7b63078e2dd4b8274c061851 (diff) | |
download | qtlocation-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.hpp | 42 |
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 |