Przeglądaj źródła

[extensions][gltf] - extend LoaderBase for typing also, set fetchOptions details on GLTFLoader

Dave Buchhofer 3 lat temu
rodzic
commit
20a3cad512

+ 2 - 1
src/three/GLTFExtensionLoader.d.ts

@@ -1,8 +1,9 @@
 
 import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
+import { LoaderBase } from '../base/LoaderBase';
 import { LoadingManager } from 'three';
 
-export class GLTFExtensionLoader {
+export class GLTFExtensionLoader extends LoaderBase {
 
 	constructor( manager : LoadingManager );
 	parse( buffer : ArrayBuffer ) : Promise< GLTF >;

+ 19 - 2
src/three/GLTFExtensionLoader.js

@@ -16,13 +16,30 @@ export class GLTFExtensionLoader extends LoaderBase {
 		return new Promise( ( resolve, reject ) => {
 
 			const manager = this.manager;
+			const fetchOptions = this.fetchOptions;
 			let loader = manager.getHandler( 'path.gltf' ) || manager.getHandler( 'path.glb' );
 
 			if ( ! loader ) {
 
 				loader = new GLTFLoader( manager );
-				loader.crossOrigin = this.crossOrigin;
-				loader.withCredentials = this.withCredentials;
+				if ( fetchOptions.credentials === 'include' && fetchOptions.mode === 'cors' ) {
+
+					loader.setCrossOrigin( 'use-credentials' );
+
+				}
+
+				if ( 'credentials' in fetchOptions ) {
+
+					loader.setWithCredentials( fetchOptions.credentials === 'include' );
+
+				}
+
+				if ( fetchOptions.headers ) {
+
+					loader.setRequestHeader( fetchOptions.headers );
+
+				}
+
 
 			}