#include #include #include #include #include #include namespace mbgl { const style::LayerTypeInfo* CircleLayerFactory::getTypeInfo() const noexcept { return style::CircleLayer::Impl::staticTypeInfo(); } std::unique_ptr CircleLayerFactory::createLayer(const std::string& id, const style::conversion::Convertible& value) noexcept { const auto source = getSource(value); return std::unique_ptr(source ? new (std::nothrow) style::CircleLayer(id, *source) : nullptr); } std::unique_ptr CircleLayerFactory::createLayout(const LayoutParameters& parameters, std::unique_ptr layer, const std::vector>& group) { return std::unique_ptr(new (std::nothrow) CircleLayout(parameters.bucketParameters, group, std::move(layer))); } std::unique_ptr CircleLayerFactory::createRenderLayer(Immutable impl) noexcept { assert(impl->getTypeInfo() == getTypeInfo()); return std::unique_ptr(new (std::nothrow) RenderCircleLayer(staticImmutableCast(impl))); } } // namespace mbgl