#ifndef LLMR_MAP_TILE_PARSER #define LLMR_MAP_TILE_PARSER #include #include namespace llmr { class TileParser { public: TileParser(const std::string& data, TileData& tile, const Style& style, GlyphAtlas& glyphAtlas); private: bool obsolete() const; void parseGlyphs(); void parseStyleLayers(const std::vector& layers); std::shared_ptr createBucket(const BucketDescription& bucket_desc); std::shared_ptr createFillBucket(const VectorTileLayer& layer, const BucketDescription& bucket_desc); std::shared_ptr createLineBucket(const VectorTileLayer& layer, const BucketDescription& bucket_desc); std::shared_ptr createPointBucket(const VectorTileLayer& layer, const BucketDescription& bucket_desc); std::shared_ptr createTextBucket(const VectorTileLayer& layer, const BucketDescription& bucket_desc); template void addBucketFeatures(Bucket& bucket, const VectorTileLayer& layer, const BucketDescription& bucket_desc); private: const VectorTile data; TileData& tile; const Style& style; GlyphAtlas& glyphAtlas; Faces faces; Placement placement; }; } #endif