|
@@ -42,6 +42,8 @@ export class TilesRenderer extends TilesRendererBase {
|
|
|
this.activeTiles = new Set();
|
|
|
this.visibleTiles = new Set();
|
|
|
|
|
|
+ this.onLoadModel = null;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/* Public API */
|
|
@@ -72,6 +74,21 @@ export class TilesRenderer extends TilesRendererBase {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ forEachLoadedModel( callback ) {
|
|
|
+
|
|
|
+ this.traverse( tile => {
|
|
|
+
|
|
|
+ const scene = tile.cached.scene;
|
|
|
+ if ( scene ) {
|
|
|
+
|
|
|
+ callback( scene, tile );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ } );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
raycast( raycaster, intersects ) {
|
|
|
|
|
|
if ( ! this.root ) {
|
|
@@ -506,6 +523,12 @@ export class TilesRenderer extends TilesRendererBase {
|
|
|
cached.geometry = geometry;
|
|
|
cached.textures = textures;
|
|
|
|
|
|
+ if ( this.onLoadModel ) {
|
|
|
+
|
|
|
+ this.onLoadModel( scene, tile );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
} );
|
|
|
|
|
|
}
|