From f1e5e4f109a215c32f27619e85ee28fa7ca96af3 Mon Sep 17 00:00:00 2001 From: Erica Fischer Date: Wed, 21 Aug 2024 14:30:04 -0700 Subject: [PATCH] Plumb the bins through to overzoom() --- clip.cpp | 16 ++++++++++------ geometry.hpp | 4 ++-- overzoom.cpp | 2 +- tile-join.cpp | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/clip.cpp b/clip.cpp index 15d65776..28c8869b 100644 --- a/clip.cpp +++ b/clip.cpp @@ -1022,8 +1022,10 @@ drawvec reduce_tiny_poly(drawvec const &geom, int z, int detail, bool *still_nee std::string overzoom(std::vector const &tiles, int nz, int nx, int ny, int detail, int buffer, std::set const &keep, bool do_compress, std::vector> *next_overzoomed_tiles, - bool demultiply, json_object *filter, bool preserve_input_order, std::unordered_map const &attribute_accum, std::vector const &unidecode_data, double simplification, - double tiny_polygon_size) { + bool demultiply, json_object *filter, bool preserve_input_order, + std::unordered_map const &attribute_accum, + std::vector const &unidecode_data, double simplification, + double tiny_polygon_size, std::vector const &bins) { std::vector decoded; for (auto const &t : tiles) { @@ -1049,7 +1051,7 @@ std::string overzoom(std::vector const &tiles, int nz, int nx, int n decoded.push_back(out); } - return overzoom(decoded, nz, nx, ny, detail, buffer, keep, do_compress, next_overzoomed_tiles, demultiply, filter, preserve_input_order, attribute_accum, unidecode_data, simplification, tiny_polygon_size); + return overzoom(decoded, nz, nx, ny, detail, buffer, keep, do_compress, next_overzoomed_tiles, demultiply, filter, preserve_input_order, attribute_accum, unidecode_data, simplification, tiny_polygon_size, bins); } struct tile_feature { @@ -1150,8 +1152,10 @@ static struct preservecmp { std::string overzoom(std::vector const &tiles, int nz, int nx, int ny, int detail, int buffer, std::set const &keep, bool do_compress, std::vector> *next_overzoomed_tiles, - bool demultiply, json_object *filter, bool preserve_input_order, std::unordered_map const &attribute_accum, std::vector const &unidecode_data, double simplification, - double tiny_polygon_size) { + bool demultiply, json_object *filter, bool preserve_input_order, + std::unordered_map const &attribute_accum, + std::vector const &unidecode_data, double simplification, + double tiny_polygon_size, std::vector const &bins) { mvt_tile outtile; std::shared_ptr tile_stringpool = std::make_shared(); @@ -1367,7 +1371,7 @@ std::string overzoom(std::vector const &tiles, int nz, int nx, int std::string child = overzoom(sts, nz + 1, nx * 2 + x, ny * 2 + y, detail, buffer, keep, false, NULL, - demultiply, filter, preserve_input_order, attribute_accum, unidecode_data, simplification, tiny_polygon_size); + demultiply, filter, preserve_input_order, attribute_accum, unidecode_data, simplification, tiny_polygon_size, bins); if (child.size() > 0) { next_overzoomed_tiles->emplace_back(nx * 2 + x, ny * 2 + y); } diff --git a/geometry.hpp b/geometry.hpp index ec6baf2d..2af8307f 100644 --- a/geometry.hpp +++ b/geometry.hpp @@ -121,7 +121,7 @@ std::string overzoom(std::vector const &tiles, int nz, int nx, int bool demultiply, json_object *filter, bool preserve_input_order, std::unordered_map const &attribute_accum, std::vector const &unidecode_data, double simplification, - double tiny_polygon_size); + double tiny_polygon_size, std::vector const &bins); std::string overzoom(std::vector const &tiles, int nz, int nx, int ny, int detail, int buffer, std::set const &keep, bool do_compress, @@ -129,7 +129,7 @@ std::string overzoom(std::vector const &tiles, int nz, int nx, int n bool demultiply, json_object *filter, bool preserve_input_order, std::unordered_map const &attribute_accum, std::vector const &unidecode_data, double simplification, - double tiny_polygon_size); + double tiny_polygon_size, std::vector const &bins); draw center_of_mass_mp(const drawvec &dv); diff --git a/overzoom.cpp b/overzoom.cpp index 5e3dc47c..bc97512c 100644 --- a/overzoom.cpp +++ b/overzoom.cpp @@ -227,7 +227,7 @@ int main(int argc, char **argv) { its.push_back(std::move(t)); } - std::string out = overzoom(its, nz, nx, ny, detail, buffer, keep, true, NULL, demultiply, json_filter, preserve_input_order, attribute_accum, unidecode_data, simplification, tiny_polygon_size); + std::string out = overzoom(its, nz, nx, ny, detail, buffer, keep, true, NULL, demultiply, json_filter, preserve_input_order, attribute_accum, unidecode_data, simplification, tiny_polygon_size, bins); FILE *f = fopen(outfile, "wb"); if (f == NULL) { diff --git a/tile-join.cpp b/tile-join.cpp index 4682e7de..a124d008 100644 --- a/tile-join.cpp +++ b/tile-join.cpp @@ -712,7 +712,7 @@ struct tileset_reader { t.y = parent_tile.y; tv.push_back(std::move(t)); - std::string ret = overzoom(tv, tile.z, tile.x, tile.y, -1, buffer, std::set(), false, &next_overzoomed_tiles, false, NULL, false, std::unordered_map(), unidecode_data, 0, 0); + std::string ret = overzoom(tv, tile.z, tile.x, tile.y, -1, buffer, std::set(), false, &next_overzoomed_tiles, false, NULL, false, std::unordered_map(), unidecode_data, 0, 0, std::vector()); return ret; }