// 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 typeInfoHillshade{ "hillshade", LayerTypeInfo::SourceRequired }; } // namespace HillshadeLayer::HillshadeLayer(const std::string& layerID, const std::string& sourceID) : Layer(makeMutable(LayerType::Hillshade, layerID, sourceID)) { } HillshadeLayer::HillshadeLayer(Immutable impl_) : Layer(std::move(impl_)) { } HillshadeLayer::~HillshadeLayer() = default; const HillshadeLayer::Impl& HillshadeLayer::impl() const { return static_cast(*baseImpl); } Mutable HillshadeLayer::mutableImpl() const { return makeMutable(impl()); } std::unique_ptr HillshadeLayer::cloneRef(const std::string& id_) const { auto impl_ = mutableImpl(); impl_->id = id_; impl_->paint = HillshadePaintProperties::Transitionable(); return std::make_unique(std::move(impl_)); } void HillshadeLayer::Impl::stringifyLayout(rapidjson::Writer&) const { } const LayerTypeInfo* HillshadeLayer::Impl::getTypeInfo() const noexcept { return &typeInfoHillshade; } // Layout properties // Paint properties PropertyValue HillshadeLayer::getDefaultHillshadeIlluminationDirection() { return { 335 }; } PropertyValue HillshadeLayer::getHillshadeIlluminationDirection() const { return impl().paint.template get().value; } void HillshadeLayer::setHillshadeIlluminationDirection(PropertyValue value) { if (value == getHillshadeIlluminationDirection()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void HillshadeLayer::setHillshadeIlluminationDirectionTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions HillshadeLayer::getHillshadeIlluminationDirectionTransition() const { return impl().paint.template get().options; } PropertyValue HillshadeLayer::getDefaultHillshadeIlluminationAnchor() { return { HillshadeIlluminationAnchorType::Viewport }; } PropertyValue HillshadeLayer::getHillshadeIlluminationAnchor() const { return impl().paint.template get().value; } void HillshadeLayer::setHillshadeIlluminationAnchor(PropertyValue value) { if (value == getHillshadeIlluminationAnchor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void HillshadeLayer::setHillshadeIlluminationAnchorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions HillshadeLayer::getHillshadeIlluminationAnchorTransition() const { return impl().paint.template get().options; } PropertyValue HillshadeLayer::getDefaultHillshadeExaggeration() { return { 0.5 }; } PropertyValue HillshadeLayer::getHillshadeExaggeration() const { return impl().paint.template get().value; } void HillshadeLayer::setHillshadeExaggeration(PropertyValue value) { if (value == getHillshadeExaggeration()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void HillshadeLayer::setHillshadeExaggerationTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions HillshadeLayer::getHillshadeExaggerationTransition() const { return impl().paint.template get().options; } PropertyValue HillshadeLayer::getDefaultHillshadeShadowColor() { return { Color::black() }; } PropertyValue HillshadeLayer::getHillshadeShadowColor() const { return impl().paint.template get().value; } void HillshadeLayer::setHillshadeShadowColor(PropertyValue value) { if (value == getHillshadeShadowColor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void HillshadeLayer::setHillshadeShadowColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions HillshadeLayer::getHillshadeShadowColorTransition() const { return impl().paint.template get().options; } PropertyValue HillshadeLayer::getDefaultHillshadeHighlightColor() { return { Color::white() }; } PropertyValue HillshadeLayer::getHillshadeHighlightColor() const { return impl().paint.template get().value; } void HillshadeLayer::setHillshadeHighlightColor(PropertyValue value) { if (value == getHillshadeHighlightColor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void HillshadeLayer::setHillshadeHighlightColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions HillshadeLayer::getHillshadeHighlightColorTransition() const { return impl().paint.template get().options; } PropertyValue HillshadeLayer::getDefaultHillshadeAccentColor() { return { Color::black() }; } PropertyValue HillshadeLayer::getHillshadeAccentColor() const { return impl().paint.template get().value; } void HillshadeLayer::setHillshadeAccentColor(PropertyValue value) { if (value == getHillshadeAccentColor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void HillshadeLayer::setHillshadeAccentColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions HillshadeLayer::getHillshadeAccentColorTransition() const { return impl().paint.template get().options; } using namespace conversion; optional HillshadeLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property { Unknown, HillshadeIlluminationDirection, HillshadeIlluminationAnchor, HillshadeExaggeration, HillshadeShadowColor, HillshadeHighlightColor, HillshadeAccentColor, HillshadeIlluminationDirectionTransition, HillshadeIlluminationAnchorTransition, HillshadeExaggerationTransition, HillshadeShadowColorTransition, HillshadeHighlightColorTransition, HillshadeAccentColorTransition, }; Property property = Property::Unknown; switch (util::hashFNV1a(name.c_str())) { case util::hashFNV1a("hillshade-illumination-direction"): if (name == "hillshade-illumination-direction") { property = Property::HillshadeIlluminationDirection; } break; case util::hashFNV1a("hillshade-illumination-direction-transition"): if (name == "hillshade-illumination-direction-transition") { property = Property::HillshadeIlluminationDirectionTransition; } break; case util::hashFNV1a("hillshade-illumination-anchor"): if (name == "hillshade-illumination-anchor") { property = Property::HillshadeIlluminationAnchor; } break; case util::hashFNV1a("hillshade-illumination-anchor-transition"): if (name == "hillshade-illumination-anchor-transition") { property = Property::HillshadeIlluminationAnchorTransition; } break; case util::hashFNV1a("hillshade-exaggeration"): if (name == "hillshade-exaggeration") { property = Property::HillshadeExaggeration; } break; case util::hashFNV1a("hillshade-exaggeration-transition"): if (name == "hillshade-exaggeration-transition") { property = Property::HillshadeExaggerationTransition; } break; case util::hashFNV1a("hillshade-shadow-color"): if (name == "hillshade-shadow-color") { property = Property::HillshadeShadowColor; } break; case util::hashFNV1a("hillshade-shadow-color-transition"): if (name == "hillshade-shadow-color-transition") { property = Property::HillshadeShadowColorTransition; } break; case util::hashFNV1a("hillshade-highlight-color"): if (name == "hillshade-highlight-color") { property = Property::HillshadeHighlightColor; } break; case util::hashFNV1a("hillshade-highlight-color-transition"): if (name == "hillshade-highlight-color-transition") { property = Property::HillshadeHighlightColorTransition; } break; case util::hashFNV1a("hillshade-accent-color"): if (name == "hillshade-accent-color") { property = Property::HillshadeAccentColor; } break; case util::hashFNV1a("hillshade-accent-color-transition"): if (name == "hillshade-accent-color-transition") { property = Property::HillshadeAccentColorTransition; } break; } if (property == Property::Unknown) { return Error { "layer doesn't support this property" }; } if (property == Property::HillshadeIlluminationDirection || property == Property::HillshadeExaggeration) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } if (property == Property::HillshadeIlluminationDirection) { setHillshadeIlluminationDirection(*typedValue); return nullopt; } if (property == Property::HillshadeExaggeration) { setHillshadeExaggeration(*typedValue); return nullopt; } } if (property == Property::HillshadeIlluminationAnchor) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } setHillshadeIlluminationAnchor(*typedValue); return nullopt; } if (property == Property::HillshadeShadowColor || property == Property::HillshadeHighlightColor || property == Property::HillshadeAccentColor) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } if (property == Property::HillshadeShadowColor) { setHillshadeShadowColor(*typedValue); return nullopt; } if (property == Property::HillshadeHighlightColor) { setHillshadeHighlightColor(*typedValue); return nullopt; } if (property == Property::HillshadeAccentColor) { setHillshadeAccentColor(*typedValue); return nullopt; } } Error error; optional transition = convert(value, error); if (!transition) { return error; } if (property == Property::HillshadeIlluminationDirectionTransition) { setHillshadeIlluminationDirectionTransition(*transition); return nullopt; } if (property == Property::HillshadeIlluminationAnchorTransition) { setHillshadeIlluminationAnchorTransition(*transition); return nullopt; } if (property == Property::HillshadeExaggerationTransition) { setHillshadeExaggerationTransition(*transition); return nullopt; } if (property == Property::HillshadeShadowColorTransition) { setHillshadeShadowColorTransition(*transition); return nullopt; } if (property == Property::HillshadeHighlightColorTransition) { setHillshadeHighlightColorTransition(*transition); return nullopt; } if (property == Property::HillshadeAccentColorTransition) { setHillshadeAccentColorTransition(*transition); return nullopt; } return Error { "layer doesn't support this property" }; } optional HillshadeLayer::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 HillshadeLayer::mutableBaseImpl() const { return staticMutableCast(mutableImpl()); } HillshadeLayerFactory::HillshadeLayerFactory() = default; HillshadeLayerFactory::~HillshadeLayerFactory() = default; const LayerTypeInfo* HillshadeLayerFactory::getTypeInfo() const noexcept { return &typeInfoHillshade; } std::unique_ptr HillshadeLayerFactory::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 HillshadeLayer(id, *source)); return layer; } } // namespace style } // namespace mbgl