// This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. #include #include #include #include #include #include #include #include #include #include namespace mbgl { namespace style { namespace { const LayerTypeInfo typeInfoFill{ "fill", LayerTypeInfo::SourceRequired }; } // namespace FillLayer::FillLayer(const std::string& layerID, const std::string& sourceID) : Layer(makeMutable(LayerType::Fill, layerID, sourceID)) { } FillLayer::FillLayer(Immutable impl_) : Layer(std::move(impl_)) { } FillLayer::~FillLayer() = default; const FillLayer::Impl& FillLayer::impl() const { return static_cast(*baseImpl); } Mutable FillLayer::mutableImpl() const { return makeMutable(impl()); } std::unique_ptr FillLayer::cloneRef(const std::string& id_) const { auto impl_ = mutableImpl(); impl_->id = id_; impl_->paint = FillPaintProperties::Transitionable(); return std::make_unique(std::move(impl_)); } void FillLayer::Impl::stringifyLayout(rapidjson::Writer&) const { } const LayerTypeInfo* FillLayer::Impl::getTypeInfo() const noexcept { return &typeInfoFill; } // Layout properties // Paint properties PropertyValue FillLayer::getDefaultFillAntialias() { return { true }; } PropertyValue FillLayer::getFillAntialias() const { return impl().paint.template get().value; } void FillLayer::setFillAntialias(PropertyValue value) { if (value == getFillAntialias()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void FillLayer::setFillAntialiasTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions FillLayer::getFillAntialiasTransition() const { return impl().paint.template get().options; } PropertyValue FillLayer::getDefaultFillOpacity() { return { 1 }; } PropertyValue FillLayer::getFillOpacity() const { return impl().paint.template get().value; } void FillLayer::setFillOpacity(PropertyValue value) { if (value == getFillOpacity()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void FillLayer::setFillOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions FillLayer::getFillOpacityTransition() const { return impl().paint.template get().options; } PropertyValue FillLayer::getDefaultFillColor() { return { Color::black() }; } PropertyValue FillLayer::getFillColor() const { return impl().paint.template get().value; } void FillLayer::setFillColor(PropertyValue value) { if (value == getFillColor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void FillLayer::setFillColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions FillLayer::getFillColorTransition() const { return impl().paint.template get().options; } PropertyValue FillLayer::getDefaultFillOutlineColor() { return { {} }; } PropertyValue FillLayer::getFillOutlineColor() const { return impl().paint.template get().value; } void FillLayer::setFillOutlineColor(PropertyValue value) { if (value == getFillOutlineColor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void FillLayer::setFillOutlineColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions FillLayer::getFillOutlineColorTransition() const { return impl().paint.template get().options; } PropertyValue> FillLayer::getDefaultFillTranslate() { return { {{ 0, 0 }} }; } PropertyValue> FillLayer::getFillTranslate() const { return impl().paint.template get().value; } void FillLayer::setFillTranslate(PropertyValue> value) { if (value == getFillTranslate()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void FillLayer::setFillTranslateTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions FillLayer::getFillTranslateTransition() const { return impl().paint.template get().options; } PropertyValue FillLayer::getDefaultFillTranslateAnchor() { return { TranslateAnchorType::Map }; } PropertyValue FillLayer::getFillTranslateAnchor() const { return impl().paint.template get().value; } void FillLayer::setFillTranslateAnchor(PropertyValue value) { if (value == getFillTranslateAnchor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void FillLayer::setFillTranslateAnchorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions FillLayer::getFillTranslateAnchorTransition() const { return impl().paint.template get().options; } PropertyValue FillLayer::getDefaultFillPattern() { return { "" }; } PropertyValue FillLayer::getFillPattern() const { return impl().paint.template get().value; } void FillLayer::setFillPattern(PropertyValue value) { if (value == getFillPattern()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void FillLayer::setFillPatternTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions FillLayer::getFillPatternTransition() const { return impl().paint.template get().options; } using namespace conversion; optional FillLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property { Unknown, FillAntialias, FillOpacity, FillColor, FillOutlineColor, FillTranslate, FillTranslateAnchor, FillPattern, FillAntialiasTransition, FillOpacityTransition, FillColorTransition, FillOutlineColorTransition, FillTranslateTransition, FillTranslateAnchorTransition, FillPatternTransition, }; Property property = Property::Unknown; switch (util::hashFNV1a(name.c_str())) { case util::hashFNV1a("fill-antialias"): if (name == "fill-antialias") { property = Property::FillAntialias; } break; case util::hashFNV1a("fill-antialias-transition"): if (name == "fill-antialias-transition") { property = Property::FillAntialiasTransition; } break; case util::hashFNV1a("fill-opacity"): if (name == "fill-opacity") { property = Property::FillOpacity; } break; case util::hashFNV1a("fill-opacity-transition"): if (name == "fill-opacity-transition") { property = Property::FillOpacityTransition; } break; case util::hashFNV1a("fill-color"): if (name == "fill-color") { property = Property::FillColor; } break; case util::hashFNV1a("fill-color-transition"): if (name == "fill-color-transition") { property = Property::FillColorTransition; } break; case util::hashFNV1a("fill-outline-color"): if (name == "fill-outline-color") { property = Property::FillOutlineColor; } break; case util::hashFNV1a("fill-outline-color-transition"): if (name == "fill-outline-color-transition") { property = Property::FillOutlineColorTransition; } break; case util::hashFNV1a("fill-translate"): if (name == "fill-translate") { property = Property::FillTranslate; } break; case util::hashFNV1a("fill-translate-transition"): if (name == "fill-translate-transition") { property = Property::FillTranslateTransition; } break; case util::hashFNV1a("fill-translate-anchor"): if (name == "fill-translate-anchor") { property = Property::FillTranslateAnchor; } break; case util::hashFNV1a("fill-translate-anchor-transition"): if (name == "fill-translate-anchor-transition") { property = Property::FillTranslateAnchorTransition; } break; case util::hashFNV1a("fill-pattern"): if (name == "fill-pattern") { property = Property::FillPattern; } break; case util::hashFNV1a("fill-pattern-transition"): if (name == "fill-pattern-transition") { property = Property::FillPatternTransition; } break; } if (property == Property::Unknown) { return Error { "layer doesn't support this property" }; } if (property == Property::FillAntialias) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } setFillAntialias(*typedValue); return nullopt; } if (property == Property::FillOpacity) { Error error; optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } setFillOpacity(*typedValue); return nullopt; } if (property == Property::FillColor || property == Property::FillOutlineColor) { Error error; optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } if (property == Property::FillColor) { setFillColor(*typedValue); return nullopt; } if (property == Property::FillOutlineColor) { setFillOutlineColor(*typedValue); return nullopt; } } if (property == Property::FillTranslate) { Error error; optional>> typedValue = convert>>(value, error, false, false); if (!typedValue) { return error; } setFillTranslate(*typedValue); return nullopt; } if (property == Property::FillTranslateAnchor) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } setFillTranslateAnchor(*typedValue); return nullopt; } if (property == Property::FillPattern) { Error error; optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } setFillPattern(*typedValue); return nullopt; } Error error; optional transition = convert(value, error); if (!transition) { return error; } if (property == Property::FillAntialiasTransition) { setFillAntialiasTransition(*transition); return nullopt; } if (property == Property::FillOpacityTransition) { setFillOpacityTransition(*transition); return nullopt; } if (property == Property::FillColorTransition) { setFillColorTransition(*transition); return nullopt; } if (property == Property::FillOutlineColorTransition) { setFillOutlineColorTransition(*transition); return nullopt; } if (property == Property::FillTranslateTransition) { setFillTranslateTransition(*transition); return nullopt; } if (property == Property::FillTranslateAnchorTransition) { setFillTranslateAnchorTransition(*transition); return nullopt; } if (property == Property::FillPatternTransition) { setFillPatternTransition(*transition); return nullopt; } return Error { "layer doesn't support this property" }; } optional FillLayer::setLayoutProperty(const std::string& name, const Convertible& value) { if (name == "visibility") { return Layer::setVisibility(value); } enum class Property { Unknown, }; Property property = Property::Unknown; switch (util::hashFNV1a(name.c_str())) { } if (property == Property::Unknown) { return Error { "layer doesn't support this property" }; } return Error { "layer doesn't support this property" }; } Mutable FillLayer::mutableBaseImpl() const { return staticMutableCast(mutableImpl()); } FillLayerFactory::FillLayerFactory() = default; FillLayerFactory::~FillLayerFactory() = default; const LayerTypeInfo* FillLayerFactory::getTypeInfo() const noexcept { return &typeInfoFill; } std::unique_ptr FillLayerFactory::createLayer(const std::string& id, const conversion::Convertible& value) { optional source = getSource(value); if (!source) { return nullptr; } std::unique_ptr layer = std::unique_ptr(new FillLayer(id, *source)); if (!initSourceLayerAndFilter(layer.get(), value)) { return nullptr; } return layer; } } // namespace style } // namespace mbgl