Skip to content

Commit 1e9e2b0

Browse files
authored
Merge pull request #14955 from looeee/fbxloader_setResourcePath
FBXLoader: added setResourcePath()
2 parents 9e6f2e3 + 541ad28 commit 1e9e2b0

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

examples/js/loaders/FBXLoader.js

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,16 @@ THREE.FBXLoader = ( function () {
4141

4242
var self = this;
4343

44-
var resourceDirectory = THREE.LoaderUtils.extractUrlBase( url );
44+
var path = ( self.path === undefined ) ? THREE.LoaderUtils.extractUrlBase( url ) : self.path;
4545

4646
var loader = new THREE.FileLoader( this.manager );
4747
loader.setResponseType( 'arraybuffer' );
48+
4849
loader.load( url, function ( buffer ) {
4950

5051
try {
5152

52-
var scene = self.parse( buffer, resourceDirectory );
53-
onLoad( scene );
53+
onLoad( self.parse( buffer, path ) );
5454

5555
} catch ( error ) {
5656

@@ -68,14 +68,28 @@ THREE.FBXLoader = ( function () {
6868

6969
},
7070

71+
setPath: function ( value ) {
72+
73+
this.path = value;
74+
return this;
75+
76+
},
77+
78+
setResourcePath: function ( value ) {
79+
80+
this.resourcePath = value;
81+
return this;
82+
83+
},
84+
7185
setCrossOrigin: function ( value ) {
7286

7387
this.crossOrigin = value;
7488
return this;
7589

7690
},
7791

78-
parse: function ( FBXBuffer, resourceDirectory ) {
92+
parse: function ( FBXBuffer, path ) {
7993

8094
if ( isFbxFormatBinary( FBXBuffer ) ) {
8195

@@ -103,7 +117,7 @@ THREE.FBXLoader = ( function () {
103117

104118
// console.log( fbxTree );
105119

106-
var textureLoader = new THREE.TextureLoader( this.manager ).setPath( resourceDirectory ).setCrossOrigin( this.crossOrigin );
120+
var textureLoader = new THREE.TextureLoader( this.manager ).setPath( this.resourcePath || path ).setCrossOrigin( this.crossOrigin );
107121

108122
return new FBXTreeParser( textureLoader ).parse( fbxTree );
109123

@@ -282,7 +296,10 @@ THREE.FBXLoader = ( function () {
282296

283297
if ( THREE.Loader.Handlers.get( '.tga' ) === null ) {
284298

285-
THREE.Loader.Handlers.add( /\.tga$/i, new THREE.TGALoader() );
299+
var tgaLoader = new THREE.TGALoader();
300+
tgaLoader.setPath( this.textureLoader.path );
301+
302+
THREE.Loader.Handlers.add( /\.tga$/i, tgaLoader );
286303

287304
}
288305

0 commit comments

Comments
 (0)