#pragma once #include #include #include #include #include #include #include namespace mbgl { class BucketParameters; class RenderFillExtrusionLayer; class FillExtrusionBucket final : public Bucket { public: ~FillExtrusionBucket() override; using PossiblyEvaluatedPaintProperties = style::FillExtrusionPaintProperties::PossiblyEvaluated; using PossiblyEvaluatedLayoutProperties = style::Properties<>::PossiblyEvaluated; FillExtrusionBucket(const PossiblyEvaluatedLayoutProperties&, const std::map>&, const float, const uint32_t); void addFeature(const GeometryTileFeature&, const GeometryCollection&, const mbgl::ImagePositions&, const PatternLayerMap&) override; bool hasData() const override; bool supportsLayer(const style::Layer::Impl&) const override; void upload(gfx::Context&) override; float getQueryRadius(const RenderLayer&) const override; gfx::VertexVector vertices; gfx::IndexVector triangles; SegmentVector triangleSegments; optional> vertexBuffer; optional indexBuffer; std::unordered_map paintPropertyBinders; }; } // namespace mbgl