#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&, std::size_t, const CanonicalTileID&) override; bool hasData() const override; void upload(gfx::UploadPass&) override; float getQueryRadius(const RenderLayer&) const override; void update(const FeatureStates&, const GeometryTileLayer&, const std::string&, const ImagePositions&) override; gfx::VertexVector vertices; gfx::IndexVector triangles; SegmentVector triangleSegments; optional> vertexBuffer; optional indexBuffer; std::unordered_map paintPropertyBinders; }; } // namespace mbgl