From 67ee51360c1bf72d54544cecb8d8fd638ad4df14 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 27 Apr 2016 15:57:48 -0700 Subject: [core] Add Filter accessors --- include/mbgl/layer/background_layer.hpp | 1 + include/mbgl/layer/circle_layer.hpp | 4 ++ include/mbgl/layer/fill_layer.hpp | 4 ++ include/mbgl/layer/line_layer.hpp | 4 ++ include/mbgl/layer/raster_layer.hpp | 1 + include/mbgl/layer/symbol_layer.hpp | 4 ++ include/mbgl/style/filter.hpp | 103 ++++++++++++++++++++++++++++++++ include/mbgl/util/variant.hpp | 10 ++++ 8 files changed, 131 insertions(+) create mode 100644 include/mbgl/style/filter.hpp create mode 100644 include/mbgl/util/variant.hpp (limited to 'include/mbgl') diff --git a/include/mbgl/layer/background_layer.hpp b/include/mbgl/layer/background_layer.hpp index 211597f6ea..bba16d3839 100644 --- a/include/mbgl/layer/background_layer.hpp +++ b/include/mbgl/layer/background_layer.hpp @@ -3,6 +3,7 @@ #pragma once #include +#include #include namespace mbgl { diff --git a/include/mbgl/layer/circle_layer.hpp b/include/mbgl/layer/circle_layer.hpp index 28e5c2fa7a..81f84d36a8 100644 --- a/include/mbgl/layer/circle_layer.hpp +++ b/include/mbgl/layer/circle_layer.hpp @@ -3,6 +3,7 @@ #pragma once #include +#include #include namespace mbgl { @@ -18,6 +19,9 @@ public: const std::string& getSourceID() const; const std::string& getSourceLayer() const; + void setFilter(const Filter&); + const Filter& getFilter() const; + // Paint properties PropertyValue getCircleRadius() const; diff --git a/include/mbgl/layer/fill_layer.hpp b/include/mbgl/layer/fill_layer.hpp index 76c043957d..10cf4f3bbd 100644 --- a/include/mbgl/layer/fill_layer.hpp +++ b/include/mbgl/layer/fill_layer.hpp @@ -3,6 +3,7 @@ #pragma once #include +#include #include namespace mbgl { @@ -18,6 +19,9 @@ public: const std::string& getSourceID() const; const std::string& getSourceLayer() const; + void setFilter(const Filter&); + const Filter& getFilter() const; + // Paint properties PropertyValue getFillAntialias() const; diff --git a/include/mbgl/layer/line_layer.hpp b/include/mbgl/layer/line_layer.hpp index b438799116..aeec363281 100644 --- a/include/mbgl/layer/line_layer.hpp +++ b/include/mbgl/layer/line_layer.hpp @@ -3,6 +3,7 @@ #pragma once #include +#include #include #include @@ -20,6 +21,9 @@ public: const std::string& getSourceID() const; const std::string& getSourceLayer() const; + void setFilter(const Filter&); + const Filter& getFilter() const; + // Layout properties PropertyValue getLineCap() const; diff --git a/include/mbgl/layer/raster_layer.hpp b/include/mbgl/layer/raster_layer.hpp index 5d747737c0..7dc2532a2f 100644 --- a/include/mbgl/layer/raster_layer.hpp +++ b/include/mbgl/layer/raster_layer.hpp @@ -3,6 +3,7 @@ #pragma once #include +#include #include namespace mbgl { diff --git a/include/mbgl/layer/symbol_layer.hpp b/include/mbgl/layer/symbol_layer.hpp index 2339515201..006506b3d8 100644 --- a/include/mbgl/layer/symbol_layer.hpp +++ b/include/mbgl/layer/symbol_layer.hpp @@ -3,6 +3,7 @@ #pragma once #include +#include #include #include @@ -20,6 +21,9 @@ public: const std::string& getSourceID() const; const std::string& getSourceLayer() const; + void setFilter(const Filter&); + const Filter& getFilter() const; + // Layout properties PropertyValue getSymbolPlacement() const; diff --git a/include/mbgl/style/filter.hpp b/include/mbgl/style/filter.hpp new file mode 100644 index 0000000000..6ad6969fbf --- /dev/null +++ b/include/mbgl/style/filter.hpp @@ -0,0 +1,103 @@ +#pragma once + +#include +#include + +#include +#include + +namespace mbgl { + +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 NullFilter {}; + +class EqualsFilter { +public: + std::string key; + Value value; +}; + +class NotEqualsFilter { +public: + std::string key; + Value value; +}; + +class LessThanFilter { +public: + std::string key; + Value value; +}; + +class LessThanEqualsFilter { +public: + std::string key; + Value value; +}; + +class GreaterThanFilter { +public: + std::string key; + Value value; +}; + +class GreaterThanEqualsFilter { +public: + std::string key; + Value value; +}; + +class InFilter { +public: + std::string key; + std::vector values; +}; + +class NotInFilter { +public: + std::string key; + std::vector values; +}; + +class AnyFilter { +public: + std::vector filters; +}; + +class AllFilter { +public: + std::vector filters; +}; + +class NoneFilter { +public: + std::vector filters; +}; + +class HasFilter { +public: + std::string key; +}; + +class NotHasFilter { +public: + std::string key; +}; + +} // namespace mbgl diff --git a/include/mbgl/util/variant.hpp b/include/mbgl/util/variant.hpp new file mode 100644 index 0000000000..68a1208a17 --- /dev/null +++ b/include/mbgl/util/variant.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include + +namespace mbgl { + +template +using variant = mapbox::util::variant; + +} // namespace mbgl -- cgit v1.2.1