Files
MapLibreParticleLab/src/mbgl/renderer/layers/render_circle_layer.hpp

43 lines
1.3 KiB
C++

#pragma once
#include <mbgl/renderer/render_layer.hpp>
#include <mbgl/style/layers/circle_layer_impl.hpp>
#include <mbgl/style/layers/circle_layer_properties.hpp>
namespace mbgl {
class RenderCircleLayer: public RenderLayer {
public:
RenderCircleLayer(Immutable<style::CircleLayer::Impl>);
~RenderCircleLayer() final = default;
void transition(const TransitionParameters&) override;
void evaluate(const PropertyEvaluationParameters&) override;
bool hasTransition() const override;
bool hasCrossfade() const override;
void render(PaintParameters&, RenderSource*) override;
bool queryIntersectsFeature(
const GeometryCoordinates&,
const GeometryTileFeature&,
const float,
const TransformState&,
const float,
const mat4&) const override;
std::unique_ptr<Bucket> createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const override;
// Paint properties
style::CirclePaintProperties::Unevaluated unevaluated;
style::CirclePaintProperties::PossiblyEvaluated evaluated;
const style::CircleLayer::Impl& impl() const;
};
template <>
inline bool RenderLayer::is<RenderCircleLayer>() const {
return type == style::LayerType::Circle;
}
} // namespace mbgl