diff options
Diffstat (limited to 'include/mbgl/style/layer_properties.hpp')
-rw-r--r-- | include/mbgl/style/layer_properties.hpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/mbgl/style/layer_properties.hpp b/include/mbgl/style/layer_properties.hpp new file mode 100644 index 0000000000..89d599dfbc --- /dev/null +++ b/include/mbgl/style/layer_properties.hpp @@ -0,0 +1,29 @@ +#pragma once +#include <mbgl/style/layer_impl.hpp> + +namespace mbgl { + +namespace style { + +/** + * @brief An interface, wrapping evaluated layer properties. + * + * It is an abstract base class; concrete derived classes that hold the actual data are provided for each layer type. + */ +class LayerProperties { +public: + virtual ~LayerProperties() = default; + + Immutable<Layer::Impl> baseImpl; + +protected: + LayerProperties(Immutable<Layer::Impl> impl) : baseImpl(std::move(impl)) {} +}; + +template <class Derived> +inline const auto& getEvaluated(const Immutable<LayerProperties>& properties) { + return static_cast<const Derived&>(*properties).evaluated; +} + +} // namespace style +} // namespace mbgl |