浏览代码

Merge pull request #194 from NASA-AMMOS/error-cleanup

Adjust calculateError use
Garrett Johnson 4 年之前
父节点
当前提交
66a42f2b92
共有 3 个文件被更改,包括 18 次插入10 次删除
  1. 4 2
      src/base/traverseFunctions.js
  2. 12 3
      src/three/DebugTilesRenderer.js
  3. 2 5
      src/three/TilesRenderer.js

+ 4 - 2
src/base/traverseFunctions.js

@@ -146,8 +146,10 @@ export function determineFrustumSet( tile, renderer ) {
 	// at an external tile set.
 	if ( ( stopAtEmptyTiles || ! tile.__contentEmpty ) && ! tile.__externalTileSet ) {
 
-		const error = renderer.calculateError( tile );
-		tile.__error = error;
+		// compute the _error and __distanceFromCamera fields
+		renderer.calculateError( tile );
+
+		const error = tile.__error;
 		if ( error <= errorTarget ) {
 
 			return true;

+ 12 - 3
src/three/DebugTilesRenderer.js

@@ -65,11 +65,20 @@ export class DebugTilesRenderer extends TilesRenderer {
 
 	}
 
-	loadTileSet( ...args ) {
+	fetchTileSet( ...args ) {
 
-		const pr = super.loadTileSet( ...args );
+		const pr = super.fetchTileSet( ...args );
 		pr
-			.then( () => this.initExtremes() )
+			.then( () => {
+
+				// defer to after the loaded tileset has been initialized
+				Promise.resolve().then( () => {
+
+					this.initExtremes();
+
+				} );
+
+			} )
 			.catch( () => {
 
 				// error is logged internally

+ 2 - 5
src/three/TilesRenderer.js

@@ -510,7 +510,6 @@ export class TilesRenderer extends TilesRendererBase {
 			scene: null,
 			geometry: null,
 			material: null,
-			distance: Infinity
 
 		};
 
@@ -773,6 +772,8 @@ export class TilesRenderer extends TilesRendererBase {
 		const cameraInfo = this.cameraInfo;
 
 		// TODO: Use the content bounding volume here?
+		// TODO: We should use the largest distance to the tile between
+		// all available bounding volume types.
 		const boundingVolume = tile.boundingVolume;
 		if ( 'box' in boundingVolume ) {
 
@@ -821,8 +822,6 @@ export class TilesRenderer extends TilesRendererBase {
 			tile.__distanceFromCamera = minDistance;
 			tile.__error = maxError;
 
-			return maxError;
-
 		} else if ( 'sphere' in boundingVolume ) {
 
 			// const sphere = cached.sphere;
@@ -836,8 +835,6 @@ export class TilesRenderer extends TilesRendererBase {
 
 		}
 
-		return Infinity;
-
 	}
 
 	tileInView( tile ) {