123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- ( function () {
- //
- // VRM is based on glTF 2.0 and VRM extension is defined
- // in top-level json.extensions.VRM
- class VRMLoader extends THREE.Loader {
- constructor( manager ) {
- if ( THREE.GLTFLoader === undefined ) {
- throw new Error( 'THREE.VRMLoader: Import THREE.GLTFLoader.' );
- }
- super( manager );
- this.gltfLoader = new THREE.GLTFLoader( manager );
- }
- load( url, onLoad, onProgress, onError ) {
- const scope = this;
- this.gltfLoader.load( url, function ( gltf ) {
- try {
- scope.parse( gltf, onLoad );
- } catch ( e ) {
- if ( onError ) {
- onError( e );
- } else {
- console.error( e );
- }
- scope.manager.itemError( url );
- }
- }, onProgress, onError );
- }
- setDRACOLoader( dracoLoader ) {
- this.gltfLoader.setDRACOLoader( dracoLoader );
- return this;
- }
- parse( gltf, onLoad ) {
- // const gltfParser = gltf.parser;
- // const gltfExtensions = gltf.userData.gltfExtensions || {};
- // const vrmExtension = gltfExtensions.VRM || {};
- // handle VRM Extension here
- onLoad( gltf );
- }
- }
- THREE.VRMLoader = VRMLoader;
- } )();
|