diff --git a/src/b3dm.tileset/QuadtreeTiler.cs b/src/b3dm.tileset/QuadtreeTiler.cs index 7206f8ab..1862d115 100644 --- a/src/b3dm.tileset/QuadtreeTiler.cs +++ b/src/b3dm.tileset/QuadtreeTiler.cs @@ -131,7 +131,7 @@ private HashSet CreateTileForLargestGeometries(BoundingBox bbox, Tile ti var outputPath = $"{outputFolder}{Path.AltDirectorySeparatorChar}{file}"; TileCreationHelper.WriteTileIfNeeded(geometriesToProcess, translation, stylingSettings, copyright, createGltf, skipCreateTiles, outputPath, file); - ProcessLodLevels(bbox, tile, lod, createGltf, keepProjection); + ProcessLodLevels(bbox, tile, lod, createGltf, keepProjection, localProcessedGeometries); if (!useImplicitTiling) { UpdateTileBoundingBox(tile, tileHashes, where, keepProjection); } @@ -174,7 +174,7 @@ private void CreateTile(BoundingBox bbox, Tile tile, List tiles, string wh var outputPath = $"{outputFolder}{Path.AltDirectorySeparatorChar}{file}"; TileCreationHelper.WriteTileIfNeeded(geometries, translation, stylingSettings, copyright, createGltf, skipCreateTiles, outputPath, file); - ProcessLodLevels(bbox, tile, lod, createGltf, keepProjection); + ProcessLodLevels(bbox, tile, lod, createGltf, keepProjection, processedGeometries); if (!useImplicitTiling) { UpdateTileBoundingBox(tile, tileHashes, where, keepProjection); } @@ -187,7 +187,7 @@ private void CreateTile(BoundingBox bbox, Tile tile, List tiles, string wh tiles.Add(tile); } - private void ProcessLodLevels(BoundingBox bbox, Tile tile, int lod, bool createGltf, bool keepProjection) + private void ProcessLodLevels(BoundingBox bbox, Tile tile, int lod, bool createGltf, bool keepProjection, HashSet processedGeometries) { if (inputTable.LodColumn != String.Empty && lod < lods.Max()) { // take the next lod @@ -197,7 +197,7 @@ private void ProcessLodLevels(BoundingBox bbox, Tile tile, int lod, bool createG // make a copy of the tile var t2 = new Tile(tile.Z, tile.X, tile.Y); t2.BoundingBox = tile.BoundingBox; - var lodNextTiles = GenerateTiles(bbox, t2, new List(), nextLod, createGltf, keepProjection); + var lodNextTiles = GenerateTiles(bbox, t2, new List(), nextLod, createGltf, keepProjection, processedGeometries); tile.Children = lodNextTiles; } }