#include #include #include namespace mbgl { namespace style { CustomLayer::CustomLayer(const std::string& layerID, std::unique_ptr host) : Layer(makeMutable(layerID, std::move(host))) { } CustomLayer::~CustomLayer() = default; const CustomLayer::Impl& CustomLayer::impl() const { return static_cast(*baseImpl); } Mutable CustomLayer::mutableImpl() const { return makeMutable(impl()); } std::unique_ptr CustomLayer::cloneRef(const std::string&) const { assert(false); return nullptr; } // Visibility void CustomLayer::setVisibility(VisibilityType value) { if (value == getVisibility()) return; auto impl_ = mutableImpl(); impl_->visibility = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } // Zoom range void CustomLayer::setMinZoom(float minZoom) { auto impl_ = mutableImpl(); impl_->minZoom = minZoom; baseImpl = std::move(impl_); } void CustomLayer::setMaxZoom(float maxZoom) { auto impl_ = mutableImpl(); impl_->maxZoom = maxZoom; baseImpl = std::move(impl_); } using namespace conversion; optional CustomLayer::setPaintProperty(const std::string&, const Convertible&) { return Error { "layer doesn't support this property" }; } optional CustomLayer::setLayoutProperty(const std::string&, const Convertible&) { return Error { "layer doesn't support this property" }; } template <> bool Layer::is() const { return getType() == LayerType::Custom; } } // namespace style } // namespace mbgl