diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-12-19 17:10:51 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-01-04 17:38:33 -0800 |
commit | 0c0064c050396eae8dad92e5097692537405704a (patch) | |
tree | 5eb3c975fc4295b7fcbc244258f8facbc1f7e30a /src/mbgl/style/layers | |
parent | 59803d3025683a255737b5ae29bd7fc531a975a3 (diff) | |
download | qtlocation-mapboxgl-0c0064c050396eae8dad92e5097692537405704a.tar.gz |
[core] Get rid of user-specified refs
Diffstat (limited to 'src/mbgl/style/layers')
24 files changed, 99 insertions, 17 deletions
diff --git a/src/mbgl/style/layers/background_layer.cpp b/src/mbgl/style/layers/background_layer.cpp index a54115d1a7..a75038bfa0 100644 --- a/src/mbgl/style/layers/background_layer.cpp +++ b/src/mbgl/style/layers/background_layer.cpp @@ -2,6 +2,7 @@ #include <mbgl/style/layers/background_layer.hpp> #include <mbgl/style/layers/background_layer_impl.hpp> +#include <mbgl/style/conversion/stringify.hpp> namespace mbgl { namespace style { @@ -26,11 +27,13 @@ std::unique_ptr<Layer> BackgroundLayer::Impl::clone() const { std::unique_ptr<Layer> BackgroundLayer::Impl::cloneRef(const std::string& id_) const { auto result = std::make_unique<BackgroundLayer>(*this); result->impl->id = id_; - result->impl->ref = this->id; result->impl->paint = BackgroundPaintProperties(); return std::move(result); } +void BackgroundLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const { +} + // Layout properties diff --git a/src/mbgl/style/layers/background_layer_impl.hpp b/src/mbgl/style/layers/background_layer_impl.hpp index d3d50e21cd..4629217e6d 100644 --- a/src/mbgl/style/layers/background_layer_impl.hpp +++ b/src/mbgl/style/layers/background_layer_impl.hpp @@ -11,6 +11,7 @@ class BackgroundLayer::Impl : public Layer::Impl { public: std::unique_ptr<Layer> clone() const override; std::unique_ptr<Layer> cloneRef(const std::string& id) const override; + void stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const override; void cascade(const CascadeParameters&) override; bool evaluate(const PropertyEvaluationParameters&) override; diff --git a/src/mbgl/style/layers/circle_layer.cpp b/src/mbgl/style/layers/circle_layer.cpp index e3a506e895..389ab93403 100644 --- a/src/mbgl/style/layers/circle_layer.cpp +++ b/src/mbgl/style/layers/circle_layer.cpp @@ -2,6 +2,7 @@ #include <mbgl/style/layers/circle_layer.hpp> #include <mbgl/style/layers/circle_layer_impl.hpp> +#include <mbgl/style/conversion/stringify.hpp> namespace mbgl { namespace style { @@ -27,11 +28,13 @@ std::unique_ptr<Layer> CircleLayer::Impl::clone() const { std::unique_ptr<Layer> CircleLayer::Impl::cloneRef(const std::string& id_) const { auto result = std::make_unique<CircleLayer>(*this); result->impl->id = id_; - result->impl->ref = this->id; result->impl->paint = CirclePaintProperties(); return std::move(result); } +void CircleLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const { +} + // Source const std::string& CircleLayer::getSourceID() const { diff --git a/src/mbgl/style/layers/circle_layer_impl.cpp b/src/mbgl/style/layers/circle_layer_impl.cpp index 614f637b3b..136522e41c 100644 --- a/src/mbgl/style/layers/circle_layer_impl.cpp +++ b/src/mbgl/style/layers/circle_layer_impl.cpp @@ -24,11 +24,10 @@ bool CircleLayer::Impl::evaluate(const PropertyEvaluationParameters& parameters) std::unique_ptr<Bucket> CircleLayer::Impl::createBucket(BucketParameters& parameters, const GeometryTileLayer& layer) const { auto bucket = std::make_unique<CircleBucket>(parameters.mode); - auto& name = bucketName(); parameters.eachFilteredFeature(filter, layer, [&] (const auto& feature, std::size_t index, const std::string& layerName) { auto geometries = feature.getGeometries(); bucket->addGeometry(geometries); - parameters.featureIndex.insert(geometries, index, layerName, name); + parameters.featureIndex.insert(geometries, index, layerName, id); }); return std::move(bucket); diff --git a/src/mbgl/style/layers/circle_layer_impl.hpp b/src/mbgl/style/layers/circle_layer_impl.hpp index f0db58be24..744a56898c 100644 --- a/src/mbgl/style/layers/circle_layer_impl.hpp +++ b/src/mbgl/style/layers/circle_layer_impl.hpp @@ -11,6 +11,7 @@ class CircleLayer::Impl : public Layer::Impl { public: std::unique_ptr<Layer> clone() const override; std::unique_ptr<Layer> cloneRef(const std::string& id) const override; + void stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const override; void cascade(const CascadeParameters&) override; bool evaluate(const PropertyEvaluationParameters&) override; diff --git a/src/mbgl/style/layers/custom_layer_impl.cpp b/src/mbgl/style/layers/custom_layer_impl.cpp index baf55205c4..cecd60a296 100644 --- a/src/mbgl/style/layers/custom_layer_impl.cpp +++ b/src/mbgl/style/layers/custom_layer_impl.cpp @@ -34,6 +34,9 @@ std::unique_ptr<Layer> CustomLayer::Impl::cloneRef(const std::string&) const { return std::make_unique<CustomLayer>(*this); } +void CustomLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const { +} + void CustomLayer::Impl::initialize() { assert(initializeFn); initializeFn(context); diff --git a/src/mbgl/style/layers/custom_layer_impl.hpp b/src/mbgl/style/layers/custom_layer_impl.hpp index 3e365faacf..71fb46d0d9 100644 --- a/src/mbgl/style/layers/custom_layer_impl.hpp +++ b/src/mbgl/style/layers/custom_layer_impl.hpp @@ -27,6 +27,7 @@ public: private: std::unique_ptr<Layer> clone() const override; std::unique_ptr<Layer> cloneRef(const std::string& id) const override; + void stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const override; void cascade(const CascadeParameters&) final {} bool evaluate(const PropertyEvaluationParameters&) final; diff --git a/src/mbgl/style/layers/fill_extrusion_layer.cpp b/src/mbgl/style/layers/fill_extrusion_layer.cpp index 64efb1dd6a..34f0267d16 100644 --- a/src/mbgl/style/layers/fill_extrusion_layer.cpp +++ b/src/mbgl/style/layers/fill_extrusion_layer.cpp @@ -2,6 +2,7 @@ #include <mbgl/style/layers/fill_extrusion_layer.hpp> #include <mbgl/style/layers/fill_extrusion_layer_impl.hpp> +#include <mbgl/style/conversion/stringify.hpp> namespace mbgl { namespace style { @@ -27,11 +28,13 @@ std::unique_ptr<Layer> FillExtrusionLayer::Impl::clone() const { std::unique_ptr<Layer> FillExtrusionLayer::Impl::cloneRef(const std::string& id_) const { auto result = std::make_unique<FillExtrusionLayer>(*this); result->impl->id = id_; - result->impl->ref = this->id; result->impl->paint = FillExtrusionPaintProperties(); return std::move(result); } +void FillExtrusionLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const { +} + // Source const std::string& FillExtrusionLayer::getSourceID() const { diff --git a/src/mbgl/style/layers/fill_extrusion_layer_impl.hpp b/src/mbgl/style/layers/fill_extrusion_layer_impl.hpp index 52b9d327f2..3dd8bb270a 100644 --- a/src/mbgl/style/layers/fill_extrusion_layer_impl.hpp +++ b/src/mbgl/style/layers/fill_extrusion_layer_impl.hpp @@ -11,6 +11,7 @@ class FillExtrusionLayer::Impl : public Layer::Impl { public: std::unique_ptr<Layer> clone() const override; std::unique_ptr<Layer> cloneRef(const std::string& id) const override; + void stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const override; void cascade(const CascadeParameters&) override; bool evaluate(const PropertyEvaluationParameters&) override; diff --git a/src/mbgl/style/layers/fill_layer.cpp b/src/mbgl/style/layers/fill_layer.cpp index 3bea9b56b0..b8fa8cad8b 100644 --- a/src/mbgl/style/layers/fill_layer.cpp +++ b/src/mbgl/style/layers/fill_layer.cpp @@ -2,6 +2,7 @@ #include <mbgl/style/layers/fill_layer.hpp> #include <mbgl/style/layers/fill_layer_impl.hpp> +#include <mbgl/style/conversion/stringify.hpp> namespace mbgl { namespace style { @@ -27,11 +28,13 @@ std::unique_ptr<Layer> FillLayer::Impl::clone() const { std::unique_ptr<Layer> FillLayer::Impl::cloneRef(const std::string& id_) const { auto result = std::make_unique<FillLayer>(*this); result->impl->id = id_; - result->impl->ref = this->id; result->impl->paint = FillPaintProperties(); return std::move(result); } +void FillLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const { +} + // Source const std::string& FillLayer::getSourceID() const { diff --git a/src/mbgl/style/layers/fill_layer_impl.cpp b/src/mbgl/style/layers/fill_layer_impl.cpp index 59d6a22432..51636820f0 100644 --- a/src/mbgl/style/layers/fill_layer_impl.cpp +++ b/src/mbgl/style/layers/fill_layer_impl.cpp @@ -33,11 +33,10 @@ bool FillLayer::Impl::evaluate(const PropertyEvaluationParameters& parameters) { std::unique_ptr<Bucket> FillLayer::Impl::createBucket(BucketParameters& parameters, const GeometryTileLayer& layer) const { auto bucket = std::make_unique<FillBucket>(); - auto& name = bucketName(); parameters.eachFilteredFeature(filter, layer, [&] (const auto& feature, std::size_t index, const std::string& layerName) { auto geometries = feature.getGeometries(); bucket->addGeometry(geometries); - parameters.featureIndex.insert(geometries, index, layerName, name); + parameters.featureIndex.insert(geometries, index, layerName, id); }); return std::move(bucket); diff --git a/src/mbgl/style/layers/fill_layer_impl.hpp b/src/mbgl/style/layers/fill_layer_impl.hpp index bebea4ffab..28e2fa7edc 100644 --- a/src/mbgl/style/layers/fill_layer_impl.hpp +++ b/src/mbgl/style/layers/fill_layer_impl.hpp @@ -11,6 +11,7 @@ class FillLayer::Impl : public Layer::Impl { public: std::unique_ptr<Layer> clone() const override; std::unique_ptr<Layer> cloneRef(const std::string& id) const override; + void stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const override; void cascade(const CascadeParameters&) override; bool evaluate(const PropertyEvaluationParameters&) override; diff --git a/src/mbgl/style/layers/layer.cpp.ejs b/src/mbgl/style/layers/layer.cpp.ejs index 5fe78519ec..e730e3a29b 100644 --- a/src/mbgl/style/layers/layer.cpp.ejs +++ b/src/mbgl/style/layers/layer.cpp.ejs @@ -7,6 +7,7 @@ #include <mbgl/style/layers/<%- type.replace('-', '_') %>_layer.hpp> #include <mbgl/style/layers/<%- type.replace('-', '_') %>_layer_impl.hpp> +#include <mbgl/style/conversion/stringify.hpp> namespace mbgl { namespace style { @@ -40,11 +41,19 @@ std::unique_ptr<Layer> <%- camelize(type) %>Layer::Impl::clone() const { std::unique_ptr<Layer> <%- camelize(type) %>Layer::Impl::cloneRef(const std::string& id_) const { auto result = std::make_unique<<%- camelize(type) %>Layer>(*this); result->impl->id = id_; - result->impl->ref = this->id; result->impl->paint = <%- camelize(type) %>PaintProperties(); return std::move(result); } +<% if (layoutProperties.length) { -%> +void <%- camelize(type) %>Layer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>& writer) const { + conversion::stringify(writer, layout); +} +<% } else { -%> +void <%- camelize(type) %>Layer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const { +} +<% } -%> + <% if (type !== 'background') { -%> // Source diff --git a/src/mbgl/style/layers/layer_properties.hpp.ejs b/src/mbgl/style/layers/layer_properties.hpp.ejs index f490a636f9..d18ad44efd 100644 --- a/src/mbgl/style/layers/layer_properties.hpp.ejs +++ b/src/mbgl/style/layers/layer_properties.hpp.ejs @@ -16,6 +16,7 @@ namespace style { <% for (const property of layoutProperties) { -%> struct <%- camelize(property.name) %> : LayoutProperty<<%- propertyType(property) %>> { + static constexpr const char * key = "<%- property.name %>"; static <%- propertyType(property) %> defaultValue() { return <%- defaultValue(property) %>; } }; diff --git a/src/mbgl/style/layers/line_layer.cpp b/src/mbgl/style/layers/line_layer.cpp index 8c38ef5694..7f6c148cd1 100644 --- a/src/mbgl/style/layers/line_layer.cpp +++ b/src/mbgl/style/layers/line_layer.cpp @@ -2,6 +2,7 @@ #include <mbgl/style/layers/line_layer.hpp> #include <mbgl/style/layers/line_layer_impl.hpp> +#include <mbgl/style/conversion/stringify.hpp> namespace mbgl { namespace style { @@ -27,11 +28,14 @@ std::unique_ptr<Layer> LineLayer::Impl::clone() const { std::unique_ptr<Layer> LineLayer::Impl::cloneRef(const std::string& id_) const { auto result = std::make_unique<LineLayer>(*this); result->impl->id = id_; - result->impl->ref = this->id; result->impl->paint = LinePaintProperties(); return std::move(result); } +void LineLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>& writer) const { + conversion::stringify(writer, layout); +} + // Source const std::string& LineLayer::getSourceID() const { diff --git a/src/mbgl/style/layers/line_layer_impl.cpp b/src/mbgl/style/layers/line_layer_impl.cpp index 24b2b097b1..477579a43c 100644 --- a/src/mbgl/style/layers/line_layer_impl.cpp +++ b/src/mbgl/style/layers/line_layer_impl.cpp @@ -31,11 +31,10 @@ std::unique_ptr<Bucket> LineLayer::Impl::createBucket(BucketParameters& paramete bucket->layout = layout.evaluate(PropertyEvaluationParameters(parameters.tileID.overscaledZ)); - auto& name = bucketName(); parameters.eachFilteredFeature(filter, layer, [&] (const auto& feature, std::size_t index, const std::string& layerName) { auto geometries = feature.getGeometries(); bucket->addGeometry(geometries); - parameters.featureIndex.insert(geometries, index, layerName, name); + parameters.featureIndex.insert(geometries, index, layerName, id); }); return std::move(bucket); diff --git a/src/mbgl/style/layers/line_layer_impl.hpp b/src/mbgl/style/layers/line_layer_impl.hpp index 8c8c7d053b..1955c019af 100644 --- a/src/mbgl/style/layers/line_layer_impl.hpp +++ b/src/mbgl/style/layers/line_layer_impl.hpp @@ -11,6 +11,7 @@ class LineLayer::Impl : public Layer::Impl { public: std::unique_ptr<Layer> clone() const override; std::unique_ptr<Layer> cloneRef(const std::string& id) const override; + void stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const override; void cascade(const CascadeParameters&) override; bool evaluate(const PropertyEvaluationParameters&) override; diff --git a/src/mbgl/style/layers/line_layer_properties.hpp b/src/mbgl/style/layers/line_layer_properties.hpp index 07458cd634..2ea7f6b125 100644 --- a/src/mbgl/style/layers/line_layer_properties.hpp +++ b/src/mbgl/style/layers/line_layer_properties.hpp @@ -10,18 +10,22 @@ namespace mbgl { namespace style { struct LineCap : LayoutProperty<LineCapType> { + static constexpr const char * key = "line-cap"; static LineCapType defaultValue() { return LineCapType::Butt; } }; struct LineJoin : LayoutProperty<LineJoinType> { + static constexpr const char * key = "line-join"; static LineJoinType defaultValue() { return LineJoinType::Miter; } }; struct LineMiterLimit : LayoutProperty<float> { + static constexpr const char * key = "line-miter-limit"; static float defaultValue() { return 2; } }; struct LineRoundLimit : LayoutProperty<float> { + static constexpr const char * key = "line-round-limit"; static float defaultValue() { return 1; } }; diff --git a/src/mbgl/style/layers/raster_layer.cpp b/src/mbgl/style/layers/raster_layer.cpp index 21d72a0fdc..0fda27f0dc 100644 --- a/src/mbgl/style/layers/raster_layer.cpp +++ b/src/mbgl/style/layers/raster_layer.cpp @@ -2,6 +2,7 @@ #include <mbgl/style/layers/raster_layer.hpp> #include <mbgl/style/layers/raster_layer_impl.hpp> +#include <mbgl/style/conversion/stringify.hpp> namespace mbgl { namespace style { @@ -27,11 +28,13 @@ std::unique_ptr<Layer> RasterLayer::Impl::clone() const { std::unique_ptr<Layer> RasterLayer::Impl::cloneRef(const std::string& id_) const { auto result = std::make_unique<RasterLayer>(*this); result->impl->id = id_; - result->impl->ref = this->id; result->impl->paint = RasterPaintProperties(); return std::move(result); } +void RasterLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const { +} + // Source const std::string& RasterLayer::getSourceID() const { diff --git a/src/mbgl/style/layers/raster_layer_impl.hpp b/src/mbgl/style/layers/raster_layer_impl.hpp index b7c926f623..8e69c21ca8 100644 --- a/src/mbgl/style/layers/raster_layer_impl.hpp +++ b/src/mbgl/style/layers/raster_layer_impl.hpp @@ -11,6 +11,7 @@ class RasterLayer::Impl : public Layer::Impl { public: std::unique_ptr<Layer> clone() const override; std::unique_ptr<Layer> cloneRef(const std::string& id) const override; + void stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const override; void cascade(const CascadeParameters&) override; bool evaluate(const PropertyEvaluationParameters&) override; diff --git a/src/mbgl/style/layers/symbol_layer.cpp b/src/mbgl/style/layers/symbol_layer.cpp index 61f360ff64..c9014e7ee7 100644 --- a/src/mbgl/style/layers/symbol_layer.cpp +++ b/src/mbgl/style/layers/symbol_layer.cpp @@ -2,6 +2,7 @@ #include <mbgl/style/layers/symbol_layer.hpp> #include <mbgl/style/layers/symbol_layer_impl.hpp> +#include <mbgl/style/conversion/stringify.hpp> namespace mbgl { namespace style { @@ -27,11 +28,14 @@ std::unique_ptr<Layer> SymbolLayer::Impl::clone() const { std::unique_ptr<Layer> SymbolLayer::Impl::cloneRef(const std::string& id_) const { auto result = std::make_unique<SymbolLayer>(*this); result->impl->id = id_; - result->impl->ref = this->id; result->impl->paint = SymbolPaintProperties(); return std::move(result); } +void SymbolLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>& writer) const { + conversion::stringify(writer, layout); +} + // Source const std::string& SymbolLayer::getSourceID() const { diff --git a/src/mbgl/style/layers/symbol_layer_impl.cpp b/src/mbgl/style/layers/symbol_layer_impl.cpp index 64968f51e4..8fb85513cf 100644 --- a/src/mbgl/style/layers/symbol_layer_impl.cpp +++ b/src/mbgl/style/layers/symbol_layer_impl.cpp @@ -29,7 +29,9 @@ std::unique_ptr<Bucket> SymbolLayer::Impl::createBucket(BucketParameters&, const return nullptr; } -std::unique_ptr<SymbolLayout> SymbolLayer::Impl::createLayout(BucketParameters& parameters, const GeometryTileLayer& layer) const { +std::unique_ptr<SymbolLayout> SymbolLayer::Impl::createLayout(BucketParameters& parameters, + const GeometryTileLayer& layer, + std::vector<std::unique_ptr<Layer>> group) const { PropertyEvaluationParameters p(parameters.tileID.overscaledZ); SymbolLayoutProperties::Evaluated evaluated = layout.evaluate(p); @@ -59,7 +61,7 @@ std::unique_ptr<SymbolLayout> SymbolLayer::Impl::createLayout(BucketParameters& evaluated.get<IconSize>() = layout.evaluate<IconSize>(PropertyEvaluationParameters(p.z + 1)); evaluated.get<TextSize>() = layout.evaluate<TextSize>(PropertyEvaluationParameters(p.z + 1)); - return std::make_unique<SymbolLayout>(id, + return std::make_unique<SymbolLayout>(std::move(group), layer.getName(), parameters.tileID.overscaleFactor(), parameters.tileID.overscaledZ, diff --git a/src/mbgl/style/layers/symbol_layer_impl.hpp b/src/mbgl/style/layers/symbol_layer_impl.hpp index 4377630491..0d9a7c07e3 100644 --- a/src/mbgl/style/layers/symbol_layer_impl.hpp +++ b/src/mbgl/style/layers/symbol_layer_impl.hpp @@ -45,12 +45,14 @@ class SymbolLayer::Impl : public Layer::Impl { public: std::unique_ptr<Layer> clone() const override; std::unique_ptr<Layer> cloneRef(const std::string& id) const override; + void stringifyLayout(rapidjson::Writer<rapidjson::StringBuffer>&) const override; void cascade(const CascadeParameters&) override; bool evaluate(const PropertyEvaluationParameters&) override; std::unique_ptr<Bucket> createBucket(BucketParameters&, const GeometryTileLayer&) const override; - std::unique_ptr<SymbolLayout> createLayout(BucketParameters&, const GeometryTileLayer&) const; + std::unique_ptr<SymbolLayout> createLayout(BucketParameters&, const GeometryTileLayer&, + std::vector<std::unique_ptr<Layer>>) const; SymbolPropertyValues iconPropertyValues(const SymbolLayoutProperties::Evaluated&) const; SymbolPropertyValues textPropertyValues(const SymbolLayoutProperties::Evaluated&) const; diff --git a/src/mbgl/style/layers/symbol_layer_properties.hpp b/src/mbgl/style/layers/symbol_layer_properties.hpp index 8b72c4347a..f5fd6ce3df 100644 --- a/src/mbgl/style/layers/symbol_layer_properties.hpp +++ b/src/mbgl/style/layers/symbol_layer_properties.hpp @@ -10,138 +10,172 @@ namespace mbgl { namespace style { struct SymbolPlacement : LayoutProperty<SymbolPlacementType> { + static constexpr const char * key = "symbol-placement"; static SymbolPlacementType defaultValue() { return SymbolPlacementType::Point; } }; struct SymbolSpacing : LayoutProperty<float> { + static constexpr const char * key = "symbol-spacing"; static float defaultValue() { return 250; } }; struct SymbolAvoidEdges : LayoutProperty<bool> { + static constexpr const char * key = "symbol-avoid-edges"; static bool defaultValue() { return false; } }; struct IconAllowOverlap : LayoutProperty<bool> { + static constexpr const char * key = "icon-allow-overlap"; static bool defaultValue() { return false; } }; struct IconIgnorePlacement : LayoutProperty<bool> { + static constexpr const char * key = "icon-ignore-placement"; static bool defaultValue() { return false; } }; struct IconOptional : LayoutProperty<bool> { + static constexpr const char * key = "icon-optional"; static bool defaultValue() { return false; } }; struct IconRotationAlignment : LayoutProperty<AlignmentType> { + static constexpr const char * key = "icon-rotation-alignment"; static AlignmentType defaultValue() { return AlignmentType::Auto; } }; struct IconSize : LayoutProperty<float> { + static constexpr const char * key = "icon-size"; static float defaultValue() { return 1; } }; struct IconTextFit : LayoutProperty<IconTextFitType> { + static constexpr const char * key = "icon-text-fit"; static IconTextFitType defaultValue() { return IconTextFitType::None; } }; struct IconTextFitPadding : LayoutProperty<std::array<float, 4>> { + static constexpr const char * key = "icon-text-fit-padding"; static std::array<float, 4> defaultValue() { return {{ 0, 0, 0, 0 }}; } }; struct IconImage : LayoutProperty<std::string> { + static constexpr const char * key = "icon-image"; static std::string defaultValue() { return ""; } }; struct IconRotate : LayoutProperty<float> { + static constexpr const char * key = "icon-rotate"; static float defaultValue() { return 0; } }; struct IconPadding : LayoutProperty<float> { + static constexpr const char * key = "icon-padding"; static float defaultValue() { return 2; } }; struct IconKeepUpright : LayoutProperty<bool> { + static constexpr const char * key = "icon-keep-upright"; static bool defaultValue() { return false; } }; struct IconOffset : LayoutProperty<std::array<float, 2>> { + static constexpr const char * key = "icon-offset"; static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; } }; struct TextPitchAlignment : LayoutProperty<AlignmentType> { + static constexpr const char * key = "text-pitch-alignment"; static AlignmentType defaultValue() { return AlignmentType::Auto; } }; struct TextRotationAlignment : LayoutProperty<AlignmentType> { + static constexpr const char * key = "text-rotation-alignment"; static AlignmentType defaultValue() { return AlignmentType::Auto; } }; struct TextField : LayoutProperty<std::string> { + static constexpr const char * key = "text-field"; static std::string defaultValue() { return ""; } }; struct TextFont : LayoutProperty<std::vector<std::string>> { + static constexpr const char * key = "text-font"; static std::vector<std::string> defaultValue() { return { "Open Sans Regular", "Arial Unicode MS Regular" }; } }; struct TextSize : LayoutProperty<float> { + static constexpr const char * key = "text-size"; static float defaultValue() { return 16; } }; struct TextMaxWidth : LayoutProperty<float> { + static constexpr const char * key = "text-max-width"; static float defaultValue() { return 10; } }; struct TextLineHeight : LayoutProperty<float> { + static constexpr const char * key = "text-line-height"; static float defaultValue() { return 1.2; } }; struct TextLetterSpacing : LayoutProperty<float> { + static constexpr const char * key = "text-letter-spacing"; static float defaultValue() { return 0; } }; struct TextJustify : LayoutProperty<TextJustifyType> { + static constexpr const char * key = "text-justify"; static TextJustifyType defaultValue() { return TextJustifyType::Center; } }; struct TextAnchor : LayoutProperty<TextAnchorType> { + static constexpr const char * key = "text-anchor"; static TextAnchorType defaultValue() { return TextAnchorType::Center; } }; struct TextMaxAngle : LayoutProperty<float> { + static constexpr const char * key = "text-max-angle"; static float defaultValue() { return 45; } }; struct TextRotate : LayoutProperty<float> { + static constexpr const char * key = "text-rotate"; static float defaultValue() { return 0; } }; struct TextPadding : LayoutProperty<float> { + static constexpr const char * key = "text-padding"; static float defaultValue() { return 2; } }; struct TextKeepUpright : LayoutProperty<bool> { + static constexpr const char * key = "text-keep-upright"; static bool defaultValue() { return true; } }; struct TextTransform : LayoutProperty<TextTransformType> { + static constexpr const char * key = "text-transform"; static TextTransformType defaultValue() { return TextTransformType::None; } }; struct TextOffset : LayoutProperty<std::array<float, 2>> { + static constexpr const char * key = "text-offset"; static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; } }; struct TextAllowOverlap : LayoutProperty<bool> { + static constexpr const char * key = "text-allow-overlap"; static bool defaultValue() { return false; } }; struct TextIgnorePlacement : LayoutProperty<bool> { + static constexpr const char * key = "text-ignore-placement"; static bool defaultValue() { return false; } }; struct TextOptional : LayoutProperty<bool> { + static constexpr const char * key = "text-optional"; static bool defaultValue() { return false; } }; |