From 7dfc535d2c1228439dd59ddf15e78698f56a8c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Ka=CC=88fer?= Date: Tue, 4 Feb 2014 13:44:57 +0100 Subject: [PATCH] remove VectorTile member variable of Tile --- include/llmr/map/tile.hpp | 8 ++++---- src/map/tile.cpp | 13 +++++++------ src/renderer/fill_bucket.cpp | 1 + src/renderer/line_bucket.cpp | 1 + 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/include/llmr/map/tile.hpp b/include/llmr/map/tile.hpp index f823ba3c4..c95da8982 100644 --- a/include/llmr/map/tile.hpp +++ b/include/llmr/map/tile.hpp @@ -6,7 +6,6 @@ #include "../geometry/line_buffer.hpp" #include "layer.hpp" -#include "vector_tile.hpp" #include #include @@ -23,6 +22,8 @@ class Style; class Bucket; class LayerDescription; class BucketDescription; +class VectorTile; +class VectorTileLayer; @@ -58,8 +59,8 @@ public: // Other functions bool parse(); - void parseStyleLayers(const std::vector& layers); - std::shared_ptr createBucket(const BucketDescription& bucket_desc); + void parseStyleLayers(const VectorTile& tile, const std::vector& layers); + std::shared_ptr createBucket(const VectorTile& tile, 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); @@ -87,7 +88,6 @@ public: private: // Source data std::string data; - VectorTile tile; // std::mutex mtx; diff --git a/src/map/tile.cpp b/src/map/tile.cpp index dc5c4122f..d787afb48 100644 --- a/src/map/tile.cpp +++ b/src/map/tile.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include @@ -104,8 +105,8 @@ bool Tile::parse() { } try { - tile = VectorTile(pbf((const uint8_t *)data.data(), data.size())); - parseStyleLayers(style.layers); + VectorTile tile(pbf((const uint8_t *)data.data(), data.size())); + parseStyleLayers(tile, style.layers); } catch (const std::exception& ex) { fprintf(stderr, "[%p] exception [%d/%d/%d]... failed: %s\n", this, id.z, id.x, id.y, ex.what()); cancel(); @@ -121,12 +122,12 @@ bool Tile::parse() { return true; } -void Tile::parseStyleLayers(const std::vector& layers) { +void Tile::parseStyleLayers(const VectorTile& tile, const std::vector& layers) { for (const LayerDescription& layer_desc : layers) { if (layer_desc.child_layer.size()) { // This is a layer group. // TODO: create framebuffer - parseStyleLayers(layer_desc.child_layer); + parseStyleLayers(tile, layer_desc.child_layer); // TODO: render framebuffer on previous framebuffer } else { // This is a singular layer. Check if this bucket already exists. If not, @@ -137,7 +138,7 @@ void Tile::parseStyleLayers(const std::vector& layers) { if (bucket_it != style.buckets.end()) { // Only create the new bucket if we have an actual specification // for it. - std::shared_ptr bucket = createBucket(bucket_it->second); + std::shared_ptr bucket = createBucket(tile, bucket_it->second); if (bucket) { // Bucket creation might fail because the data tile may not // contain any data that falls into this bucket. @@ -153,7 +154,7 @@ void Tile::parseStyleLayers(const std::vector& layers) { } } -std::shared_ptr Tile::createBucket(const BucketDescription& bucket_desc) { +std::shared_ptr Tile::createBucket(const VectorTile& tile, const BucketDescription& bucket_desc) { auto layer_it = tile.layers.find(bucket_desc.source_layer); if (layer_it != tile.layers.end()) { const VectorTileLayer& layer = layer_it->second; diff --git a/src/renderer/fill_bucket.cpp b/src/renderer/fill_bucket.cpp index 4e20620aa..69208ae20 100644 --- a/src/renderer/fill_bucket.cpp +++ b/src/renderer/fill_bucket.cpp @@ -4,6 +4,7 @@ #include #include +#include #include diff --git a/src/renderer/line_bucket.cpp b/src/renderer/line_bucket.cpp index 51178ffd4..70f766d9d 100644 --- a/src/renderer/line_bucket.cpp +++ b/src/renderer/line_bucket.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include