|
@@ -51,10 +51,10 @@ THREE.ObjectLoader.prototype = {
|
|
|
|
|
|
this.manager.itemStart( json.object.uuid );
|
|
this.manager.itemStart( json.object.uuid );
|
|
|
|
|
|
- var manager = new THREE.LoadingManager( function () {
|
|
|
|
|
|
+ geometries = this.parseGeometries( json.geometries );
|
|
|
|
+ images = this.parseImages( json.images, function () {
|
|
|
|
|
|
textures = scope.parseTextures( json.textures, images );
|
|
textures = scope.parseTextures( json.textures, images );
|
|
-
|
|
|
|
materials = scope.parseMaterials( json.materials, textures );
|
|
materials = scope.parseMaterials( json.materials, textures );
|
|
|
|
|
|
onLoad( scope.parseObject( json.object, geometries, materials ) );
|
|
onLoad( scope.parseObject( json.object, geometries, materials ) );
|
|
@@ -64,8 +64,6 @@ THREE.ObjectLoader.prototype = {
|
|
|
|
|
|
} );
|
|
} );
|
|
|
|
|
|
- images = this.parseImages( json.images, manager );
|
|
|
|
-
|
|
|
|
},
|
|
},
|
|
|
|
|
|
parseGeometries: function ( json ) {
|
|
parseGeometries: function ( json ) {
|
|
@@ -247,41 +245,43 @@ THREE.ObjectLoader.prototype = {
|
|
|
|
|
|
},
|
|
},
|
|
|
|
|
|
- parseImages: function ( json, manager ) {
|
|
|
|
|
|
+ parseImages: function ( json, onLoad ) {
|
|
|
|
|
|
var scope = this;
|
|
var scope = this;
|
|
var images = {};
|
|
var images = {};
|
|
|
|
|
|
- if ( json !== undefined ) {
|
|
|
|
|
|
+ if ( json !== undefined && json.length > 0 ) {
|
|
|
|
+
|
|
|
|
+ var manager = new THREE.LoadingManager( onLoad );
|
|
|
|
|
|
var loader = new THREE.ImageLoader( manager );
|
|
var loader = new THREE.ImageLoader( manager );
|
|
loader.setCrossOrigin( this.crossOrigin );
|
|
loader.setCrossOrigin( this.crossOrigin );
|
|
|
|
|
|
- if ( json.length === 0 ) {
|
|
|
|
|
|
+ var loadImage = function ( data ) {
|
|
|
|
|
|
- manager.onLoad();
|
|
|
|
|
|
+ var url = scope.texturePath + data.url;
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ scope.manager.itemStart( url );
|
|
|
|
|
|
- for ( var i = 0, l = json.length; i < l; i ++ ) {
|
|
|
|
|
|
+ loader.load( url, function ( image ) {
|
|
|
|
|
|
- var data = json[ i ];
|
|
|
|
- var url = scope.texturePath + data.url;
|
|
|
|
|
|
+ scope.manager.itemEnd( url );
|
|
|
|
|
|
- scope.manager.itemStart( url );
|
|
|
|
- loader.load( url, function ( uuid, url, image ) {
|
|
|
|
|
|
+ images[ data.uuid ] = image;
|
|
|
|
|
|
- scope.manager.itemEnd( url );
|
|
|
|
|
|
+ } );
|
|
|
|
+
|
|
|
|
+ };
|
|
|
|
|
|
- images[ uuid ] = image;
|
|
|
|
|
|
+ for ( var i = 0, l = json.length; i < l; i ++ ) {
|
|
|
|
|
|
- }.bind( null, data.uuid, url ) );
|
|
|
|
|
|
+ loadImage( json[ i ] );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- manager.onLoad();
|
|
|
|
|
|
+ onLoad();
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|