Skip to content

Commit 7955feb

Browse files
authored
Preprocess depth from parent (#649)
* Preprocess the depthFromParent value * Add comment
1 parent abcc175 commit 7955feb

File tree

3 files changed

+7
-21
lines changed

3 files changed

+7
-21
lines changed

src/base/Tile.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export interface Tile extends TileBase {
4343
__inFrustum : boolean;
4444

4545
/**
46-
* TODO: Document this if it is useful enough to be the default property in the LRU sorting.
46+
* The depth of the tiles that increments only when a child with geometry content is encountered
4747
*/
4848
__depthFromRenderedParent : number;
4949

src/base/TilesRendererBase.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,15 +353,17 @@ export class TilesRendererBase {
353353

354354
tile.__loadAbort = null;
355355

356-
tile.__depthFromRenderedParent = - 1;
357356
if ( parentTile === null ) {
358357

359358
tile.__depth = 0;
359+
tile.__depthFromRenderedParent = 0;
360360
tile.refine = tile.refine || 'REPLACE';
361361

362362
} else {
363363

364364
tile.__depth = parentTile.__depth + 1;
365+
tile.__depthFromRenderedParent = parentTile.__depthFromRenderedParent + ( parentTile.__contentEmpty ? 0 : 1 );
366+
365367
tile.refine = tile.refine || parentTile.refine;
366368

367369
}

src/base/traverseFunctions.js

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ function recursivelyMarkUsed( tile, frameCount, lruCache, renderer ) {
5555

5656
}
5757

58-
function recursivelyLoadTiles( tile, depthFromRenderedParent, renderer ) {
58+
function recursivelyLoadTiles( tile, renderer ) {
5959

6060
renderer.ensureChildrenArePreprocessed( tile );
6161

@@ -74,8 +74,7 @@ function recursivelyLoadTiles( tile, depthFromRenderedParent, renderer ) {
7474
// the next layer of rendered children as just a single depth away for the
7575
// sake of sorting.
7676
const child = children[ i ];
77-
child.__depthFromRenderedParent = depthFromRenderedParent;
78-
recursivelyLoadTiles( child, depthFromRenderedParent, renderer );
77+
recursivelyLoadTiles( child, renderer );
7978

8079
}
8180

@@ -278,16 +277,10 @@ export function skipTraversal( tile, renderer ) {
278277

279278
}
280279

281-
const parent = tile.parent;
282-
const parentDepthToParent = parent ? parent.__depthFromRenderedParent : - 1;
283-
tile.__depthFromRenderedParent = parentDepthToParent;
284-
285280
// Request the tile contents or mark it as visible if we've found a leaf.
286281
const lruCache = renderer.lruCache;
287282
if ( tile.__isLeaf ) {
288283

289-
tile.__depthFromRenderedParent ++;
290-
291284
if ( tile.__loadingState === LOADED ) {
292285

293286
if ( tile.__inFrustum ) {
@@ -319,14 +312,6 @@ export function skipTraversal( tile, renderer ) {
319312
const children = tile.children;
320313
const allChildrenHaveContent = tile.__allChildrenLoaded;
321314

322-
// Increment the relative depth of the node to the nearest rendered parent if it has content
323-
// and is being rendered.
324-
if ( includeTile && hasModel ) {
325-
326-
tile.__depthFromRenderedParent ++;
327-
328-
}
329-
330315
// If we've met the SSE requirements and we can load content then fire a fetch.
331316
if ( includeTile && ! loadedContent && ! lruCache.isFull() && hasContent ) {
332317

@@ -367,8 +352,7 @@ export function skipTraversal( tile, renderer ) {
367352
const c = children[ i ];
368353
if ( isUsedThisFrame( c, frameCount ) && ! lruCache.isFull() ) {
369354

370-
c.__depthFromRenderedParent = tile.__depthFromRenderedParent + 1;
371-
recursivelyLoadTiles( c, c.__depthFromRenderedParent, renderer );
355+
recursivelyLoadTiles( c, renderer );
372356

373357
}
374358

0 commit comments

Comments
 (0)