Selaa lähdekoodia

Add option to show empty tiles, instead of forcing it

Stelios Vitalis 4 vuotta sitten
vanhempi
commit
3f3f616c3b
2 muutettua tiedostoa jossa 14 lisäystä ja 8 poistoa
  1. 1 0
      src/base/TilesRendererBase.js
  2. 13 8
      src/base/traverseFunctions.js

+ 1 - 0
src/base/TilesRendererBase.js

@@ -70,6 +70,7 @@ export class TilesRendererBase {
 		this.loadSiblings = true;
 		this.displayActiveTiles = false;
 		this.maxDepth = Infinity;
+		this.showEmptyTiles = false;
 
 	}
 

+ 13 - 8
src/base/traverseFunctions.js

@@ -118,6 +118,7 @@ export function determineFrustumSet( tile, renderer ) {
 	const maxDepth = renderer.maxDepth;
 	const loadSiblings = renderer.loadSiblings;
 	const lruCache = renderer.lruCache;
+	const showEmptyTiles = renderer.showEmptyTiles;
 	resetFrameState( tile, frameCount );
 
 	// Early out if this tile is not within view.
@@ -135,18 +136,22 @@ export function determineFrustumSet( tile, renderer ) {
 	stats.inFrustum ++;
 
 	// Early out if this tile has less error than we're targeting.
-	const error = renderer.calculateError( tile );
-	tile.__error = error;
-	if ( error <= errorTarget ) {
+	if ( showEmptyTiles || ! tile.__contentEmpty ) {
 
-		return true;
+		const error = renderer.calculateError( tile );
+		tile.__error = error;
+		if ( error <= errorTarget ) {
 
-	}
+			return true;
+
+		}
 
-	// Early out if we've reached the maximum allowed depth.
-	if ( renderer.maxDepth > 0 && tile.__depth + 1 >= maxDepth ) {
+		// Early out if we've reached the maximum allowed depth.
+		if ( renderer.maxDepth > 0 && tile.__depth + 1 >= maxDepth ) {
 
-		return true;
+			return true;
+
+		}
 
 	}