diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2018-10-25 16:15:31 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2018-10-25 22:42:43 +0300 |
commit | 7a9461a8d439458b18656ecfb839923adc5f0e9b (patch) | |
tree | 5617367418dafc5b7b45c4ba7cca4b74f40200f3 /src/mbgl/style/layer.cpp | |
parent | fdd8b54900d963d01f9b643fa7edd9e988eb7785 (diff) | |
download | qtlocation-mapboxgl-7a9461a8d439458b18656ecfb839923adc5f0e9b.tar.gz |
Consolidate `style::Layer` properties API
The `style::Layer` class now exposes all the properties contained at `style::LayerImpl`.
This allowed to drop `style::Layer::accept()` method usage, avoid the repeated generated code
and thus save some binary size.
This patch is a part of the layers modularization effort.
Diffstat (limited to 'src/mbgl/style/layer.cpp')
-rw-r--r-- | src/mbgl/style/layer.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/mbgl/style/layer.cpp b/src/mbgl/style/layer.cpp index e08b71e6b3..58c38403bc 100644 --- a/src/mbgl/style/layer.cpp +++ b/src/mbgl/style/layer.cpp @@ -24,10 +24,44 @@ std::string Layer::getID() const { return baseImpl->id; } +std::string Layer::getSourceID() const { + return baseImpl->source; +} + +std::string Layer::getSourceLayer() const { + return baseImpl->sourceLayer; +} + +void Layer::setSourceLayer(const std::string& sourceLayer) { + auto impl_ = mutableBaseImpl(); + impl_->sourceLayer = sourceLayer; + baseImpl = std::move(impl_); +} + +const Filter& Layer::getFilter() const { + return baseImpl->filter; +} + +void Layer::setFilter(const Filter& filter) { + auto impl_ = mutableBaseImpl(); + impl_->filter = filter; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + VisibilityType Layer::getVisibility() const { return baseImpl->visibility; } +void Layer::setVisibility(VisibilityType value) { + if (value == getVisibility()) + return; + auto impl_ = mutableBaseImpl(); + impl_->visibility = value; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + float Layer::getMinZoom() const { return baseImpl->minZoom; } @@ -36,6 +70,20 @@ float Layer::getMaxZoom() const { return baseImpl->maxZoom; } +void Layer::setMinZoom(float minZoom) { + auto impl_ = mutableBaseImpl(); + impl_->minZoom = minZoom; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + +void Layer::setMaxZoom(float maxZoom) { + auto impl_ = mutableBaseImpl(); + impl_->maxZoom = maxZoom; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + void Layer::setObserver(LayerObserver* observer_) { observer = observer_ ? observer_ : &nullObserver; } |