#include #include #include #include #include namespace mbgl { namespace style { static LayerObserver nullObserver; Layer::Layer(Immutable impl) : baseImpl(std::move(impl)), observer(&nullObserver) { } Layer::~Layer() = default; LayerType Layer::getType() const { return baseImpl->type; } std::string Layer::getID() const { return baseImpl->id; } VisibilityType Layer::getVisibility() const { return baseImpl->visibility; } float Layer::getMinZoom() const { return baseImpl->minZoom; } float Layer::getMaxZoom() const { return baseImpl->maxZoom; } void Layer::setObserver(LayerObserver* observer_) { observer = observer_ ? observer_ : &nullObserver; } optional Layer::setVisibility(const conversion::Convertible& value) { using namespace conversion; if (isUndefined(value)) { setVisibility(VisibilityType::Visible); return nullopt; } Error error; optional visibility = convert(value, error); if (!visibility) { return error; } setVisibility(*visibility); return nullopt; } } // namespace style } // namespace mbgl