#pragma once #include #include #include #include #include #include namespace mbgl { class RenderHeatmapLayer: public RenderLayer { public: RenderHeatmapLayer(Immutable); ~RenderHeatmapLayer() 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; void update() final; bool queryIntersectsFeature( const GeometryCoordinates&, const GeometryTileFeature&, const float, const TransformState&, const float, const mat4&) const override; // Paint properties style::HeatmapPaintProperties::Unevaluated unevaluated; style::HeatmapPaintProperties::PossiblyEvaluated evaluated; const style::HeatmapLayer::Impl& impl() const; PremultipliedImage colorRamp; optional renderTexture; optional colorRampTexture; private: void updateColorRamp(); }; inline const RenderHeatmapLayer* toRenderHeatmapLayer(const RenderLayer* layer) { return static_cast(layer); } } // namespace mbgl