// 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 { CircleLayer::CircleLayer(const std::string& layerID, const std::string& sourceID) : Layer(makeMutable(LayerType::Circle, layerID, sourceID)) { } CircleLayer::CircleLayer(Immutable impl_) : Layer(std::move(impl_)) { } CircleLayer::~CircleLayer() = default; const CircleLayer::Impl& CircleLayer::impl() const { return static_cast(*baseImpl); } Mutable CircleLayer::mutableImpl() const { return makeMutable(impl()); } std::unique_ptr CircleLayer::cloneRef(const std::string& id_) const { auto impl_ = mutableImpl(); impl_->id = id_; impl_->paint = CirclePaintProperties::Transitionable(); return std::make_unique(std::move(impl_)); } void CircleLayer::Impl::stringifyLayout(rapidjson::Writer&) const { } LayerFactory* CircleLayer::Impl::getLayerFactory() const noexcept { return CircleLayerFactory::get(); } // Layout properties // Paint properties PropertyValue CircleLayer::getDefaultCircleRadius() { return { 5 }; } PropertyValue CircleLayer::getCircleRadius() const { return impl().paint.template get().value; } void CircleLayer::setCircleRadius(PropertyValue value) { if (value == getCircleRadius()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleRadiusTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleRadiusTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleColor() { return { Color::black() }; } PropertyValue CircleLayer::getCircleColor() const { return impl().paint.template get().value; } void CircleLayer::setCircleColor(PropertyValue value) { if (value == getCircleColor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleColorTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleBlur() { return { 0 }; } PropertyValue CircleLayer::getCircleBlur() const { return impl().paint.template get().value; } void CircleLayer::setCircleBlur(PropertyValue value) { if (value == getCircleBlur()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleBlurTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleBlurTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleOpacity() { return { 1 }; } PropertyValue CircleLayer::getCircleOpacity() const { return impl().paint.template get().value; } void CircleLayer::setCircleOpacity(PropertyValue value) { if (value == getCircleOpacity()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleOpacityTransition() const { return impl().paint.template get().options; } PropertyValue> CircleLayer::getDefaultCircleTranslate() { return { {{ 0, 0 }} }; } PropertyValue> CircleLayer::getCircleTranslate() const { return impl().paint.template get().value; } void CircleLayer::setCircleTranslate(PropertyValue> value) { if (value == getCircleTranslate()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleTranslateTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleTranslateTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleTranslateAnchor() { return { TranslateAnchorType::Map }; } PropertyValue CircleLayer::getCircleTranslateAnchor() const { return impl().paint.template get().value; } void CircleLayer::setCircleTranslateAnchor(PropertyValue value) { if (value == getCircleTranslateAnchor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleTranslateAnchorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleTranslateAnchorTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCirclePitchScale() { return { CirclePitchScaleType::Map }; } PropertyValue CircleLayer::getCirclePitchScale() const { return impl().paint.template get().value; } void CircleLayer::setCirclePitchScale(PropertyValue value) { if (value == getCirclePitchScale()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCirclePitchScaleTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCirclePitchScaleTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCirclePitchAlignment() { return { AlignmentType::Viewport }; } PropertyValue CircleLayer::getCirclePitchAlignment() const { return impl().paint.template get().value; } void CircleLayer::setCirclePitchAlignment(PropertyValue value) { if (value == getCirclePitchAlignment()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCirclePitchAlignmentTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCirclePitchAlignmentTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleStrokeWidth() { return { 0 }; } PropertyValue CircleLayer::getCircleStrokeWidth() const { return impl().paint.template get().value; } void CircleLayer::setCircleStrokeWidth(PropertyValue value) { if (value == getCircleStrokeWidth()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleStrokeWidthTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleStrokeWidthTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleStrokeColor() { return { Color::black() }; } PropertyValue CircleLayer::getCircleStrokeColor() const { return impl().paint.template get().value; } void CircleLayer::setCircleStrokeColor(PropertyValue value) { if (value == getCircleStrokeColor()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleStrokeColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleStrokeColorTransition() const { return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleStrokeOpacity() { return { 1 }; } PropertyValue CircleLayer::getCircleStrokeOpacity() const { return impl().paint.template get().value; } void CircleLayer::setCircleStrokeOpacity(PropertyValue value) { if (value == getCircleStrokeOpacity()) return; auto impl_ = mutableImpl(); impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } void CircleLayer::setCircleStrokeOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); impl_->paint.template get().options = options; baseImpl = std::move(impl_); } TransitionOptions CircleLayer::getCircleStrokeOpacityTransition() const { return impl().paint.template get().options; } using namespace conversion; optional CircleLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property { Unknown, CircleRadius, CircleColor, CircleBlur, CircleOpacity, CircleTranslate, CircleTranslateAnchor, CirclePitchScale, CirclePitchAlignment, CircleStrokeWidth, CircleStrokeColor, CircleStrokeOpacity, CircleRadiusTransition, CircleColorTransition, CircleBlurTransition, CircleOpacityTransition, CircleTranslateTransition, CircleTranslateAnchorTransition, CirclePitchScaleTransition, CirclePitchAlignmentTransition, CircleStrokeWidthTransition, CircleStrokeColorTransition, CircleStrokeOpacityTransition, }; Property property = Property::Unknown; switch (util::hashFNV1a(name.c_str())) { case util::hashFNV1a("circle-radius"): if (name == "circle-radius") { property = Property::CircleRadius; } break; case util::hashFNV1a("circle-radius-transition"): if (name == "circle-radius-transition") { property = Property::CircleRadiusTransition; } break; case util::hashFNV1a("circle-color"): if (name == "circle-color") { property = Property::CircleColor; } break; case util::hashFNV1a("circle-color-transition"): if (name == "circle-color-transition") { property = Property::CircleColorTransition; } break; case util::hashFNV1a("circle-blur"): if (name == "circle-blur") { property = Property::CircleBlur; } break; case util::hashFNV1a("circle-blur-transition"): if (name == "circle-blur-transition") { property = Property::CircleBlurTransition; } break; case util::hashFNV1a("circle-opacity"): if (name == "circle-opacity") { property = Property::CircleOpacity; } break; case util::hashFNV1a("circle-opacity-transition"): if (name == "circle-opacity-transition") { property = Property::CircleOpacityTransition; } break; case util::hashFNV1a("circle-translate"): if (name == "circle-translate") { property = Property::CircleTranslate; } break; case util::hashFNV1a("circle-translate-transition"): if (name == "circle-translate-transition") { property = Property::CircleTranslateTransition; } break; case util::hashFNV1a("circle-translate-anchor"): if (name == "circle-translate-anchor") { property = Property::CircleTranslateAnchor; } break; case util::hashFNV1a("circle-translate-anchor-transition"): if (name == "circle-translate-anchor-transition") { property = Property::CircleTranslateAnchorTransition; } break; case util::hashFNV1a("circle-pitch-scale"): if (name == "circle-pitch-scale") { property = Property::CirclePitchScale; } break; case util::hashFNV1a("circle-pitch-scale-transition"): if (name == "circle-pitch-scale-transition") { property = Property::CirclePitchScaleTransition; } break; case util::hashFNV1a("circle-pitch-alignment"): if (name == "circle-pitch-alignment") { property = Property::CirclePitchAlignment; } break; case util::hashFNV1a("circle-pitch-alignment-transition"): if (name == "circle-pitch-alignment-transition") { property = Property::CirclePitchAlignmentTransition; } break; case util::hashFNV1a("circle-stroke-width"): if (name == "circle-stroke-width") { property = Property::CircleStrokeWidth; } break; case util::hashFNV1a("circle-stroke-width-transition"): if (name == "circle-stroke-width-transition") { property = Property::CircleStrokeWidthTransition; } break; case util::hashFNV1a("circle-stroke-color"): if (name == "circle-stroke-color") { property = Property::CircleStrokeColor; } break; case util::hashFNV1a("circle-stroke-color-transition"): if (name == "circle-stroke-color-transition") { property = Property::CircleStrokeColorTransition; } break; case util::hashFNV1a("circle-stroke-opacity"): if (name == "circle-stroke-opacity") { property = Property::CircleStrokeOpacity; } break; case util::hashFNV1a("circle-stroke-opacity-transition"): if (name == "circle-stroke-opacity-transition") { property = Property::CircleStrokeOpacityTransition; } break; } if (property == Property::Unknown) { return Error { "layer doesn't support this property" }; } if (property == Property::CircleRadius || property == Property::CircleBlur || property == Property::CircleOpacity || property == Property::CircleStrokeWidth || property == Property::CircleStrokeOpacity) { Error error; optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } if (property == Property::CircleRadius) { setCircleRadius(*typedValue); return nullopt; } if (property == Property::CircleBlur) { setCircleBlur(*typedValue); return nullopt; } if (property == Property::CircleOpacity) { setCircleOpacity(*typedValue); return nullopt; } if (property == Property::CircleStrokeWidth) { setCircleStrokeWidth(*typedValue); return nullopt; } if (property == Property::CircleStrokeOpacity) { setCircleStrokeOpacity(*typedValue); return nullopt; } } if (property == Property::CircleColor || property == Property::CircleStrokeColor) { Error error; optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } if (property == Property::CircleColor) { setCircleColor(*typedValue); return nullopt; } if (property == Property::CircleStrokeColor) { setCircleStrokeColor(*typedValue); return nullopt; } } if (property == Property::CircleTranslate) { Error error; optional>> typedValue = convert>>(value, error, false, false); if (!typedValue) { return error; } setCircleTranslate(*typedValue); return nullopt; } if (property == Property::CircleTranslateAnchor) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } setCircleTranslateAnchor(*typedValue); return nullopt; } if (property == Property::CirclePitchScale) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } setCirclePitchScale(*typedValue); return nullopt; } if (property == Property::CirclePitchAlignment) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } setCirclePitchAlignment(*typedValue); return nullopt; } Error error; optional transition = convert(value, error); if (!transition) { return error; } if (property == Property::CircleRadiusTransition) { setCircleRadiusTransition(*transition); return nullopt; } if (property == Property::CircleColorTransition) { setCircleColorTransition(*transition); return nullopt; } if (property == Property::CircleBlurTransition) { setCircleBlurTransition(*transition); return nullopt; } if (property == Property::CircleOpacityTransition) { setCircleOpacityTransition(*transition); return nullopt; } if (property == Property::CircleTranslateTransition) { setCircleTranslateTransition(*transition); return nullopt; } if (property == Property::CircleTranslateAnchorTransition) { setCircleTranslateAnchorTransition(*transition); return nullopt; } if (property == Property::CirclePitchScaleTransition) { setCirclePitchScaleTransition(*transition); return nullopt; } if (property == Property::CirclePitchAlignmentTransition) { setCirclePitchAlignmentTransition(*transition); return nullopt; } if (property == Property::CircleStrokeWidthTransition) { setCircleStrokeWidthTransition(*transition); return nullopt; } if (property == Property::CircleStrokeColorTransition) { setCircleStrokeColorTransition(*transition); return nullopt; } if (property == Property::CircleStrokeOpacityTransition) { setCircleStrokeOpacityTransition(*transition); return nullopt; } return Error { "layer doesn't support this property" }; } optional CircleLayer::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 CircleLayer::mutableBaseImpl() const { return staticMutableCast(mutableImpl()); } CircleLayerFactory* CircleLayerFactory::instance = nullptr; CircleLayerFactory::CircleLayerFactory() { assert(!instance); instance = this; } CircleLayerFactory::~CircleLayerFactory() = default; // static CircleLayerFactory* CircleLayerFactory::get() noexcept { assert(instance); return instance; } bool CircleLayerFactory::supportsType(const std::string& type) const noexcept { return type == "circle"; } std::unique_ptr CircleLayerFactory::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 CircleLayer(id, *source)); if (!initSourceLayerAndFilter(layer.get(), value)) { return nullptr; } return layer; } } // namespace style } // namespace mbgl