in src/app/three/loaders.service.ts [34:77]
constructor() {
// Set up the loading manager with start, progress, load, and error functions
this.loadingManager.onStart = (
url: string,
itemsLoaded: number,
itemsTotal: number
) => {
this.loadStartTime = Date.now();
this.onStart( url, itemsLoaded, itemsTotal );
};
this.loadingManager.onProgress = (
url: string,
itemsLoaded: number,
itemsTotal: number
) => {
console.log(
`Loading file: ${url}.\nLoaded ${itemsLoaded} of ${itemsTotal} files.`
);
this.loadingProgress.set( ( itemsLoaded * 100 ) / itemsTotal );
};
this.loadingManager.onLoad = () => {
this.loadingProgress.set( 100 );
const time = Date.now();
const elapsedSec = ( time - this.loadStartTime ) / 1000;
console.log( `Loading complete, seconds elapsed = ${elapsedSec}` );
};
this.loadingManager.onError = ( url: string ) => {
console.error( 'There was an error loading ' + url );
};
// Configure and create Draco decoder
this.dracoLoader.setDecoderPath( //'/examples/jsm/libs/draco/'
'https://www.gstatic.com/draco/versioned/decoders/1.5.7/'
);
this.dracoLoader.setDecoderConfig( { type: 'js' } );
this.dracoLoader.preload();
this.gltfLoader.setDRACOLoader( this.dracoLoader );
}