viewer.loadObject now returns after loading (#187)

This commit is contained in:
Cristian Balas
2021-04-22 13:47:03 +03:00
committed by GitHub
parent df05f61f2d
commit 09de8184a7
2 changed files with 19 additions and 9 deletions
@@ -44,14 +44,13 @@ export default class ViewerObjectLoader {
let current = 0
let total = 0
let viewerLoads = 0
let firstObjectPromise = null
for await ( let obj of this.loader.getObjectIterator() ) {
if ( first ) {
( async() => {
await this.converter.traverseAndConvert( obj, ( o ) => {
this.viewer.sceneManager.addObject( o )
viewerLoads++
} )
} )()
firstObjectPromise = this.converter.traverseAndConvert( obj, ( o ) => {
this.viewer.sceneManager.addObject( o )
viewerLoads++
} )
first = false
total = obj.totalChildrenCount
}
@@ -59,6 +58,10 @@ export default class ViewerObjectLoader {
this.viewer.emit( 'load-progress', { progress: current/( total+1 ), id: this.objectId } )
}
if ( firstObjectPromise ) {
await firstObjectPromise
}
if ( viewerLoads === 0 ) {
console.warn( `Viewer: no 3d objects found in object ${this.objectId}` )
this.viewer.emit( 'load-warning', { message: `No displayable objects found in object ${this.objectId}.` } )