summaryrefslogtreecommitdiff
path: root/src/mbgl/style/layer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/layer.cpp')
-rw-r--r--src/mbgl/style/layer.cpp48
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;
}