Skip to content

Commit 777f8b2

Browse files
authored
Merge pull request #248 from Geodan/copilot/sub-pr-244-again
Fix geometry deduplication in LOD child tiles
2 parents 03c8865 + 48aa307 commit 777f8b2

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/b3dm.tileset/QuadtreeTiler.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private HashSet<string> CreateTileForLargestGeometries(BoundingBox bbox, Tile ti
131131
var outputPath = $"{outputFolder}{Path.AltDirectorySeparatorChar}{file}";
132132
TileCreationHelper.WriteTileIfNeeded(geometriesToProcess, translation, stylingSettings, copyright, createGltf, skipCreateTiles, outputPath, file);
133133

134-
ProcessLodLevels(bbox, tile, lod, createGltf, keepProjection);
134+
ProcessLodLevels(bbox, tile, lod, createGltf, keepProjection, localProcessedGeometries);
135135
if (!useImplicitTiling) {
136136
UpdateTileBoundingBox(tile, tileHashes, where, keepProjection);
137137
}
@@ -174,7 +174,7 @@ private void CreateTile(BoundingBox bbox, Tile tile, List<Tile> tiles, string wh
174174
var outputPath = $"{outputFolder}{Path.AltDirectorySeparatorChar}{file}";
175175
TileCreationHelper.WriteTileIfNeeded(geometries, translation, stylingSettings, copyright, createGltf, skipCreateTiles, outputPath, file);
176176

177-
ProcessLodLevels(bbox, tile, lod, createGltf, keepProjection);
177+
ProcessLodLevels(bbox, tile, lod, createGltf, keepProjection, processedGeometries);
178178
if (!useImplicitTiling) {
179179
UpdateTileBoundingBox(tile, tileHashes, where, keepProjection);
180180
}
@@ -187,7 +187,7 @@ private void CreateTile(BoundingBox bbox, Tile tile, List<Tile> tiles, string wh
187187
tiles.Add(tile);
188188
}
189189

190-
private void ProcessLodLevels(BoundingBox bbox, Tile tile, int lod, bool createGltf, bool keepProjection)
190+
private void ProcessLodLevels(BoundingBox bbox, Tile tile, int lod, bool createGltf, bool keepProjection, HashSet<string> processedGeometries)
191191
{
192192
if (inputTable.LodColumn != String.Empty && lod < lods.Max()) {
193193
// take the next lod
@@ -197,7 +197,7 @@ private void ProcessLodLevels(BoundingBox bbox, Tile tile, int lod, bool createG
197197
// make a copy of the tile
198198
var t2 = new Tile(tile.Z, tile.X, tile.Y);
199199
t2.BoundingBox = tile.BoundingBox;
200-
var lodNextTiles = GenerateTiles(bbox, t2, new List<Tile>(), nextLod, createGltf, keepProjection);
200+
var lodNextTiles = GenerateTiles(bbox, t2, new List<Tile>(), nextLod, createGltf, keepProjection, processedGeometries);
201201
tile.Children = lodNextTiles;
202202
}
203203
}

0 commit comments

Comments
 (0)