diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-12-08 12:09:21 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-12-09 09:35:21 -0800 |
commit | 3b2a4216a2e3929a557dbddd0d239758641c285f (patch) | |
tree | fc30966e6d1253e040b6092f1c53eb2fd22632e7 /include | |
parent | 4a2f53e6e51b4759cacd89790db99783bf211343 (diff) | |
download | qtlocation-mapboxgl-3b2a4216a2e3929a557dbddd0d239758641c285f.tar.gz |
[core] Implement circle-stroke properties
Also includes stubs for fill-extrusion layer, because most of the code was auto-generated.
Diffstat (limited to 'include')
-rw-r--r-- | include/mbgl/style/conversion/make_property_setters.hpp | 13 | ||||
-rw-r--r-- | include/mbgl/style/conversion/make_property_setters.hpp.ejs | 2 | ||||
-rw-r--r-- | include/mbgl/style/layer.hpp | 4 | ||||
-rw-r--r-- | include/mbgl/style/layers/circle_layer.hpp | 12 | ||||
-rw-r--r-- | include/mbgl/style/layers/fill_extrusion_layer.hpp | 72 |
5 files changed, 102 insertions, 1 deletions
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 <mbgl/style/layers/line_layer.hpp> #include <mbgl/style/layers/symbol_layer.hpp> #include <mbgl/style/layers/circle_layer.hpp> +#include <mbgl/style/layers/fill_extrusion_layer.hpp> #include <mbgl/style/layers/raster_layer.hpp> #include <mbgl/style/layers/background_layer.hpp> @@ -67,6 +68,7 @@ auto makeLayoutPropertySetters() { + return result; } @@ -115,6 +117,17 @@ auto makePaintPropertySetters() { result["circle-translate"] = makePropertySetter<V>(&CircleLayer::setCircleTranslate); result["circle-translate-anchor"] = makePropertySetter<V>(&CircleLayer::setCircleTranslateAnchor); result["circle-pitch-scale"] = makePropertySetter<V>(&CircleLayer::setCirclePitchScale); + result["circle-stroke-width"] = makePropertySetter<V>(&CircleLayer::setCircleStrokeWidth); + result["circle-stroke-color"] = makePropertySetter<V>(&CircleLayer::setCircleStrokeColor); + result["circle-stroke-opacity"] = makePropertySetter<V>(&CircleLayer::setCircleStrokeOpacity); + + result["fill-extrusion-opacity"] = makePropertySetter<V>(&FillExtrusionLayer::setFillExtrusionOpacity); + result["fill-extrusion-color"] = makePropertySetter<V>(&FillExtrusionLayer::setFillExtrusionColor); + result["fill-extrusion-translate"] = makePropertySetter<V>(&FillExtrusionLayer::setFillExtrusionTranslate); + result["fill-extrusion-translate-anchor"] = makePropertySetter<V>(&FillExtrusionLayer::setFillExtrusionTranslateAnchor); + result["fill-extrusion-pattern"] = makePropertySetter<V>(&FillExtrusionLayer::setFillExtrusionPattern); + result["fill-extrusion-height"] = makePropertySetter<V>(&FillExtrusionLayer::setFillExtrusionHeight); + result["fill-extrusion-base"] = makePropertySetter<V>(&FillExtrusionLayer::setFillExtrusionBase); result["raster-opacity"] = makePropertySetter<V>(&RasterLayer::setRasterOpacity); result["raster-hue-rotate"] = makePropertySetter<V>(&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 <mbgl/style/conversion/property_setter.hpp> <% for (const layer of locals.layers) { -%> -#include <mbgl/style/layers/<%- layer.type %>_layer.hpp> +#include <mbgl/style/layers/<%- layer.type.replace('-', '_') %>_layer.hpp> <% } -%> #include <unordered_map> 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<BackgroundLayer>()); case Type::Custom: return visitor(*as<CustomLayer>()); + case Type::FillExtrusion: + return visitor(*as<FillExtrusionLayer>()); } } 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<CirclePitchScaleType> getCirclePitchScale(const optional<std::string>& klass = {}) const; void setCirclePitchScale(PropertyValue<CirclePitchScaleType>, const optional<std::string>& klass = {}); + static PropertyValue<float> getDefaultCircleStrokeWidth(); + PropertyValue<float> getCircleStrokeWidth(const optional<std::string>& klass = {}) const; + void setCircleStrokeWidth(PropertyValue<float>, const optional<std::string>& klass = {}); + + static PropertyValue<Color> getDefaultCircleStrokeColor(); + PropertyValue<Color> getCircleStrokeColor(const optional<std::string>& klass = {}) const; + void setCircleStrokeColor(PropertyValue<Color>, const optional<std::string>& klass = {}); + + static PropertyValue<float> getDefaultCircleStrokeOpacity(); + PropertyValue<float> getCircleStrokeOpacity(const optional<std::string>& klass = {}) const; + void setCircleStrokeOpacity(PropertyValue<float>, const optional<std::string>& 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 <mbgl/style/layer.hpp> +#include <mbgl/style/filter.hpp> +#include <mbgl/style/property_value.hpp> + +#include <mbgl/util/color.hpp> + +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<float> getDefaultFillExtrusionOpacity(); + PropertyValue<float> getFillExtrusionOpacity(const optional<std::string>& klass = {}) const; + void setFillExtrusionOpacity(PropertyValue<float>, const optional<std::string>& klass = {}); + + static PropertyValue<Color> getDefaultFillExtrusionColor(); + PropertyValue<Color> getFillExtrusionColor(const optional<std::string>& klass = {}) const; + void setFillExtrusionColor(PropertyValue<Color>, const optional<std::string>& klass = {}); + + static PropertyValue<std::array<float, 2>> getDefaultFillExtrusionTranslate(); + PropertyValue<std::array<float, 2>> getFillExtrusionTranslate(const optional<std::string>& klass = {}) const; + void setFillExtrusionTranslate(PropertyValue<std::array<float, 2>>, const optional<std::string>& klass = {}); + + static PropertyValue<TranslateAnchorType> getDefaultFillExtrusionTranslateAnchor(); + PropertyValue<TranslateAnchorType> getFillExtrusionTranslateAnchor(const optional<std::string>& klass = {}) const; + void setFillExtrusionTranslateAnchor(PropertyValue<TranslateAnchorType>, const optional<std::string>& klass = {}); + + static PropertyValue<std::string> getDefaultFillExtrusionPattern(); + PropertyValue<std::string> getFillExtrusionPattern(const optional<std::string>& klass = {}) const; + void setFillExtrusionPattern(PropertyValue<std::string>, const optional<std::string>& klass = {}); + + static PropertyValue<float> getDefaultFillExtrusionHeight(); + PropertyValue<float> getFillExtrusionHeight(const optional<std::string>& klass = {}) const; + void setFillExtrusionHeight(PropertyValue<float>, const optional<std::string>& klass = {}); + + static PropertyValue<float> getDefaultFillExtrusionBase(); + PropertyValue<float> getFillExtrusionBase(const optional<std::string>& klass = {}) const; + void setFillExtrusionBase(PropertyValue<float>, const optional<std::string>& klass = {}); + + // Private implementation + + class Impl; + Impl* const impl; + + FillExtrusionLayer(const Impl&); + FillExtrusionLayer(const FillExtrusionLayer&) = delete; +}; + +template <> +inline bool Layer::is<FillExtrusionLayer>() const { + return type == Type::FillExtrusion; +} + +} // namespace style +} // namespace mbgl |