From 3b2a4216a2e3929a557dbddd0d239758641c285f Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 8 Dec 2016 12:09:21 -0800 Subject: [core] Implement circle-stroke properties Also includes stubs for fill-extrusion layer, because most of the code was auto-generated. --- .../style/conversion/make_property_setters.hpp | 13 ++++ .../style/conversion/make_property_setters.hpp.ejs | 2 +- include/mbgl/style/layer.hpp | 4 ++ include/mbgl/style/layers/circle_layer.hpp | 12 ++++ include/mbgl/style/layers/fill_extrusion_layer.hpp | 72 ++++++++++++++++++++++ 5 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 include/mbgl/style/layers/fill_extrusion_layer.hpp (limited to 'include') diff --git a/include/mbgl/style/conversion/make_property_setters.hpp b/include/mbgl/style/conversion/make_property_setters.hpp index a3ba5e5d5a..e30359937e 100644 --- a/include/mbgl/style/conversion/make_property_setters.hpp +++ b/include/mbgl/style/conversion/make_property_setters.hpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -67,6 +68,7 @@ auto makeLayoutPropertySetters() { + return result; } @@ -115,6 +117,17 @@ auto makePaintPropertySetters() { result["circle-translate"] = makePropertySetter(&CircleLayer::setCircleTranslate); result["circle-translate-anchor"] = makePropertySetter(&CircleLayer::setCircleTranslateAnchor); result["circle-pitch-scale"] = makePropertySetter(&CircleLayer::setCirclePitchScale); + result["circle-stroke-width"] = makePropertySetter(&CircleLayer::setCircleStrokeWidth); + result["circle-stroke-color"] = makePropertySetter(&CircleLayer::setCircleStrokeColor); + result["circle-stroke-opacity"] = makePropertySetter(&CircleLayer::setCircleStrokeOpacity); + + result["fill-extrusion-opacity"] = makePropertySetter(&FillExtrusionLayer::setFillExtrusionOpacity); + result["fill-extrusion-color"] = makePropertySetter(&FillExtrusionLayer::setFillExtrusionColor); + result["fill-extrusion-translate"] = makePropertySetter(&FillExtrusionLayer::setFillExtrusionTranslate); + result["fill-extrusion-translate-anchor"] = makePropertySetter(&FillExtrusionLayer::setFillExtrusionTranslateAnchor); + result["fill-extrusion-pattern"] = makePropertySetter(&FillExtrusionLayer::setFillExtrusionPattern); + result["fill-extrusion-height"] = makePropertySetter(&FillExtrusionLayer::setFillExtrusionHeight); + result["fill-extrusion-base"] = makePropertySetter(&FillExtrusionLayer::setFillExtrusionBase); result["raster-opacity"] = makePropertySetter(&RasterLayer::setRasterOpacity); result["raster-hue-rotate"] = makePropertySetter(&RasterLayer::setRasterHueRotate); diff --git a/include/mbgl/style/conversion/make_property_setters.hpp.ejs b/include/mbgl/style/conversion/make_property_setters.hpp.ejs index 54e3958180..ed8f6e891c 100644 --- a/include/mbgl/style/conversion/make_property_setters.hpp.ejs +++ b/include/mbgl/style/conversion/make_property_setters.hpp.ejs @@ -5,7 +5,7 @@ #include <% for (const layer of locals.layers) { -%> -#include _layer.hpp> +#include _layer.hpp> <% } -%> #include diff --git a/include/mbgl/style/layer.hpp b/include/mbgl/style/layer.hpp index 925629a349..dc02cb09b2 100644 --- a/include/mbgl/style/layer.hpp +++ b/include/mbgl/style/layer.hpp @@ -15,6 +15,7 @@ class SymbolLayer; class RasterLayer; class BackgroundLayer; class CustomLayer; +class FillExtrusionLayer; /** * The runtime representation of a [layer](https://www.mapbox.com/mapbox-gl-style-spec/#layers) from the Mapbox Style @@ -42,6 +43,7 @@ protected: Raster, Background, Custom, + FillExtrusion, }; class Impl; @@ -95,6 +97,8 @@ public: return visitor(*as()); case Type::Custom: return visitor(*as()); + case Type::FillExtrusion: + return visitor(*as()); } } diff --git a/include/mbgl/style/layers/circle_layer.hpp b/include/mbgl/style/layers/circle_layer.hpp index 587f0023e3..5562126c2f 100644 --- a/include/mbgl/style/layers/circle_layer.hpp +++ b/include/mbgl/style/layers/circle_layer.hpp @@ -54,6 +54,18 @@ public: PropertyValue getCirclePitchScale(const optional& klass = {}) const; void setCirclePitchScale(PropertyValue, const optional& klass = {}); + static PropertyValue getDefaultCircleStrokeWidth(); + PropertyValue getCircleStrokeWidth(const optional& klass = {}) const; + void setCircleStrokeWidth(PropertyValue, const optional& klass = {}); + + static PropertyValue getDefaultCircleStrokeColor(); + PropertyValue getCircleStrokeColor(const optional& klass = {}) const; + void setCircleStrokeColor(PropertyValue, const optional& klass = {}); + + static PropertyValue getDefaultCircleStrokeOpacity(); + PropertyValue getCircleStrokeOpacity(const optional& klass = {}) const; + void setCircleStrokeOpacity(PropertyValue, const optional& klass = {}); + // Private implementation class Impl; diff --git a/include/mbgl/style/layers/fill_extrusion_layer.hpp b/include/mbgl/style/layers/fill_extrusion_layer.hpp new file mode 100644 index 0000000000..08728af309 --- /dev/null +++ b/include/mbgl/style/layers/fill_extrusion_layer.hpp @@ -0,0 +1,72 @@ +// This file is generated. Do not edit. + +#pragma once + +#include +#include +#include + +#include + +namespace mbgl { +namespace style { + +class FillExtrusionLayer : public Layer { +public: + FillExtrusionLayer(const std::string& layerID, const std::string& sourceID); + ~FillExtrusionLayer() final; + + // Source + const std::string& getSourceID() const; + const std::string& getSourceLayer() const; + void setSourceLayer(const std::string& sourceLayer); + + void setFilter(const Filter&); + const Filter& getFilter() const; + + // Paint properties + + static PropertyValue getDefaultFillExtrusionOpacity(); + PropertyValue getFillExtrusionOpacity(const optional& klass = {}) const; + void setFillExtrusionOpacity(PropertyValue, const optional& klass = {}); + + static PropertyValue getDefaultFillExtrusionColor(); + PropertyValue getFillExtrusionColor(const optional& klass = {}) const; + void setFillExtrusionColor(PropertyValue, const optional& klass = {}); + + static PropertyValue> getDefaultFillExtrusionTranslate(); + PropertyValue> getFillExtrusionTranslate(const optional& klass = {}) const; + void setFillExtrusionTranslate(PropertyValue>, const optional& klass = {}); + + static PropertyValue getDefaultFillExtrusionTranslateAnchor(); + PropertyValue getFillExtrusionTranslateAnchor(const optional& klass = {}) const; + void setFillExtrusionTranslateAnchor(PropertyValue, const optional& klass = {}); + + static PropertyValue getDefaultFillExtrusionPattern(); + PropertyValue getFillExtrusionPattern(const optional& klass = {}) const; + void setFillExtrusionPattern(PropertyValue, const optional& klass = {}); + + static PropertyValue getDefaultFillExtrusionHeight(); + PropertyValue getFillExtrusionHeight(const optional& klass = {}) const; + void setFillExtrusionHeight(PropertyValue, const optional& klass = {}); + + static PropertyValue getDefaultFillExtrusionBase(); + PropertyValue getFillExtrusionBase(const optional& klass = {}) const; + void setFillExtrusionBase(PropertyValue, const optional& klass = {}); + + // Private implementation + + class Impl; + Impl* const impl; + + FillExtrusionLayer(const Impl&); + FillExtrusionLayer(const FillExtrusionLayer&) = delete; +}; + +template <> +inline bool Layer::is() const { + return type == Type::FillExtrusion; +} + +} // namespace style +} // namespace mbgl -- cgit v1.2.1