#ifndef LLMR_MAP_VECTOR_TILE_DATA #define LLMR_MAP_VECTOR_TILE_DATA #include #include #include #include #include #include #include #include #include #include namespace llmr { class VectorTileData : public TileData { friend class TileParser; public: VectorTileData(Tile::ID id, Map &map, const std::string url); ~VectorTileData(); virtual void beforeParse(); virtual void parse(); virtual void afterParse(); virtual void render(Painter &painter, std::shared_ptr layer_desc); virtual bool hasData(std::shared_ptr layer_desc) const; protected: // Holds the actual geometries in this tile. FillVertexBuffer fillVertexBuffer; LineVertexBuffer lineVertexBuffer; IconVertexBuffer iconVertexBuffer; TextVertexBuffer textVertexBuffer; TriangleElementsBuffer triangleElementsBuffer; LineElementsBuffer lineElementsBuffer; PointElementsBuffer pointElementsBuffer; // Holds the buckets of this tile. // They contain the location offsets in the buffers stored above std::unordered_map> buckets; std::unique_ptr parser; }; } #endif