diff options
author | Gali Nelle <galinelle.mapbox@gmail.com> | 2020-03-25 17:35:44 +0200 |
---|---|---|
committer | galinelle <paolo.angelelli@mapbox.com> | 2020-04-08 14:00:26 +0300 |
commit | 9a55c282fecfdd76b1acdf64cef0ce2ed99472ef (patch) | |
tree | d2c412ef6ac4782d28cea66b761deeb5fff10cc3 /include/mbgl | |
parent | 7f53cec17b047a1804952a8da543dc10321e1dae (diff) | |
download | qtlocation-mapboxgl-9a55c282fecfdd76b1acdf64cef0ce2ed99472ef.tar.gz |
Add LocationIndicatorLayer
New key is "G" in mbgl-glfw, cycling between no puck, centered
in the viewport and positioned in Tokyo.
Diffstat (limited to 'include/mbgl')
-rw-r--r-- | include/mbgl/layermanager/location_indicator_layer_factory.hpp | 15 | ||||
-rw-r--r-- | include/mbgl/style/conversion/constant.hpp | 5 | ||||
-rw-r--r-- | include/mbgl/style/conversion/property_value.hpp | 4 | ||||
-rw-r--r-- | include/mbgl/style/layers/layer.hpp.ejs | 2 | ||||
-rw-r--r-- | include/mbgl/style/layers/location_indicator_layer.hpp | 115 |
5 files changed, 140 insertions, 1 deletions
diff --git a/include/mbgl/layermanager/location_indicator_layer_factory.hpp b/include/mbgl/layermanager/location_indicator_layer_factory.hpp new file mode 100644 index 0000000000..8d8e3b9a40 --- /dev/null +++ b/include/mbgl/layermanager/location_indicator_layer_factory.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include <mbgl/layermanager/layer_factory.hpp> + +namespace mbgl { + +class LocationIndicatorLayerFactory : public LayerFactory { +protected: + const style::LayerTypeInfo* getTypeInfo() const noexcept final; + std::unique_ptr<style::Layer> createLayer(const std::string& id, + const style::conversion::Convertible& value) noexcept final; + std::unique_ptr<RenderLayer> createRenderLayer(Immutable<style::Layer::Impl>) noexcept final; +}; + +} // namespace mbgl diff --git a/include/mbgl/style/conversion/constant.hpp b/include/mbgl/style/conversion/constant.hpp index 3a5833be64..4acddfb012 100644 --- a/include/mbgl/style/conversion/constant.hpp +++ b/include/mbgl/style/conversion/constant.hpp @@ -54,6 +54,11 @@ struct Converter<std::vector<float>> { optional<std::vector<float>> operator()(const Convertible& value, Error& error) const; }; +template <size_t N> +struct Converter<std::array<double, N>> { + optional<std::array<double, N>> operator()(const Convertible& value, Error& error) const; +}; + template <> struct Converter<std::vector<std::string>> { optional<std::vector<std::string>> operator()(const Convertible& value, Error& error) const; diff --git a/include/mbgl/style/conversion/property_value.hpp b/include/mbgl/style/conversion/property_value.hpp index 61360b7440..925f97af18 100644 --- a/include/mbgl/style/conversion/property_value.hpp +++ b/include/mbgl/style/conversion/property_value.hpp @@ -47,6 +47,10 @@ struct Converter<PropertyValue<T>> { } }; +template <> +struct Converter<PropertyValue<std::array<double, 3>>, void> { + optional<PropertyValue<std::array<double, 3>>> operator()(const Convertible& value, Error& error, bool, bool) const; +}; } // namespace conversion } // namespace style } // namespace mbgl diff --git a/include/mbgl/style/layers/layer.hpp.ejs b/include/mbgl/style/layers/layer.hpp.ejs index 9cdd74737a..a083829f60 100644 --- a/include/mbgl/style/layers/layer.hpp.ejs +++ b/include/mbgl/style/layers/layer.hpp.ejs @@ -29,7 +29,7 @@ class TransitionOptions; class <%- camelize(type) %>Layer : public Layer { public: -<% if (type === 'background') { -%> +<% if ((type === 'background') || (type === 'location-indicator')) { -%> <%- camelize(type) %>Layer(const std::string& layerID); <% } else { -%> <%- camelize(type) %>Layer(const std::string& layerID, const std::string& sourceID); diff --git a/include/mbgl/style/layers/location_indicator_layer.hpp b/include/mbgl/style/layers/location_indicator_layer.hpp new file mode 100644 index 0000000000..e9e67c1a20 --- /dev/null +++ b/include/mbgl/style/layers/location_indicator_layer.hpp @@ -0,0 +1,115 @@ +// clang-format off + +// 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/style/expression/formatted.hpp> +#include <mbgl/util/color.hpp> + +namespace mbgl { +namespace style { + +class TransitionOptions; + +class LocationIndicatorLayer : public Layer { +public: + LocationIndicatorLayer(const std::string& layerID); + ~LocationIndicatorLayer() final; + + // Layout properties + + static PropertyValue<float> getDefaultBearing(); + const PropertyValue<float>& getBearing() const; + void setBearing(const PropertyValue<float>&); + + static PropertyValue<expression::Image> getDefaultBearingImage(); + const PropertyValue<expression::Image>& getBearingImage() const; + void setBearingImage(const PropertyValue<expression::Image>&); + + static PropertyValue<float> getDefaultImageTiltDisplacement(); + const PropertyValue<float>& getImageTiltDisplacement() const; + void setImageTiltDisplacement(const PropertyValue<float>&); + + static PropertyValue<float> getDefaultPerspectiveCompensation(); + const PropertyValue<float>& getPerspectiveCompensation() const; + void setPerspectiveCompensation(const PropertyValue<float>&); + + static PropertyValue<expression::Image> getDefaultShadowImage(); + const PropertyValue<expression::Image>& getShadowImage() const; + void setShadowImage(const PropertyValue<expression::Image>&); + + static PropertyValue<expression::Image> getDefaultTopImage(); + const PropertyValue<expression::Image>& getTopImage() const; + void setTopImage(const PropertyValue<expression::Image>&); + + // Paint properties + + static PropertyValue<float> getDefaultAccuracyRadius(); + const PropertyValue<float>& getAccuracyRadius() const; + void setAccuracyRadius(const PropertyValue<float>&); + void setAccuracyRadiusTransition(const TransitionOptions&); + TransitionOptions getAccuracyRadiusTransition() const; + + static PropertyValue<Color> getDefaultAccuracyRadiusBorderColor(); + const PropertyValue<Color>& getAccuracyRadiusBorderColor() const; + void setAccuracyRadiusBorderColor(const PropertyValue<Color>&); + void setAccuracyRadiusBorderColorTransition(const TransitionOptions&); + TransitionOptions getAccuracyRadiusBorderColorTransition() const; + + static PropertyValue<Color> getDefaultAccuracyRadiusColor(); + const PropertyValue<Color>& getAccuracyRadiusColor() const; + void setAccuracyRadiusColor(const PropertyValue<Color>&); + void setAccuracyRadiusColorTransition(const TransitionOptions&); + TransitionOptions getAccuracyRadiusColorTransition() const; + + static PropertyValue<float> getDefaultBearingImageSize(); + const PropertyValue<float>& getBearingImageSize() const; + void setBearingImageSize(const PropertyValue<float>&); + void setBearingImageSizeTransition(const TransitionOptions&); + TransitionOptions getBearingImageSizeTransition() const; + + static PropertyValue<std::array<double, 3>> getDefaultLocation(); + const PropertyValue<std::array<double, 3>>& getLocation() const; + void setLocation(const PropertyValue<std::array<double, 3>>&); + void setLocationTransition(const TransitionOptions&); + TransitionOptions getLocationTransition() const; + + static PropertyValue<float> getDefaultShadowImageSize(); + const PropertyValue<float>& getShadowImageSize() const; + void setShadowImageSize(const PropertyValue<float>&); + void setShadowImageSizeTransition(const TransitionOptions&); + TransitionOptions getShadowImageSizeTransition() const; + + static PropertyValue<float> getDefaultTopImageSize(); + const PropertyValue<float>& getTopImageSize() const; + void setTopImageSize(const PropertyValue<float>&); + void setTopImageSizeTransition(const TransitionOptions&); + TransitionOptions getTopImageSizeTransition() const; + + // Private implementation + + class Impl; + const Impl& impl() const; + + Mutable<Impl> mutableImpl() const; + LocationIndicatorLayer(Immutable<Impl>); + std::unique_ptr<Layer> cloneRef(const std::string& id) const final; + +protected: + // Dynamic properties + optional<conversion::Error> setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + + Mutable<Layer::Impl> mutableBaseImpl() const final; +}; + +} // namespace style +} // namespace mbgl + +// clang-format on |