Spaces:
Running
Running
/** | |
* @author Takahiro / https://github.com/takahirox | |
*/ | |
// VRM Specification: https://dwango.github.io/vrm/vrm_spec/ | |
// | |
// VRM is based on glTF 2.0 and VRM extension is defined | |
// in top-level json.extensions.VRM | |
THREE.VRMLoader = ( function () { | |
function VRMLoader( manager ) { | |
if ( THREE.GLTFLoader === undefined ) { | |
throw new Error( 'THREE.VRMLoader: Import THREE.GLTFLoader.' ); | |
} | |
this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; | |
this.gltfLoader = new THREE.GLTFLoader( this.manager ); | |
} | |
VRMLoader.prototype = { | |
constructor: VRMLoader, | |
crossOrigin: 'anonymous', | |
load: function ( url, onLoad, onProgress, onError ) { | |
var scope = this; | |
this.gltfLoader.load( url, function ( gltf ) { | |
scope.parse( gltf, onLoad ); | |
}, onProgress, onError ); | |
}, | |
setCrossOrigin: function ( value ) { | |
this.glTFLoader.setCrossOrigin( value ); | |
return this; | |
}, | |
setPath: function ( value ) { | |
this.glTFLoader.setPath( value ); | |
return this; | |
}, | |
setResourcePath: function ( value ) { | |
this.glTFLoader.setResourcePath( value ); | |
return this; | |
}, | |
setDRACOLoader: function ( dracoLoader ) { | |
this.glTFLoader.setDRACOLoader( dracoLoader ); | |
return this; | |
}, | |
parse: function ( gltf, onLoad ) { | |
var gltfParser = gltf.parser; | |
var gltfExtensions = gltf.userData.gltfExtensions || {}; | |
var vrmExtension = gltfExtensions.VRM || {}; | |
// handle VRM Extension here | |
onLoad( gltf ); | |
} | |
}; | |
return VRMLoader; | |
} )(); | |