#pragma once #include #include #include #include #include #include #include namespace mbgl { class RenderHeatmapLayer final : public RenderLayer { public: explicit RenderHeatmapLayer(Immutable); ~RenderHeatmapLayer() override; private: void transition(const TransitionParameters&) override; void evaluate(const PropertyEvaluationParameters&) override; bool hasTransition() const override; bool hasCrossfade() const override; void upload(gfx::UploadPass&) override; void render(PaintParameters&) override; bool queryIntersectsFeature(const GeometryCoordinates&, const GeometryTileFeature&, const float, const TransformState&, const float, const mat4&, const FeatureState&) const override; void updateColorRamp(); // Paint properties style::HeatmapPaintProperties::Unevaluated unevaluated; PremultipliedImage colorRamp; std::unique_ptr renderTexture; optional colorRampTexture; SegmentVector segments; }; } // namespace mbgl