babylonjs-loaders 9.13.0 → 9.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("babylonjs")):"function"==typeof define&&define.amd?define(["exports","babylonjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BABYLON=e.BABYLON||{},e.BABYLON)}(this,function(e,t){"use strict";var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},n(e,t)};function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)};function a(e,t,n,r){var o={externalResourceFunction:r};return n&&(o.uri="file:"===t?n:t+n),ArrayBuffer.isView(e)?GLTFValidator.validateBytes(e,o):GLTFValidator.validateString(e,o)}function i(){var e=[];onmessage=function(t){var n=t.data;switch(n.id){case"init":importScripts(n.url);break;case"validate":a(n.data,n.rootUrl,n.fileName,function(t){return new Promise(function(n,r){var o=e.length;e.push({resolve:n,reject:r}),postMessage({id:"getExternalResource",index:o,uri:t})})}).then(function(e){postMessage({id:"validate.resolve",value:e})},function(e){postMessage({id:"validate.reject",reason:e})});break;case"getExternalResource.resolve":e[n.index].resolve(n.value);break;case"getExternalResource.reject":e[n.index].reject(n.reason)}}}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var s,l,u,c=function(){function e(){}return e.ValidateAsync=function(n,r,o,s){var l=this;return"function"==typeof Worker?new Promise(function(u,c){var d="".concat(a,"(").concat(i,")()"),f=URL.createObjectURL(new Blob([d],{type:"application/javascript"})),h=new Worker(f),p=function(e){h.removeEventListener("error",p),h.removeEventListener("message",m),c(e)},m=function(t){var n=t.data;switch(n.id){case"getExternalResource":s(n.uri).then(function(e){h.postMessage({id:"getExternalResource.resolve",index:n.index,value:e},[e.buffer])},function(e){h.postMessage({id:"getExternalResource.reject",index:n.index,reason:e})});break;case"validate.resolve":h.removeEventListener("error",p),h.removeEventListener("message",m),e._LastResults=n.value,u(n.value),h.terminate();break;case"validate.reject":h.removeEventListener("error",p),h.removeEventListener("message",m),c(n.reason),h.terminate()}};if(h.addEventListener("error",p),h.addEventListener("message",m),h.postMessage({id:"init",url:t.Tools.GetBabylonScriptURL(l.Configuration.url)}),ArrayBuffer.isView(n)){var v=n.slice();h.postMessage({id:"validate",data:v,rootUrl:r,fileName:o},[v.buffer])}else h.postMessage({id:"validate",data:n,rootUrl:r,fileName:o})}):(this._LoadScriptPromise||(this._LoadScriptPromise=t.Tools.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then(function(){return a(n,r,o,s)}))},e.Configuration={url:"".concat(t.Tools._DefaultCdnUrl,"/gltf_validator.js")},e._LastResults=null,e}(),d={__proto__:null,GLTFValidation:c},f="Z2xURg",h="gltf",p={".gltf":{isBinary:!1,mimeType:"model/gltf+json"},".glb":{isBinary:!0,mimeType:"model/gltf-binary"}};function m(e,t,n){try{return Promise.resolve(new Uint8Array(e,t,n))}catch(e){return Promise.reject(e)}}e.GLTFLoaderCoordinateSystemMode=void 0,(s=e.GLTFLoaderCoordinateSystemMode||(e.GLTFLoaderCoordinateSystemMode={}))[s.AUTO=0]="AUTO",s[s.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED",e.GLTFLoaderAnimationStartMode=void 0,(l=e.GLTFLoaderAnimationStartMode||(e.GLTFLoaderAnimationStartMode={}))[l.NONE=0]="NONE",l[l.FIRST=1]="FIRST",l[l.ALL=2]="ALL",e.GLTFLoaderState=void 0,(u=e.GLTFLoaderState||(e.GLTFLoaderState={}))[u.LOADING=0]="LOADING",u[u.READY=1]="READY",u[u.COMPLETE=2]="COMPLETE";var v=function(){this.alwaysComputeBoundingBox=!1,this.alwaysComputeSkeletonRootNode=!1,this.animationStartMode=e.GLTFLoaderAnimationStartMode.FIRST,this.compileMaterials=!1,this.compileShadowGenerators=!1,this.coordinateSystemMode=e.GLTFLoaderCoordinateSystemMode.AUTO,this.createInstances=!0,this.loadAllMaterials=!1,this.loadMorphTargets=!0,this.loadNodeAnimations=!0,this.loadOnlyMaterials=!1,this.loadSkins=!0,this.skipMaterials=!1,this.targetFps=60,this.transparencyAsCoverage=!1,this.useClipPlane=!1,this.useGltfTextureNames=!1,this.useRangeRequests=!1,this.useSRGBBuffers=!0,this.validate=!1,this.useOpenPBR=!1,this.dontUseTransmissionHelper=!1},b=new v,y=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.extensionOptions={},t.preprocessUrlAsync=function(e){return Promise.resolve(e)},t}return r(t,e),t.prototype.copyFrom=function(e){var t,n,r,o,a,i,s,l,u,c,d,f,h,p,m,v,b,y,_,A,g,O,E,L,T,N;e&&(this.alwaysComputeBoundingBox=null!==(t=e.alwaysComputeBoundingBox)&&void 0!==t?t:this.alwaysComputeBoundingBox,this.alwaysComputeSkeletonRootNode=null!==(n=e.alwaysComputeSkeletonRootNode)&&void 0!==n?n:this.alwaysComputeSkeletonRootNode,this.animationStartMode=null!==(r=e.animationStartMode)&&void 0!==r?r:this.animationStartMode,this.capturePerformanceCounters=null!==(o=e.capturePerformanceCounters)&&void 0!==o?o:this.capturePerformanceCounters,this.compileMaterials=null!==(a=e.compileMaterials)&&void 0!==a?a:this.compileMaterials,this.compileShadowGenerators=null!==(i=e.compileShadowGenerators)&&void 0!==i?i:this.compileShadowGenerators,this.coordinateSystemMode=null!==(s=e.coordinateSystemMode)&&void 0!==s?s:this.coordinateSystemMode,this.createInstances=null!==(l=e.createInstances)&&void 0!==l?l:this.createInstances,this.customRootNode=e.customRootNode,this.extensionOptions=null!==(u=e.extensionOptions)&&void 0!==u?u:this.extensionOptions,this.loadAllMaterials=null!==(c=e.loadAllMaterials)&&void 0!==c?c:this.loadAllMaterials,this.loadMorphTargets=null!==(d=e.loadMorphTargets)&&void 0!==d?d:this.loadMorphTargets,this.loadNodeAnimations=null!==(f=e.loadNodeAnimations)&&void 0!==f?f:this.loadNodeAnimations,this.loadOnlyMaterials=null!==(h=e.loadOnlyMaterials)&&void 0!==h?h:this.loadOnlyMaterials,this.loadSkins=null!==(p=e.loadSkins)&&void 0!==p?p:this.loadSkins,this.loggingEnabled=null!==(m=e.loggingEnabled)&&void 0!==m?m:this.loggingEnabled,this.onCameraLoaded=e.onCameraLoaded,this.onMaterialLoaded=e.onMaterialLoaded,this.onMeshLoaded=e.onMeshLoaded,this.onParsed=e.onParsed,this.onSkinLoaded=e.onSkinLoaded,this.onTextureLoaded=e.onTextureLoaded,this.onValidated=e.onValidated,this.preprocessUrlAsync=null!==(v=e.preprocessUrlAsync)&&void 0!==v?v:this.preprocessUrlAsync,this.skipMaterials=null!==(b=e.skipMaterials)&&void 0!==b?b:this.skipMaterials,this.targetFps=null!==(y=e.targetFps)&&void 0!==y?y:this.targetFps,this.transparencyAsCoverage=null!==(_=e.transparencyAsCoverage)&&void 0!==_?_:this.transparencyAsCoverage,this.useClipPlane=null!==(A=e.useClipPlane)&&void 0!==A?A:this.useClipPlane,this.useGltfTextureNames=null!==(g=e.useGltfTextureNames)&&void 0!==g?g:this.useGltfTextureNames,this.useOpenPBR=null!==(O=e.useOpenPBR)&&void 0!==O?O:this.useOpenPBR,this.useRangeRequests=null!==(E=e.useRangeRequests)&&void 0!==E?E:this.useRangeRequests,this.useSRGBBuffers=null!==(L=e.useSRGBBuffers)&&void 0!==L?L:this.useSRGBBuffers,this.validate=null!==(T=e.validate)&&void 0!==T?T:this.validate,this.dontUseTransmissionHelper=null!==(N=e.dontUseTransmissionHelper)&&void 0!==N?N:this.dontUseTransmissionHelper)},t}(v),_=function(n){function a(e){var r=n.call(this)||this;return r.onParsedObservable=new t.Observable,r.onMeshLoadedObservable=new t.Observable,r.onSkinLoadedObservable=new t.Observable,r.onTextureLoadedObservable=new t.Observable,r.onMaterialLoadedObservable=new t.Observable,r.onCameraLoadedObservable=new t.Observable,r.onCompleteObservable=new t.Observable,r.onErrorObservable=new t.Observable,r.onDisposeObservable=new t.Observable,r.onExtensionLoadedObservable=new t.Observable,r.onValidatedObservable=new t.Observable,r._loader=null,r._state=null,r._requests=new Array,r.name=h,r.extensions=p,r.onLoaderStateChangedObservable=new t.Observable,r._logIndentLevel=0,r._loggingEnabled=!1,r._log=r._logDisabled,r._capturePerformanceCounters=!1,r._startPerformanceCounter=r._startPerformanceCounterDisabled,r._endPerformanceCounter=r._endPerformanceCounterDisabled,r.copyFrom(Object.assign(o({},b),e)),r}return r(a,n),Object.defineProperty(a.prototype,"onParsed",{set:function(e){this._onParsedObserver&&this.onParsedObservable.remove(this._onParsedObserver),e&&(this._onParsedObserver=this.onParsedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onMeshLoaded",{set:function(e){this._onMeshLoadedObserver&&this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver),e&&(this._onMeshLoadedObserver=this.onMeshLoadedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onSkinLoaded",{set:function(e){this._onSkinLoadedObserver&&this.onSkinLoadedObservable.remove(this._onSkinLoadedObserver),e&&(this._onSkinLoadedObserver=this.onSkinLoadedObservable.add(function(t){return e(t.node,t.skinnedNode)}))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onTextureLoaded",{set:function(e){this._onTextureLoadedObserver&&this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver),e&&(this._onTextureLoadedObserver=this.onTextureLoadedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onMaterialLoaded",{set:function(e){this._onMaterialLoadedObserver&&this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver),e&&(this._onMaterialLoadedObserver=this.onMaterialLoadedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onCameraLoaded",{set:function(e){this._onCameraLoadedObserver&&this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver),e&&(this._onCameraLoadedObserver=this.onCameraLoadedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onComplete",{set:function(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onError",{set:function(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onDispose",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onExtensionLoaded",{set:function(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"loggingEnabled",{get:function(){return this._loggingEnabled},set:function(e){this._loggingEnabled!==e&&(this._loggingEnabled=e,this._loggingEnabled?this._log=this._logEnabled:this._log=this._logDisabled)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"capturePerformanceCounters",{get:function(){return this._capturePerformanceCounters},set:function(e){this._capturePerformanceCounters!==e&&(this._capturePerformanceCounters=e,this._capturePerformanceCounters?(this._startPerformanceCounter=this._startPerformanceCounterEnabled,this._endPerformanceCounter=this._endPerformanceCounterEnabled):(this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onValidated",{set:function(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)},enumerable:!1,configurable:!0}),a.prototype.dispose=function(){this._loader&&(this._loader.dispose(),this._loader=null);for(var e=0,t=this._requests;e<t.length;e++)t[e].abort();this._requests.length=0,delete this._progressCallback,this.preprocessUrlAsync=function(e){return Promise.resolve(e)},this.onMeshLoadedObservable.clear(),this.onSkinLoadedObservable.clear(),this.onTextureLoadedObservable.clear(),this.onMaterialLoadedObservable.clear(),this.onCameraLoadedObservable.clear(),this.onCompleteObservable.clear(),this.onExtensionLoadedObservable.clear(),this.onDisposeObservable.notifyObservers(void 0),this.onDisposeObservable.clear()},a.prototype.loadFile=function(e,n,r,o,a,i,s,l){var u=this;if(ArrayBuffer.isView(n))return this._loadBinary(e,n,r,o,s,l),null;this._progressCallback=a;var c=n.name||t.Tools.GetFilename(n);if(i){if(this.useRangeRequests){this.validate&&t.Logger.Warn("glTF validation is not supported when range requests are enabled");var d={abort:function(){},onCompleteObservable:new t.Observable},f={readAsync:function(t,r){return new Promise(function(o,a){u._loadFile(e,n,function(e){o(new Uint8Array(e))},!0,function(e){a(e)},function(e){e.setRequestHeader("Range","bytes=".concat(t,"-").concat(t+r-1))})})},byteLength:0};return this._unpackBinaryAsync(new t.DataReader(f)).then(function(e){d.onCompleteObservable.notifyObservers(d),o(e)},s?function(e){return s(void 0,e)}:void 0),d}return this._loadFile(e,n,function(n){u._validate(e,new Uint8Array(n,0,n.byteLength),r,c),u._unpackBinaryAsync(new t.DataReader({readAsync:function(e,t){return m(n,e,t)},byteLength:n.byteLength})).then(function(e){o(e)},s?function(e){return s(void 0,e)}:void 0)},!0,s)}return this._loadFile(e,n,function(t){try{u._validate(e,t,r,c),o({json:u._parseJson(t)})}catch(e){s&&s()}},!1,s)},a.prototype._loadBinary=function(e,n,r,o,a,i){this._validate(e,new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r,i),this._unpackBinaryAsync(new t.DataReader({readAsync:function(e,t){return function(e,t,n){try{if(t<0||t>=e.byteLength)throw new RangeError("Offset is out of range.");if(t+n>e.byteLength)throw new RangeError("Length is out of range.");return Promise.resolve(new Uint8Array(e.buffer,e.byteOffset+t,n))}catch(e){return Promise.reject(e)}}(n,e,t)},byteLength:n.byteLength})).then(function(e){o(e)},a?function(e){return a(void 0,e)}:void 0)},a.prototype.importMeshAsync=function(e,t,n,r,o,a){var i=this;return Promise.resolve().then(function(){return i.onParsedObservable.notifyObservers(n),i.onParsedObservable.clear(),i._log("Loading ".concat(a||"")),i._loader=i._getLoader(n),i._loader.importMeshAsync(e,t,null,n,r,o,a)})},a.prototype.loadAsync=function(e,t,n,r,o){var a=this;return Promise.resolve().then(function(){return a.onParsedObservable.notifyObservers(t),a.onParsedObservable.clear(),a._log("Loading ".concat(o||"")),a._loader=a._getLoader(t),a._loader.loadAsync(e,t,n,r,o)})},a.prototype.loadAssetContainerAsync=function(e,n,r,o,a){var i=this;return Promise.resolve().then(function(){i.onParsedObservable.notifyObservers(n),i.onParsedObservable.clear(),i._log("Loading ".concat(a||"")),i._loader=i._getLoader(n);var s=new t.AssetContainer(e),l=[];i.onMaterialLoadedObservable.add(function(e){l.push(e)});var u=[];i.onTextureLoadedObservable.add(function(e){u.push(e)});var c=[];i.onCameraLoadedObservable.add(function(e){c.push(e)});var d=[];return i.onMeshLoadedObservable.add(function(e){e.morphTargetManager&&d.push(e.morphTargetManager)}),i._loader.importMeshAsync(null,e,s,n,r,o,a).then(function(e){return Array.prototype.push.apply(s.geometries,e.geometries),Array.prototype.push.apply(s.meshes,e.meshes),Array.prototype.push.apply(s.particleSystems,e.particleSystems),Array.prototype.push.apply(s.skeletons,e.skeletons),Array.prototype.push.apply(s.animationGroups,e.animationGroups),Array.prototype.push.apply(s.materials,l),Array.prototype.push.apply(s.textures,u),Array.prototype.push.apply(s.lights,e.lights),Array.prototype.push.apply(s.transformNodes,e.transformNodes),Array.prototype.push.apply(s.cameras,c),Array.prototype.push.apply(s.morphTargetManagers,d),s})})},a.prototype.canDirectLoad=function(e){return function(e){return-1!==e.indexOf("asset")&&-1!==e.indexOf("version")||e.startsWith("data:base64,"+f)||e.startsWith("data:;base64,"+f)||e.startsWith("data:application/octet-stream;base64,"+f)||e.startsWith("data:model/gltf-binary;base64,"+f)}(e)},a.prototype.directLoad=function(e,n){if(n.startsWith("base64,"+f)||n.startsWith(";base64,"+f)||n.startsWith("application/octet-stream;base64,"+f)||n.startsWith("model/gltf-binary;base64,"+f)){var r=t.DecodeBase64UrlToBinary(n);return this._validate(e,new Uint8Array(r,0,r.byteLength)),this._unpackBinaryAsync(new t.DataReader({readAsync:function(e,t){return m(r,e,t)},byteLength:r.byteLength}))}return this._validate(e,n),Promise.resolve({json:this._parseJson(n)})},a.prototype.createPlugin=function(e){return new a(e[h])},Object.defineProperty(a.prototype,"loaderState",{get:function(){return this._state},enumerable:!1,configurable:!0}),a.prototype.whenCompleteAsync=function(){var e=this;return new Promise(function(t,n){e.onCompleteObservable.addOnce(function(){t()}),e.onErrorObservable.addOnce(function(e){n(e)})})},a.prototype._setState=function(t){this._state!==t&&(this._state=t,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(e.GLTFLoaderState[this._state]))},a.prototype._loadFile=function(e,t,n,r,o,a){var i=this,s=e._loadFile(t,n,function(e){i._onProgress(e,s)},!0,r,o,a);return s.onCompleteObservable.add(function(){s._lengthComputable=!0,s._total=s._loaded}),this._requests.push(s),s},a.prototype._onProgress=function(e,t){if(this._progressCallback){t._lengthComputable=e.lengthComputable,t._loaded=e.loaded,t._total=e.total;for(var n=!0,r=0,o=0,a=0,i=this._requests;a<i.length;a++){var s=i[a];if(void 0===s._lengthComputable||void 0===s._loaded||void 0===s._total)return;n=n&&s._lengthComputable,r+=s._loaded,o+=s._total}this._progressCallback({lengthComputable:n,loaded:r,total:n?o:0})}},a.prototype._validate=function(e,n,r,o){var a=this;void 0===r&&(r=""),void 0===o&&(o=""),this.validate&&(this._startPerformanceCounter("Validate JSON"),c.ValidateAsync(n,r,o,function(t){return a.preprocessUrlAsync(r+t).then(function(t){return e._loadFileAsync(t,void 0,!0,!0).then(function(e){return new Uint8Array(e,0,e.byteLength)})})}).then(function(e){a._endPerformanceCounter("Validate JSON"),a.onValidatedObservable.notifyObservers(e),a.onValidatedObservable.clear()},function(e){a._endPerformanceCounter("Validate JSON"),t.Tools.Warn("Failed to validate: ".concat(e.message)),a.onValidatedObservable.clear()}))},a.prototype._getLoader=function(e){var t=e.json.asset||{};this._log("Asset version: ".concat(t.version)),t.minVersion&&this._log("Asset minimum version: ".concat(t.minVersion)),t.generator&&this._log("Asset generator: ".concat(t.generator));var n=a._parseVersion(t.version);if(!n)throw new Error("Invalid version: "+t.version);if(void 0!==t.minVersion){var r=a._parseVersion(t.minVersion);if(!r)throw new Error("Invalid minimum version: "+t.minVersion);if(a._compareVersion(r,{major:2,minor:0})>0)throw new Error("Incompatible minimum version: "+t.minVersion)}var o={1:a._CreateGLTF1Loader,2:a._CreateGLTF2Loader}[n.major];if(!o)throw new Error("Unsupported version: "+t.version);return o(this)},a.prototype._parseJson=function(e){this._startPerformanceCounter("Parse JSON"),this._log("JSON length: ".concat(e.length));var t=JSON.parse(e);return this._endPerformanceCounter("Parse JSON"),t},a.prototype._unpackBinaryAsync=function(e){var n=this;return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then(function(){var r=e.readUint32();if(1179937895!==r)throw new t.RuntimeError("Unexpected magic: "+r,t.ErrorCodes.GLTFLoaderUnexpectedMagicError);var o=e.readUint32();n.loggingEnabled&&n._log("Binary version: ".concat(o));var a,i=e.readUint32();switch(n.useRangeRequests||i===e.buffer.byteLength||t.Logger.Warn("Length in header does not match actual data length: ".concat(i," != ").concat(e.buffer.byteLength)),o){case 1:a=n._unpackBinaryV1Async(e,i);break;case 2:a=n._unpackBinaryV2Async(e,i);break;default:throw new Error("Unsupported version: "+o)}return n._endPerformanceCounter("Unpack Binary"),a})},a.prototype._unpackBinaryV1Async=function(e,t){var n=e.readUint32(),r=e.readUint32();if(0!==r)throw new Error("Unexpected content format: ".concat(r));var o=t-e.byteOffset,a={json:this._parseJson(e.readString(n)),bin:null};if(0!==o){var i=e.byteOffset;a.bin={readAsync:function(t,n){return e.buffer.readAsync(i+t,n)},byteLength:o}}return Promise.resolve(a)},a.prototype._unpackBinaryV2Async=function(e,t){var n=this,r=1313821514,o=e.readUint32();if(e.readUint32()!==r)throw new Error("First chunk format is not JSON");return e.byteOffset+o===t?e.loadAsync(o).then(function(){return{json:n._parseJson(e.readString(o)),bin:null}}):e.loadAsync(o+8).then(function(){var a={json:n._parseJson(e.readString(o)),bin:null},i=function(){var n=e.readUint32();switch(e.readUint32()){case r:throw new Error("Unexpected JSON chunk");case 5130562:var o=e.byteOffset;a.bin={readAsync:function(t,n){return e.buffer.readAsync(o+t,n)},byteLength:n},e.skipBytes(n);break;default:e.skipBytes(n)}return e.byteOffset!==t?e.loadAsync(8).then(i):Promise.resolve(a)};return i()})},a._parseVersion=function(e){if("1.0"===e||"1.0.1"===e)return{major:1,minor:0};var t=(e+"").match(/^(\d+)\.(\d+)/);return t?{major:parseInt(t[1]),minor:parseInt(t[2])}:null},a._compareVersion=function(e,t){return e.major>t.major?1:e.major<t.major?-1:e.minor>t.minor?1:e.minor<t.minor?-1:0},a.prototype._logOpen=function(e){this._log(e),this._logIndentLevel++},a.prototype._logClose=function(){--this._logIndentLevel},a.prototype._logEnabled=function(e){var n=a._logSpaces.substring(0,2*this._logIndentLevel);t.Logger.Log("".concat(n).concat(e))},a.prototype._logDisabled=function(e){},a.prototype._startPerformanceCounterEnabled=function(e){t.Tools.StartPerformanceCounter(e)},a.prototype._startPerformanceCounterDisabled=function(e){},a.prototype._endPerformanceCounterEnabled=function(e){t.Tools.EndPerformanceCounter(e)},a.prototype._endPerformanceCounterDisabled=function(e){},a.IncrementalLoading=!0,a.HomogeneousCoordinates=!1,a._logSpaces=" ",a}(y);t.RegisterSceneLoaderPlugin(new _);var A,g,O,E,L,T,N,S,C={__proto__:null,GLTFFileLoader:_,get GLTFLoaderAnimationStartMode(){return e.GLTFLoaderAnimationStartMode},get GLTFLoaderCoordinateSystemMode(){return e.GLTFLoaderCoordinateSystemMode},GLTFLoaderDefaultOptions:b,get GLTFLoaderState(){return e.GLTFLoaderState}},M="undefined"!=typeof global?global:"undefined"!=typeof window?window:void 0;if(void 0!==M){for(var x in M.BABYLON=M.BABYLON||{},C)M.BABYLON[x]=C[x];for(var x in d)M.BABYLON[x]=d[x]}!function(e){e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.FLOAT=5126]="FLOAT"}(A||(A={})),function(e){e[e.FRAGMENT=35632]="FRAGMENT",e[e.VERTEX=35633]="VERTEX"}(g||(g={})),function(e){e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D"}(O||(O={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.REPEAT=10497]="REPEAT"}(E||(E={})),function(e){e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9728]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR"}(L||(L={})),function(e){e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA"}(T||(T={})),function(e){e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK"}(N||(N={})),function(e){e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE"}(S||(S={}));var R,w=function(){function e(){}return e.SetMatrix=function(e,n,r,o,a){var i=null;if("MODEL"===r.semantic?i=n.getWorldMatrix():"PROJECTION"===r.semantic?i=e.getProjectionMatrix():"VIEW"===r.semantic?i=e.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===r.semantic?i=t.Matrix.Transpose(n.getWorldMatrix().multiply(e.getViewMatrix()).invert()):"MODELVIEW"===r.semantic?i=n.getWorldMatrix().multiply(e.getViewMatrix()):"MODELVIEWPROJECTION"===r.semantic?i=n.getWorldMatrix().multiply(e.getTransformMatrix()):"MODELINVERSE"===r.semantic?i=n.getWorldMatrix().invert():"VIEWINVERSE"===r.semantic?i=e.getViewMatrix().invert():"PROJECTIONINVERSE"===r.semantic?i=e.getProjectionMatrix().invert():"MODELVIEWINVERSE"===r.semantic?i=n.getWorldMatrix().multiply(e.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===r.semantic?i=n.getWorldMatrix().multiply(e.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===r.semantic&&(i=t.Matrix.Transpose(n.getWorldMatrix().invert())),i)switch(r.type){case O.FLOAT_MAT2:a.setMatrix2x2(o,t.Matrix.GetAsMatrix2x2(i));break;case O.FLOAT_MAT3:a.setMatrix3x3(o,t.Matrix.GetAsMatrix3x3(i));break;case O.FLOAT_MAT4:a.setMatrix(o,i)}},e.SetUniform=function(e,n,r,o){switch(o){case O.FLOAT:return e.setFloat(n,r),!0;case O.FLOAT_VEC2:return e.setVector2(n,t.Vector2.FromArray(r)),!0;case O.FLOAT_VEC3:return e.setVector3(n,t.Vector3.FromArray(r)),!0;case O.FLOAT_VEC4:return e.setVector4(n,t.Vector4.FromArray(r)),!0;default:return!1}},e.GetWrapMode=function(e){switch(e){case E.CLAMP_TO_EDGE:return t.Texture.CLAMP_ADDRESSMODE;case E.MIRRORED_REPEAT:return t.Texture.MIRROR_ADDRESSMODE;case E.REPEAT:default:return t.Texture.WRAP_ADDRESSMODE}},e.GetByteStrideFromType=function(e){switch(e.type){case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16;default:return 1}},e.GetTextureFilterMode=function(e){switch(e){case L.LINEAR:case L.LINEAR_MIPMAP_NEAREST:case L.LINEAR_MIPMAP_LINEAR:return t.Texture.TRILINEAR_SAMPLINGMODE;case L.NEAREST:case L.NEAREST_MIPMAP_NEAREST:return t.Texture.NEAREST_SAMPLINGMODE;default:return t.Texture.BILINEAR_SAMPLINGMODE}},e.GetBufferFromBufferView=function(e,t,n,r,o){n=t.byteOffset+n;var a=e.loadedBufferViews[t.buffer];if(n+r>a.byteLength)throw new Error("Buffer access is out of range");var i=a.buffer;switch(n+=a.byteOffset,o){case A.BYTE:return new Int8Array(i,n,r);case A.UNSIGNED_BYTE:return new Uint8Array(i,n,r);case A.SHORT:return new Int16Array(i,n,r);case A.UNSIGNED_SHORT:return new Uint16Array(i,n,r);default:return new Float32Array(i,n,r)}},e.GetBufferFromAccessor=function(t,n){var r=t.bufferViews[n.bufferView],o=n.count*e.GetByteStrideFromType(n);return e.GetBufferFromBufferView(t,r,n.byteOffset,o,n.componentType)},e.DecodeBufferToText=function(e){for(var t="",n=e.byteLength,r=0;r<n;++r)t+=String.fromCharCode(e[r]);return t},e.GetDefaultMaterial=function(n){if(!e._DefaultMaterial){t.Effect.ShadersStore.GLTFDefaultMaterialVertexShader=["precision highp float;","","uniform mat4 worldView;","uniform mat4 projection;","","attribute vec3 position;","","void main(void)","{"," gl_Position = projection * worldView * vec4(position, 1.0);","}"].join("\n"),t.Effect.ShadersStore.GLTFDefaultMaterialPixelShader=["precision highp float;","","uniform vec4 u_emission;","","void main(void)","{"," gl_FragColor = u_emission;","}"].join("\n");var r={attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:new Array,needAlphaBlending:!1};e._DefaultMaterial=new t.ShaderMaterial("GLTFDefaultMaterial",n,{vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},r),e._DefaultMaterial.setColor4("u_emission",new t.Color4(.5,.5,.5,1))}return e._DefaultMaterial},e._DefaultMaterial=null,e}();!function(e){e[e.IDENTIFIER=1]="IDENTIFIER",e[e.UNKNOWN=2]="UNKNOWN",e[e.END_OF_INPUT=3]="END_OF_INPUT"}(R||(R={}));var P=function(){function e(e){this._pos=0,this.currentToken=R.UNKNOWN,this.currentIdentifier="",this.currentString="",this.isLetterOrDigitPattern=/^[a-zA-Z0-9]+$/,this._toParse=e,this._maxPos=e.length}return e.prototype.getNextToken=function(){if(this.isEnd())return R.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=R.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=R.IDENTIFIER,this.currentIdentifier=this.currentString;!this.isEnd()&&(this.isLetterOrDigitPattern.test(this.currentString=this.peek())||"_"===this.currentString);)this.currentIdentifier+=this.currentString,this.forward();return this.currentToken},e.prototype.peek=function(){return this._toParse[this._pos]},e.prototype.read=function(){return this._toParse[this._pos++]},e.prototype.forward=function(){this._pos++},e.prototype.isEnd=function(){return this._pos>=this._maxPos},e}(),I=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],F=["world","view","projection","worldView","worldViewProjection","mBones"],B=["translation","rotation","scale"],V=["position","rotationQuaternion","scaling"],D=function(e,t,n){for(var r in e){var o=e[r];n[t][r]=o}},k=function(e){if(e)for(var t=0;t<e.length/2;t++)e[2*t+1]=1-e[2*t+1]},G=function(e){if("NORMAL"===e.semantic)return"normal";if("POSITION"===e.semantic)return"position";if("JOINT"===e.semantic)return"matricesIndices";if("WEIGHT"===e.semantic)return"matricesWeights";if("COLOR"===e.semantic)return"color";if(e.semantic&&-1!==e.semantic.indexOf("TEXCOORD_")){var t=Number(e.semantic.split("_")[1]);return"uv"+(0===t?"":t+1)}return null},U=function(e){var n;if(e.translation||e.rotation||e.scale){var r=t.Vector3.FromArray(e.scale||[1,1,1]),o=t.Quaternion.FromArray(e.rotation||[0,0,0,1]),a=t.Vector3.FromArray(e.translation||[0,0,0]);n=t.Matrix.Compose(r,o,a)}else n=t.Matrix.FromArray(e.matrix);return n},j=function(e,n,r,o){for(var a=0;a<o.bones.length;a++)if(o.bones[a].name===r)return o.bones[a];var i=e.nodes;for(var s in i){var l=i[s];if(l.jointName){var u=l.children;for(a=0;a<u.length;a++){var c=e.nodes[u[a]];if(c.jointName&&c.jointName===r){var d=U(l),f=new t.Bone(l.name||"",o,j(e,n,l.jointName,o),d);return f.id=s,f}}}}return null},H=function(e,t){for(var n=0;n<e.length;n++)for(var r=e[n],o=0;o<r.node.children.length;o++)if(r.node.children[o]===t)return r.bone;return null},W=function(e,t){var n=e.nodes,r=n[t];if(r)return{node:r,id:t};for(var o in n)if((r=n[o]).jointName===t)return{node:r,id:o};return null},Y=function(e,t){for(var n=0;n<e.jointNames.length;n++)if(e.jointNames[n]===t)return!0;return!1},J=function(e,n,r,o,a){if(a||(e.scene._blockEntityCollection=!!e.assetContainer,(a=new t.Mesh(n.name||"",e.scene))._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,a.id=o),!n.babylonNode)return a;for(var i,s=[],l=null,u=[],c=[],d=[],f=[],h=0;h<r.length;h++){var p=r[h];if(x=e.meshes[p])for(var m=0;m<x.primitives.length;m++){var v=new t.VertexData,b=x.primitives[m];b.mode;var y=b.attributes,A=void 0,g=void 0;for(var O in y)if(A=e.accessors[y[O]],g=w.GetBufferFromAccessor(e,A),"NORMAL"===O)v.normals=new Float32Array(g.length),v.normals.set(g);else if("POSITION"===O){if(_.HomogeneousCoordinates){v.positions=new Float32Array(g.length-g.length/4);for(var E=0;E<g.length;E+=4)v.positions[E]=g[E],v.positions[E+1]=g[E+1],v.positions[E+2]=g[E+2]}else v.positions=new Float32Array(g.length),v.positions.set(g);c.push(v.positions.length)}else if(-1!==O.indexOf("TEXCOORD_")){var L=Number(O.split("_")[1]),T=t.VertexBuffer.UVKind+(0===L?"":L+1),N=new Float32Array(g.length);N.set(g),k(N),v.set(N,T)}else"JOINT"===O?(v.matricesIndices=new Float32Array(g.length),v.matricesIndices.set(g)):"WEIGHT"===O?(v.matricesWeights=new Float32Array(g.length),v.matricesWeights.set(g)):"COLOR"===O&&(v.colors=new Float32Array(g.length),v.colors.set(g));if(A=e.accessors[b.indices])g=w.GetBufferFromAccessor(e,A),v.indices=new Int32Array(g.length),v.indices.set(g),f.push(v.indices.length);else{var S=[];for(E=0;E<v.positions.length/3;E++)S.push(E);v.indices=new Int32Array(S),f.push(v.indices.length)}l?l.merge(v):l=v;var C=e.scene.getMaterialById(b.material);s.push(null===C?w.GetDefaultMaterial(e.scene):C),u.push(0===u.length?0:u[u.length-1]+c[c.length-2]),d.push(0===d.length?0:d[d.length-1]+f[f.length-2])}}e.scene._blockEntityCollection=!!e.assetContainer,s.length>1?(i=new t.MultiMaterial("multimat"+o,e.scene)).subMaterials=s:i=new t.StandardMaterial("multimat"+o,e.scene),1===s.length&&(i=s[0]),i._parentContainer=e.assetContainer,a.material||(a.material=i),new t.Geometry(o,e.scene,l,!1,a),a.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,a.subMeshes=[];var M=0;for(h=0;h<r.length;h++){var x;if(p=r[h],x=e.meshes[p])for(m=0;m<x.primitives.length;m++)x.primitives[m].mode,t.SubMesh.AddToMesh(M,u[M],c[M],d[M],f[M],a,a,!0),M++}return a},q=function(e,t,n,r){e.position&&(e.position=t),(e.rotationQuaternion||e.rotation)&&(e.rotationQuaternion=n),e.scaling&&(e.scaling=r)},Z=function(e,n,r){var o=null;if(e.importOnlyMeshes&&(n.skin||n.meshes)&&e.importMeshesNames&&e.importMeshesNames.length>0&&-1===e.importMeshesNames.indexOf(n.name||""))return null;if(n.skin){if(n.meshes){var a=e.skins[n.skin];(i=J(e,n,n.meshes,r,n.babylonNode)).skeleton=e.scene.getLastSkeletonById(n.skin),null===i.skeleton&&(i.skeleton=function(e,n,r,o){if(o||(o=new t.Skeleton(n.name||"","",e.scene)),!n.babylonSkeleton)return o;var a=[],i=[];!function(e,n,r,o){for(var a in e.nodes){var i=e.nodes[a],s=a;if(i.jointName&&!Y(r,i.jointName)){var l=U(i),u=new t.Bone(i.name||"",n,null,l);u.id=s,o.push({bone:u,node:i,id:s})}}for(var c=0;c<o.length;c++)for(var d=o[c],f=d.node.children,h=0;h<f.length;h++){for(var p=null,m=0;m<o.length;m++)if(o[m].id===f[h]){p=o[m];break}p&&(p.bone._parent=d.bone,d.bone.children.push(p.bone))}}(e,o,n,a),o.bones=[];for(var s=0;s<n.jointNames.length;s++)if(A=W(e,n.jointNames[s])){var l=A.node;if(l){var u=A.id,c=e.scene.getBoneById(u);if(c)o.bones.push(c);else{for(var d=void 0,f=null,h=0;h<s;h++){var p=W(e,n.jointNames[h]);if(p){var m=p.node;if(m){var v=m.children;if(v){d=!1;for(var b=0;b<v.length;b++)if(v[b]===u){f=j(e,n,n.jointNames[h],o),d=!0;break}if(d)break}}else t.Tools.Warn("Joint named "+n.jointNames[h]+" does not exist when looking for parent")}}var y=U(l);!f&&a.length>0&&(f=H(a,u))&&-1===i.indexOf(f)&&i.push(f),new t.Bone(l.jointName||"",o,f,y).id=u}}else t.Tools.Warn("Joint named "+n.jointNames[s]+" does not exist")}var _=o.bones;for(o.bones=[],s=0;s<n.jointNames.length;s++){var A;if(A=W(e,n.jointNames[s]))for(h=0;h<_.length;h++)if(_[h].id===A.id){o.bones.push(_[h]);break}}for(o.prepare(),s=0;s<i.length;s++)o.bones.push(i[s]);return o}(e,a,0,a.babylonSkeleton),a.babylonSkeleton||(a.babylonSkeleton=i.skeleton)),o=i}}else if(n.meshes){var i;o=i=J(e,n,n.mesh?[n.mesh]:n.meshes,r,n.babylonNode)}else if(!n.light||n.babylonNode||e.importOnlyMeshes){if(n.camera&&!n.babylonNode&&!e.importOnlyMeshes){var s=e.cameras[n.camera];if(s){if(e.scene._blockEntityCollection=!!e.assetContainer,"orthographic"===s.type){var l=new t.FreeCamera(n.camera,t.Vector3.Zero(),e.scene,!1);l.name=n.name||"",l.mode=t.Camera.ORTHOGRAPHIC_CAMERA,l.attachControl(),o=l,l._parentContainer=e.assetContainer}else if("perspective"===s.type){var u=s[s.type],c=new t.FreeCamera(n.camera,t.Vector3.Zero(),e.scene,!1);c.name=n.name||"",c.attachControl(),u.aspectRatio||(u.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),u.znear&&u.zfar&&(c.maxZ=u.zfar,c.minZ=u.znear),o=c,c._parentContainer=e.assetContainer}e.scene._blockEntityCollection=!1}}}else{var d=e.lights[n.light];if(d)if("ambient"===d.type){var f=d[d.type],h=new t.HemisphericLight(n.light,t.Vector3.Zero(),e.scene);h.name=n.name||"",f.color&&(h.diffuse=t.Color3.FromArray(f.color)),o=h}else if("directional"===d.type){var p=d[d.type],m=new t.DirectionalLight(n.light,t.Vector3.Zero(),e.scene);m.name=n.name||"",p.color&&(m.diffuse=t.Color3.FromArray(p.color)),o=m}else if("point"===d.type){var v=d[d.type],b=new t.PointLight(n.light,t.Vector3.Zero(),e.scene);b.name=n.name||"",v.color&&(b.diffuse=t.Color3.FromArray(v.color)),o=b}else if("spot"===d.type){var y=d[d.type],_=new t.SpotLight(n.light,t.Vector3.Zero(),t.Vector3.Zero(),0,0,e.scene);_.name=n.name||"",y.color&&(_.diffuse=t.Color3.FromArray(y.color)),y.fallOfAngle&&(_.angle=y.fallOfAngle),y.fallOffExponent&&(_.exponent=y.fallOffExponent),o=_}}if(!n.jointName){if(n.babylonNode)return n.babylonNode;if(null===o){e.scene._blockEntityCollection=!!e.assetContainer;var A=new t.Mesh(n.name||"",e.scene);A._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,n.babylonNode=A,o=A}}if(null!==o){if(n.matrix&&o instanceof t.Mesh)!function(e,n){if(n.matrix){var r=new t.Vector3(0,0,0),o=new t.Quaternion,a=new t.Vector3(0,0,0);t.Matrix.FromArray(n.matrix).decompose(a,o,r),q(e,r,o,a)}else n.translation&&n.rotation&&n.scale&&q(e,t.Vector3.FromArray(n.translation),t.Quaternion.FromArray(n.rotation),t.Vector3.FromArray(n.scale));e.computeWorldMatrix(!0)}(o,n);else{var g=n.translation||[0,0,0],O=n.rotation||[0,0,0,1],E=n.scale||[1,1,1];q(o,t.Vector3.FromArray(g),t.Quaternion.FromArray(O),t.Vector3.FromArray(E))}o.updateCache(!0),n.babylonNode=o}return o},K=function(e,t,n,r){void 0===r&&(r=!1);var o=e.nodes[t],a=null;if(r=!(e.importOnlyMeshes&&!r&&e.importMeshesNames)||-1!==e.importMeshesNames.indexOf(o.name||"")||0===e.importMeshesNames.length,!o.jointName&&r&&null!==(a=Z(e,o,t))&&(a.id=t,a.parent=n),o.children)for(var i=0;i<o.children.length;i++)K(e,o.children[i],a,r)},Q=function(e){var n=e.currentScene;if(n)for(var r=0;r<n.nodes.length;r++)K(e,n.nodes[r],null);else for(var o in e.scenes)for(n=e.scenes[o],r=0;r<n.nodes.length;r++)K(e,n.nodes[r],null);for(function(e){for(var n in e.animations){var r=e.animations[n];if(r.channels&&r.samplers)for(var o=null,a=0;a<r.channels.length;a++){var i=r.channels[a],s=r.samplers[i.sampler];if(s){var l=void 0,u=void 0;r.parameters?(l=r.parameters[s.input],u=r.parameters[s.output]):(l=s.input,u=s.output);var c=w.GetBufferFromAccessor(e,e.accessors[l]),d=w.GetBufferFromAccessor(e,e.accessors[u]),f=i.target.id,h=e.scene.getNodeById(f);if(null===h&&(h=e.scene.getNodeByName(f)),null!==h){var p=h instanceof t.Bone,m=i.target.path,v=B.indexOf(m);-1!==v&&(m=V[v]);var b=t.Animation.ANIMATIONTYPE_MATRIX;p||("rotationQuaternion"===m?(b=t.Animation.ANIMATIONTYPE_QUATERNION,h.rotationQuaternion=new t.Quaternion):b=t.Animation.ANIMATIONTYPE_VECTOR3);var y=null,_=[],A=0,g=!1;p&&o&&o.getKeys().length===c.length&&(y=o,g=!0),g||(e.scene._blockEntityCollection=!!e.assetContainer,y=new t.Animation(n,p?"_matrix":m,1,b,t.Animation.ANIMATIONLOOPMODE_CYCLE),e.scene._blockEntityCollection=!1);for(var O=0;O<c.length;O++){var E=void 0;if("rotationQuaternion"===m?(E=t.Quaternion.FromArray([d[A],d[A+1],d[A+2],d[A+3]]),A+=4):(E=t.Vector3.FromArray([d[A],d[A+1],d[A+2]]),A+=3),p){var L=h,T=t.Vector3.Zero(),N=new t.Quaternion,S=t.Vector3.Zero(),C=L.getBaseMatrix();g&&o&&(C=o.getKeys()[O].value),C.decompose(S,N,T),"position"===m?T=E:"rotationQuaternion"===m?N=E:S=E,E=t.Matrix.Compose(S,N,T)}g?o&&(o.getKeys()[O].value=E):_.push({frame:c[O],value:E})}!g&&y&&(y.setKeys(_),h.animations.push(y)),o=y,e.scene.stopAnimation(h),e.scene.beginAnimation(h,0,c[c.length-1],!0,1)}else t.Tools.Warn("Creating animation named "+n+". But cannot find node named "+f+" to attach to")}}}}(e),r=0;r<e.scene.skeletons.length;r++){var a=e.scene.skeletons[r];e.scene.beginAnimation(a,0,Number.MAX_VALUE,!0,1)}},X=function(e,t,n){for(var r in t.uniforms){var o=t.uniforms[r],a=t.parameters[o];if(e.currentIdentifier===r&&a.semantic&&!a.source&&!a.node){var i=I.indexOf(a.semantic);if(-1!==i)return delete n[r],F[i]}}return e.currentIdentifier},z=function(e){for(var t in e.materials)te.LoadMaterialAsync(e,t,function(){},function(){})},$=function(){function e(){}return e.CreateRuntime=function(e,t,n){var r={extensions:{},accessors:{},buffers:{},bufferViews:{},meshes:{},lights:{},cameras:{},nodes:{},images:{},textures:{},shaders:{},programs:{},samplers:{},techniques:{},materials:{},animations:{},skins:{},extensionsUsed:[],scenes:{},buffersCount:0,shaderscount:0,scene:t,rootUrl:n,loadedBufferCount:0,loadedBufferViews:{},loadedShaderCount:0,importOnlyMeshes:!1,dummyNodes:[],assetContainer:null};return e.extensions&&D(e.extensions,"extensions",r),e.extensionsUsed&&D(e.extensionsUsed,"extensionsUsed",r),e.buffers&&function(e,t){for(var n in e){var r=e[n];t.buffers[n]=r,t.buffersCount++}}(e.buffers,r),e.bufferViews&&D(e.bufferViews,"bufferViews",r),e.accessors&&D(e.accessors,"accessors",r),e.meshes&&D(e.meshes,"meshes",r),e.lights&&D(e.lights,"lights",r),e.cameras&&D(e.cameras,"cameras",r),e.nodes&&D(e.nodes,"nodes",r),e.images&&D(e.images,"images",r),e.textures&&D(e.textures,"textures",r),e.shaders&&function(e,t){for(var n in e){var r=e[n];t.shaders[n]=r,t.shaderscount++}}(e.shaders,r),e.programs&&D(e.programs,"programs",r),e.samplers&&D(e.samplers,"samplers",r),e.techniques&&D(e.techniques,"techniques",r),e.materials&&D(e.materials,"materials",r),e.animations&&D(e.animations,"animations",r),e.skins&&D(e.skins,"skins",r),e.scenes&&(r.scenes=e.scenes),e.scene&&e.scenes&&(r.currentScene=e.scenes[e.scene]),r},e.LoadBufferAsync=function(e,n,r,o,a){var i=e.buffers[n];t.Tools.IsBase64(i.uri)?setTimeout(function(){return r(new Uint8Array(t.Tools.DecodeBase64(i.uri)))}):t.Tools.LoadFile(e.rootUrl+i.uri,function(e){return r(new Uint8Array(e))},a,void 0,!0,function(e){e&&o(e.status+" "+e.statusText)})},e.LoadTextureBufferAsync=function(e,n,r,o){var a=e.textures[n];if(a&&a.source)if(a.babylonTexture)r(null);else{var i=e.images[a.source];t.Tools.IsBase64(i.uri)?setTimeout(function(){return r(new Uint8Array(t.Tools.DecodeBase64(i.uri)))}):t.Tools.LoadFile(e.rootUrl+i.uri,function(e){return r(new Uint8Array(e))},void 0,void 0,!0,function(e){e&&o(e.status+" "+e.statusText)})}else o("")},e.CreateTextureAsync=function(e,n,r,o){var a=e.textures[n];if(a.babylonTexture)o(a.babylonTexture);else{var i=e.samplers[a.sampler],s=i.minFilter===L.NEAREST_MIPMAP_NEAREST||i.minFilter===L.NEAREST_MIPMAP_LINEAR||i.minFilter===L.LINEAR_MIPMAP_NEAREST||i.minFilter===L.LINEAR_MIPMAP_LINEAR,l=t.Texture.BILINEAR_SAMPLINGMODE,u=null==r?new Blob:new Blob([t.GetBlobBufferSource(r)]),c=URL.createObjectURL(u),d=function(){return URL.revokeObjectURL(c)},f=new t.Texture(c,e.scene,!s,!0,l,d,d);void 0!==i.wrapS&&(f.wrapU=w.GetWrapMode(i.wrapS)),void 0!==i.wrapT&&(f.wrapV=w.GetWrapMode(i.wrapT)),f.name=n,a.babylonTexture=f,o(f)}},e.LoadShaderStringAsync=function(e,n,r,o){var a=e.shaders[n];if(t.Tools.IsBase64(a.uri)){var i=atob(a.uri.split(",")[1]);r&&r(i)}else t.Tools.LoadFile(e.rootUrl+a.uri,r,void 0,void 0,!1,function(e){e&&o&&o(e.status+" "+e.statusText)})},e.LoadMaterialAsync=function(e,n,r,o){var a=e.materials[n];if(a.technique){var i=e.techniques[a.technique];if(!i){e.scene._blockEntityCollection=!!e.assetContainer;var s=new t.StandardMaterial(n,e.scene);return s._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,s.diffuseColor=new t.Color3(.5,.5,.5),s.sideOrientation=t.Material.CounterClockWiseSideOrientation,void r(s)}var l=e.programs[i.program],u=i.states,c=t.Effect.ShadersStore[l.vertexShader+"VertexShader"],d=t.Effect.ShadersStore[l.fragmentShader+"PixelShader"],f="",h="",p=new P(c),m=new P(d),v={},b=[],y=[],_=[];for(var A in i.uniforms){var g=i.uniforms[A],E=i.parameters[g];if(v[A]=E,!E.semantic||E.node||E.source)E.type===O.SAMPLER_2D?_.push(A):b.push(A);else{var L=I.indexOf(E.semantic);-1!==L?(b.push(F[L]),delete v[A]):b.push(A)}}for(var T in i.attributes){var C=i.attributes[T];if((B=i.parameters[C]).semantic){var M=G(B);M&&y.push(M)}}for(;!p.isEnd()&&p.getNextToken();)if(p.currentToken===R.IDENTIFIER){var x=!1;for(var T in i.attributes){C=i.attributes[T];var B=i.parameters[C];if(p.currentIdentifier===T&&B.semantic){f+=G(B),x=!0;break}}x||(f+=X(p,i,v))}else f+=p.currentString;for(;!m.isEnd()&&m.getNextToken();)m.currentToken===R.IDENTIFIER?h+=X(m,i,v):h+=m.currentString;var V={vertex:l.vertexShader+n,fragment:l.fragmentShader+n},D={attributes:y,uniforms:b,samplers:_,needAlphaBlending:u&&u.enable&&-1!==u.enable.indexOf(3042)};t.Effect.ShadersStore[l.vertexShader+n+"VertexShader"]=f,t.Effect.ShadersStore[l.fragmentShader+n+"PixelShader"]=h;var k=new t.ShaderMaterial(n,e.scene,V,D);if(k.onError=function(e,t,n){return function(r,o){t.dispose(!0),n("Cannot compile program named "+e.name+". Error: "+o+". Default material will be applied")}}(l,k,o),k.onCompiled=function(e,t,n,r,o,a){return function(i){!function(e,t,n,r,o){var a=r.values||n.parameters,i=n.uniforms,s=function(n){var s=o[n],l=s.type,u=a[i[n]];if(void 0===u&&(u=s.value),!u)return"continue";var c=function(e){return function(n){s.value&&e&&(t.setTexture(e,n),delete o[e])}};l===O.SAMPLER_2D?te.LoadTextureAsync(e,r.values?u:s.value,c(n),function(){return c(null)}):s.value&&w.SetUniform(t,n,r.values?u:s.value,l)&&delete o[n]};for(var l in o)s(l)}(e,t,n,r,o),t.onBind=function(i){!function(e,t,n,r,o,a,i){var s=a.values||o.parameters;for(var l in n){var u=n[l],c=u.type;if(c===O.FLOAT_MAT2||c===O.FLOAT_MAT3||c===O.FLOAT_MAT4)if(!u.semantic||u.source||u.node){if(u.semantic&&(u.source||u.node)){var d=t.scene.getNodeByName(u.source||u.node||"");if(null===d&&(d=t.scene.getNodeById(u.source||u.node||"")),null===d)continue;w.SetMatrix(t.scene,d,u,l,r.getEffect())}}else w.SetMatrix(t.scene,e,u,l,r.getEffect());else{var f=s[o.uniforms[l]];if(!f)continue;if(c===O.SAMPLER_2D){var h=t.textures[a.values?f:u.value].babylonTexture;if(null==h)continue;r.getEffect().setTexture(l,h)}else w.SetUniform(r.getEffect(),l,f,c)}}i(r)}(i,e,o,t,n,r,a)}}}(e,k,i,a,v,r),k.sideOrientation=t.Material.CounterClockWiseSideOrientation,u&&u.functions){var U=u.functions;U.cullFace&&U.cullFace[0]!==N.BACK&&(k.backFaceCulling=!1);var j=U.blendFuncSeparate;j&&(j[0]===S.SRC_ALPHA&&j[1]===S.ONE_MINUS_SRC_ALPHA&&j[2]===S.ONE&&j[3]===S.ONE?k.alphaMode=t.Constants.ALPHA_COMBINE:j[0]===S.ONE&&j[1]===S.ONE&&j[2]===S.ZERO&&j[3]===S.ONE?k.alphaMode=t.Constants.ALPHA_ONEONE:j[0]===S.SRC_ALPHA&&j[1]===S.ONE&&j[2]===S.ZERO&&j[3]===S.ONE?k.alphaMode=t.Constants.ALPHA_ADD:j[0]===S.ZERO&&j[1]===S.ONE_MINUS_SRC_COLOR&&j[2]===S.ONE&&j[3]===S.ONE?k.alphaMode=t.Constants.ALPHA_SUBTRACT:j[0]===S.DST_COLOR&&j[1]===S.ZERO&&j[2]===S.ONE&&j[3]===S.ONE?k.alphaMode=t.Constants.ALPHA_MULTIPLY:j[0]===S.SRC_ALPHA&&j[1]===S.ONE_MINUS_SRC_COLOR&&j[2]===S.ONE&&j[3]===S.ONE&&(k.alphaMode=t.Constants.ALPHA_MAXIMIZED))}}else o&&o("No technique found.")},e}(),ee=function(){function e(){}return e.RegisterExtension=function(n){e.Extensions[n.name]?t.Tools.Error('Tool with the same name "'+n.name+'" already exists'):e.Extensions[n.name]=n},e.prototype.dispose=function(){},e.prototype._importMeshAsync=function(e,n,r,o,a,i,s,l){var u=this;return n.useRightHandedSystem=!0,te.LoadRuntimeAsync(n,r,o,function(n){n.assetContainer=a,n.importOnlyMeshes=!0,""===e?n.importMeshesNames=[]:"string"==typeof e?n.importMeshesNames=[e]:!e||e instanceof Array?(n.importMeshesNames=[],t.Tools.Warn("Argument meshesNames must be of type string or string[]")):n.importMeshesNames=[e],u._createNodes(n);var r=[],o=[];for(var s in n.nodes){var l=n.nodes[s];l.babylonNode instanceof t.AbstractMesh&&r.push(l.babylonNode)}for(var c in n.skins){var d=n.skins[c];d.babylonSkeleton instanceof t.Skeleton&&o.push(d.babylonSkeleton)}u._loadBuffersAsync(n,function(){u._loadShadersAsync(n,function(){z(n),Q(n),!_.IncrementalLoading&&i&&i(r,o)})}),_.IncrementalLoading&&i&&i(r,o)},l),!0},e.prototype.importMeshAsync=function(e,t,n,r,o,a){var i=this;return new Promise(function(s,l){i._importMeshAsync(e,t,r,o,n,function(e,t){s({meshes:e,particleSystems:[],skeletons:t,animationGroups:[],lights:[],transformNodes:[],geometries:[],spriteManagers:[]})},a,function(e){l(new Error(e))})})},e.prototype._loadAsync=function(e,t,n,r,o,a){var i=this;e.useRightHandedSystem=!0,te.LoadRuntimeAsync(e,t,n,function(e){te.LoadRuntimeExtensionsAsync(e,function(){i._createNodes(e),i._loadBuffersAsync(e,function(){i._loadShadersAsync(e,function(){z(e),Q(e),_.IncrementalLoading||r()})}),_.IncrementalLoading&&r()},a)},a)},e.prototype.loadAsync=function(e,t,n,r){return o=this,a=void 0,s=function(){var o=this;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}(this,function(a){switch(a.label){case 0:return[4,new Promise(function(a,i){o._loadAsync(e,t,n,function(){a()},r,function(e){i(new Error(e))})})];case 1:return[2,a.sent()]}})},new((i=void 0)||(i=Promise))(function(e,t){function n(e){try{l(s.next(e))}catch(e){t(e)}}function r(e){try{l(s.throw(e))}catch(e){t(e)}}function l(t){var o;t.done?e(t.value):(o=t.value,o instanceof i?o:new i(function(e){e(o)})).then(n,r)}l((s=s.apply(o,a||[])).next())});var o,a,i,s},e.prototype._loadShadersAsync=function(e,n){var r=!1,o=function(r,o){te.LoadShaderStringAsync(e,r,function(a){a instanceof ArrayBuffer||(e.loadedShaderCount++,a&&(t.Effect.ShadersStore[r+(o.type===g.VERTEX?"VertexShader":"PixelShader")]=a),e.loadedShaderCount===e.shaderscount&&n())},function(){t.Tools.Error("Error when loading shader program named "+r+" located at "+o.uri)})};for(var a in e.shaders){r=!0;var i=e.shaders[a];i?o.bind(this,a,i)():t.Tools.Error("No shader named: "+a)}r||n()},e.prototype._loadBuffersAsync=function(e,n){var r=!1,o=function(r,o){te.LoadBufferAsync(e,r,function(a){e.loadedBufferCount++,a&&(a.byteLength!=e.buffers[r].byteLength&&t.Tools.Error("Buffer named "+r+" is length "+a.byteLength+". Expected: "+o.byteLength),e.loadedBufferViews[r]=a),e.loadedBufferCount===e.buffersCount&&n()},function(){t.Tools.Error("Error when loading buffer named "+r+" located at "+o.uri)})};for(var a in e.buffers){r=!0;var i=e.buffers[a];i?o.bind(this,a,i)():t.Tools.Error("No buffer named: "+a)}r||n()},e.prototype._createNodes=function(e){var t=e.currentScene;if(t)for(var n=0;n<t.nodes.length;n++)K(e,t.nodes[n],null);else for(var r in e.scenes)for(t=e.scenes[r],n=0;n<t.nodes.length;n++)K(e,t.nodes[n],null)},e.Extensions={},e}(),te=function(){function e(e){this._name=e}return Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!1,configurable:!0}),e.prototype.loadRuntimeAsync=function(e,t,n,r,o){return!1},e.prototype.loadRuntimeExtensionsAsync=function(e,t,n){return!1},e.prototype.loadBufferAsync=function(e,t,n,r,o){return!1},e.prototype.loadTextureBufferAsync=function(e,t,n,r){return!1},e.prototype.createTextureAsync=function(e,t,n,r,o){return!1},e.prototype.loadShaderStringAsync=function(e,t,n,r){return!1},e.prototype.loadMaterialAsync=function(e,t,n,r){return!1},e.LoadRuntimeAsync=function(t,n,r,o,a){e._ApplyExtensions(function(e){return e.loadRuntimeAsync(t,n,r,o,a)},function(){setTimeout(function(){o&&o($.CreateRuntime(n.json,t,r))})})},e.LoadRuntimeExtensionsAsync=function(t,n,r){e._ApplyExtensions(function(e){return e.loadRuntimeExtensionsAsync(t,n,r)},function(){setTimeout(function(){n()})})},e.LoadBufferAsync=function(t,n,r,o,a){e._ApplyExtensions(function(e){return e.loadBufferAsync(t,n,r,o,a)},function(){$.LoadBufferAsync(t,n,r,o,a)})},e.LoadTextureAsync=function(t,n,r,o){e._LoadTextureBufferAsync(t,n,function(a){a&&e._CreateTextureAsync(t,n,a,r,o)},o)},e.LoadShaderStringAsync=function(t,n,r,o){e._ApplyExtensions(function(e){return e.loadShaderStringAsync(t,n,r,o)},function(){$.LoadShaderStringAsync(t,n,r,o)})},e.LoadMaterialAsync=function(t,n,r,o){e._ApplyExtensions(function(e){return e.loadMaterialAsync(t,n,r,o)},function(){$.LoadMaterialAsync(t,n,r,o)})},e._LoadTextureBufferAsync=function(t,n,r,o){e._ApplyExtensions(function(e){return e.loadTextureBufferAsync(t,n,r,o)},function(){$.LoadTextureBufferAsync(t,n,r,o)})},e._CreateTextureAsync=function(t,n,r,o,a){e._ApplyExtensions(function(e){return e.createTextureAsync(t,n,r,o,a)},function(){$.CreateTextureAsync(t,n,r,o)})},e._ApplyExtensions=function(e,t){for(var n in ee.Extensions)if(e(ee.Extensions[n]))return;t()},e}();_._CreateGLTF1Loader=function(){return new ee};var ne=function(e){function t(){return e.call(this,"KHR_binary_glTF")||this}return r(t,e),t.prototype.loadRuntimeAsync=function(e,t,n,r){var o=t.json.extensionsUsed;return!(!o||-1===o.indexOf(this.name)||!t.bin||(this._bin=t.bin,r($.CreateRuntime(t.json,e,n)),0))},t.prototype.loadBufferAsync=function(e,t,n,r){return-1!==e.extensionsUsed.indexOf(this.name)&&"binary_glTF"===t&&(this._bin.readAsync(0,this._bin.byteLength).then(n,function(e){return r(e.message)}),!0)},t.prototype.loadTextureBufferAsync=function(e,t,n){var r=e.textures[t],o=e.images[r.source];if(!o.extensions||!(this.name in o.extensions))return!1;var a=o.extensions[this.name],i=e.bufferViews[a.bufferView];return n(w.GetBufferFromBufferView(e,i,0,i.byteLength,A.UNSIGNED_BYTE)),!0},t.prototype.loadShaderStringAsync=function(e,t,n){var r=e.shaders[t];if(!r.extensions||!(this.name in r.extensions))return!1;var o=r.extensions[this.name],a=e.bufferViews[o.bufferView],i=w.GetBufferFromBufferView(e,a,0,a.byteLength,A.UNSIGNED_BYTE);return setTimeout(function(){var e=w.DecodeBufferToText(i);n(e)}),!0},t}(te);ee.RegisterExtension(new ne);var re=function(e){function n(){return e.call(this,"KHR_materials_common")||this}return r(n,e),n.prototype.loadRuntimeExtensionsAsync=function(e){if(!e.extensions)return!1;var n=e.extensions[this.name];if(!n)return!1;var r=n.lights;if(r)for(var o in r){var a=r[o];switch(a.type){case"ambient":var i=new t.HemisphericLight(a.name,new t.Vector3(0,1,0),e.scene),s=a.ambient;s&&(i.diffuse=t.Color3.FromArray(s.color||[1,1,1]));break;case"point":var l=new t.PointLight(a.name,new t.Vector3(10,10,10),e.scene),u=a.point;u&&(l.diffuse=t.Color3.FromArray(u.color||[1,1,1]));break;case"directional":var c=new t.DirectionalLight(a.name,new t.Vector3(0,-1,0),e.scene),d=a.directional;d&&(c.diffuse=t.Color3.FromArray(d.color||[1,1,1]));break;case"spot":var f=a.spot;f&&(new t.SpotLight(a.name,new t.Vector3(0,10,0),new t.Vector3(0,-1,0),f.fallOffAngle||Math.PI,f.fallOffExponent||0,e.scene).diffuse=t.Color3.FromArray(f.color||[1,1,1]));break;default:t.Tools.Warn('GLTF Material Common extension: light type "'+a.type+"” not supported")}}return!1},n.prototype.loadMaterialAsync=function(e,n,r,o){var a=e.materials[n];if(!a||!a.extensions)return!1;var i=a.extensions[this.name];if(!i)return!1;var s=new t.StandardMaterial(n,e.scene);return s.sideOrientation=t.Material.CounterClockWiseSideOrientation,"CONSTANT"===i.technique&&(s.disableLighting=!0),s.backFaceCulling=void 0!==i.doubleSided&&!i.doubleSided,s.alpha=void 0===i.values.transparency?1:i.values.transparency,s.specularPower=void 0===i.values.shininess?0:i.values.shininess,"string"==typeof i.values.ambient?this._loadTexture(e,i.values.ambient,s,"ambientTexture",o):s.ambientColor=t.Color3.FromArray(i.values.ambient||[0,0,0]),"string"==typeof i.values.diffuse?this._loadTexture(e,i.values.diffuse,s,"diffuseTexture",o):s.diffuseColor=t.Color3.FromArray(i.values.diffuse||[0,0,0]),"string"==typeof i.values.emission?this._loadTexture(e,i.values.emission,s,"emissiveTexture",o):s.emissiveColor=t.Color3.FromArray(i.values.emission||[0,0,0]),"string"==typeof i.values.specular?this._loadTexture(e,i.values.specular,s,"specularTexture",o):s.specularColor=t.Color3.FromArray(i.values.specular||[0,0,0]),!0},n.prototype._loadTexture=function(e,t,n,r,o){$.LoadTextureBufferAsync(e,t,function(o){$.CreateTextureAsync(e,t,o,function(e){return n[r]=e})},o)},n}(te);ee.RegisterExtension(new re);var oe={__proto__:null,get EBlendingFunction(){return S},get EComponentType(){return A},get ECullingType(){return N},get EParameterType(){return O},get EShaderType(){return g},get ETextureFilterType(){return L},get ETextureFormat(){return T},get ETextureWrapMode(){return E},GLTFBinaryExtension:ne,GLTFLoader:ee,GLTFLoaderBase:$,GLTFLoaderExtension:te,GLTFMaterialsCommonExtension:re,GLTFUtils:w},ae="undefined"!=typeof global?global:"undefined"!=typeof window?window:void 0;if(void 0!==ae)for(var ie in ae.BABYLON=ae.BABYLON||{},ae.BABYLON.GLTF1=ae.BABYLON.GLTF1||{},oe)ae.BABYLON.GLTF1[ie]=oe[ie];e.GLTF1=oe,e.GLTFFileLoader=_,e.GLTFLoaderDefaultOptions=b,e.GLTFValidation=c});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("babylonjs")):"function"==typeof define&&define.amd?define(["exports","babylonjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BABYLON=e.BABYLON||{},e.BABYLON)}(this,function(e,t){"use strict";var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},n(e,t)};function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)};function a(e,t,n,r){var o={externalResourceFunction:r};return n&&(o.uri="file:"===t?n:t+n),ArrayBuffer.isView(e)?GLTFValidator.validateBytes(e,o):GLTFValidator.validateString(e,o)}function i(){var e=[];onmessage=function(t){var n=t.data;switch(n.id){case"init":importScripts(n.url);break;case"validate":a(n.data,n.rootUrl,n.fileName,function(t){return new Promise(function(n,r){var o=e.length;e.push({resolve:n,reject:r}),postMessage({id:"getExternalResource",index:o,uri:t})})}).then(function(e){postMessage({id:"validate.resolve",value:e})},function(e){postMessage({id:"validate.reject",reason:e})});break;case"getExternalResource.resolve":e[n.index].resolve(n.value);break;case"getExternalResource.reject":e[n.index].reject(n.reason)}}}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var s,l,u,c=function(){function e(){}return e.ValidateAsync=function(n,r,o,s){var l=this;return"function"==typeof Worker?new Promise(function(u,c){var d="".concat(a,"(").concat(i,")()"),f=URL.createObjectURL(new Blob([d],{type:"application/javascript"})),h=new Worker(f),p=function(e){h.removeEventListener("error",p),h.removeEventListener("message",m),c(e)},m=function(t){var n=t.data;switch(n.id){case"getExternalResource":s(n.uri).then(function(e){h.postMessage({id:"getExternalResource.resolve",index:n.index,value:e},[e.buffer])},function(e){h.postMessage({id:"getExternalResource.reject",index:n.index,reason:e})});break;case"validate.resolve":h.removeEventListener("error",p),h.removeEventListener("message",m),e._LastResults=n.value,u(n.value),h.terminate();break;case"validate.reject":h.removeEventListener("error",p),h.removeEventListener("message",m),c(n.reason),h.terminate()}};if(h.addEventListener("error",p),h.addEventListener("message",m),h.postMessage({id:"init",url:t.Tools.GetBabylonScriptURL(l.Configuration.url)}),ArrayBuffer.isView(n)){var v=n.slice();h.postMessage({id:"validate",data:v,rootUrl:r,fileName:o},[v.buffer])}else h.postMessage({id:"validate",data:n,rootUrl:r,fileName:o})}):(this._LoadScriptPromise||(this._LoadScriptPromise=t.Tools.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then(function(){return a(n,r,o,s)}))},e.Configuration={url:"".concat(t.Tools._DefaultCdnUrl,"/gltf_validator.js")},e._LastResults=null,e}(),d={__proto__:null,GLTFValidation:c},f="Z2xURg",h="gltf",p={".gltf":{isBinary:!1,mimeType:"model/gltf+json"},".glb":{isBinary:!0,mimeType:"model/gltf-binary"}};function m(e,t,n){try{return Promise.resolve(new Uint8Array(e,t,n))}catch(e){return Promise.reject(e)}}e.GLTFLoaderCoordinateSystemMode=void 0,(s=e.GLTFLoaderCoordinateSystemMode||(e.GLTFLoaderCoordinateSystemMode={}))[s.AUTO=0]="AUTO",s[s.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED",e.GLTFLoaderAnimationStartMode=void 0,(l=e.GLTFLoaderAnimationStartMode||(e.GLTFLoaderAnimationStartMode={}))[l.NONE=0]="NONE",l[l.FIRST=1]="FIRST",l[l.ALL=2]="ALL",e.GLTFLoaderState=void 0,(u=e.GLTFLoaderState||(e.GLTFLoaderState={}))[u.LOADING=0]="LOADING",u[u.READY=1]="READY",u[u.COMPLETE=2]="COMPLETE";var v=function(){this.alwaysComputeBoundingBox=!1,this.alwaysComputeSkeletonRootNode=!1,this.animationStartMode=e.GLTFLoaderAnimationStartMode.FIRST,this.compileMaterials=!1,this.compileShadowGenerators=!1,this.coordinateSystemMode=e.GLTFLoaderCoordinateSystemMode.AUTO,this.createInstances=!0,this.loadAllMaterials=!1,this.loadMorphTargets=!0,this.useMaxMorphTargetInfluencers=!0,this.loadNodeAnimations=!0,this.loadOnlyMaterials=!1,this.loadSkins=!0,this.skipMaterials=!1,this.targetFps=60,this.transparencyAsCoverage=!1,this.useClipPlane=!1,this.useGltfTextureNames=!1,this.useRangeRequests=!1,this.useSRGBBuffers=!0,this.validate=!1,this.useOpenPBR=!1,this.dontUseTransmissionHelper=!1},b=new v,y=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.extensionOptions={},t.preprocessUrlAsync=function(e){return Promise.resolve(e)},t}return r(t,e),t.prototype.copyFrom=function(e){var t,n,r,o,a,i,s,l,u,c,d,f,h,p,m,v,b,y,_,A,g,O,E,L,T,N,S;e&&(this.alwaysComputeBoundingBox=null!==(t=e.alwaysComputeBoundingBox)&&void 0!==t?t:this.alwaysComputeBoundingBox,this.alwaysComputeSkeletonRootNode=null!==(n=e.alwaysComputeSkeletonRootNode)&&void 0!==n?n:this.alwaysComputeSkeletonRootNode,this.animationStartMode=null!==(r=e.animationStartMode)&&void 0!==r?r:this.animationStartMode,this.capturePerformanceCounters=null!==(o=e.capturePerformanceCounters)&&void 0!==o?o:this.capturePerformanceCounters,this.compileMaterials=null!==(a=e.compileMaterials)&&void 0!==a?a:this.compileMaterials,this.compileShadowGenerators=null!==(i=e.compileShadowGenerators)&&void 0!==i?i:this.compileShadowGenerators,this.coordinateSystemMode=null!==(s=e.coordinateSystemMode)&&void 0!==s?s:this.coordinateSystemMode,this.createInstances=null!==(l=e.createInstances)&&void 0!==l?l:this.createInstances,this.customRootNode=e.customRootNode,this.extensionOptions=null!==(u=e.extensionOptions)&&void 0!==u?u:this.extensionOptions,this.loadAllMaterials=null!==(c=e.loadAllMaterials)&&void 0!==c?c:this.loadAllMaterials,this.loadMorphTargets=null!==(d=e.loadMorphTargets)&&void 0!==d?d:this.loadMorphTargets,this.loadNodeAnimations=null!==(f=e.loadNodeAnimations)&&void 0!==f?f:this.loadNodeAnimations,this.loadOnlyMaterials=null!==(h=e.loadOnlyMaterials)&&void 0!==h?h:this.loadOnlyMaterials,this.loadSkins=null!==(p=e.loadSkins)&&void 0!==p?p:this.loadSkins,this.loggingEnabled=null!==(m=e.loggingEnabled)&&void 0!==m?m:this.loggingEnabled,this.onCameraLoaded=e.onCameraLoaded,this.onMaterialLoaded=e.onMaterialLoaded,this.onMeshLoaded=e.onMeshLoaded,this.onParsed=e.onParsed,this.onSkinLoaded=e.onSkinLoaded,this.onTextureLoaded=e.onTextureLoaded,this.onValidated=e.onValidated,this.preprocessUrlAsync=null!==(v=e.preprocessUrlAsync)&&void 0!==v?v:this.preprocessUrlAsync,this.skipMaterials=null!==(b=e.skipMaterials)&&void 0!==b?b:this.skipMaterials,this.targetFps=null!==(y=e.targetFps)&&void 0!==y?y:this.targetFps,this.transparencyAsCoverage=null!==(_=e.transparencyAsCoverage)&&void 0!==_?_:this.transparencyAsCoverage,this.useClipPlane=null!==(A=e.useClipPlane)&&void 0!==A?A:this.useClipPlane,this.useGltfTextureNames=null!==(g=e.useGltfTextureNames)&&void 0!==g?g:this.useGltfTextureNames,this.useMaxMorphTargetInfluencers=null!==(O=e.useMaxMorphTargetInfluencers)&&void 0!==O?O:this.useMaxMorphTargetInfluencers,this.useOpenPBR=null!==(E=e.useOpenPBR)&&void 0!==E?E:this.useOpenPBR,this.useRangeRequests=null!==(L=e.useRangeRequests)&&void 0!==L?L:this.useRangeRequests,this.useSRGBBuffers=null!==(T=e.useSRGBBuffers)&&void 0!==T?T:this.useSRGBBuffers,this.validate=null!==(N=e.validate)&&void 0!==N?N:this.validate,this.dontUseTransmissionHelper=null!==(S=e.dontUseTransmissionHelper)&&void 0!==S?S:this.dontUseTransmissionHelper)},t}(v),_=function(n){function a(e){var r=n.call(this)||this;return r.onParsedObservable=new t.Observable,r.onMeshLoadedObservable=new t.Observable,r.onSkinLoadedObservable=new t.Observable,r.onTextureLoadedObservable=new t.Observable,r.onMaterialLoadedObservable=new t.Observable,r.onCameraLoadedObservable=new t.Observable,r.onCompleteObservable=new t.Observable,r.onErrorObservable=new t.Observable,r.onDisposeObservable=new t.Observable,r.onExtensionLoadedObservable=new t.Observable,r.onValidatedObservable=new t.Observable,r._loader=null,r._state=null,r._requests=new Array,r.name=h,r.extensions=p,r.onLoaderStateChangedObservable=new t.Observable,r._logIndentLevel=0,r._loggingEnabled=!1,r._log=r._logDisabled,r._capturePerformanceCounters=!1,r._startPerformanceCounter=r._startPerformanceCounterDisabled,r._endPerformanceCounter=r._endPerformanceCounterDisabled,r.copyFrom(Object.assign(o({},b),e)),r}return r(a,n),Object.defineProperty(a.prototype,"onParsed",{set:function(e){this._onParsedObserver&&this.onParsedObservable.remove(this._onParsedObserver),e&&(this._onParsedObserver=this.onParsedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onMeshLoaded",{set:function(e){this._onMeshLoadedObserver&&this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver),e&&(this._onMeshLoadedObserver=this.onMeshLoadedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onSkinLoaded",{set:function(e){this._onSkinLoadedObserver&&this.onSkinLoadedObservable.remove(this._onSkinLoadedObserver),e&&(this._onSkinLoadedObserver=this.onSkinLoadedObservable.add(function(t){return e(t.node,t.skinnedNode)}))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onTextureLoaded",{set:function(e){this._onTextureLoadedObserver&&this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver),e&&(this._onTextureLoadedObserver=this.onTextureLoadedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onMaterialLoaded",{set:function(e){this._onMaterialLoadedObserver&&this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver),e&&(this._onMaterialLoadedObserver=this.onMaterialLoadedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onCameraLoaded",{set:function(e){this._onCameraLoadedObserver&&this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver),e&&(this._onCameraLoadedObserver=this.onCameraLoadedObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onComplete",{set:function(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onError",{set:function(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onDispose",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onExtensionLoaded",{set:function(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"loggingEnabled",{get:function(){return this._loggingEnabled},set:function(e){this._loggingEnabled!==e&&(this._loggingEnabled=e,this._loggingEnabled?this._log=this._logEnabled:this._log=this._logDisabled)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"capturePerformanceCounters",{get:function(){return this._capturePerformanceCounters},set:function(e){this._capturePerformanceCounters!==e&&(this._capturePerformanceCounters=e,this._capturePerformanceCounters?(this._startPerformanceCounter=this._startPerformanceCounterEnabled,this._endPerformanceCounter=this._endPerformanceCounterEnabled):(this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"onValidated",{set:function(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)},enumerable:!1,configurable:!0}),a.prototype.dispose=function(){this._loader&&(this._loader.dispose(),this._loader=null);for(var e=0,t=this._requests;e<t.length;e++)t[e].abort();this._requests.length=0,delete this._progressCallback,this.preprocessUrlAsync=function(e){return Promise.resolve(e)},this.onMeshLoadedObservable.clear(),this.onSkinLoadedObservable.clear(),this.onTextureLoadedObservable.clear(),this.onMaterialLoadedObservable.clear(),this.onCameraLoadedObservable.clear(),this.onCompleteObservable.clear(),this.onExtensionLoadedObservable.clear(),this.onDisposeObservable.notifyObservers(void 0),this.onDisposeObservable.clear()},a.prototype.loadFile=function(e,n,r,o,a,i,s,l){var u=this;if(ArrayBuffer.isView(n))return this._loadBinary(e,n,r,o,s,l),null;this._progressCallback=a;var c=n.name||t.Tools.GetFilename(n);if(i){if(this.useRangeRequests){this.validate&&t.Logger.Warn("glTF validation is not supported when range requests are enabled");var d={abort:function(){},onCompleteObservable:new t.Observable},f={readAsync:function(t,r){return new Promise(function(o,a){u._loadFile(e,n,function(e){o(new Uint8Array(e))},!0,function(e){a(e)},function(e){e.setRequestHeader("Range","bytes=".concat(t,"-").concat(t+r-1))})})},byteLength:0};return this._unpackBinaryAsync(new t.DataReader(f)).then(function(e){d.onCompleteObservable.notifyObservers(d),o(e)},s?function(e){return s(void 0,e)}:void 0),d}return this._loadFile(e,n,function(n){u._validate(e,new Uint8Array(n,0,n.byteLength),r,c),u._unpackBinaryAsync(new t.DataReader({readAsync:function(e,t){return m(n,e,t)},byteLength:n.byteLength})).then(function(e){o(e)},s?function(e){return s(void 0,e)}:void 0)},!0,s)}return this._loadFile(e,n,function(t){try{u._validate(e,t,r,c),o({json:u._parseJson(t)})}catch(e){s&&s()}},!1,s)},a.prototype._loadBinary=function(e,n,r,o,a,i){this._validate(e,new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r,i),this._unpackBinaryAsync(new t.DataReader({readAsync:function(e,t){return function(e,t,n){try{if(t<0||t>=e.byteLength)throw new RangeError("Offset is out of range.");if(t+n>e.byteLength)throw new RangeError("Length is out of range.");return Promise.resolve(new Uint8Array(e.buffer,e.byteOffset+t,n))}catch(e){return Promise.reject(e)}}(n,e,t)},byteLength:n.byteLength})).then(function(e){o(e)},a?function(e){return a(void 0,e)}:void 0)},a.prototype.importMeshAsync=function(e,t,n,r,o,a){var i=this;return Promise.resolve().then(function(){return i.onParsedObservable.notifyObservers(n),i.onParsedObservable.clear(),i._log("Loading ".concat(a||"")),i._loader=i._getLoader(n),i._loader.importMeshAsync(e,t,null,n,r,o,a)})},a.prototype.loadAsync=function(e,t,n,r,o){var a=this;return Promise.resolve().then(function(){return a.onParsedObservable.notifyObservers(t),a.onParsedObservable.clear(),a._log("Loading ".concat(o||"")),a._loader=a._getLoader(t),a._loader.loadAsync(e,t,n,r,o)})},a.prototype.loadAssetContainerAsync=function(e,n,r,o,a){var i=this;return Promise.resolve().then(function(){i.onParsedObservable.notifyObservers(n),i.onParsedObservable.clear(),i._log("Loading ".concat(a||"")),i._loader=i._getLoader(n);var s=new t.AssetContainer(e),l=[];i.onMaterialLoadedObservable.add(function(e){l.push(e)});var u=[];i.onTextureLoadedObservable.add(function(e){u.push(e)});var c=[];i.onCameraLoadedObservable.add(function(e){c.push(e)});var d=[];return i.onMeshLoadedObservable.add(function(e){e.morphTargetManager&&d.push(e.morphTargetManager)}),i._loader.importMeshAsync(null,e,s,n,r,o,a).then(function(e){return Array.prototype.push.apply(s.geometries,e.geometries),Array.prototype.push.apply(s.meshes,e.meshes),Array.prototype.push.apply(s.particleSystems,e.particleSystems),Array.prototype.push.apply(s.skeletons,e.skeletons),Array.prototype.push.apply(s.animationGroups,e.animationGroups),Array.prototype.push.apply(s.materials,l),Array.prototype.push.apply(s.textures,u),Array.prototype.push.apply(s.lights,e.lights),Array.prototype.push.apply(s.transformNodes,e.transformNodes),Array.prototype.push.apply(s.cameras,c),Array.prototype.push.apply(s.morphTargetManagers,d),s})})},a.prototype.canDirectLoad=function(e){return function(e){return-1!==e.indexOf("asset")&&-1!==e.indexOf("version")||e.startsWith("data:base64,"+f)||e.startsWith("data:;base64,"+f)||e.startsWith("data:application/octet-stream;base64,"+f)||e.startsWith("data:model/gltf-binary;base64,"+f)}(e)},a.prototype.directLoad=function(e,n){if(n.startsWith("base64,"+f)||n.startsWith(";base64,"+f)||n.startsWith("application/octet-stream;base64,"+f)||n.startsWith("model/gltf-binary;base64,"+f)){var r=t.DecodeBase64UrlToBinary(n);return this._validate(e,new Uint8Array(r,0,r.byteLength)),this._unpackBinaryAsync(new t.DataReader({readAsync:function(e,t){return m(r,e,t)},byteLength:r.byteLength}))}return this._validate(e,n),Promise.resolve({json:this._parseJson(n)})},a.prototype.createPlugin=function(e){return new a(e[h])},Object.defineProperty(a.prototype,"loaderState",{get:function(){return this._state},enumerable:!1,configurable:!0}),a.prototype.whenCompleteAsync=function(){var e=this;return new Promise(function(t,n){e.onCompleteObservable.addOnce(function(){t()}),e.onErrorObservable.addOnce(function(e){n(e)})})},a.prototype._setState=function(t){this._state!==t&&(this._state=t,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(e.GLTFLoaderState[this._state]))},a.prototype._loadFile=function(e,t,n,r,o,a){var i=this,s=e._loadFile(t,n,function(e){i._onProgress(e,s)},!0,r,o,a);return s.onCompleteObservable.add(function(){s._lengthComputable=!0,s._total=s._loaded}),this._requests.push(s),s},a.prototype._onProgress=function(e,t){if(this._progressCallback){t._lengthComputable=e.lengthComputable,t._loaded=e.loaded,t._total=e.total;for(var n=!0,r=0,o=0,a=0,i=this._requests;a<i.length;a++){var s=i[a];if(void 0===s._lengthComputable||void 0===s._loaded||void 0===s._total)return;n=n&&s._lengthComputable,r+=s._loaded,o+=s._total}this._progressCallback({lengthComputable:n,loaded:r,total:n?o:0})}},a.prototype._validate=function(e,n,r,o){var a=this;void 0===r&&(r=""),void 0===o&&(o=""),this.validate&&(this._startPerformanceCounter("Validate JSON"),c.ValidateAsync(n,r,o,function(t){return a.preprocessUrlAsync(r+t).then(function(t){return e._loadFileAsync(t,void 0,!0,!0).then(function(e){return new Uint8Array(e,0,e.byteLength)})})}).then(function(e){a._endPerformanceCounter("Validate JSON"),a.onValidatedObservable.notifyObservers(e),a.onValidatedObservable.clear()},function(e){a._endPerformanceCounter("Validate JSON"),t.Tools.Warn("Failed to validate: ".concat(e.message)),a.onValidatedObservable.clear()}))},a.prototype._getLoader=function(e){var t=e.json.asset||{};this._log("Asset version: ".concat(t.version)),t.minVersion&&this._log("Asset minimum version: ".concat(t.minVersion)),t.generator&&this._log("Asset generator: ".concat(t.generator));var n=a._parseVersion(t.version);if(!n)throw new Error("Invalid version: "+t.version);if(void 0!==t.minVersion){var r=a._parseVersion(t.minVersion);if(!r)throw new Error("Invalid minimum version: "+t.minVersion);if(a._compareVersion(r,{major:2,minor:0})>0)throw new Error("Incompatible minimum version: "+t.minVersion)}var o={1:a._CreateGLTF1Loader,2:a._CreateGLTF2Loader}[n.major];if(!o)throw new Error("Unsupported version: "+t.version);return o(this)},a.prototype._parseJson=function(e){this._startPerformanceCounter("Parse JSON"),this._log("JSON length: ".concat(e.length));var t=JSON.parse(e);return this._endPerformanceCounter("Parse JSON"),t},a.prototype._unpackBinaryAsync=function(e){var n=this;return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then(function(){var r=e.readUint32();if(1179937895!==r)throw new t.RuntimeError("Unexpected magic: "+r,t.ErrorCodes.GLTFLoaderUnexpectedMagicError);var o=e.readUint32();n.loggingEnabled&&n._log("Binary version: ".concat(o));var a,i=e.readUint32();switch(n.useRangeRequests||i===e.buffer.byteLength||t.Logger.Warn("Length in header does not match actual data length: ".concat(i," != ").concat(e.buffer.byteLength)),o){case 1:a=n._unpackBinaryV1Async(e,i);break;case 2:a=n._unpackBinaryV2Async(e,i);break;default:throw new Error("Unsupported version: "+o)}return n._endPerformanceCounter("Unpack Binary"),a})},a.prototype._unpackBinaryV1Async=function(e,t){var n=e.readUint32(),r=e.readUint32();if(0!==r)throw new Error("Unexpected content format: ".concat(r));var o=t-e.byteOffset,a={json:this._parseJson(e.readString(n)),bin:null};if(0!==o){var i=e.byteOffset;a.bin={readAsync:function(t,n){return e.buffer.readAsync(i+t,n)},byteLength:o}}return Promise.resolve(a)},a.prototype._unpackBinaryV2Async=function(e,t){var n=this,r=1313821514,o=e.readUint32();if(e.readUint32()!==r)throw new Error("First chunk format is not JSON");return e.byteOffset+o===t?e.loadAsync(o).then(function(){return{json:n._parseJson(e.readString(o)),bin:null}}):e.loadAsync(o+8).then(function(){var a={json:n._parseJson(e.readString(o)),bin:null},i=function(){var n=e.readUint32();switch(e.readUint32()){case r:throw new Error("Unexpected JSON chunk");case 5130562:var o=e.byteOffset;a.bin={readAsync:function(t,n){return e.buffer.readAsync(o+t,n)},byteLength:n},e.skipBytes(n);break;default:e.skipBytes(n)}return e.byteOffset!==t?e.loadAsync(8).then(i):Promise.resolve(a)};return i()})},a._parseVersion=function(e){if("1.0"===e||"1.0.1"===e)return{major:1,minor:0};var t=(e+"").match(/^(\d+)\.(\d+)/);return t?{major:parseInt(t[1]),minor:parseInt(t[2])}:null},a._compareVersion=function(e,t){return e.major>t.major?1:e.major<t.major?-1:e.minor>t.minor?1:e.minor<t.minor?-1:0},a.prototype._logOpen=function(e){this._log(e),this._logIndentLevel++},a.prototype._logClose=function(){--this._logIndentLevel},a.prototype._logEnabled=function(e){var n=a._logSpaces.substring(0,2*this._logIndentLevel);t.Logger.Log("".concat(n).concat(e))},a.prototype._logDisabled=function(e){},a.prototype._startPerformanceCounterEnabled=function(e){t.Tools.StartPerformanceCounter(e)},a.prototype._startPerformanceCounterDisabled=function(e){},a.prototype._endPerformanceCounterEnabled=function(e){t.Tools.EndPerformanceCounter(e)},a.prototype._endPerformanceCounterDisabled=function(e){},a.IncrementalLoading=!0,a.HomogeneousCoordinates=!1,a._logSpaces=" ",a}(y),A=!1;function g(){A||(A=!0,t.RegisterSceneLoaderPlugin(new _))}g();var O,E,L,T,N,S,M,C,x={__proto__:null,GLTFFileLoader:_,get GLTFLoaderAnimationStartMode(){return e.GLTFLoaderAnimationStartMode},get GLTFLoaderCoordinateSystemMode(){return e.GLTFLoaderCoordinateSystemMode},GLTFLoaderDefaultOptions:b,get GLTFLoaderState(){return e.GLTFLoaderState},RegisterGLTFFileLoader:g},R="undefined"!=typeof global?global:"undefined"!=typeof window?window:void 0;if(void 0!==R){for(var w in R.BABYLON=R.BABYLON||{},x)R.BABYLON[w]=x[w];for(var w in d)R.BABYLON[w]=d[w]}!function(e){e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.FLOAT=5126]="FLOAT"}(O||(O={})),function(e){e[e.FRAGMENT=35632]="FRAGMENT",e[e.VERTEX=35633]="VERTEX"}(E||(E={})),function(e){e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D"}(L||(L={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.REPEAT=10497]="REPEAT"}(T||(T={})),function(e){e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9728]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR"}(N||(N={})),function(e){e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA"}(S||(S={})),function(e){e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK"}(M||(M={})),function(e){e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE"}(C||(C={}));var P,I=function(){function e(){}return e.SetMatrix=function(e,n,r,o,a){var i=null;if("MODEL"===r.semantic?i=n.getWorldMatrix():"PROJECTION"===r.semantic?i=e.getProjectionMatrix():"VIEW"===r.semantic?i=e.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===r.semantic?i=t.Matrix.Transpose(n.getWorldMatrix().multiply(e.getViewMatrix()).invert()):"MODELVIEW"===r.semantic?i=n.getWorldMatrix().multiply(e.getViewMatrix()):"MODELVIEWPROJECTION"===r.semantic?i=n.getWorldMatrix().multiply(e.getTransformMatrix()):"MODELINVERSE"===r.semantic?i=n.getWorldMatrix().invert():"VIEWINVERSE"===r.semantic?i=e.getViewMatrix().invert():"PROJECTIONINVERSE"===r.semantic?i=e.getProjectionMatrix().invert():"MODELVIEWINVERSE"===r.semantic?i=n.getWorldMatrix().multiply(e.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===r.semantic?i=n.getWorldMatrix().multiply(e.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===r.semantic&&(i=t.Matrix.Transpose(n.getWorldMatrix().invert())),i)switch(r.type){case L.FLOAT_MAT2:a.setMatrix2x2(o,t.Matrix.GetAsMatrix2x2(i));break;case L.FLOAT_MAT3:a.setMatrix3x3(o,t.Matrix.GetAsMatrix3x3(i));break;case L.FLOAT_MAT4:a.setMatrix(o,i)}},e.SetUniform=function(e,n,r,o){switch(o){case L.FLOAT:return e.setFloat(n,r),!0;case L.FLOAT_VEC2:return e.setVector2(n,t.Vector2.FromArray(r)),!0;case L.FLOAT_VEC3:return e.setVector3(n,t.Vector3.FromArray(r)),!0;case L.FLOAT_VEC4:return e.setVector4(n,t.Vector4.FromArray(r)),!0;default:return!1}},e.GetWrapMode=function(e){switch(e){case T.CLAMP_TO_EDGE:return t.Texture.CLAMP_ADDRESSMODE;case T.MIRRORED_REPEAT:return t.Texture.MIRROR_ADDRESSMODE;case T.REPEAT:default:return t.Texture.WRAP_ADDRESSMODE}},e.GetByteStrideFromType=function(e){switch(e.type){case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16;default:return 1}},e.GetTextureFilterMode=function(e){switch(e){case N.LINEAR:case N.LINEAR_MIPMAP_NEAREST:case N.LINEAR_MIPMAP_LINEAR:return t.Texture.TRILINEAR_SAMPLINGMODE;case N.NEAREST:case N.NEAREST_MIPMAP_NEAREST:return t.Texture.NEAREST_SAMPLINGMODE;default:return t.Texture.BILINEAR_SAMPLINGMODE}},e.GetBufferFromBufferView=function(e,t,n,r,o){n=t.byteOffset+n;var a=e.loadedBufferViews[t.buffer];if(n+r>a.byteLength)throw new Error("Buffer access is out of range");var i=a.buffer;switch(n+=a.byteOffset,o){case O.BYTE:return new Int8Array(i,n,r);case O.UNSIGNED_BYTE:return new Uint8Array(i,n,r);case O.SHORT:return new Int16Array(i,n,r);case O.UNSIGNED_SHORT:return new Uint16Array(i,n,r);default:return new Float32Array(i,n,r)}},e.GetBufferFromAccessor=function(t,n){var r=t.bufferViews[n.bufferView],o=n.count*e.GetByteStrideFromType(n);return e.GetBufferFromBufferView(t,r,n.byteOffset,o,n.componentType)},e.DecodeBufferToText=function(e){for(var t="",n=e.byteLength,r=0;r<n;++r)t+=String.fromCharCode(e[r]);return t},e.GetDefaultMaterial=function(n){if(!e._DefaultMaterial){t.Effect.ShadersStore.GLTFDefaultMaterialVertexShader=["precision highp float;","","uniform mat4 worldView;","uniform mat4 projection;","","attribute vec3 position;","","void main(void)","{"," gl_Position = projection * worldView * vec4(position, 1.0);","}"].join("\n"),t.Effect.ShadersStore.GLTFDefaultMaterialPixelShader=["precision highp float;","","uniform vec4 u_emission;","","void main(void)","{"," gl_FragColor = u_emission;","}"].join("\n");var r={attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:new Array,needAlphaBlending:!1};e._DefaultMaterial=new t.ShaderMaterial("GLTFDefaultMaterial",n,{vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},r),e._DefaultMaterial.setColor4("u_emission",new t.Color4(.5,.5,.5,1))}return e._DefaultMaterial},e._DefaultMaterial=null,e}();!function(e){e[e.IDENTIFIER=1]="IDENTIFIER",e[e.UNKNOWN=2]="UNKNOWN",e[e.END_OF_INPUT=3]="END_OF_INPUT"}(P||(P={}));var F=function(){function e(e){this._pos=0,this.currentToken=P.UNKNOWN,this.currentIdentifier="",this.currentString="",this.isLetterOrDigitPattern=/^[a-zA-Z0-9]+$/,this._toParse=e,this._maxPos=e.length}return e.prototype.getNextToken=function(){if(this.isEnd())return P.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=P.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=P.IDENTIFIER,this.currentIdentifier=this.currentString;!this.isEnd()&&(this.isLetterOrDigitPattern.test(this.currentString=this.peek())||"_"===this.currentString);)this.currentIdentifier+=this.currentString,this.forward();return this.currentToken},e.prototype.peek=function(){return this._toParse[this._pos]},e.prototype.read=function(){return this._toParse[this._pos++]},e.prototype.forward=function(){this._pos++},e.prototype.isEnd=function(){return this._pos>=this._maxPos},e}(),B=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],V=["world","view","projection","worldView","worldViewProjection","mBones"],D=["translation","rotation","scale"],k=["position","rotationQuaternion","scaling"],G=function(e,t,n){for(var r in e){var o=e[r];n[t][r]=o}},U=function(e){if(e)for(var t=0;t<e.length/2;t++)e[2*t+1]=1-e[2*t+1]},j=function(e){if("NORMAL"===e.semantic)return"normal";if("POSITION"===e.semantic)return"position";if("JOINT"===e.semantic)return"matricesIndices";if("WEIGHT"===e.semantic)return"matricesWeights";if("COLOR"===e.semantic)return"color";if(e.semantic&&-1!==e.semantic.indexOf("TEXCOORD_")){var t=Number(e.semantic.split("_")[1]);return"uv"+(0===t?"":t+1)}return null},H=function(e){var n;if(e.translation||e.rotation||e.scale){var r=t.Vector3.FromArray(e.scale||[1,1,1]),o=t.Quaternion.FromArray(e.rotation||[0,0,0,1]),a=t.Vector3.FromArray(e.translation||[0,0,0]);n=t.Matrix.Compose(r,o,a)}else n=t.Matrix.FromArray(e.matrix);return n},W=function(e,n,r,o){for(var a=0;a<o.bones.length;a++)if(o.bones[a].name===r)return o.bones[a];var i=e.nodes;for(var s in i){var l=i[s];if(l.jointName){var u=l.children;for(a=0;a<u.length;a++){var c=e.nodes[u[a]];if(c.jointName&&c.jointName===r){var d=H(l),f=new t.Bone(l.name||"",o,W(e,n,l.jointName,o),d);return f.id=s,f}}}}return null},Y=function(e,t){for(var n=0;n<e.length;n++)for(var r=e[n],o=0;o<r.node.children.length;o++)if(r.node.children[o]===t)return r.bone;return null},J=function(e,t){var n=e.nodes,r=n[t];if(r)return{node:r,id:t};for(var o in n)if((r=n[o]).jointName===t)return{node:r,id:o};return null},q=function(e,t){for(var n=0;n<e.jointNames.length;n++)if(e.jointNames[n]===t)return!0;return!1},Z=function(e,n,r,o,a){if(a||(e.scene._blockEntityCollection=!!e.assetContainer,(a=new t.Mesh(n.name||"",e.scene))._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,a.id=o),!n.babylonNode)return a;for(var i,s=[],l=null,u=[],c=[],d=[],f=[],h=0;h<r.length;h++){var p=r[h];if(x=e.meshes[p])for(var m=0;m<x.primitives.length;m++){var v=new t.VertexData,b=x.primitives[m];b.mode;var y=b.attributes,A=void 0,g=void 0;for(var O in y)if(A=e.accessors[y[O]],g=I.GetBufferFromAccessor(e,A),"NORMAL"===O)v.normals=new Float32Array(g.length),v.normals.set(g);else if("POSITION"===O){if(_.HomogeneousCoordinates){v.positions=new Float32Array(g.length-g.length/4);for(var E=0;E<g.length;E+=4)v.positions[E]=g[E],v.positions[E+1]=g[E+1],v.positions[E+2]=g[E+2]}else v.positions=new Float32Array(g.length),v.positions.set(g);c.push(v.positions.length)}else if(-1!==O.indexOf("TEXCOORD_")){var L=Number(O.split("_")[1]),T=t.VertexBuffer.UVKind+(0===L?"":L+1),N=new Float32Array(g.length);N.set(g),U(N),v.set(N,T)}else"JOINT"===O?(v.matricesIndices=new Float32Array(g.length),v.matricesIndices.set(g)):"WEIGHT"===O?(v.matricesWeights=new Float32Array(g.length),v.matricesWeights.set(g)):"COLOR"===O&&(v.colors=new Float32Array(g.length),v.colors.set(g));if(A=e.accessors[b.indices])g=I.GetBufferFromAccessor(e,A),v.indices=new Int32Array(g.length),v.indices.set(g),f.push(v.indices.length);else{var S=[];for(E=0;E<v.positions.length/3;E++)S.push(E);v.indices=new Int32Array(S),f.push(v.indices.length)}l?l.merge(v):l=v;var M=e.scene.getMaterialById(b.material);s.push(null===M?I.GetDefaultMaterial(e.scene):M),u.push(0===u.length?0:u[u.length-1]+c[c.length-2]),d.push(0===d.length?0:d[d.length-1]+f[f.length-2])}}e.scene._blockEntityCollection=!!e.assetContainer,s.length>1?(i=new t.MultiMaterial("multimat"+o,e.scene)).subMaterials=s:i=new t.StandardMaterial("multimat"+o,e.scene),1===s.length&&(i=s[0]),i._parentContainer=e.assetContainer,a.material||(a.material=i),new t.Geometry(o,e.scene,l,!1,a),a.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,a.subMeshes=[];var C=0;for(h=0;h<r.length;h++){var x;if(p=r[h],x=e.meshes[p])for(m=0;m<x.primitives.length;m++)x.primitives[m].mode,t.SubMesh.AddToMesh(C,u[C],c[C],d[C],f[C],a,a,!0),C++}return a},K=function(e,t,n,r){e.position&&(e.position=t),(e.rotationQuaternion||e.rotation)&&(e.rotationQuaternion=n),e.scaling&&(e.scaling=r)},Q=function(e,n,r){var o=null;if(e.importOnlyMeshes&&(n.skin||n.meshes)&&e.importMeshesNames&&e.importMeshesNames.length>0&&-1===e.importMeshesNames.indexOf(n.name||""))return null;if(n.skin){if(n.meshes){var a=e.skins[n.skin];(i=Z(e,n,n.meshes,r,n.babylonNode)).skeleton=e.scene.getLastSkeletonById(n.skin),null===i.skeleton&&(i.skeleton=function(e,n,r,o){if(o||(o=new t.Skeleton(n.name||"","",e.scene)),!n.babylonSkeleton)return o;var a=[],i=[];!function(e,n,r,o){for(var a in e.nodes){var i=e.nodes[a],s=a;if(i.jointName&&!q(r,i.jointName)){var l=H(i),u=new t.Bone(i.name||"",n,null,l);u.id=s,o.push({bone:u,node:i,id:s})}}for(var c=0;c<o.length;c++)for(var d=o[c],f=d.node.children,h=0;h<f.length;h++){for(var p=null,m=0;m<o.length;m++)if(o[m].id===f[h]){p=o[m];break}p&&(p.bone._parent=d.bone,d.bone.children.push(p.bone))}}(e,o,n,a),o.bones=[];for(var s=0;s<n.jointNames.length;s++)if(A=J(e,n.jointNames[s])){var l=A.node;if(l){var u=A.id,c=e.scene.getBoneById(u);if(c)o.bones.push(c);else{for(var d=void 0,f=null,h=0;h<s;h++){var p=J(e,n.jointNames[h]);if(p){var m=p.node;if(m){var v=m.children;if(v){d=!1;for(var b=0;b<v.length;b++)if(v[b]===u){f=W(e,n,n.jointNames[h],o),d=!0;break}if(d)break}}else t.Tools.Warn("Joint named "+n.jointNames[h]+" does not exist when looking for parent")}}var y=H(l);!f&&a.length>0&&(f=Y(a,u))&&-1===i.indexOf(f)&&i.push(f),new t.Bone(l.jointName||"",o,f,y).id=u}}else t.Tools.Warn("Joint named "+n.jointNames[s]+" does not exist")}var _=o.bones;for(o.bones=[],s=0;s<n.jointNames.length;s++){var A;if(A=J(e,n.jointNames[s]))for(h=0;h<_.length;h++)if(_[h].id===A.id){o.bones.push(_[h]);break}}for(o.prepare(),s=0;s<i.length;s++)o.bones.push(i[s]);return o}(e,a,0,a.babylonSkeleton),a.babylonSkeleton||(a.babylonSkeleton=i.skeleton)),o=i}}else if(n.meshes){var i;o=i=Z(e,n,n.mesh?[n.mesh]:n.meshes,r,n.babylonNode)}else if(!n.light||n.babylonNode||e.importOnlyMeshes){if(n.camera&&!n.babylonNode&&!e.importOnlyMeshes){var s=e.cameras[n.camera];if(s){if(e.scene._blockEntityCollection=!!e.assetContainer,"orthographic"===s.type){var l=new t.FreeCamera(n.camera,t.Vector3.Zero(),e.scene,!1);l.name=n.name||"",l.mode=t.Camera.ORTHOGRAPHIC_CAMERA,l.attachControl(),o=l,l._parentContainer=e.assetContainer}else if("perspective"===s.type){var u=s[s.type],c=new t.FreeCamera(n.camera,t.Vector3.Zero(),e.scene,!1);c.name=n.name||"",c.attachControl(),u.aspectRatio||(u.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),u.znear&&u.zfar&&(c.maxZ=u.zfar,c.minZ=u.znear),o=c,c._parentContainer=e.assetContainer}e.scene._blockEntityCollection=!1}}}else{var d=e.lights[n.light];if(d)if("ambient"===d.type){var f=d[d.type],h=new t.HemisphericLight(n.light,t.Vector3.Zero(),e.scene);h.name=n.name||"",f.color&&(h.diffuse=t.Color3.FromArray(f.color)),o=h}else if("directional"===d.type){var p=d[d.type],m=new t.DirectionalLight(n.light,t.Vector3.Zero(),e.scene);m.name=n.name||"",p.color&&(m.diffuse=t.Color3.FromArray(p.color)),o=m}else if("point"===d.type){var v=d[d.type],b=new t.PointLight(n.light,t.Vector3.Zero(),e.scene);b.name=n.name||"",v.color&&(b.diffuse=t.Color3.FromArray(v.color)),o=b}else if("spot"===d.type){var y=d[d.type],_=new t.SpotLight(n.light,t.Vector3.Zero(),t.Vector3.Zero(),0,0,e.scene);_.name=n.name||"",y.color&&(_.diffuse=t.Color3.FromArray(y.color)),y.fallOfAngle&&(_.angle=y.fallOfAngle),y.fallOffExponent&&(_.exponent=y.fallOffExponent),o=_}}if(!n.jointName){if(n.babylonNode)return n.babylonNode;if(null===o){e.scene._blockEntityCollection=!!e.assetContainer;var A=new t.Mesh(n.name||"",e.scene);A._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,n.babylonNode=A,o=A}}if(null!==o){if(n.matrix&&o instanceof t.Mesh)!function(e,n){if(n.matrix){var r=new t.Vector3(0,0,0),o=new t.Quaternion,a=new t.Vector3(0,0,0);t.Matrix.FromArray(n.matrix).decompose(a,o,r),K(e,r,o,a)}else n.translation&&n.rotation&&n.scale&&K(e,t.Vector3.FromArray(n.translation),t.Quaternion.FromArray(n.rotation),t.Vector3.FromArray(n.scale));e.computeWorldMatrix(!0)}(o,n);else{var g=n.translation||[0,0,0],O=n.rotation||[0,0,0,1],E=n.scale||[1,1,1];K(o,t.Vector3.FromArray(g),t.Quaternion.FromArray(O),t.Vector3.FromArray(E))}o.updateCache(!0),n.babylonNode=o}return o},X=function(e,t,n,r){void 0===r&&(r=!1);var o=e.nodes[t],a=null;if(r=!(e.importOnlyMeshes&&!r&&e.importMeshesNames)||-1!==e.importMeshesNames.indexOf(o.name||"")||0===e.importMeshesNames.length,!o.jointName&&r&&null!==(a=Q(e,o,t))&&(a.id=t,a.parent=n),o.children)for(var i=0;i<o.children.length;i++)X(e,o.children[i],a,r)},z=function(e){var n=e.currentScene;if(n)for(var r=0;r<n.nodes.length;r++)X(e,n.nodes[r],null);else for(var o in e.scenes)for(n=e.scenes[o],r=0;r<n.nodes.length;r++)X(e,n.nodes[r],null);for(function(e){for(var n in e.animations){var r=e.animations[n];if(r.channels&&r.samplers)for(var o=null,a=0;a<r.channels.length;a++){var i=r.channels[a],s=r.samplers[i.sampler];if(s){var l=void 0,u=void 0;r.parameters?(l=r.parameters[s.input],u=r.parameters[s.output]):(l=s.input,u=s.output);var c=I.GetBufferFromAccessor(e,e.accessors[l]),d=I.GetBufferFromAccessor(e,e.accessors[u]),f=i.target.id,h=e.scene.getNodeById(f);if(null===h&&(h=e.scene.getNodeByName(f)),null!==h){var p=h instanceof t.Bone,m=i.target.path,v=D.indexOf(m);-1!==v&&(m=k[v]);var b=t.Animation.ANIMATIONTYPE_MATRIX;p||("rotationQuaternion"===m?(b=t.Animation.ANIMATIONTYPE_QUATERNION,h.rotationQuaternion=new t.Quaternion):b=t.Animation.ANIMATIONTYPE_VECTOR3);var y=null,_=[],A=0,g=!1;p&&o&&o.getKeys().length===c.length&&(y=o,g=!0),g||(e.scene._blockEntityCollection=!!e.assetContainer,y=new t.Animation(n,p?"_matrix":m,1,b,t.Animation.ANIMATIONLOOPMODE_CYCLE),e.scene._blockEntityCollection=!1);for(var O=0;O<c.length;O++){var E=void 0;if("rotationQuaternion"===m?(E=t.Quaternion.FromArray([d[A],d[A+1],d[A+2],d[A+3]]),A+=4):(E=t.Vector3.FromArray([d[A],d[A+1],d[A+2]]),A+=3),p){var L=h,T=t.Vector3.Zero(),N=new t.Quaternion,S=t.Vector3.Zero(),M=L.getBaseMatrix();g&&o&&(M=o.getKeys()[O].value),M.decompose(S,N,T),"position"===m?T=E:"rotationQuaternion"===m?N=E:S=E,E=t.Matrix.Compose(S,N,T)}g?o&&(o.getKeys()[O].value=E):_.push({frame:c[O],value:E})}!g&&y&&(y.setKeys(_),h.animations.push(y)),o=y,e.scene.stopAnimation(h),e.scene.beginAnimation(h,0,c[c.length-1],!0,1)}else t.Tools.Warn("Creating animation named "+n+". But cannot find node named "+f+" to attach to")}}}}(e),r=0;r<e.scene.skeletons.length;r++){var a=e.scene.skeletons[r];e.scene.beginAnimation(a,0,Number.MAX_VALUE,!0,1)}},$=function(e,t,n){for(var r in t.uniforms){var o=t.uniforms[r],a=t.parameters[o];if(e.currentIdentifier===r&&a.semantic&&!a.source&&!a.node){var i=B.indexOf(a.semantic);if(-1!==i)return delete n[r],V[i]}}return e.currentIdentifier},ee=function(e){for(var t in e.materials)re.LoadMaterialAsync(e,t,function(){},function(){})},te=function(){function e(){}return e.CreateRuntime=function(e,t,n){var r={extensions:{},accessors:{},buffers:{},bufferViews:{},meshes:{},lights:{},cameras:{},nodes:{},images:{},textures:{},shaders:{},programs:{},samplers:{},techniques:{},materials:{},animations:{},skins:{},extensionsUsed:[],scenes:{},buffersCount:0,shaderscount:0,scene:t,rootUrl:n,loadedBufferCount:0,loadedBufferViews:{},loadedShaderCount:0,importOnlyMeshes:!1,dummyNodes:[],assetContainer:null};return e.extensions&&G(e.extensions,"extensions",r),e.extensionsUsed&&G(e.extensionsUsed,"extensionsUsed",r),e.buffers&&function(e,t){for(var n in e){var r=e[n];t.buffers[n]=r,t.buffersCount++}}(e.buffers,r),e.bufferViews&&G(e.bufferViews,"bufferViews",r),e.accessors&&G(e.accessors,"accessors",r),e.meshes&&G(e.meshes,"meshes",r),e.lights&&G(e.lights,"lights",r),e.cameras&&G(e.cameras,"cameras",r),e.nodes&&G(e.nodes,"nodes",r),e.images&&G(e.images,"images",r),e.textures&&G(e.textures,"textures",r),e.shaders&&function(e,t){for(var n in e){var r=e[n];t.shaders[n]=r,t.shaderscount++}}(e.shaders,r),e.programs&&G(e.programs,"programs",r),e.samplers&&G(e.samplers,"samplers",r),e.techniques&&G(e.techniques,"techniques",r),e.materials&&G(e.materials,"materials",r),e.animations&&G(e.animations,"animations",r),e.skins&&G(e.skins,"skins",r),e.scenes&&(r.scenes=e.scenes),e.scene&&e.scenes&&(r.currentScene=e.scenes[e.scene]),r},e.LoadBufferAsync=function(e,n,r,o,a){var i=e.buffers[n];t.Tools.IsBase64(i.uri)?setTimeout(function(){return r(new Uint8Array(t.Tools.DecodeBase64(i.uri)))}):t.Tools.LoadFile(e.rootUrl+i.uri,function(e){return r(new Uint8Array(e))},a,void 0,!0,function(e){e&&o(e.status+" "+e.statusText)})},e.LoadTextureBufferAsync=function(e,n,r,o){var a=e.textures[n];if(a&&a.source)if(a.babylonTexture)r(null);else{var i=e.images[a.source];t.Tools.IsBase64(i.uri)?setTimeout(function(){return r(new Uint8Array(t.Tools.DecodeBase64(i.uri)))}):t.Tools.LoadFile(e.rootUrl+i.uri,function(e){return r(new Uint8Array(e))},void 0,void 0,!0,function(e){e&&o(e.status+" "+e.statusText)})}else o("")},e.CreateTextureAsync=function(e,n,r,o){var a=e.textures[n];if(a.babylonTexture)o(a.babylonTexture);else{var i=e.samplers[a.sampler],s=i.minFilter===N.NEAREST_MIPMAP_NEAREST||i.minFilter===N.NEAREST_MIPMAP_LINEAR||i.minFilter===N.LINEAR_MIPMAP_NEAREST||i.minFilter===N.LINEAR_MIPMAP_LINEAR,l=t.Texture.BILINEAR_SAMPLINGMODE,u=null==r?new Blob:new Blob([t.GetBlobBufferSource(r)]),c=URL.createObjectURL(u),d=function(){return URL.revokeObjectURL(c)},f=new t.Texture(c,e.scene,!s,!0,l,d,d);void 0!==i.wrapS&&(f.wrapU=I.GetWrapMode(i.wrapS)),void 0!==i.wrapT&&(f.wrapV=I.GetWrapMode(i.wrapT)),f.name=n,a.babylonTexture=f,o(f)}},e.LoadShaderStringAsync=function(e,n,r,o){var a=e.shaders[n];if(t.Tools.IsBase64(a.uri)){var i=atob(a.uri.split(",")[1]);r&&r(i)}else t.Tools.LoadFile(e.rootUrl+a.uri,r,void 0,void 0,!1,function(e){e&&o&&o(e.status+" "+e.statusText)})},e.LoadMaterialAsync=function(e,n,r,o){var a=e.materials[n];if(a.technique){var i=e.techniques[a.technique];if(!i){e.scene._blockEntityCollection=!!e.assetContainer;var s=new t.StandardMaterial(n,e.scene);return s._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,s.diffuseColor=new t.Color3(.5,.5,.5),s.sideOrientation=t.Material.CounterClockWiseSideOrientation,void r(s)}var l=e.programs[i.program],u=i.states,c=t.Effect.ShadersStore[l.vertexShader+"VertexShader"],d=t.Effect.ShadersStore[l.fragmentShader+"PixelShader"],f="",h="",p=new F(c),m=new F(d),v={},b=[],y=[],_=[];for(var A in i.uniforms){var g=i.uniforms[A],O=i.parameters[g];if(v[A]=O,!O.semantic||O.node||O.source)O.type===L.SAMPLER_2D?_.push(A):b.push(A);else{var E=B.indexOf(O.semantic);-1!==E?(b.push(V[E]),delete v[A]):b.push(A)}}for(var T in i.attributes){var N=i.attributes[T];if((R=i.parameters[N]).semantic){var S=j(R);S&&y.push(S)}}for(;!p.isEnd()&&p.getNextToken();)if(p.currentToken===P.IDENTIFIER){var x=!1;for(var T in i.attributes){N=i.attributes[T];var R=i.parameters[N];if(p.currentIdentifier===T&&R.semantic){f+=j(R),x=!0;break}}x||(f+=$(p,i,v))}else f+=p.currentString;for(;!m.isEnd()&&m.getNextToken();)m.currentToken===P.IDENTIFIER?h+=$(m,i,v):h+=m.currentString;var w={vertex:l.vertexShader+n,fragment:l.fragmentShader+n},D={attributes:y,uniforms:b,samplers:_,needAlphaBlending:u&&u.enable&&-1!==u.enable.indexOf(3042)};t.Effect.ShadersStore[l.vertexShader+n+"VertexShader"]=f,t.Effect.ShadersStore[l.fragmentShader+n+"PixelShader"]=h;var k=new t.ShaderMaterial(n,e.scene,w,D);if(k.onError=function(e,t,n){return function(r,o){t.dispose(!0),n("Cannot compile program named "+e.name+". Error: "+o+". Default material will be applied")}}(l,k,o),k.onCompiled=function(e,t,n,r,o,a){return function(i){!function(e,t,n,r,o){var a=r.values||n.parameters,i=n.uniforms,s=function(n){var s=o[n],l=s.type,u=a[i[n]];if(void 0===u&&(u=s.value),!u)return"continue";var c=function(e){return function(n){s.value&&e&&(t.setTexture(e,n),delete o[e])}};l===L.SAMPLER_2D?re.LoadTextureAsync(e,r.values?u:s.value,c(n),function(){return c(null)}):s.value&&I.SetUniform(t,n,r.values?u:s.value,l)&&delete o[n]};for(var l in o)s(l)}(e,t,n,r,o),t.onBind=function(i){!function(e,t,n,r,o,a,i){var s=a.values||o.parameters;for(var l in n){var u=n[l],c=u.type;if(c===L.FLOAT_MAT2||c===L.FLOAT_MAT3||c===L.FLOAT_MAT4)if(!u.semantic||u.source||u.node){if(u.semantic&&(u.source||u.node)){var d=t.scene.getNodeByName(u.source||u.node||"");if(null===d&&(d=t.scene.getNodeById(u.source||u.node||"")),null===d)continue;I.SetMatrix(t.scene,d,u,l,r.getEffect())}}else I.SetMatrix(t.scene,e,u,l,r.getEffect());else{var f=s[o.uniforms[l]];if(!f)continue;if(c===L.SAMPLER_2D){var h=t.textures[a.values?f:u.value].babylonTexture;if(null==h)continue;r.getEffect().setTexture(l,h)}else I.SetUniform(r.getEffect(),l,f,c)}}i(r)}(i,e,o,t,n,r,a)}}}(e,k,i,a,v,r),k.sideOrientation=t.Material.CounterClockWiseSideOrientation,u&&u.functions){var G=u.functions;G.cullFace&&G.cullFace[0]!==M.BACK&&(k.backFaceCulling=!1);var U=G.blendFuncSeparate;U&&(U[0]===C.SRC_ALPHA&&U[1]===C.ONE_MINUS_SRC_ALPHA&&U[2]===C.ONE&&U[3]===C.ONE?k.alphaMode=t.Constants.ALPHA_COMBINE:U[0]===C.ONE&&U[1]===C.ONE&&U[2]===C.ZERO&&U[3]===C.ONE?k.alphaMode=t.Constants.ALPHA_ONEONE:U[0]===C.SRC_ALPHA&&U[1]===C.ONE&&U[2]===C.ZERO&&U[3]===C.ONE?k.alphaMode=t.Constants.ALPHA_ADD:U[0]===C.ZERO&&U[1]===C.ONE_MINUS_SRC_COLOR&&U[2]===C.ONE&&U[3]===C.ONE?k.alphaMode=t.Constants.ALPHA_SUBTRACT:U[0]===C.DST_COLOR&&U[1]===C.ZERO&&U[2]===C.ONE&&U[3]===C.ONE?k.alphaMode=t.Constants.ALPHA_MULTIPLY:U[0]===C.SRC_ALPHA&&U[1]===C.ONE_MINUS_SRC_COLOR&&U[2]===C.ONE&&U[3]===C.ONE&&(k.alphaMode=t.Constants.ALPHA_MAXIMIZED))}}else o&&o("No technique found.")},e}(),ne=function(){function e(){}return e.RegisterExtension=function(n){e.Extensions[n.name]?t.Tools.Error('Tool with the same name "'+n.name+'" already exists'):e.Extensions[n.name]=n},e.prototype.dispose=function(){},e.prototype._importMeshAsync=function(e,n,r,o,a,i,s,l){var u=this;return n.useRightHandedSystem=!0,re.LoadRuntimeAsync(n,r,o,function(n){n.assetContainer=a,n.importOnlyMeshes=!0,""===e?n.importMeshesNames=[]:"string"==typeof e?n.importMeshesNames=[e]:!e||e instanceof Array?(n.importMeshesNames=[],t.Tools.Warn("Argument meshesNames must be of type string or string[]")):n.importMeshesNames=[e],u._createNodes(n);var r=[],o=[];for(var s in n.nodes){var l=n.nodes[s];l.babylonNode instanceof t.AbstractMesh&&r.push(l.babylonNode)}for(var c in n.skins){var d=n.skins[c];d.babylonSkeleton instanceof t.Skeleton&&o.push(d.babylonSkeleton)}u._loadBuffersAsync(n,function(){u._loadShadersAsync(n,function(){ee(n),z(n),!_.IncrementalLoading&&i&&i(r,o)})}),_.IncrementalLoading&&i&&i(r,o)},l),!0},e.prototype.importMeshAsync=function(e,t,n,r,o,a){var i=this;return new Promise(function(s,l){i._importMeshAsync(e,t,r,o,n,function(e,t){s({meshes:e,particleSystems:[],skeletons:t,animationGroups:[],lights:[],transformNodes:[],geometries:[],spriteManagers:[]})},a,function(e){l(new Error(e))})})},e.prototype._loadAsync=function(e,t,n,r,o,a){var i=this;e.useRightHandedSystem=!0,re.LoadRuntimeAsync(e,t,n,function(e){re.LoadRuntimeExtensionsAsync(e,function(){i._createNodes(e),i._loadBuffersAsync(e,function(){i._loadShadersAsync(e,function(){ee(e),z(e),_.IncrementalLoading||r()})}),_.IncrementalLoading&&r()},a)},a)},e.prototype.loadAsync=function(e,t,n,r){return o=this,a=void 0,s=function(){var o=this;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}(this,function(a){switch(a.label){case 0:return[4,new Promise(function(a,i){o._loadAsync(e,t,n,function(){a()},r,function(e){i(new Error(e))})})];case 1:return[2,a.sent()]}})},new((i=void 0)||(i=Promise))(function(e,t){function n(e){try{l(s.next(e))}catch(e){t(e)}}function r(e){try{l(s.throw(e))}catch(e){t(e)}}function l(t){var o;t.done?e(t.value):(o=t.value,o instanceof i?o:new i(function(e){e(o)})).then(n,r)}l((s=s.apply(o,a||[])).next())});var o,a,i,s},e.prototype._loadShadersAsync=function(e,n){var r=!1,o=function(r,o){re.LoadShaderStringAsync(e,r,function(a){a instanceof ArrayBuffer||(e.loadedShaderCount++,a&&(t.Effect.ShadersStore[r+(o.type===E.VERTEX?"VertexShader":"PixelShader")]=a),e.loadedShaderCount===e.shaderscount&&n())},function(){t.Tools.Error("Error when loading shader program named "+r+" located at "+o.uri)})};for(var a in e.shaders){r=!0;var i=e.shaders[a];i?o.bind(this,a,i)():t.Tools.Error("No shader named: "+a)}r||n()},e.prototype._loadBuffersAsync=function(e,n){var r=!1,o=function(r,o){re.LoadBufferAsync(e,r,function(a){e.loadedBufferCount++,a&&(a.byteLength!=e.buffers[r].byteLength&&t.Tools.Error("Buffer named "+r+" is length "+a.byteLength+". Expected: "+o.byteLength),e.loadedBufferViews[r]=a),e.loadedBufferCount===e.buffersCount&&n()},function(){t.Tools.Error("Error when loading buffer named "+r+" located at "+o.uri)})};for(var a in e.buffers){r=!0;var i=e.buffers[a];i?o.bind(this,a,i)():t.Tools.Error("No buffer named: "+a)}r||n()},e.prototype._createNodes=function(e){var t=e.currentScene;if(t)for(var n=0;n<t.nodes.length;n++)X(e,t.nodes[n],null);else for(var r in e.scenes)for(t=e.scenes[r],n=0;n<t.nodes.length;n++)X(e,t.nodes[n],null)},e.Extensions={},e}(),re=function(){function e(e){this._name=e}return Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!1,configurable:!0}),e.prototype.loadRuntimeAsync=function(e,t,n,r,o){return!1},e.prototype.loadRuntimeExtensionsAsync=function(e,t,n){return!1},e.prototype.loadBufferAsync=function(e,t,n,r,o){return!1},e.prototype.loadTextureBufferAsync=function(e,t,n,r){return!1},e.prototype.createTextureAsync=function(e,t,n,r,o){return!1},e.prototype.loadShaderStringAsync=function(e,t,n,r){return!1},e.prototype.loadMaterialAsync=function(e,t,n,r){return!1},e.LoadRuntimeAsync=function(t,n,r,o,a){e._ApplyExtensions(function(e){return e.loadRuntimeAsync(t,n,r,o,a)},function(){setTimeout(function(){o&&o(te.CreateRuntime(n.json,t,r))})})},e.LoadRuntimeExtensionsAsync=function(t,n,r){e._ApplyExtensions(function(e){return e.loadRuntimeExtensionsAsync(t,n,r)},function(){setTimeout(function(){n()})})},e.LoadBufferAsync=function(t,n,r,o,a){e._ApplyExtensions(function(e){return e.loadBufferAsync(t,n,r,o,a)},function(){te.LoadBufferAsync(t,n,r,o,a)})},e.LoadTextureAsync=function(t,n,r,o){e._LoadTextureBufferAsync(t,n,function(a){a&&e._CreateTextureAsync(t,n,a,r,o)},o)},e.LoadShaderStringAsync=function(t,n,r,o){e._ApplyExtensions(function(e){return e.loadShaderStringAsync(t,n,r,o)},function(){te.LoadShaderStringAsync(t,n,r,o)})},e.LoadMaterialAsync=function(t,n,r,o){e._ApplyExtensions(function(e){return e.loadMaterialAsync(t,n,r,o)},function(){te.LoadMaterialAsync(t,n,r,o)})},e._LoadTextureBufferAsync=function(t,n,r,o){e._ApplyExtensions(function(e){return e.loadTextureBufferAsync(t,n,r,o)},function(){te.LoadTextureBufferAsync(t,n,r,o)})},e._CreateTextureAsync=function(t,n,r,o,a){e._ApplyExtensions(function(e){return e.createTextureAsync(t,n,r,o,a)},function(){te.CreateTextureAsync(t,n,r,o)})},e._ApplyExtensions=function(e,t){for(var n in ne.Extensions)if(e(ne.Extensions[n]))return;t()},e}();_._CreateGLTF1Loader=function(){return new ne};var oe=function(e){function t(){return e.call(this,"KHR_binary_glTF")||this}return r(t,e),t.prototype.loadRuntimeAsync=function(e,t,n,r){var o=t.json.extensionsUsed;return!(!o||-1===o.indexOf(this.name)||!t.bin||(this._bin=t.bin,r(te.CreateRuntime(t.json,e,n)),0))},t.prototype.loadBufferAsync=function(e,t,n,r){return-1!==e.extensionsUsed.indexOf(this.name)&&"binary_glTF"===t&&(this._bin.readAsync(0,this._bin.byteLength).then(n,function(e){return r(e.message)}),!0)},t.prototype.loadTextureBufferAsync=function(e,t,n){var r=e.textures[t],o=e.images[r.source];if(!o.extensions||!(this.name in o.extensions))return!1;var a=o.extensions[this.name],i=e.bufferViews[a.bufferView];return n(I.GetBufferFromBufferView(e,i,0,i.byteLength,O.UNSIGNED_BYTE)),!0},t.prototype.loadShaderStringAsync=function(e,t,n){var r=e.shaders[t];if(!r.extensions||!(this.name in r.extensions))return!1;var o=r.extensions[this.name],a=e.bufferViews[o.bufferView],i=I.GetBufferFromBufferView(e,a,0,a.byteLength,O.UNSIGNED_BYTE);return setTimeout(function(){var e=I.DecodeBufferToText(i);n(e)}),!0},t}(re);ne.RegisterExtension(new oe);var ae=function(e){function n(){return e.call(this,"KHR_materials_common")||this}return r(n,e),n.prototype.loadRuntimeExtensionsAsync=function(e){if(!e.extensions)return!1;var n=e.extensions[this.name];if(!n)return!1;var r=n.lights;if(r)for(var o in r){var a=r[o];switch(a.type){case"ambient":var i=new t.HemisphericLight(a.name,new t.Vector3(0,1,0),e.scene),s=a.ambient;s&&(i.diffuse=t.Color3.FromArray(s.color||[1,1,1]));break;case"point":var l=new t.PointLight(a.name,new t.Vector3(10,10,10),e.scene),u=a.point;u&&(l.diffuse=t.Color3.FromArray(u.color||[1,1,1]));break;case"directional":var c=new t.DirectionalLight(a.name,new t.Vector3(0,-1,0),e.scene),d=a.directional;d&&(c.diffuse=t.Color3.FromArray(d.color||[1,1,1]));break;case"spot":var f=a.spot;f&&(new t.SpotLight(a.name,new t.Vector3(0,10,0),new t.Vector3(0,-1,0),f.fallOffAngle||Math.PI,f.fallOffExponent||0,e.scene).diffuse=t.Color3.FromArray(f.color||[1,1,1]));break;default:t.Tools.Warn('GLTF Material Common extension: light type "'+a.type+"” not supported")}}return!1},n.prototype.loadMaterialAsync=function(e,n,r,o){var a=e.materials[n];if(!a||!a.extensions)return!1;var i=a.extensions[this.name];if(!i)return!1;var s=new t.StandardMaterial(n,e.scene);return s.sideOrientation=t.Material.CounterClockWiseSideOrientation,"CONSTANT"===i.technique&&(s.disableLighting=!0),s.backFaceCulling=void 0!==i.doubleSided&&!i.doubleSided,s.alpha=void 0===i.values.transparency?1:i.values.transparency,s.specularPower=void 0===i.values.shininess?0:i.values.shininess,"string"==typeof i.values.ambient?this._loadTexture(e,i.values.ambient,s,"ambientTexture",o):s.ambientColor=t.Color3.FromArray(i.values.ambient||[0,0,0]),"string"==typeof i.values.diffuse?this._loadTexture(e,i.values.diffuse,s,"diffuseTexture",o):s.diffuseColor=t.Color3.FromArray(i.values.diffuse||[0,0,0]),"string"==typeof i.values.emission?this._loadTexture(e,i.values.emission,s,"emissiveTexture",o):s.emissiveColor=t.Color3.FromArray(i.values.emission||[0,0,0]),"string"==typeof i.values.specular?this._loadTexture(e,i.values.specular,s,"specularTexture",o):s.specularColor=t.Color3.FromArray(i.values.specular||[0,0,0]),!0},n.prototype._loadTexture=function(e,t,n,r,o){te.LoadTextureBufferAsync(e,t,function(o){te.CreateTextureAsync(e,t,o,function(e){return n[r]=e})},o)},n}(re);ne.RegisterExtension(new ae);var ie={__proto__:null,get EBlendingFunction(){return C},get EComponentType(){return O},get ECullingType(){return M},get EParameterType(){return L},get EShaderType(){return E},get ETextureFilterType(){return N},get ETextureFormat(){return S},get ETextureWrapMode(){return T},GLTFBinaryExtension:oe,GLTFLoader:ne,GLTFLoaderBase:te,GLTFLoaderExtension:re,GLTFMaterialsCommonExtension:ae,GLTFUtils:I},se="undefined"!=typeof global?global:"undefined"!=typeof window?window:void 0;if(void 0!==se)for(var le in se.BABYLON=se.BABYLON||{},se.BABYLON.GLTF1=se.BABYLON.GLTF1||{},ie)se.BABYLON.GLTF1[le]=ie[le];e.GLTF1=ie,e.GLTFFileLoader=_,e.GLTFLoaderDefaultOptions=b,e.GLTFValidation=c,e.RegisterGLTFFileLoader=g});
2
2
  //# sourceMappingURL=babylon.glTF1FileLoader.min.js.map