MapLibre Native Core
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
layer_factory.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <mbgl/style/layer.hpp>
4 
5 #include <vector>
6 
7 namespace mbgl {
8 
9 namespace style {
10 class LayerProperties;
11 } // namespace style
12 class Bucket;
13 class BucketParameters;
14 class GeometryTileLayer;
15 class Layout;
16 class LayoutParameters;
17 class RenderLayer;
18 
24 class LayerFactory {
25 public:
26  virtual ~LayerFactory() = default;
28  virtual const style::LayerTypeInfo* getTypeInfo() const noexcept = 0;
30  virtual std::unique_ptr<style::Layer> createLayer(const std::string& id, const style::conversion::Convertible& value) noexcept = 0;
32  virtual std::unique_ptr<RenderLayer> createRenderLayer(Immutable<style::Layer::Impl>) noexcept = 0;
34  virtual std::unique_ptr<Bucket> createBucket(const BucketParameters&, const std::vector<Immutable<style::LayerProperties>>&) noexcept;
36  virtual std::unique_ptr<Layout> createLayout(const LayoutParameters&, std::unique_ptr<GeometryTileLayer>, const std::vector<Immutable<style::LayerProperties>>&) noexcept;
37 
38 protected:
39  std::optional<std::string> getSource(const style::conversion::Convertible& value) const noexcept;
40 };
41 
42 } // namespace mbgl
The LayerFactory abstract class.
virtual std::unique_ptr< Layout > createLayout(const LayoutParameters &, std::unique_ptr< GeometryTileLayer >, const std::vector< Immutable< style::LayerProperties >> &) noexcept
Returns a new Layout instance on success call; returns nullptr otherwise.
virtual std::unique_ptr< RenderLayer > createRenderLayer(Immutable< style::Layer::Impl >) noexcept=0
Returns a new RenderLayer instance.
virtual std::unique_ptr< Bucket > createBucket(const BucketParameters &, const std::vector< Immutable< style::LayerProperties >> &) noexcept
Returns a new Bucket instance on success call; returns nullptr otherwise.
std::optional< std::string > getSource(const style::conversion::Convertible &value) const noexcept
virtual const style::LayerTypeInfo * getTypeInfo() const noexcept=0
Returns the layer type data.
virtual std::unique_ptr< style::Layer > createLayer(const std::string &id, const style::conversion::Convertible &value) noexcept=0
Returns a new Layer instance on success call; returns nullptr otherwise.
virtual ~LayerFactory()=default
Definition: actor.hpp:15
Definition: tile_id.hpp:256