Selaa lähdekoodia

AssimpLoader: Added .setPath() and .setResourcePath() to assimp loaders.

Mugen87 6 vuotta sitten
vanhempi
commit
850872f070
2 muutettua tiedostoa jossa 33 lisäystä ja 5 poistoa
  1. 17 3
      examples/js/loaders/AssimpJSONLoader.js
  2. 16 2
      examples/js/loaders/AssimpLoader.js

+ 17 - 3
examples/js/loaders/AssimpJSONLoader.js

@@ -27,7 +27,7 @@ THREE.AssimpJSONLoader.prototype = {
 
 		var scope = this;
 
-		var path = THREE.LoaderUtils.extractUrlBase( url );
+		var path = ( scope.path === undefined ) ? THREE.LoaderUtils.extractUrlBase( url ) : scope.path;
 
 		var loader = new THREE.FileLoader( this.manager );
 		loader.load( url, function ( text ) {
@@ -47,7 +47,7 @@ THREE.AssimpJSONLoader.prototype = {
 					onError( 'THREE.AssimpJSONLoader: Not an assimp2json scene.' );
 					return;
 
-				// check major format version
+					// check major format version
 
 				} else if ( metadata.version < 100 && metadata.version >= 200 ) {
 
@@ -64,6 +64,20 @@ THREE.AssimpJSONLoader.prototype = {
 
 	},
 
+	setPath: function ( value ) {
+
+		this.path = value;
+		return this;
+
+	},
+
+	setResourcePath: function ( value ) {
+
+		this.resourcePath = value;
+		return this;
+
+	},
+
 	setCrossOrigin: function ( value ) {
 
 		this.crossOrigin = value;
@@ -263,7 +277,7 @@ THREE.AssimpJSONLoader.prototype = {
 		}
 
 		var textureLoader = new THREE.TextureLoader( this.manager );
-		textureLoader.setPath( path ).setCrossOrigin( this.crossOrigin );
+		textureLoader.setPath( this.resourcePath || path ).setCrossOrigin( this.crossOrigin );
 
 		var meshes = parseList( json.meshes, parseMesh );
 		var materials = parseList( json.materials, parseMaterial );

+ 16 - 2
examples/js/loaders/AssimpLoader.js

@@ -18,7 +18,7 @@ THREE.AssimpLoader.prototype = {
 
 		var scope = this;
 
-		var path = THREE.LoaderUtils.extractUrlBase( url );
+		var path = ( scope.path === undefined ) ? THREE.LoaderUtils.extractUrlBase( url ) : scope.path;
 
 		var loader = new THREE.FileLoader( this.manager );
 		loader.setResponseType( 'arraybuffer' );
@@ -31,6 +31,20 @@ THREE.AssimpLoader.prototype = {
 
 	},
 
+	setPath: function ( value ) {
+
+		this.path = value;
+		return this;
+
+	},
+
+	setResourcePath: function ( value ) {
+
+		this.resourcePath = value;
+		return this;
+
+	},
+
 	setCrossOrigin: function ( value ) {
 
 		this.crossOrigin = value;
@@ -41,7 +55,7 @@ THREE.AssimpLoader.prototype = {
 	parse: function ( buffer, path ) {
 
 		var textureLoader = new THREE.TextureLoader( this.manager );
-		textureLoader.setPath( path ).setCrossOrigin( this.crossOrigin );
+		textureLoader.setPath( this.resourcePath || path ).setCrossOrigin( this.crossOrigin );
 
 		var Virtulous = {};