// 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 #include namespace mbgl { namespace style { // static const LayerTypeInfo* RasterLayer::Impl::staticTypeInfo() noexcept { const static LayerTypeInfo typeInfo{"raster", LayerTypeInfo::Source::Required, LayerTypeInfo::Pass3D::NotRequired, LayerTypeInfo::Layout::NotRequired, LayerTypeInfo::FadingTiles::NotRequired, LayerTypeInfo::CrossTileIndex::NotRequired, LayerTypeInfo::TileKind::Raster}; return &typeInfo; } RasterLayer::RasterLayer(const std::string& layerID, const std::string& sourceID) : Layer(makeMutable(layerID, sourceID)) { } RasterLayer::RasterLayer(Immutable impl_) : Layer(std::move(impl_)) { } RasterLayer::~RasterLayer() = default; const RasterLayer::Impl& RasterLayer::impl() const { return static_cast(*baseImpl); } Mutable RasterLayer::mutableImpl() const { return makeMutable(impl()); } std::unique_ptr RasterLayer::cloneRef(const std::string& id_) const { auto impl_ = mutableImpl(); impl_->id = id_; impl_->paint = RasterPaintProperties::Transitionable(); return std::make_unique(std::move(impl_)); } void RasterLayer::Impl::stringifyLayout(rapidjson::Writer&) const { } // Layout properties // Paint properties PropertyValue RasterLayer::getDefaultRasterBrightnessMax() { return {1}; } const PropertyValue& RasterLayer::getRasterBrightnessMax() const { return impl().paint.template get().value; } void RasterLayer::setRasterBrightnessMax(const PropertyValue& value) { if (value == getRasterBrightnessMax()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void RasterLayer::setRasterBrightnessMaxTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions RasterLayer::getRasterBrightnessMaxTransition() const { return impl().paint.template get().options; } PropertyValue RasterLayer::getDefaultRasterBrightnessMin() { return {0}; } const PropertyValue& RasterLayer::getRasterBrightnessMin() const { return impl().paint.template get().value; } void RasterLayer::setRasterBrightnessMin(const PropertyValue& value) { if (value == getRasterBrightnessMin()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void RasterLayer::setRasterBrightnessMinTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions RasterLayer::getRasterBrightnessMinTransition() const { return impl().paint.template get().options; } PropertyValue RasterLayer::getDefaultRasterContrast() { return {0}; } const PropertyValue& RasterLayer::getRasterContrast() const { return impl().paint.template get().value; } void RasterLayer::setRasterContrast(const PropertyValue& value) { if (value == getRasterContrast()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void RasterLayer::setRasterContrastTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions RasterLayer::getRasterContrastTransition() const { return impl().paint.template get().options; } PropertyValue RasterLayer::getDefaultRasterFadeDuration() { return {300}; } const PropertyValue& RasterLayer::getRasterFadeDuration() const { return impl().paint.template get().value; } void RasterLayer::setRasterFadeDuration(const PropertyValue& value) { if (value == getRasterFadeDuration()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void RasterLayer::setRasterFadeDurationTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions RasterLayer::getRasterFadeDurationTransition() const { return impl().paint.template get().options; } PropertyValue RasterLayer::getDefaultRasterHueRotate() { return {0}; } const PropertyValue& RasterLayer::getRasterHueRotate() const { return impl().paint.template get().value; } void RasterLayer::setRasterHueRotate(const PropertyValue& value) { if (value == getRasterHueRotate()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void RasterLayer::setRasterHueRotateTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions RasterLayer::getRasterHueRotateTransition() const { return impl().paint.template get().options; } PropertyValue RasterLayer::getDefaultRasterOpacity() { return {1}; } const PropertyValue& RasterLayer::getRasterOpacity() const { return impl().paint.template get().value; } void RasterLayer::setRasterOpacity(const PropertyValue& value) { if (value == getRasterOpacity()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void RasterLayer::setRasterOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions RasterLayer::getRasterOpacityTransition() const { return impl().paint.template get().options; } PropertyValue RasterLayer::getDefaultRasterResampling() { return {RasterResamplingType::Linear}; } const PropertyValue& RasterLayer::getRasterResampling() const { return impl().paint.template get().value; } void RasterLayer::setRasterResampling(const PropertyValue& value) { if (value == getRasterResampling()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void RasterLayer::setRasterResamplingTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions RasterLayer::getRasterResamplingTransition() const { return impl().paint.template get().options; } PropertyValue RasterLayer::getDefaultRasterSaturation() { return {0}; } const PropertyValue& RasterLayer::getRasterSaturation() const { return impl().paint.template get().value; } void RasterLayer::setRasterSaturation(const PropertyValue& value) { if (value == getRasterSaturation()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void RasterLayer::setRasterSaturationTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions RasterLayer::getRasterSaturationTransition() const { return impl().paint.template get().options; } using namespace conversion; namespace { constexpr uint8_t kPaintPropertyCount = 16u; enum class Property : uint8_t { RasterBrightnessMax, RasterBrightnessMin, RasterContrast, RasterFadeDuration, RasterHueRotate, RasterOpacity, RasterResampling, RasterSaturation, RasterBrightnessMaxTransition, RasterBrightnessMinTransition, RasterContrastTransition, RasterFadeDurationTransition, RasterHueRotateTransition, RasterOpacityTransition, RasterResamplingTransition, RasterSaturationTransition, }; template constexpr uint8_t toUint8(T t) noexcept { return uint8_t(mbgl::underlying_type(t)); } MAPBOX_ETERNAL_CONSTEXPR const auto layerProperties = mapbox::eternal::hash_map( {{"raster-brightness-max", toUint8(Property::RasterBrightnessMax)}, {"raster-brightness-min", toUint8(Property::RasterBrightnessMin)}, {"raster-contrast", toUint8(Property::RasterContrast)}, {"raster-fade-duration", toUint8(Property::RasterFadeDuration)}, {"raster-hue-rotate", toUint8(Property::RasterHueRotate)}, {"raster-opacity", toUint8(Property::RasterOpacity)}, {"raster-resampling", toUint8(Property::RasterResampling)}, {"raster-saturation", toUint8(Property::RasterSaturation)}, {"raster-brightness-max-transition", toUint8(Property::RasterBrightnessMaxTransition)}, {"raster-brightness-min-transition", toUint8(Property::RasterBrightnessMinTransition)}, {"raster-contrast-transition", toUint8(Property::RasterContrastTransition)}, {"raster-fade-duration-transition", toUint8(Property::RasterFadeDurationTransition)}, {"raster-hue-rotate-transition", toUint8(Property::RasterHueRotateTransition)}, {"raster-opacity-transition", toUint8(Property::RasterOpacityTransition)}, {"raster-resampling-transition", toUint8(Property::RasterResamplingTransition)}, {"raster-saturation-transition", toUint8(Property::RasterSaturationTransition)}}); StyleProperty getLayerProperty(const RasterLayer& layer, Property property) { switch (property) { case Property::RasterBrightnessMax: return makeStyleProperty(layer.getRasterBrightnessMax()); case Property::RasterBrightnessMin: return makeStyleProperty(layer.getRasterBrightnessMin()); case Property::RasterContrast: return makeStyleProperty(layer.getRasterContrast()); case Property::RasterFadeDuration: return makeStyleProperty(layer.getRasterFadeDuration()); case Property::RasterHueRotate: return makeStyleProperty(layer.getRasterHueRotate()); case Property::RasterOpacity: return makeStyleProperty(layer.getRasterOpacity()); case Property::RasterResampling: return makeStyleProperty(layer.getRasterResampling()); case Property::RasterSaturation: return makeStyleProperty(layer.getRasterSaturation()); case Property::RasterBrightnessMaxTransition: return makeStyleProperty(layer.getRasterBrightnessMaxTransition()); case Property::RasterBrightnessMinTransition: return makeStyleProperty(layer.getRasterBrightnessMinTransition()); case Property::RasterContrastTransition: return makeStyleProperty(layer.getRasterContrastTransition()); case Property::RasterFadeDurationTransition: return makeStyleProperty(layer.getRasterFadeDurationTransition()); case Property::RasterHueRotateTransition: return makeStyleProperty(layer.getRasterHueRotateTransition()); case Property::RasterOpacityTransition: return makeStyleProperty(layer.getRasterOpacityTransition()); case Property::RasterResamplingTransition: return makeStyleProperty(layer.getRasterResamplingTransition()); case Property::RasterSaturationTransition: return makeStyleProperty(layer.getRasterSaturationTransition()); } return {}; } StyleProperty getLayerProperty(const RasterLayer& layer, const std::string& name) { const auto it = layerProperties.find(name.c_str()); if (it == layerProperties.end()) { return {}; } return getLayerProperty(layer, static_cast(it->second)); } } // namespace Value RasterLayer::serialize() const { auto result = Layer::serialize(); assert(result.getObject()); for (const auto& property : layerProperties) { auto styleProperty = getLayerProperty(*this, static_cast(property.second)); if (styleProperty.getKind() == StyleProperty::Kind::Undefined) continue; serializeProperty(result, styleProperty, property.first.c_str(), property.second < kPaintPropertyCount); } return result; } optional RasterLayer::setPropertyInternal(const std::string& name, const Convertible& value) { const auto it = layerProperties.find(name.c_str()); if (it == layerProperties.end()) return Error{"layer doesn't support this property"}; auto property = static_cast(it->second); if (property == Property::RasterBrightnessMax || property == Property::RasterBrightnessMin || property == Property::RasterContrast || property == Property::RasterFadeDuration || property == Property::RasterHueRotate || property == Property::RasterOpacity || property == Property::RasterSaturation) { Error error; const auto& typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } if (property == Property::RasterBrightnessMax) { setRasterBrightnessMax(*typedValue); return nullopt; } if (property == Property::RasterBrightnessMin) { setRasterBrightnessMin(*typedValue); return nullopt; } if (property == Property::RasterContrast) { setRasterContrast(*typedValue); return nullopt; } if (property == Property::RasterFadeDuration) { setRasterFadeDuration(*typedValue); return nullopt; } if (property == Property::RasterHueRotate) { setRasterHueRotate(*typedValue); return nullopt; } if (property == Property::RasterOpacity) { setRasterOpacity(*typedValue); return nullopt; } if (property == Property::RasterSaturation) { setRasterSaturation(*typedValue); return nullopt; } } if (property == Property::RasterResampling) { Error error; const auto& typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } setRasterResampling(*typedValue); return nullopt; } Error error; optional transition = convert(value, error); if (!transition) { return error; } if (property == Property::RasterBrightnessMaxTransition) { setRasterBrightnessMaxTransition(*transition); return nullopt; } if (property == Property::RasterBrightnessMinTransition) { setRasterBrightnessMinTransition(*transition); return nullopt; } if (property == Property::RasterContrastTransition) { setRasterContrastTransition(*transition); return nullopt; } if (property == Property::RasterFadeDurationTransition) { setRasterFadeDurationTransition(*transition); return nullopt; } if (property == Property::RasterHueRotateTransition) { setRasterHueRotateTransition(*transition); return nullopt; } if (property == Property::RasterOpacityTransition) { setRasterOpacityTransition(*transition); return nullopt; } if (property == Property::RasterResamplingTransition) { setRasterResamplingTransition(*transition); return nullopt; } if (property == Property::RasterSaturationTransition) { setRasterSaturationTransition(*transition); return nullopt; } return Error{"layer doesn't support this property"}; } StyleProperty RasterLayer::getProperty(const std::string& name) const { return getLayerProperty(*this, name); } Mutable RasterLayer::mutableBaseImpl() const { return staticMutableCast(mutableImpl()); } } // namespace style } // namespace mbgl