babylonjs-loaders 7.22.5 → 7.23.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&&"object"==typeof module?module.exports=t(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-loaders",["babylonjs"],t):"object"==typeof exports?exports["babylonjs-loaders"]=t(require("babylonjs")):e.LOADERS=t(e.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,(e=>(()=>{"use strict";var t={597:t=>{t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};r.d(o,{default:()=>dn});var a={};r.r(a),r.d(a,{GLTFValidation:()=>x});var i={};r.r(i),r.d(i,{GLTFFileLoader:()=>P,GLTFLoaderAnimationStartMode:()=>A,GLTFLoaderCoordinateSystemMode:()=>b,GLTFLoaderState:()=>T});var s={};r.r(s),r.d(s,{EBlendingFunction:()=>F,EComponentType:()=>M,ECullingType:()=>R,EParameterType:()=>C,EShaderType:()=>w,ETextureFilterType:()=>N,ETextureFormat:()=>S,ETextureWrapMode:()=>L,GLTFBinaryExtension:()=>ie,GLTFLoader:()=>oe,GLTFLoaderBase:()=>re,GLTFLoaderExtension:()=>ae,GLTFMaterialsCommonExtension:()=>se,GLTFUtils:()=>B});var l={};r.r(l);var c={};r.r(c),r.d(c,{EXT_lights_image_based:()=>ye,EXT_mesh_gpu_instancing:()=>ge,EXT_meshopt_compression:()=>Ae,EXT_texture_avif:()=>Oe,EXT_texture_webp:()=>xe,ExtrasAsMetadata:()=>Yt,KHR_animation_pointer:()=>Ct,KHR_draco_mesh_compression:()=>we,KHR_interactivity:()=>Kt,KHR_lights:()=>Le,KHR_materials_anisotropy:()=>ke,KHR_materials_clearcoat:()=>Ie,KHR_materials_diffuse_transmission:()=>et,KHR_materials_dispersion:()=>ot,KHR_materials_emissive_strength:()=>Ue,KHR_materials_ior:()=>qe,KHR_materials_iridescence:()=>De,KHR_materials_pbrSpecularGlossiness:()=>Se,KHR_materials_sheen:()=>je,KHR_materials_specular:()=>We,KHR_materials_transmission:()=>Qe,KHR_materials_unlit:()=>Fe,KHR_materials_variants:()=>Xe,KHR_materials_volume:()=>nt,KHR_mesh_quantization:()=>it,KHR_texture_basisu:()=>lt,KHR_texture_transform:()=>ut,KHR_xmp_json_ld:()=>ht,MSFT_audio_emitter:()=>Nt,MSFT_lod:()=>Rt,MSFT_minecraftMesh:()=>Pt,MSFT_sRGBFactors:()=>Bt});var u={};r.r(u),r.d(u,{ArrayItem:()=>pe,EXT_lights_image_based:()=>ye,EXT_mesh_gpu_instancing:()=>ge,EXT_meshopt_compression:()=>Ae,EXT_texture_avif:()=>Oe,EXT_texture_webp:()=>xe,ExtrasAsMetadata:()=>Yt,GLTFLoader:()=>_e,KHR_animation_pointer:()=>Ct,KHR_draco_mesh_compression:()=>we,KHR_interactivity:()=>Kt,KHR_lights:()=>Le,KHR_materials_anisotropy:()=>ke,KHR_materials_clearcoat:()=>Ie,KHR_materials_diffuse_transmission:()=>et,KHR_materials_dispersion:()=>ot,KHR_materials_emissive_strength:()=>Ue,KHR_materials_ior:()=>qe,KHR_materials_iridescence:()=>De,KHR_materials_pbrSpecularGlossiness:()=>Se,KHR_materials_sheen:()=>je,KHR_materials_specular:()=>We,KHR_materials_transmission:()=>Qe,KHR_materials_unlit:()=>Fe,KHR_materials_variants:()=>Xe,KHR_materials_volume:()=>nt,KHR_mesh_quantization:()=>it,KHR_texture_basisu:()=>lt,KHR_texture_transform:()=>ut,KHR_xmp_json_ld:()=>ht,MSFT_audio_emitter:()=>Nt,MSFT_lod:()=>Rt,MSFT_minecraftMesh:()=>Pt,MSFT_sRGBFactors:()=>Bt});var d={};r.r(d),r.d(d,{MTLFileLoader:()=>qt,OBJFileLoader:()=>Xt,SolidParser:()=>zt});var h={};r.r(h),r.d(h,{STLFileLoader:()=>Zt});var f={};r.r(f),r.d(f,{GLTF1:()=>s,GLTF2:()=>u,GLTFFileLoader:()=>P,GLTFLoaderAnimationStartMode:()=>A,GLTFLoaderCoordinateSystemMode:()=>b,GLTFLoaderState:()=>T,GLTFValidation:()=>x,MTLFileLoader:()=>qt,OBJFileLoader:()=>Xt,SPLATFileLoader:()=>Jt,STLFileLoader:()=>Zt,SolidParser:()=>zt});var p=function(e,t){return p=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])},p(e,t)};function _(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var m=function(){return m=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},m.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var y=r(597);function v(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 g(){var e=[];onmessage=function(t){var n=t.data;switch(n.id){case"init":importScripts(n.url);break;case"validate":v(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)}}}var b,A,T,x=function(){function e(){}return e.ValidateAsync=function(e,t,n,r){var o=this;return"function"==typeof Worker?new Promise((function(a,i){var s="".concat(v,"(").concat(g,")()"),l=URL.createObjectURL(new Blob([s],{type:"application/javascript"})),c=new Worker(l),u=function(e){c.removeEventListener("error",u),c.removeEventListener("message",d),i(e)},d=function(e){var t=e.data;switch(t.id){case"getExternalResource":r(t.uri).then((function(e){c.postMessage({id:"getExternalResource.resolve",index:t.index,value:e},[e.buffer])}),(function(e){c.postMessage({id:"getExternalResource.reject",index:t.index,reason:e})}));break;case"validate.resolve":c.removeEventListener("error",u),c.removeEventListener("message",d),a(t.value),c.terminate();break;case"validate.reject":c.removeEventListener("error",u),c.removeEventListener("message",d),i(t.reason),c.terminate()}};if(c.addEventListener("error",u),c.addEventListener("message",d),c.postMessage({id:"init",url:y.Tools.GetBabylonScriptURL(o.Configuration.url)}),ArrayBuffer.isView(e)){var h=e.slice();c.postMessage({id:"validate",data:h,rootUrl:t,fileName:n},[h.buffer])}else c.postMessage({id:"validate",data:e,rootUrl:t,fileName:n})})):(this._LoadScriptPromise||(this._LoadScriptPromise=y.Tools.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then((function(){return v(e,t,n,r)})))},e.Configuration={url:"".concat(y.Tools._DefaultCdnUrl,"/gltf_validator.js")},e}(),E="gltf";function O(e,t,n){try{return Promise.resolve(new Uint8Array(e,t,n))}catch(e){return Promise.reject(e)}}!function(e){e[e.AUTO=0]="AUTO",e[e.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED"}(b||(b={})),function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.ALL=2]="ALL"}(A||(A={})),function(e){e[e.LOADING=0]="LOADING",e[e.READY=1]="READY",e[e.COMPLETE=2]="COMPLETE"}(T||(T={}));var M,w,C,L,N,S,R,F,P=function(e){function t(t){var n=e.call(this)||this;return n.onParsedObservable=new y.Observable,n.onMeshLoadedObservable=new y.Observable,n.onSkinLoadedObservable=new y.Observable,n.onTextureLoadedObservable=new y.Observable,n.onMaterialLoadedObservable=new y.Observable,n.onCameraLoadedObservable=new y.Observable,n.onCompleteObservable=new y.Observable,n.onErrorObservable=new y.Observable,n.onDisposeObservable=new y.Observable,n.onExtensionLoadedObservable=new y.Observable,n.validate=!1,n.onValidatedObservable=new y.Observable,n._loader=null,n._state=null,n._requests=new Array,n.name=E,n.extensions={".gltf":{isBinary:!1},".glb":{isBinary:!0}},n.onLoaderStateChangedObservable=new y.Observable,n._logIndentLevel=0,n._loggingEnabled=!1,n._log=n._logDisabled,n._capturePerformanceCounters=!1,n._startPerformanceCounter=n._startPerformanceCounterDisabled,n._endPerformanceCounter=n._endPerformanceCounterDisabled,n.copyFrom(t),n}return _(t,e),Object.defineProperty(t.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(t.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(t.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(t.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(t.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(t.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(t.prototype,"onComplete",{set:function(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"onError",{set:function(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"onDispose",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"onExtensionLoaded",{set:function(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.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(t.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(t.prototype,"onValidated",{set:function(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)},enumerable:!1,configurable:!0}),t.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()},t.prototype.loadFile=function(e,t,n,r,o,a,i,s){var l=this;if(ArrayBuffer.isView(t))return this._loadBinary(e,t,n,r,i,s),null;this._progressCallback=o;var c=t.name||y.Tools.GetFilename(t);if(a){if(this.useRangeRequests){this.validate&&y.Logger.Warn("glTF validation is not supported when range requests are enabled");var u={abort:function(){},onCompleteObservable:new y.Observable},d={readAsync:function(n,r){return new Promise((function(o,a){l._loadFile(e,t,(function(e){o(new Uint8Array(e))}),!0,(function(e){a(e)}),(function(e){e.setRequestHeader("Range","bytes=".concat(n,"-").concat(n+r-1))}))}))},byteLength:0};return this._unpackBinaryAsync(new y.DataReader(d)).then((function(e){u.onCompleteObservable.notifyObservers(u),r(e)}),i?function(e){return i(void 0,e)}:void 0),u}return this._loadFile(e,t,(function(t){l._validate(e,new Uint8Array(t,0,t.byteLength),n,c),l._unpackBinaryAsync(new y.DataReader({readAsync:function(e,n){return O(t,e,n)},byteLength:t.byteLength})).then((function(e){r(e)}),i?function(e){return i(void 0,e)}:void 0)}),!0,i)}return this._loadFile(e,t,(function(t){try{l._validate(e,t,n,c),r({json:l._parseJson(t)})}catch(e){i&&i()}}),!1,i)},t.prototype._loadBinary=function(e,t,n,r,o,a){this._validate(e,new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n,a),this._unpackBinaryAsync(new y.DataReader({readAsync:function(e,n){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)}}(t,e,n)},byteLength:t.byteLength})).then((function(e){r(e)}),o?function(e){return o(void 0,e)}:void 0)},t.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)}))},t.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)}))},t.prototype.loadAssetContainerAsync=function(e,t,n,r,o){var a=this;return Promise.resolve().then((function(){a.onParsedObservable.notifyObservers(t),a.onParsedObservable.clear(),a._log("Loading ".concat(o||"")),a._loader=a._getLoader(t);var i=new y.AssetContainer(e),s=[];a.onMaterialLoadedObservable.add((function(e){s.push(e)}));var l=[];a.onTextureLoadedObservable.add((function(e){l.push(e)}));var c=[];a.onCameraLoadedObservable.add((function(e){c.push(e)}));var u=[];return a.onMeshLoadedObservable.add((function(e){e.morphTargetManager&&u.push(e.morphTargetManager)})),a._loader.importMeshAsync(null,e,i,t,n,r,o).then((function(e){return Array.prototype.push.apply(i.geometries,e.geometries),Array.prototype.push.apply(i.meshes,e.meshes),Array.prototype.push.apply(i.particleSystems,e.particleSystems),Array.prototype.push.apply(i.skeletons,e.skeletons),Array.prototype.push.apply(i.animationGroups,e.animationGroups),Array.prototype.push.apply(i.materials,s),Array.prototype.push.apply(i.textures,l),Array.prototype.push.apply(i.lights,e.lights),Array.prototype.push.apply(i.transformNodes,e.transformNodes),Array.prototype.push.apply(i.cameras,c),Array.prototype.push.apply(i.morphTargetManagers,u),i}))}))},t.prototype.canDirectLoad=function(e){return-1!==e.indexOf("asset")&&-1!==e.indexOf("version")||e.startsWith("data:base64,"+t._MagicBase64Encoded)||e.startsWith("data:;base64,"+t._MagicBase64Encoded)||e.startsWith("data:application/octet-stream;base64,"+t._MagicBase64Encoded)||e.startsWith("data:model/gltf-binary;base64,"+t._MagicBase64Encoded)},t.prototype.directLoad=function(e,n){if(n.startsWith("base64,"+t._MagicBase64Encoded)||n.startsWith(";base64,"+t._MagicBase64Encoded)||n.startsWith("application/octet-stream;base64,"+t._MagicBase64Encoded)||n.startsWith("model/gltf-binary;base64,"+t._MagicBase64Encoded)){var r=(0,y.DecodeBase64UrlToBinary)(n);return this._validate(e,new Uint8Array(r,0,r.byteLength)),this._unpackBinaryAsync(new y.DataReader({readAsync:function(e,t){return O(r,e,t)},byteLength:r.byteLength}))}return this._validate(e,n),Promise.resolve({json:this._parseJson(n)})},t.prototype.createPlugin=function(e){return new t(e[E])},Object.defineProperty(t.prototype,"loaderState",{get:function(){return this._state},enumerable:!1,configurable:!0}),t.prototype.whenCompleteAsync=function(){var e=this;return new Promise((function(t,n){e.onCompleteObservable.addOnce((function(){t()})),e.onErrorObservable.addOnce((function(e){n(e)}))}))},t.prototype._setState=function(e){this._state!==e&&(this._state=e,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(T[this._state]))},t.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},t.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})}},t.prototype._validate=function(e,t,n,r){var o=this;void 0===n&&(n=""),void 0===r&&(r=""),this.validate&&(this._startPerformanceCounter("Validate JSON"),x.ValidateAsync(t,n,r,(function(t){return o.preprocessUrlAsync(n+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){o._endPerformanceCounter("Validate JSON"),o.onValidatedObservable.notifyObservers(e),o.onValidatedObservable.clear()}),(function(e){o._endPerformanceCounter("Validate JSON"),y.Tools.Warn("Failed to validate: ".concat(e.message)),o.onValidatedObservable.clear()})))},t.prototype._getLoader=function(e){var n=e.json.asset||{};this._log("Asset version: ".concat(n.version)),n.minVersion&&this._log("Asset minimum version: ".concat(n.minVersion)),n.generator&&this._log("Asset generator: ".concat(n.generator));var r=t._parseVersion(n.version);if(!r)throw new Error("Invalid version: "+n.version);if(void 0!==n.minVersion){var o=t._parseVersion(n.minVersion);if(!o)throw new Error("Invalid minimum version: "+n.minVersion);if(t._compareVersion(o,{major:2,minor:0})>0)throw new Error("Incompatible minimum version: "+n.minVersion)}var a={1:t._CreateGLTF1Loader,2:t._CreateGLTF2Loader}[r.major];if(!a)throw new Error("Unsupported version: "+n.version);return a(this)},t.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},t.prototype._unpackBinaryAsync=function(e){var t=this;return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then((function(){var n=e.readUint32();if(1179937895!==n)throw new y.RuntimeError("Unexpected magic: "+n,y.ErrorCodes.GLTFLoaderUnexpectedMagicError);var r=e.readUint32();t.loggingEnabled&&t._log("Binary version: ".concat(r));var o,a=e.readUint32();switch(t.useRangeRequests||a===e.buffer.byteLength||y.Logger.Warn("Length in header does not match actual data length: ".concat(a," != ").concat(e.buffer.byteLength)),r){case 1:o=t._unpackBinaryV1Async(e,a);break;case 2:o=t._unpackBinaryV2Async(e,a);break;default:throw new Error("Unsupported version: "+r)}return t._endPerformanceCounter("Unpack Binary"),o}))},t.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)},t.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()}))},t._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},t._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},t.prototype._logOpen=function(e){this._log(e),this._logIndentLevel++},t.prototype._logClose=function(){--this._logIndentLevel},t.prototype._logEnabled=function(e){var n=t._logSpaces.substr(0,2*this._logIndentLevel);y.Logger.Log("".concat(n).concat(e))},t.prototype._logDisabled=function(e){},t.prototype._startPerformanceCounterEnabled=function(e){y.Tools.StartPerformanceCounter(e)},t.prototype._startPerformanceCounterDisabled=function(e){},t.prototype._endPerformanceCounterEnabled=function(e){y.Tools.EndPerformanceCounter(e)},t.prototype._endPerformanceCounterDisabled=function(e){},t.IncrementalLoading=!0,t.HomogeneousCoordinates=!1,t._MagicBase64Encoded="Z2xURg",t._logSpaces=" ",t}(function(){function e(){this.coordinateSystemMode=b.AUTO,this.animationStartMode=A.FIRST,this.loadNodeAnimations=!0,this.loadSkins=!0,this.loadMorphTargets=!0,this.compileMaterials=!1,this.useClipPlane=!1,this.compileShadowGenerators=!1,this.transparencyAsCoverage=!1,this.useRangeRequests=!1,this.createInstances=!0,this.alwaysComputeBoundingBox=!1,this.loadAllMaterials=!1,this.loadOnlyMaterials=!1,this.skipMaterials=!1,this.useSRGBBuffers=!0,this.targetFps=60,this.alwaysComputeSkeletonRootNode=!1,this.preprocessUrlAsync=function(e){return Promise.resolve(e)},this.extensionOptions={}}return e.prototype.copyFrom=function(e){var t,n,r,o,a,i,s,l,c,u,d,h,f,p,_,m,y,v,g,b;e&&(this.onParsed=e.onParsed,this.coordinateSystemMode=null!==(t=e.coordinateSystemMode)&&void 0!==t?t:this.coordinateSystemMode,this.animationStartMode=null!==(n=e.animationStartMode)&&void 0!==n?n:this.animationStartMode,this.loadNodeAnimations=null!==(r=e.loadNodeAnimations)&&void 0!==r?r:this.loadNodeAnimations,this.loadSkins=null!==(o=e.loadSkins)&&void 0!==o?o:this.loadSkins,this.loadMorphTargets=null!==(a=e.loadMorphTargets)&&void 0!==a?a:this.loadMorphTargets,this.compileMaterials=null!==(i=e.compileMaterials)&&void 0!==i?i:this.compileMaterials,this.useClipPlane=null!==(s=e.useClipPlane)&&void 0!==s?s:this.useClipPlane,this.compileShadowGenerators=null!==(l=e.compileShadowGenerators)&&void 0!==l?l:this.compileShadowGenerators,this.transparencyAsCoverage=null!==(c=e.transparencyAsCoverage)&&void 0!==c?c:this.transparencyAsCoverage,this.useRangeRequests=null!==(u=e.useRangeRequests)&&void 0!==u?u:this.useRangeRequests,this.createInstances=null!==(d=e.createInstances)&&void 0!==d?d:this.createInstances,this.alwaysComputeBoundingBox=null!==(h=e.alwaysComputeBoundingBox)&&void 0!==h?h:this.alwaysComputeBoundingBox,this.loadAllMaterials=null!==(f=e.loadAllMaterials)&&void 0!==f?f:this.loadAllMaterials,this.loadOnlyMaterials=null!==(p=e.loadOnlyMaterials)&&void 0!==p?p:this.loadOnlyMaterials,this.skipMaterials=null!==(_=e.skipMaterials)&&void 0!==_?_:this.skipMaterials,this.useSRGBBuffers=null!==(m=e.useSRGBBuffers)&&void 0!==m?m:this.useSRGBBuffers,this.targetFps=null!==(y=e.targetFps)&&void 0!==y?y:this.targetFps,this.alwaysComputeSkeletonRootNode=null!==(v=e.alwaysComputeSkeletonRootNode)&&void 0!==v?v:this.alwaysComputeSkeletonRootNode,this.preprocessUrlAsync=null!==(g=e.preprocessUrlAsync)&&void 0!==g?g:this.preprocessUrlAsync,this.customRootNode=e.customRootNode,this.onMeshLoaded=e.onMeshLoaded,this.onSkinLoaded=e.onSkinLoaded,this.onTextureLoaded=e.onTextureLoaded,this.onMaterialLoaded=e.onMaterialLoaded,this.onCameraLoaded=e.onCameraLoaded,this.extensionOptions=null!==(b=e.extensionOptions)&&void 0!==b?b:this.extensionOptions)},e}());(0,y.registerSceneLoaderPlugin)(new P),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"}(M||(M={})),function(e){e[e.FRAGMENT=35632]="FRAGMENT",e[e.VERTEX=35633]="VERTEX"}(w||(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.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"}(C||(C={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.REPEAT=10497]="REPEAT"}(L||(L={})),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"}(R||(R={})),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"}(F||(F={}));var I,B=function(){function e(){}return e.SetMatrix=function(e,t,n,r,o){var a=null;if("MODEL"===n.semantic?a=t.getWorldMatrix():"PROJECTION"===n.semantic?a=e.getProjectionMatrix():"VIEW"===n.semantic?a=e.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===n.semantic?a=y.Matrix.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()):"MODELVIEW"===n.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()):"MODELVIEWPROJECTION"===n.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()):"MODELINVERSE"===n.semantic?a=t.getWorldMatrix().invert():"VIEWINVERSE"===n.semantic?a=e.getViewMatrix().invert():"PROJECTIONINVERSE"===n.semantic?a=e.getProjectionMatrix().invert():"MODELVIEWINVERSE"===n.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===n.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===n.semantic&&(a=y.Matrix.Transpose(t.getWorldMatrix().invert())),a)switch(n.type){case C.FLOAT_MAT2:o.setMatrix2x2(r,y.Matrix.GetAsMatrix2x2(a));break;case C.FLOAT_MAT3:o.setMatrix3x3(r,y.Matrix.GetAsMatrix3x3(a));break;case C.FLOAT_MAT4:o.setMatrix(r,a)}},e.SetUniform=function(e,t,n,r){switch(r){case C.FLOAT:return e.setFloat(t,n),!0;case C.FLOAT_VEC2:return e.setVector2(t,y.Vector2.FromArray(n)),!0;case C.FLOAT_VEC3:return e.setVector3(t,y.Vector3.FromArray(n)),!0;case C.FLOAT_VEC4:return e.setVector4(t,y.Vector4.FromArray(n)),!0;default:return!1}},e.GetWrapMode=function(e){switch(e){case L.CLAMP_TO_EDGE:return y.Texture.CLAMP_ADDRESSMODE;case L.MIRRORED_REPEAT:return y.Texture.MIRROR_ADDRESSMODE;case L.REPEAT:default:return y.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 y.Texture.TRILINEAR_SAMPLINGMODE;case N.NEAREST:case N.NEAREST_MIPMAP_NEAREST:return y.Texture.NEAREST_SAMPLINGMODE;default:return y.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 M.BYTE:return new Int8Array(i,n,r);case M.UNSIGNED_BYTE:return new Uint8Array(i,n,r);case M.SHORT:return new Int16Array(i,n,r);case M.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(t){if(!e._DefaultMaterial){y.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"),y.Effect.ShadersStore.GLTFDefaultMaterialPixelShader=["precision highp float;","","uniform vec4 u_emission;","","void main(void)","{"," gl_FragColor = u_emission;","}"].join("\n");var n={attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:new Array,needAlphaBlending:!1};e._DefaultMaterial=new y.ShaderMaterial("GLTFDefaultMaterial",t,{vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},n),e._DefaultMaterial.setColor4("u_emission",new y.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"}(I||(I={}));var D=function(){function e(e){this._pos=0,this.currentToken=I.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 I.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=I.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=I.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}(),V=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],k=["world","view","projection","worldView","worldViewProjection","mBones"],G=["translation","rotation","scale"],U=["position","rotationQuaternion","scaling"],H=function(e,t,n){for(var r in e){var o=e[r];n[t][r]=o}},j=function(e){if(e)for(var t=0;t<e.length/2;t++)e[2*t+1]=1-e[2*t+1]},K=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},W=function(e){var t=null;if(e.translation||e.rotation||e.scale){var n=y.Vector3.FromArray(e.scale||[1,1,1]),r=y.Quaternion.FromArray(e.rotation||[0,0,0,1]),o=y.Vector3.FromArray(e.translation||[0,0,0]);t=y.Matrix.Compose(n,r,o)}else t=y.Matrix.FromArray(e.matrix);return t},Y=function(e,t,n,r){for(var o=0;o<r.bones.length;o++)if(r.bones[o].name===n)return r.bones[o];var a=e.nodes;for(var i in a){var s=a[i];if(s.jointName){var l=s.children;for(o=0;o<l.length;o++){var c=e.nodes[l[o]];if(c.jointName&&c.jointName===n){var u=W(s),d=new y.Bone(s.name||"",r,Y(e,t,s.jointName,r),u);return d.id=i,d}}}}return null},q=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},z=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},X=function(e,t){for(var n=0;n<e.jointNames.length;n++)if(e.jointNames[n]===t)return!0;return!1},Z=function(e,t,n,r,o){if(o||(e.scene._blockEntityCollection=!!e.assetContainer,(o=new y.Mesh(t.name||"",e.scene))._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,o.id=r),!t.babylonNode)return o;for(var a,i=[],s=null,l=[],c=[],u=[],d=[],h=0;h<n.length;h++){var f=n[h];if(L=e.meshes[f])for(var p=0;p<L.primitives.length;p++){var _=new y.VertexData,m=L.primitives[p];m.mode;var v=m.attributes,g=null,b=null;for(var A in v)if(g=e.accessors[v[A]],b=B.GetBufferFromAccessor(e,g),"NORMAL"===A)_.normals=new Float32Array(b.length),_.normals.set(b);else if("POSITION"===A){if(P.HomogeneousCoordinates){_.positions=new Float32Array(b.length-b.length/4);for(var T=0;T<b.length;T+=4)_.positions[T]=b[T],_.positions[T+1]=b[T+1],_.positions[T+2]=b[T+2]}else _.positions=new Float32Array(b.length),_.positions.set(b);c.push(_.positions.length)}else if(-1!==A.indexOf("TEXCOORD_")){var x=Number(A.split("_")[1]),E=y.VertexBuffer.UVKind+(0===x?"":x+1),O=new Float32Array(b.length);O.set(b),j(O),_.set(O,E)}else"JOINT"===A?(_.matricesIndices=new Float32Array(b.length),_.matricesIndices.set(b)):"WEIGHT"===A?(_.matricesWeights=new Float32Array(b.length),_.matricesWeights.set(b)):"COLOR"===A&&(_.colors=new Float32Array(b.length),_.colors.set(b));if(g=e.accessors[m.indices])b=B.GetBufferFromAccessor(e,g),_.indices=new Int32Array(b.length),_.indices.set(b),d.push(_.indices.length);else{var M=[];for(T=0;T<_.positions.length/3;T++)M.push(T);_.indices=new Int32Array(M),d.push(_.indices.length)}s?s.merge(_):s=_;var w=e.scene.getMaterialById(m.material);i.push(null===w?B.GetDefaultMaterial(e.scene):w),l.push(0===l.length?0:l[l.length-1]+c[c.length-2]),u.push(0===u.length?0:u[u.length-1]+d[d.length-2])}}e.scene._blockEntityCollection=!!e.assetContainer,i.length>1?(a=new y.MultiMaterial("multimat"+r,e.scene)).subMaterials=i:a=new y.StandardMaterial("multimat"+r,e.scene),1===i.length&&(a=i[0]),a._parentContainer=e.assetContainer,o.material||(o.material=a),new y.Geometry(r,e.scene,s,!1,o),o.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,o.subMeshes=[];var C=0;for(h=0;h<n.length;h++){var L;if(f=n[h],L=e.meshes[f])for(p=0;p<L.primitives.length;p++)L.primitives[p].mode,y.SubMesh.AddToMesh(C,l[C],c[C],u[C],d[C],o,o,!0),C++}return o},J=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,t,n){var r=null;if(e.importOnlyMeshes&&(t.skin||t.meshes)&&e.importMeshesNames&&e.importMeshesNames.length>0&&-1===e.importMeshesNames.indexOf(t.name||""))return null;if(t.skin){if(t.meshes){var o=e.skins[t.skin];(a=Z(e,t,t.meshes,n,t.babylonNode)).skeleton=e.scene.getLastSkeletonById(t.skin),null===a.skeleton&&(a.skeleton=function(e,t,n,r){if(r||(r=new y.Skeleton(t.name||"","",e.scene)),!t.babylonSkeleton)return r;var o=[],a=[];!function(e,t,n,r){for(var o in e.nodes){var a=e.nodes[o],i=o;if(a.jointName&&!X(n,a.jointName)){var s=W(a),l=new y.Bone(a.name||"",t,null,s);l.id=i,r.push({bone:l,node:a,id:i})}}for(var c=0;c<r.length;c++)for(var u=r[c],d=u.node.children,h=0;h<d.length;h++){for(var f=null,p=0;p<r.length;p++)if(r[p].id===d[h]){f=r[p];break}f&&(f.bone._parent=u.bone,u.bone.children.push(f.bone))}}(e,r,t,o),r.bones=[];for(var i=0;i<t.jointNames.length;i++)if(b=z(e,t.jointNames[i])){var s=b.node;if(s){var l=b.id,c=e.scene.getBoneById(l);if(c)r.bones.push(c);else{for(var u=!1,d=null,h=0;h<i;h++){var f=z(e,t.jointNames[h]);if(f){var p=f.node;if(p){var _=p.children;if(_){u=!1;for(var m=0;m<_.length;m++)if(_[m]===l){d=Y(e,t,t.jointNames[h],r),u=!0;break}if(u)break}}else y.Tools.Warn("Joint named "+t.jointNames[h]+" does not exist when looking for parent")}}var v=W(s);!d&&o.length>0&&(d=q(o,l))&&-1===a.indexOf(d)&&a.push(d),new y.Bone(s.jointName||"",r,d,v).id=l}}else y.Tools.Warn("Joint named "+t.jointNames[i]+" does not exist")}var g=r.bones;for(r.bones=[],i=0;i<t.jointNames.length;i++){var b;if(b=z(e,t.jointNames[i]))for(h=0;h<g.length;h++)if(g[h].id===b.id){r.bones.push(g[h]);break}}for(r.prepare(),i=0;i<a.length;i++)r.bones.push(a[i]);return r}(e,o,0,o.babylonSkeleton),o.babylonSkeleton||(o.babylonSkeleton=a.skeleton)),r=a}}else if(t.meshes){var a;r=a=Z(e,t,t.mesh?[t.mesh]:t.meshes,n,t.babylonNode)}else if(!t.light||t.babylonNode||e.importOnlyMeshes){if(t.camera&&!t.babylonNode&&!e.importOnlyMeshes){var i=e.cameras[t.camera];if(i){if(e.scene._blockEntityCollection=!!e.assetContainer,"orthographic"===i.type){var s=new y.FreeCamera(t.camera,y.Vector3.Zero(),e.scene,!1);s.name=t.name||"",s.mode=y.Camera.ORTHOGRAPHIC_CAMERA,s.attachControl(),r=s,s._parentContainer=e.assetContainer}else if("perspective"===i.type){var l=i[i.type],c=new y.FreeCamera(t.camera,y.Vector3.Zero(),e.scene,!1);c.name=t.name||"",c.attachControl(),l.aspectRatio||(l.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),l.znear&&l.zfar&&(c.maxZ=l.zfar,c.minZ=l.znear),r=c,c._parentContainer=e.assetContainer}e.scene._blockEntityCollection=!1}}}else{var u=e.lights[t.light];if(u)if("ambient"===u.type){var d=u[u.type],h=new y.HemisphericLight(t.light,y.Vector3.Zero(),e.scene);h.name=t.name||"",d.color&&(h.diffuse=y.Color3.FromArray(d.color)),r=h}else if("directional"===u.type){var f=u[u.type],p=new y.DirectionalLight(t.light,y.Vector3.Zero(),e.scene);p.name=t.name||"",f.color&&(p.diffuse=y.Color3.FromArray(f.color)),r=p}else if("point"===u.type){var _=u[u.type],m=new y.PointLight(t.light,y.Vector3.Zero(),e.scene);m.name=t.name||"",_.color&&(m.diffuse=y.Color3.FromArray(_.color)),r=m}else if("spot"===u.type){var v=u[u.type],g=new y.SpotLight(t.light,y.Vector3.Zero(),y.Vector3.Zero(),0,0,e.scene);g.name=t.name||"",v.color&&(g.diffuse=y.Color3.FromArray(v.color)),v.fallOfAngle&&(g.angle=v.fallOfAngle),v.fallOffExponent&&(g.exponent=v.fallOffExponent),r=g}}if(!t.jointName){if(t.babylonNode)return t.babylonNode;if(null===r){e.scene._blockEntityCollection=!!e.assetContainer;var b=new y.Mesh(t.name||"",e.scene);b._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,t.babylonNode=b,r=b}}if(null!==r){if(t.matrix&&r instanceof y.Mesh)!function(e,t){if(t.matrix){var n=new y.Vector3(0,0,0),r=new y.Quaternion,o=new y.Vector3(0,0,0);y.Matrix.FromArray(t.matrix).decompose(o,r,n),J(e,n,r,o)}else t.translation&&t.rotation&&t.scale&&J(e,y.Vector3.FromArray(t.translation),y.Quaternion.FromArray(t.rotation),y.Vector3.FromArray(t.scale));e.computeWorldMatrix(!0)}(r,t);else{var A=t.translation||[0,0,0],T=t.rotation||[0,0,0,1],x=t.scale||[1,1,1];J(r,y.Vector3.FromArray(A),y.Quaternion.FromArray(T),y.Vector3.FromArray(x))}r.updateCache(!0),t.babylonNode=r}return r},$=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++)$(e,o.children[i],a,r)},ee=function(e){var t=e.currentScene;if(t)for(var n=0;n<t.nodes.length;n++)$(e,t.nodes[n],null);else for(var r in e.scenes)for(t=e.scenes[r],n=0;n<t.nodes.length;n++)$(e,t.nodes[n],null);for(function(e){for(var t in e.animations){var n=e.animations[t];if(n.channels&&n.samplers)for(var r=null,o=0;o<n.channels.length;o++){var a=n.channels[o],i=n.samplers[a.sampler];if(i){var s=null,l=null;n.parameters?(s=n.parameters[i.input],l=n.parameters[i.output]):(s=i.input,l=i.output);var c=B.GetBufferFromAccessor(e,e.accessors[s]),u=B.GetBufferFromAccessor(e,e.accessors[l]),d=a.target.id,h=e.scene.getNodeById(d);if(null===h&&(h=e.scene.getNodeByName(d)),null!==h){var f=h instanceof y.Bone,p=a.target.path,_=G.indexOf(p);-1!==_&&(p=U[_]);var m=y.Animation.ANIMATIONTYPE_MATRIX;f||("rotationQuaternion"===p?(m=y.Animation.ANIMATIONTYPE_QUATERNION,h.rotationQuaternion=new y.Quaternion):m=y.Animation.ANIMATIONTYPE_VECTOR3);var v=null,g=[],b=0,A=!1;f&&r&&r.getKeys().length===c.length&&(v=r,A=!0),A||(e.scene._blockEntityCollection=!!e.assetContainer,v=new y.Animation(t,f?"_matrix":p,1,m,y.Animation.ANIMATIONLOOPMODE_CYCLE),e.scene._blockEntityCollection=!1);for(var T=0;T<c.length;T++){var x=null;if("rotationQuaternion"===p?(x=y.Quaternion.FromArray([u[b],u[b+1],u[b+2],u[b+3]]),b+=4):(x=y.Vector3.FromArray([u[b],u[b+1],u[b+2]]),b+=3),f){var E=h,O=y.Vector3.Zero(),M=new y.Quaternion,w=y.Vector3.Zero(),C=E.getBaseMatrix();A&&r&&(C=r.getKeys()[T].value),C.decompose(w,M,O),"position"===p?O=x:"rotationQuaternion"===p?M=x:w=x,x=y.Matrix.Compose(w,M,O)}A?r&&(r.getKeys()[T].value=x):g.push({frame:c[T],value:x})}!A&&v&&(v.setKeys(g),h.animations.push(v)),r=v,e.scene.stopAnimation(h),e.scene.beginAnimation(h,0,c[c.length-1],!0,1)}else y.Tools.Warn("Creating animation named "+t+". But cannot find node named "+d+" to attach to")}}}}(e),n=0;n<e.scene.skeletons.length;n++){var o=e.scene.skeletons[n];e.scene.beginAnimation(o,0,Number.MAX_VALUE,!0,1)}},te=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=V.indexOf(a.semantic);if(-1!==i)return delete n[r],k[i]}}return e.currentIdentifier},ne=function(e){for(var t in e.materials)ae.LoadMaterialAsync(e,t,(function(){}),(function(){}))},re=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&&H(e.extensions,"extensions",r),e.extensionsUsed&&H(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&&H(e.bufferViews,"bufferViews",r),e.accessors&&H(e.accessors,"accessors",r),e.meshes&&H(e.meshes,"meshes",r),e.lights&&H(e.lights,"lights",r),e.cameras&&H(e.cameras,"cameras",r),e.nodes&&H(e.nodes,"nodes",r),e.images&&H(e.images,"images",r),e.textures&&H(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&&H(e.programs,"programs",r),e.samplers&&H(e.samplers,"samplers",r),e.techniques&&H(e.techniques,"techniques",r),e.materials&&H(e.materials,"materials",r),e.animations&&H(e.animations,"animations",r),e.skins&&H(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,t,n,r,o){var a=e.buffers[t];y.Tools.IsBase64(a.uri)?setTimeout((function(){return n(new Uint8Array(y.Tools.DecodeBase64(a.uri)))})):y.Tools.LoadFile(e.rootUrl+a.uri,(function(e){return n(new Uint8Array(e))}),o,void 0,!0,(function(e){e&&r(e.status+" "+e.statusText)}))},e.LoadTextureBufferAsync=function(e,t,n,r){var o=e.textures[t];if(o&&o.source)if(o.babylonTexture)n(null);else{var a=e.images[o.source];y.Tools.IsBase64(a.uri)?setTimeout((function(){return n(new Uint8Array(y.Tools.DecodeBase64(a.uri)))})):y.Tools.LoadFile(e.rootUrl+a.uri,(function(e){return n(new Uint8Array(e))}),void 0,void 0,!0,(function(e){e&&r(e.status+" "+e.statusText)}))}else r("")},e.CreateTextureAsync=function(e,t,n,r){var o=e.textures[t];if(o.babylonTexture)r(o.babylonTexture);else{var a=e.samplers[o.sampler],i=a.minFilter===N.NEAREST_MIPMAP_NEAREST||a.minFilter===N.NEAREST_MIPMAP_LINEAR||a.minFilter===N.LINEAR_MIPMAP_NEAREST||a.minFilter===N.LINEAR_MIPMAP_LINEAR,s=y.Texture.BILINEAR_SAMPLINGMODE,l=null==n?new Blob:new Blob([n]),c=URL.createObjectURL(l),u=function(){return URL.revokeObjectURL(c)},d=new y.Texture(c,e.scene,!i,!0,s,u,u);void 0!==a.wrapS&&(d.wrapU=B.GetWrapMode(a.wrapS)),void 0!==a.wrapT&&(d.wrapV=B.GetWrapMode(a.wrapT)),d.name=t,o.babylonTexture=d,r(d)}},e.LoadShaderStringAsync=function(e,t,n,r){var o=e.shaders[t];if(y.Tools.IsBase64(o.uri)){var a=atob(o.uri.split(",")[1]);n&&n(a)}else y.Tools.LoadFile(e.rootUrl+o.uri,n,void 0,void 0,!1,(function(e){e&&r&&r(e.status+" "+e.statusText)}))},e.LoadMaterialAsync=function(e,t,n,r){var o=e.materials[t];if(o.technique){var a=e.techniques[o.technique];if(!a){e.scene._blockEntityCollection=!!e.assetContainer;var i=new y.StandardMaterial(t,e.scene);return i._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,i.diffuseColor=new y.Color3(.5,.5,.5),i.sideOrientation=y.Material.CounterClockWiseSideOrientation,void n(i)}var s=e.programs[a.program],l=a.states,c=y.Effect.ShadersStore[s.vertexShader+"VertexShader"],u=y.Effect.ShadersStore[s.fragmentShader+"PixelShader"],d="",h="",f=new D(c),p=new D(u),_={},m=[],v=[],g=[];for(var b in a.uniforms){var A=a.uniforms[b],T=a.parameters[A];if(_[b]=T,!T.semantic||T.node||T.source)T.type===C.SAMPLER_2D?g.push(b):m.push(b);else{var x=V.indexOf(T.semantic);-1!==x?(m.push(k[x]),delete _[b]):m.push(b)}}for(var E in a.attributes){var O=a.attributes[E];if((L=a.parameters[O]).semantic){var M=K(L);M&&v.push(M)}}for(;!f.isEnd()&&f.getNextToken();)if(f.currentToken===I.IDENTIFIER){var w=!1;for(var E in a.attributes){O=a.attributes[E];var L=a.parameters[O];if(f.currentIdentifier===E&&L.semantic){d+=K(L),w=!0;break}}w||(d+=te(f,a,_))}else d+=f.currentString;for(;!p.isEnd()&&p.getNextToken();)p.currentToken===I.IDENTIFIER?h+=te(p,a,_):h+=p.currentString;var N={vertex:s.vertexShader+t,fragment:s.fragmentShader+t},S={attributes:v,uniforms:m,samplers:g,needAlphaBlending:l&&l.enable&&-1!==l.enable.indexOf(3042)};y.Effect.ShadersStore[s.vertexShader+t+"VertexShader"]=d,y.Effect.ShadersStore[s.fragmentShader+t+"PixelShader"]=h;var P=new y.ShaderMaterial(t,e.scene,N,S);if(P.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")}}(s,P,r),P.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,c=a[i[n]];if(void 0===c&&(c=s.value),!c)return"continue";var u=function(e){return function(n){s.value&&e&&(t.setTexture(e,n),delete o[e])}};l===C.SAMPLER_2D?ae.LoadTextureAsync(e,r.values?c:s.value,u(n),(function(){return u(null)})):s.value&&B.SetUniform(t,n,r.values?c: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 c=n[l],u=c.type;if(u===C.FLOAT_MAT2||u===C.FLOAT_MAT3||u===C.FLOAT_MAT4)if(!c.semantic||c.source||c.node){if(c.semantic&&(c.source||c.node)){var d=t.scene.getNodeByName(c.source||c.node||"");if(null===d&&(d=t.scene.getNodeById(c.source||c.node||"")),null===d)continue;B.SetMatrix(t.scene,d,c,l,r.getEffect())}}else B.SetMatrix(t.scene,e,c,l,r.getEffect());else{var h=s[o.uniforms[l]];if(!h)continue;if(u===C.SAMPLER_2D){var f=t.textures[a.values?h:c.value].babylonTexture;if(null==f)continue;r.getEffect().setTexture(l,f)}else B.SetUniform(r.getEffect(),l,h,u)}}i(r)}(i,e,o,t,n,r,a)}}}(e,P,a,o,_,n),P.sideOrientation=y.Material.CounterClockWiseSideOrientation,l&&l.functions){var G=l.functions;G.cullFace&&G.cullFace[0]!==R.BACK&&(P.backFaceCulling=!1);var U=G.blendFuncSeparate;U&&(U[0]===F.SRC_ALPHA&&U[1]===F.ONE_MINUS_SRC_ALPHA&&U[2]===F.ONE&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_COMBINE:U[0]===F.ONE&&U[1]===F.ONE&&U[2]===F.ZERO&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_ONEONE:U[0]===F.SRC_ALPHA&&U[1]===F.ONE&&U[2]===F.ZERO&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_ADD:U[0]===F.ZERO&&U[1]===F.ONE_MINUS_SRC_COLOR&&U[2]===F.ONE&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_SUBTRACT:U[0]===F.DST_COLOR&&U[1]===F.ZERO&&U[2]===F.ONE&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_MULTIPLY:U[0]===F.SRC_ALPHA&&U[1]===F.ONE_MINUS_SRC_COLOR&&U[2]===F.ONE&&U[3]===F.ONE&&(P.alphaMode=y.Constants.ALPHA_MAXIMIZED))}}else r&&r("No technique found.")},e}(),oe=function(){function e(){}return e.RegisterExtension=function(t){e.Extensions[t.name]?y.Tools.Error('Tool with the same name "'+t.name+'" already exists'):e.Extensions[t.name]=t},e.prototype.dispose=function(){},e.prototype._importMeshAsync=function(e,t,n,r,o,a,i,s){var l=this;return t.useRightHandedSystem=!0,ae.LoadRuntimeAsync(t,n,r,(function(t){t.assetContainer=o,t.importOnlyMeshes=!0,""===e?t.importMeshesNames=[]:"string"==typeof e?t.importMeshesNames=[e]:!e||e instanceof Array?(t.importMeshesNames=[],y.Tools.Warn("Argument meshesNames must be of type string or string[]")):t.importMeshesNames=[e],l._createNodes(t);var n=[],r=[];for(var i in t.nodes){var s=t.nodes[i];s.babylonNode instanceof y.AbstractMesh&&n.push(s.babylonNode)}for(var c in t.skins){var u=t.skins[c];u.babylonSkeleton instanceof y.Skeleton&&r.push(u.babylonSkeleton)}l._loadBuffersAsync(t,(function(){l._loadShadersAsync(t,(function(){ne(t),ee(t),!P.IncrementalLoading&&a&&a(n,r)}))})),P.IncrementalLoading&&a&&a(n,r)}),s),!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,ae.LoadRuntimeAsync(e,t,n,(function(e){ae.LoadRuntimeExtensionsAsync(e,(function(){i._createNodes(e),i._loadBuffersAsync(e,(function(){i._loadShadersAsync(e,(function(){ne(e),ee(e),P.IncrementalLoading||r()}))})),P.IncrementalLoading&&r()}),a)}),a)},e.prototype.loadAsync=function(e,t,n,r){var o=this;return new Promise((function(a,i){o._loadAsync(e,t,n,(function(){a()}),r,(function(e){i(new Error(e))}))}))},e.prototype._loadShadersAsync=function(e,t){var n=!1,r=function(n,r){ae.LoadShaderStringAsync(e,n,(function(o){o instanceof ArrayBuffer||(e.loadedShaderCount++,o&&(y.Effect.ShadersStore[n+(r.type===w.VERTEX?"VertexShader":"PixelShader")]=o),e.loadedShaderCount===e.shaderscount&&t())}),(function(){y.Tools.Error("Error when loading shader program named "+n+" located at "+r.uri)}))};for(var o in e.shaders){n=!0;var a=e.shaders[o];a?r.bind(this,o,a)():y.Tools.Error("No shader named: "+o)}n||t()},e.prototype._loadBuffersAsync=function(e,t){var n=!1,r=function(n,r){ae.LoadBufferAsync(e,n,(function(o){e.loadedBufferCount++,o&&(o.byteLength!=e.buffers[n].byteLength&&y.Tools.Error("Buffer named "+n+" is length "+o.byteLength+". Expected: "+r.byteLength),e.loadedBufferViews[n]=o),e.loadedBufferCount===e.buffersCount&&t()}),(function(){y.Tools.Error("Error when loading buffer named "+n+" located at "+r.uri)}))};for(var o in e.buffers){n=!0;var a=e.buffers[o];a?r.bind(this,o,a)():y.Tools.Error("No buffer named: "+o)}n||t()},e.prototype._createNodes=function(e){var t=e.currentScene;if(t)for(var n=0;n<t.nodes.length;n++)$(e,t.nodes[n],null);else for(var r in e.scenes)for(t=e.scenes[r],n=0;n<t.nodes.length;n++)$(e,t.nodes[n],null)},e.Extensions={},e}(),ae=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(re.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(){re.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(){re.LoadShaderStringAsync(t,n,r,o)}))},e.LoadMaterialAsync=function(t,n,r,o){e._ApplyExtensions((function(e){return e.loadMaterialAsync(t,n,r,o)}),(function(){re.LoadMaterialAsync(t,n,r,o)}))},e._LoadTextureBufferAsync=function(t,n,r,o){e._ApplyExtensions((function(e){return e.loadTextureBufferAsync(t,n,r,o)}),(function(){re.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(){re.CreateTextureAsync(t,n,r,o)}))},e._ApplyExtensions=function(e,t){for(var n in oe.Extensions)if(e(oe.Extensions[n]))return;t()},e}();P._CreateGLTF1Loader=function(){return new oe};var ie=function(e){function t(){return e.call(this,"KHR_binary_glTF")||this}return _(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(re.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(B.GetBufferFromBufferView(e,i,0,i.byteLength,M.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=B.GetBufferFromBufferView(e,a,0,a.byteLength,M.UNSIGNED_BYTE);return setTimeout((function(){var e=B.DecodeBufferToText(i);n(e)})),!0},t}(ae);oe.RegisterExtension(new ie);var se=function(e){function t(){return e.call(this,"KHR_materials_common")||this}return _(t,e),t.prototype.loadRuntimeExtensionsAsync=function(e){if(!e.extensions)return!1;var t=e.extensions[this.name];if(!t)return!1;var n=t.lights;if(n)for(var r in n){var o=n[r];switch(o.type){case"ambient":var a=new y.HemisphericLight(o.name,new y.Vector3(0,1,0),e.scene),i=o.ambient;i&&(a.diffuse=y.Color3.FromArray(i.color||[1,1,1]));break;case"point":var s=new y.PointLight(o.name,new y.Vector3(10,10,10),e.scene),l=o.point;l&&(s.diffuse=y.Color3.FromArray(l.color||[1,1,1]));break;case"directional":var c=new y.DirectionalLight(o.name,new y.Vector3(0,-1,0),e.scene),u=o.directional;u&&(c.diffuse=y.Color3.FromArray(u.color||[1,1,1]));break;case"spot":var d=o.spot;d&&(new y.SpotLight(o.name,new y.Vector3(0,10,0),new y.Vector3(0,-1,0),d.fallOffAngle||Math.PI,d.fallOffExponent||0,e.scene).diffuse=y.Color3.FromArray(d.color||[1,1,1]));break;default:y.Tools.Warn('GLTF Material Common extension: light type "'+o.type+"” not supported")}}return!1},t.prototype.loadMaterialAsync=function(e,t,n,r){var o=e.materials[t];if(!o||!o.extensions)return!1;var a=o.extensions[this.name];if(!a)return!1;var i=new y.StandardMaterial(t,e.scene);return i.sideOrientation=y.Material.CounterClockWiseSideOrientation,"CONSTANT"===a.technique&&(i.disableLighting=!0),i.backFaceCulling=void 0!==a.doubleSided&&!a.doubleSided,i.alpha=void 0===a.values.transparency?1:a.values.transparency,i.specularPower=void 0===a.values.shininess?0:a.values.shininess,"string"==typeof a.values.ambient?this._loadTexture(e,a.values.ambient,i,"ambientTexture",r):i.ambientColor=y.Color3.FromArray(a.values.ambient||[0,0,0]),"string"==typeof a.values.diffuse?this._loadTexture(e,a.values.diffuse,i,"diffuseTexture",r):i.diffuseColor=y.Color3.FromArray(a.values.diffuse||[0,0,0]),"string"==typeof a.values.emission?this._loadTexture(e,a.values.emission,i,"emissiveTexture",r):i.emissiveColor=y.Color3.FromArray(a.values.emission||[0,0,0]),"string"==typeof a.values.specular?this._loadTexture(e,a.values.specular,i,"specularTexture",r):i.specularColor=y.Color3.FromArray(a.values.specular||[0,0,0]),!0},t.prototype._loadTexture=function(e,t,n,r,o){re.LoadTextureBufferAsync(e,t,(function(o){re.CreateTextureAsync(e,t,o,(function(e){return n[r]=e}))}),o)},t}(ae);function le(e,t,n,r){return y.Vector3.FromArray(t,n).scaleInPlace(r)}oe.RegisterExtension(new se);var ce=function(){function e(e,t,n,r){this.type=e,this.name=t,this.getValue=n,this.getStride=r}return e.prototype._buildAnimation=function(e,t,n){var r=new y.Animation(e,this.name,t,this.type);return r.setKeys(n),r},e}(),ue=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){o(e._babylonTransformNode,this._buildAnimation(t,n,r))},t}(ce),de=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){if(e._numMorphTargets)for(var a=function(a){var s=new y.Animation("".concat(t,"_").concat(a),i.name,n,i.type);if(s.setKeys(r.map((function(e){return{frame:e.frame,inTangent:e.inTangent?e.inTangent[a]:void 0,value:e.value[a],outTangent:e.outTangent?e.outTangent[a]:void 0,interpolation:e.interpolation}}))),e._primitiveBabylonMeshes)for(var l=0,c=e._primitiveBabylonMeshes;l<c.length;l++){var u=c[l];if(u.morphTargetManager){var d=u.morphTargetManager.getTarget(a),h=s.clone();d.animations.push(h),o(d,h)}}},i=this,s=0;s<e._numMorphTargets;s++)a(s)},t}(ce),he={translation:[new ue(y.Animation.ANIMATIONTYPE_VECTOR3,"position",le,(function(){return 3}))],rotation:[new ue(y.Animation.ANIMATIONTYPE_QUATERNION,"rotationQuaternion",(function(e,t,n,r){return y.Quaternion.FromArray(t,n).scaleInPlace(r)}),(function(){return 4}))],scale:[new ue(y.Animation.ANIMATIONTYPE_VECTOR3,"scaling",le,(function(){return 3}))],weights:[new de(y.Animation.ANIMATIONTYPE_FLOAT,"influence",(function(e,t,n,r){for(var o=new Array(e._numMorphTargets),a=0;a<o.length;a++)o[a]=t[n++]*r;return o}),(function(e){return e._numMorphTargets}))]};function fe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=function(e){return e&&"object"==typeof e};return e.reduce((function(e,t){return Object.keys(t).forEach((function(r){var o=e[r],a=t[r];Array.isArray(o)&&Array.isArray(a)?e[r]=o.concat.apply(o,a):n(o)&&n(a)?e[r]=fe(o,a):e[r]=a})),e}),{})}var pe=function(){function e(){}return e.Get=function(e,t,n){if(!t||null==n||!t[n])throw new Error("".concat(e,": Failed to find index (").concat(n,")"));return t[n]},e.TryGet=function(e,t){return e&&null!=t&&e[t]?e[t]:null},e.Assign=function(e){if(e)for(var t=0;t<e.length;t++)e[t].index=t},e}(),_e=function(){function e(e){this._completePromises=new Array,this._assetContainer=null,this._babylonLights=[],this._disableInstancedMesh=0,this._allMaterialsDirtyRequired=!1,this._extensions=new Array,this._disposed=!1,this._rootUrl=null,this._fileName=null,this._uniqueRootUrl=null,this._bin=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions=new Array,this._parent=e}return e.RegisterExtension=function(t,n){e.UnregisterExtension(t)&&y.Logger.Warn("Extension with the name '".concat(t,"' already exists")),e._RegisteredExtensions[t]={factory:n}},e.UnregisterExtension=function(t){return!!e._RegisteredExtensions[t]&&(delete e._RegisteredExtensions[t],!0)},Object.defineProperty(e.prototype,"gltf",{get:function(){if(!this._gltf)throw new Error("glTF JSON is not available");return this._gltf},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"bin",{get:function(){return this._bin},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"babylonScene",{get:function(){if(!this._babylonScene)throw new Error("Scene is not available");return this._babylonScene},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"rootBabylonMesh",{get:function(){return this._rootBabylonMesh},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"rootUrl",{get:function(){return this._rootUrl},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this._disposed||(this._disposed=!0,this._completePromises.length=0,this._extensions.forEach((function(e){return e.dispose&&e.dispose()})),this._extensions.length=0,this._gltf=null,this._bin=null,this._babylonScene=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions.length=0,this._parent.dispose())},e.prototype.importMeshAsync=function(e,t,n,r,o,a,i){var s=this;return void 0===i&&(i=""),Promise.resolve().then((function(){s._babylonScene=t,s._assetContainer=n,s._loadData(r);var a=null;if(e){var l={};if(s._gltf.nodes)for(var c=0,u=s._gltf.nodes;c<u.length;c++){var d=u[c];d.name&&(l[d.name]=d.index)}a=(e instanceof Array?e:[e]).map((function(e){var t=l[e];if(void 0===t)throw new Error("Failed to find node '".concat(e,"'"));return t}))}return s._loadAsync(o,i,a,(function(){return{meshes:s._getMeshes(),particleSystems:[],skeletons:s._getSkeletons(),animationGroups:s._getAnimationGroups(),lights:s._babylonLights,transformNodes:s._getTransformNodes(),geometries:s._getGeometries(),spriteManagers:[]}}))}))},e.prototype.loadAsync=function(e,t,n,r,o){var a=this;return void 0===o&&(o=""),Promise.resolve().then((function(){return a._babylonScene=e,a._loadData(t),a._loadAsync(n,o,null,(function(){}))}))},e.prototype._loadAsync=function(e,t,n,r){var o=this;return Promise.resolve().then((function(){o._rootUrl=e,o._uniqueRootUrl=!e.startsWith("file:")&&t?e:"".concat(e).concat(Date.now(),"/"),o._fileName=t,o._allMaterialsDirtyRequired=!1,o._loadExtensions(),o._checkExtensions();var a="".concat(T[T.LOADING]," => ").concat(T[T.READY]),i="".concat(T[T.LOADING]," => ").concat(T[T.COMPLETE]);o._parent._startPerformanceCounter(a),o._parent._startPerformanceCounter(i),o._parent._setState(T.LOADING),o._extensionsOnLoading();var s=new Array,l=o._babylonScene.blockMaterialDirtyMechanism;if(o._babylonScene.blockMaterialDirtyMechanism=!0,!o.parent.loadOnlyMaterials)if(n)s.push(o.loadSceneAsync("/nodes",{nodes:n,index:-1}));else if(null!=o._gltf.scene||o._gltf.scenes&&o._gltf.scenes[0]){var c=pe.Get("/scene",o._gltf.scenes,o._gltf.scene||0);s.push(o.loadSceneAsync("/scenes/".concat(c.index),c))}if(!o.parent.skipMaterials&&o.parent.loadAllMaterials&&o._gltf.materials)for(var u=0;u<o._gltf.materials.length;++u){var d=o._gltf.materials[u],h="/materials/"+u,f=y.Material.TriangleFillMode;s.push(o._loadMaterialAsync(h,d,null,f,(function(){})))}return o._allMaterialsDirtyRequired?o._babylonScene.blockMaterialDirtyMechanism=l:o._babylonScene._forceBlockMaterialDirtyMechanism(l),o._parent.compileMaterials&&s.push(o._compileMaterialsAsync()),o._parent.compileShadowGenerators&&s.push(o._compileShadowGeneratorsAsync()),Promise.all(s).then((function(){return o._rootBabylonMesh&&o._rootBabylonMesh!==o._parent.customRootNode&&o._rootBabylonMesh.setEnabled(!0),o._extensionsOnReady(),o._parent._setState(T.READY),o._startAnimations(),r()})).then((function(e){return o._parent._endPerformanceCounter(a),y.Tools.SetImmediate((function(){o._disposed||Promise.all(o._completePromises).then((function(){o._parent._endPerformanceCounter(i),o._parent._setState(T.COMPLETE),o._parent.onCompleteObservable.notifyObservers(void 0),o._parent.onCompleteObservable.clear(),o.dispose()}),(function(e){o._parent.onErrorObservable.notifyObservers(e),o._parent.onErrorObservable.clear(),o.dispose()}))})),e}))})).catch((function(e){throw o._disposed||(o._parent.onErrorObservable.notifyObservers(e),o._parent.onErrorObservable.clear(),o.dispose()),e}))},e.prototype._loadData=function(e){if(this._gltf=e.json,this._setupData(),e.bin){var t=this._gltf.buffers;if(t&&t[0]&&!t[0].uri){var n=t[0];(n.byteLength<e.bin.byteLength-3||n.byteLength>e.bin.byteLength)&&y.Logger.Warn("Binary buffer length (".concat(n.byteLength,") from JSON does not match chunk length (").concat(e.bin.byteLength,")")),this._bin=e.bin}else y.Logger.Warn("Unexpected BIN chunk")}},e.prototype._setupData=function(){if(pe.Assign(this._gltf.accessors),pe.Assign(this._gltf.animations),pe.Assign(this._gltf.buffers),pe.Assign(this._gltf.bufferViews),pe.Assign(this._gltf.cameras),pe.Assign(this._gltf.images),pe.Assign(this._gltf.materials),pe.Assign(this._gltf.meshes),pe.Assign(this._gltf.nodes),pe.Assign(this._gltf.samplers),pe.Assign(this._gltf.scenes),pe.Assign(this._gltf.skins),pe.Assign(this._gltf.textures),this._gltf.nodes){for(var e={},t=0,n=this._gltf.nodes;t<n.length;t++)if((l=n[t]).children)for(var r=0,o=l.children;r<o.length;r++)e[o[r]]=l.index;for(var a=this._createRootNode(),i=0,s=this._gltf.nodes;i<s.length;i++){var l,c=e[(l=s[i]).index];l.parent=void 0===c?a:this._gltf.nodes[c]}}},e.prototype._loadExtensions=function(){var t;for(var n in e._RegisteredExtensions)if(!1===(null===(t=this.parent.extensionOptions[n])||void 0===t?void 0:t.enabled))this.isExtensionUsed(n)&&y.Logger.Warn("Extension ".concat(n," is used but has been explicitly disabled."));else{var r=e._RegisteredExtensions[n].factory(this);r.name!==n&&y.Logger.Warn("The name of the glTF loader extension instance does not match the registered name: ".concat(r.name," !== ").concat(n)),this._extensions.push(r),this._parent.onExtensionLoadedObservable.notifyObservers(r)}this._extensions.sort((function(e,t){return(e.order||Number.MAX_VALUE)-(t.order||Number.MAX_VALUE)})),this._parent.onExtensionLoadedObservable.clear()},e.prototype._checkExtensions=function(){var e;if(this._gltf.extensionsRequired)for(var t=function(t){if(!n._extensions.some((function(e){return e.name===t&&e.enabled}))){if(!1===(null===(e=n.parent.extensionOptions[t])||void 0===e?void 0:e.enabled))throw new Error("Required extension ".concat(t," is disabled"));throw new Error("Required extension ".concat(t," is not available"))}},n=this,r=0,o=this._gltf.extensionsRequired;r<o.length;r++)t(o[r])},e.prototype._createRootNode=function(){if(void 0!==this._parent.customRootNode)return this._rootBabylonMesh=this._parent.customRootNode,{_babylonTransformNode:null===this._rootBabylonMesh?void 0:this._rootBabylonMesh,index:-1};this._babylonScene._blockEntityCollection=!!this._assetContainer;var t=new y.Mesh("__root__",this._babylonScene);this._rootBabylonMesh=t,this._rootBabylonMesh._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._rootBabylonMesh.setEnabled(!1);var n={_babylonTransformNode:this._rootBabylonMesh,index:-1};switch(this._parent.coordinateSystemMode){case b.AUTO:this._babylonScene.useRightHandedSystem||(n.rotation=[0,1,0,0],n.scale=[1,1,-1],e._LoadTransform(n,this._rootBabylonMesh));break;case b.FORCE_RIGHT_HANDED:this._babylonScene.useRightHandedSystem=!0;break;default:throw new Error("Invalid coordinate system mode (".concat(this._parent.coordinateSystemMode,")"))}return this._parent.onMeshLoadedObservable.notifyObservers(t),n},e.prototype.loadSceneAsync=function(e,t){var n=this,r=this._extensionsLoadSceneAsync(e,t);if(r)return r;var o=new Array;if(this.logOpen("".concat(e," ").concat(t.name||"")),t.nodes)for(var a=0,i=t.nodes;a<i.length;a++){var s=i[a],l=pe.Get("".concat(e,"/nodes/").concat(s),this._gltf.nodes,s);o.push(this.loadNodeAsync("/nodes/".concat(l.index),l,(function(e){e.parent=n._rootBabylonMesh})))}for(var c=0,u=this._postSceneLoadActions;c<u.length;c++)(0,u[c])();return o.push(this._loadAnimationsAsync()),this.logClose(),Promise.all(o).then((function(){}))},e.prototype._forEachPrimitive=function(e,t){if(e._primitiveBabylonMeshes)for(var n=0,r=e._primitiveBabylonMeshes;n<r.length;n++)t(r[n])},e.prototype._getGeometries=function(){var e=[],t=this._gltf.nodes;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];this._forEachPrimitive(o,(function(t){var n=t.geometry;n&&-1===e.indexOf(n)&&e.push(n)}))}return e},e.prototype._getMeshes=function(){var e=[];this._rootBabylonMesh instanceof y.AbstractMesh&&e.push(this._rootBabylonMesh);var t=this._gltf.nodes;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];this._forEachPrimitive(o,(function(t){e.push(t)}))}return e},e.prototype._getTransformNodes=function(){var e=[],t=this._gltf.nodes;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];o._babylonTransformNode&&"TransformNode"===o._babylonTransformNode.getClassName()&&e.push(o._babylonTransformNode),o._babylonTransformNodeForSkin&&e.push(o._babylonTransformNodeForSkin)}return e},e.prototype._getSkeletons=function(){var e=[],t=this._gltf.skins;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];o._data&&e.push(o._data.babylonSkeleton)}return e},e.prototype._getAnimationGroups=function(){var e=[],t=this._gltf.animations;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];o._babylonAnimationGroup&&e.push(o._babylonAnimationGroup)}return e},e.prototype._startAnimations=function(){switch(this._parent.animationStartMode){case A.NONE:break;case A.FIRST:0!==(e=this._getAnimationGroups()).length&&e[0].start(!0);break;case A.ALL:for(var e,t=0,n=e=this._getAnimationGroups();t<n.length;t++)n[t].start(!0);break;default:return void y.Logger.Error("Invalid animation start mode (".concat(this._parent.animationStartMode,")"))}},e.prototype.loadNodeAsync=function(t,n,r){var o=this;void 0===r&&(r=function(){});var a=this._extensionsLoadNodeAsync(t,n,r);if(a)return a;if(n._babylonTransformNode)throw new Error("".concat(t,": Invalid recursive node hierarchy"));var i=new Array;this.logOpen("".concat(t," ").concat(n.name||""));var s=function(a){if(e.AddPointerMetadata(a,t),e._LoadTransform(n,a),null!=n.camera){var s=pe.Get("".concat(t,"/camera"),o._gltf.cameras,n.camera);i.push(o.loadCameraAsync("/cameras/".concat(s.index),s,(function(e){e.parent=a})))}if(n.children)for(var l=0,c=n.children;l<c.length;l++){var u=c[l],d=pe.Get("".concat(t,"/children/").concat(u),o._gltf.nodes,u);i.push(o.loadNodeAsync("/nodes/".concat(d.index),d,(function(e){e.parent=a})))}r(a)},l=null!=n.mesh,c=this._parent.loadSkins&&null!=n.skin;if(!l||c){var u=n.name||"node".concat(n.index);this._babylonScene._blockEntityCollection=!!this._assetContainer;var d=new y.TransformNode(u,this._babylonScene);d._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,null==n.mesh?n._babylonTransformNode=d:n._babylonTransformNodeForSkin=d,s(d)}if(l)if(c){var h=pe.Get("".concat(t,"/mesh"),this._gltf.meshes,n.mesh);i.push(this._loadMeshAsync("/meshes/".concat(h.index),n,h,(function(e){var r=n._babylonTransformNodeForSkin;e.metadata=fe(r.metadata,e.metadata||{});var a=pe.Get("".concat(t,"/skin"),o._gltf.skins,n.skin);i.push(o._loadSkinAsync("/skins/".concat(a.index),n,a,(function(t){o._forEachPrimitive(n,(function(e){e.skeleton=t})),o._postSceneLoadActions.push((function(){if(null!=a.skeleton){var t=pe.Get("/skins/".concat(a.index,"/skeleton"),o._gltf.nodes,a.skeleton).parent;n.index===t.index?e.parent=r.parent:e.parent=t._babylonTransformNode}else e.parent=o._rootBabylonMesh;o._parent.onSkinLoadedObservable.notifyObservers({node:r,skinnedNode:e})}))})))})))}else h=pe.Get("".concat(t,"/mesh"),this._gltf.meshes,n.mesh),i.push(this._loadMeshAsync("/meshes/".concat(h.index),n,h,s));return this.logClose(),Promise.all(i).then((function(){return o._forEachPrimitive(n,(function(e){e.geometry&&e.geometry.useBoundingInfoFromGeometry?e._updateBoundingInfo():e.refreshBoundingInfo(!0,!0)})),n._babylonTransformNode}))},e.prototype._loadMeshAsync=function(e,t,n,r){var o=n.primitives;if(!o||!o.length)throw new Error("".concat(e,": Primitives are missing"));null==o[0].index&&pe.Assign(o);var a=new Array;this.logOpen("".concat(e," ").concat(n.name||""));var i=t.name||"node".concat(t.index);if(1===o.length){var s=n.primitives[0];a.push(this._loadMeshPrimitiveAsync("".concat(e,"/primitives/").concat(s.index),i,t,n,s,(function(e){t._babylonTransformNode=e,t._primitiveBabylonMeshes=[e]})))}else{this._babylonScene._blockEntityCollection=!!this._assetContainer,t._babylonTransformNode=new y.TransformNode(i,this._babylonScene),t._babylonTransformNode._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._primitiveBabylonMeshes=[];for(var l=0,c=o;l<c.length;l++)s=c[l],a.push(this._loadMeshPrimitiveAsync("".concat(e,"/primitives/").concat(s.index),"".concat(i,"_primitive").concat(s.index),t,n,s,(function(e){e.parent=t._babylonTransformNode,t._primitiveBabylonMeshes.push(e)})))}return r(t._babylonTransformNode),this.logClose(),Promise.all(a).then((function(){return t._babylonTransformNode}))},e.prototype._loadMeshPrimitiveAsync=function(t,n,r,o,a,i){var s=this,l=this._extensionsLoadMeshPrimitiveAsync(t,n,r,o,a,i);if(l)return l;this.logOpen("".concat(t));var c,u,d=0===this._disableInstancedMesh&&this._parent.createInstances&&null==r.skin&&!o.primitives[0].targets;if(d&&a._instanceData)this._babylonScene._blockEntityCollection=!!this._assetContainer,(c=a._instanceData.babylonSourceMesh.createInstance(n))._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,u=a._instanceData.promise;else{var h=new Array;this._babylonScene._blockEntityCollection=!!this._assetContainer;var f=new y.Mesh(n,this._babylonScene);f._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,f.sideOrientation=this._babylonScene.useRightHandedSystem?y.Material.CounterClockWiseSideOrientation:y.Material.ClockWiseSideOrientation,this._createMorphTargets(t,r,o,a,f),h.push(this._loadVertexDataAsync(t,a,f).then((function(e){return s._loadMorphTargetsAsync(t,a,f,e).then((function(){s._disposed||(s._babylonScene._blockEntityCollection=!!s._assetContainer,e.applyToMesh(f),e._parentContainer=s._assetContainer,s._babylonScene._blockEntityCollection=!1)}))})));var p=e._GetDrawMode(t,a.mode);if(null==a.material){var _=this._defaultBabylonMaterialData[p];_||(_=this._createDefaultMaterial("__GLTFLoader._default",p),this._parent.onMaterialLoadedObservable.notifyObservers(_),this._defaultBabylonMaterialData[p]=_),f.material=_}else if(!this.parent.skipMaterials){var m=pe.Get("".concat(t,"/material"),this._gltf.materials,a.material);h.push(this._loadMaterialAsync("/materials/".concat(m.index),m,f,p,(function(e){f.material=e})))}u=Promise.all(h),d&&(a._instanceData={babylonSourceMesh:f,promise:u}),c=f}return e.AddPointerMetadata(c,t),this._parent.onMeshLoadedObservable.notifyObservers(c),i(c),this.logClose(),u.then((function(){return c}))},e.prototype._loadVertexDataAsync=function(e,t,n){var r=this,o=this._extensionsLoadVertexDataAsync(e,t,n);if(o)return o;var a=t.attributes;if(!a)throw new Error("".concat(e,": Attributes are missing"));var i=new Array,s=new y.Geometry(n.name,this._babylonScene);if(null==t.indices)n.isUnIndexed=!0;else{var l=pe.Get("".concat(e,"/indices"),this._gltf.accessors,t.indices);i.push(this._loadIndicesAccessorAsync("/accessors/".concat(l.index),l).then((function(e){s.setIndices(e)})))}var c=function(t,o,l){if(null!=a[t]){n._delayInfo=n._delayInfo||[],-1===n._delayInfo.indexOf(o)&&n._delayInfo.push(o);var c=pe.Get("".concat(e,"/attributes/").concat(t),r._gltf.accessors,a[t]);i.push(r._loadVertexAccessorAsync("/accessors/".concat(c.index),c,o).then((function(e){var t,o;if(e.getKind()===y.VertexBuffer.PositionKind&&!r.parent.alwaysComputeBoundingBox&&!n.skeleton&&c.min&&c.max){var a=(t=y.TmpVectors.Vector3[0]).copyFromFloats.apply(t,c.min),i=(o=y.TmpVectors.Vector3[1]).copyFromFloats.apply(o,c.max);if(c.normalized&&5126!==c.componentType){var l=1;switch(c.componentType){case 5120:l=127;break;case 5121:l=255;break;case 5122:l=32767;break;case 5123:l=65535}var u=1/l;a.scaleInPlace(u),i.scaleInPlace(u)}s._boundingInfo=new y.BoundingInfo(a,i),s.useBoundingInfoFromGeometry=!0}s.setVerticesBuffer(e,c.count)}))),o==y.VertexBuffer.MatricesIndicesExtraKind&&(n.numBoneInfluencers=8),l&&l(c)}};return c("POSITION",y.VertexBuffer.PositionKind),c("NORMAL",y.VertexBuffer.NormalKind),c("TANGENT",y.VertexBuffer.TangentKind),c("TEXCOORD_0",y.VertexBuffer.UVKind),c("TEXCOORD_1",y.VertexBuffer.UV2Kind),c("TEXCOORD_2",y.VertexBuffer.UV3Kind),c("TEXCOORD_3",y.VertexBuffer.UV4Kind),c("TEXCOORD_4",y.VertexBuffer.UV5Kind),c("TEXCOORD_5",y.VertexBuffer.UV6Kind),c("JOINTS_0",y.VertexBuffer.MatricesIndicesKind),c("WEIGHTS_0",y.VertexBuffer.MatricesWeightsKind),c("JOINTS_1",y.VertexBuffer.MatricesIndicesExtraKind),c("WEIGHTS_1",y.VertexBuffer.MatricesWeightsExtraKind),c("COLOR_0",y.VertexBuffer.ColorKind,(function(e){"VEC4"===e.type&&(n.hasVertexAlpha=!0)})),Promise.all(i).then((function(){return s}))},e.prototype._createMorphTargets=function(e,t,n,r,o){if(r.targets&&this._parent.loadMorphTargets){if(null==t._numMorphTargets)t._numMorphTargets=r.targets.length;else if(r.targets.length!==t._numMorphTargets)throw new Error("".concat(e,": Primitives do not have the same number of targets"));var a=n.extras?n.extras.targetNames:null;this._babylonScene._blockEntityCollection=!!this._assetContainer,o.morphTargetManager=new y.MorphTargetManager(this._babylonScene),o.morphTargetManager._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,o.morphTargetManager.areUpdatesFrozen=!0;for(var i=0;i<r.targets.length;i++){var s=t.weights?t.weights[i]:n.weights?n.weights[i]:0,l=a?a[i]:"morphTarget".concat(i);o.morphTargetManager.addTarget(new y.MorphTarget(l,s,o.getScene()))}}},e.prototype._loadMorphTargetsAsync=function(e,t,n,r){if(!t.targets||!this._parent.loadMorphTargets)return Promise.resolve();for(var o=new Array,a=n.morphTargetManager,i=0;i<a.numTargets;i++){var s=a.getTarget(i);o.push(this._loadMorphTargetVertexDataAsync("".concat(e,"/targets/").concat(i),r,t.targets[i],s))}return Promise.all(o).then((function(){a.areUpdatesFrozen=!1}))},e.prototype._loadMorphTargetVertexDataAsync=function(e,t,n,r){var o=this,a=new Array,i=function(r,i,s){if(null!=n[r]){var l=t.getVertexBuffer(i);if(l){var c=pe.Get("".concat(e,"/").concat(r),o._gltf.accessors,n[r]);a.push(o._loadFloatAccessorAsync("/accessors/".concat(c.index),c).then((function(e){s(l,e)})))}}};return i("POSITION",y.VertexBuffer.PositionKind,(function(e,t){var n=new Float32Array(t.length);e.forEach(t.length,(function(e,r){n[r]=t[r]+e})),r.setPositions(n)})),i("NORMAL",y.VertexBuffer.NormalKind,(function(e,t){var n=new Float32Array(t.length);e.forEach(n.length,(function(e,r){n[r]=t[r]+e})),r.setNormals(n)})),i("TANGENT",y.VertexBuffer.TangentKind,(function(e,t){var n=new Float32Array(t.length/3*4),o=0;e.forEach(t.length/3*4,(function(e,r){(r+1)%4!=0&&(n[o]=t[o]+e,o++)})),r.setTangents(n)})),Promise.all(a).then((function(){}))},e._LoadTransform=function(e,t){if(null==e.skin){var n=y.Vector3.Zero(),r=y.Quaternion.Identity(),o=y.Vector3.One();e.matrix?y.Matrix.FromArray(e.matrix).decompose(o,r,n):(e.translation&&(n=y.Vector3.FromArray(e.translation)),e.rotation&&(r=y.Quaternion.FromArray(e.rotation)),e.scale&&(o=y.Vector3.FromArray(e.scale))),t.position=n,t.rotationQuaternion=r,t.scaling=o}},e.prototype._loadSkinAsync=function(e,t,n,r){var o=this;if(!this._parent.loadSkins)return Promise.resolve();var a=this._extensionsLoadSkinAsync(e,t,n);if(a)return a;if(n._data)return r(n._data.babylonSkeleton),n._data.promise;var i="skeleton".concat(n.index);this._babylonScene._blockEntityCollection=!!this._assetContainer;var s=new y.Skeleton(n.name||i,i,this._babylonScene);s._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._loadBones(e,n,s);var l=this._loadSkinInverseBindMatricesDataAsync(e,n).then((function(e){o._updateBoneMatrices(s,e)}));return n._data={babylonSkeleton:s,promise:l},r(s),l},e.prototype._loadBones=function(e,t,n){if(null==t.skeleton||this._parent.alwaysComputeSkeletonRootNode){var r=this._findSkeletonRootNode("".concat(e,"/joints"),t.joints);if(r)if(void 0===t.skeleton)t.skeleton=r.index;else{var o=pe.Get("".concat(e,"/skeleton"),this._gltf.nodes,t.skeleton);o===r||function(e,t){for(;t.parent;t=t.parent)if(t.parent===e)return!0;return!1}(o,r)||(y.Logger.Warn("".concat(e,"/skeleton: Overriding with nearest common ancestor as skeleton node is not a common root")),t.skeleton=r.index)}else y.Logger.Warn("".concat(e,": Failed to find common root"))}for(var a={},i=0,s=t.joints;i<s.length;i++){var l=s[i],c=pe.Get("".concat(e,"/joints/").concat(l),this._gltf.nodes,l);this._loadBone(c,t,n,a)}},e.prototype._findSkeletonRootNode=function(e,t){if(0===t.length)return null;for(var n={},r=0,o=t;r<o.length;r++){for(var a=o[r],i=[],s=pe.Get("".concat(e,"/").concat(a),this._gltf.nodes,a);-1!==s.index;)i.unshift(s),s=s.parent;n[a]=i}for(var l=null,c=0;;++c){if(c>=(i=n[t[0]]).length)return l;s=i[c];for(var u=1;u<t.length;++u)if(c>=(i=n[t[u]]).length||s!==i[c])return l;l=s}},e.prototype._loadBone=function(e,t,n,r){e._isJoint=!0;var o=r[e.index];if(o)return o;var a=null;e.index!==t.skeleton&&(e.parent&&-1!==e.parent.index?a=this._loadBone(e.parent,t,n,r):void 0!==t.skeleton&&y.Logger.Warn("/skins/".concat(t.index,"/skeleton: Skeleton node is not a common root")));var i=t.joints.indexOf(e.index);return o=new y.Bone(e.name||"joint".concat(e.index),n,a,this._getNodeMatrix(e),null,null,i),r[e.index]=o,this._postSceneLoadActions.push((function(){o.linkTransformNode(e._babylonTransformNode)})),o},e.prototype._loadSkinInverseBindMatricesDataAsync=function(e,t){if(null==t.inverseBindMatrices)return Promise.resolve(null);var n=pe.Get("".concat(e,"/inverseBindMatrices"),this._gltf.accessors,t.inverseBindMatrices);return this._loadFloatAccessorAsync("/accessors/".concat(n.index),n)},e.prototype._updateBoneMatrices=function(e,t){for(var n=0,r=e.bones;n<r.length;n++){var o=r[n],a=y.Matrix.Identity(),i=o._index;t&&-1!==i&&(y.Matrix.FromArrayToRef(t,16*i,a),a.invertToRef(a));var s=o.getParent();s&&a.multiplyToRef(s.getAbsoluteInverseBindMatrix(),a),o.updateMatrix(a,!1,!1),o._updateAbsoluteBindMatrices(void 0,!1)}},e.prototype._getNodeMatrix=function(e){return e.matrix?y.Matrix.FromArray(e.matrix):y.Matrix.Compose(e.scale?y.Vector3.FromArray(e.scale):y.Vector3.One(),e.rotation?y.Quaternion.FromArray(e.rotation):y.Quaternion.Identity(),e.translation?y.Vector3.FromArray(e.translation):y.Vector3.Zero())},e.prototype.loadCameraAsync=function(t,n,r){void 0===r&&(r=function(){});var o=this._extensionsLoadCameraAsync(t,n,r);if(o)return o;var a=new Array;this.logOpen("".concat(t," ").concat(n.name||"")),this._babylonScene._blockEntityCollection=!!this._assetContainer;var i=new y.FreeCamera(n.name||"camera".concat(n.index),y.Vector3.Zero(),this._babylonScene,!1);switch(i._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,i.ignoreParentScaling=!0,n._babylonCamera=i,i.rotation.set(0,Math.PI,0),n.type){case"perspective":var s=n.perspective;if(!s)throw new Error("".concat(t,": Camera perspective properties are missing"));i.fov=s.yfov,i.minZ=s.znear,i.maxZ=s.zfar||0;break;case"orthographic":if(!n.orthographic)throw new Error("".concat(t,": Camera orthographic properties are missing"));i.mode=y.Camera.ORTHOGRAPHIC_CAMERA,i.orthoLeft=-n.orthographic.xmag,i.orthoRight=n.orthographic.xmag,i.orthoBottom=-n.orthographic.ymag,i.orthoTop=n.orthographic.ymag,i.minZ=n.orthographic.znear,i.maxZ=n.orthographic.zfar;break;default:throw new Error("".concat(t,": Invalid camera type (").concat(n.type,")"))}return e.AddPointerMetadata(i,t),this._parent.onCameraLoadedObservable.notifyObservers(i),r(i),this.logClose(),Promise.all(a).then((function(){return i}))},e.prototype._loadAnimationsAsync=function(){var e=this._gltf.animations;if(!e)return Promise.resolve();for(var t=new Array,n=0;n<e.length;n++){var r=e[n];t.push(this.loadAnimationAsync("/animations/".concat(r.index),r).then((function(e){0===e.targetedAnimations.length&&e.dispose()})))}return Promise.all(t).then((function(){}))},e.prototype.loadAnimationAsync=function(e,t){var n=this._extensionsLoadAnimationAsync(e,t);if(n)return n;this._babylonScene._blockEntityCollection=!!this._assetContainer;var r=new y.AnimationGroup(t.name||"animation".concat(t.index),this._babylonScene);r._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._babylonAnimationGroup=r;var o=new Array;pe.Assign(t.channels),pe.Assign(t.samplers);for(var a=0,i=t.channels;a<i.length;a++){var s=i[a];o.push(this._loadAnimationChannelAsync("".concat(e,"/channels/").concat(s.index),e,t,s,(function(e,t){e.animations=e.animations||[],e.animations.push(t),r.addTargetedAnimation(t,e)})))}return Promise.all(o).then((function(){return r.normalize(0),r}))},e.prototype._loadAnimationChannelAsync=function(e,t,n,r,o){var a=this._extensionsLoadAnimationChannelAsync(e,t,n,r,o);if(a)return a;if(null==r.target.node)return Promise.resolve();var i,s=pe.Get("".concat(e,"/target/node"),this._gltf.nodes,r.target.node),l=r.target.path,c="weights"===l;if(c&&!s._numMorphTargets||!c&&!s._babylonTransformNode)return Promise.resolve();if(!this._parent.loadNodeAnimations&&!c&&!s._isJoint)return Promise.resolve();switch(l){case"translation":i=he.translation;break;case"rotation":i=he.rotation;break;case"scale":i=he.scale;break;case"weights":i=he.weights;break;default:throw new Error("".concat(e,"/target/path: Invalid value (").concat(r.target.path,")"))}var u={object:s,info:i};return this._loadAnimationChannelFromTargetInfoAsync(e,t,n,r,u,o)},e.prototype._loadAnimationChannelFromTargetInfoAsync=function(e,t,n,r,o,a){var i=this.parent.targetFps,s=1/i,l=pe.Get("".concat(e,"/sampler"),n.samplers,r.sampler);return this._loadAnimationSamplerAsync("".concat(t,"/samplers/").concat(r.sampler),l).then((function(e){for(var t=0,l=o.object,c=0,u=o.info;c<u.length;c++){var d=u[c],h=d.getStride(l),f=e.input,p=e.output,_=new Array(f.length),m=0;switch(e.interpolation){case"STEP":for(var y=0;y<f.length;y++){var v=d.getValue(l,p,m,1);m+=h,_[y]={frame:f[y]*i,value:v,interpolation:1}}break;case"CUBICSPLINE":for(y=0;y<f.length;y++){var g=d.getValue(l,p,m,s);m+=h,v=d.getValue(l,p,m,1),m+=h;var b=d.getValue(l,p,m,s);m+=h,_[y]={frame:f[y]*i,inTangent:g,value:v,outTangent:b}}break;case"LINEAR":for(y=0;y<f.length;y++)v=d.getValue(l,p,m,1),m+=h,_[y]={frame:f[y]*i,value:v}}if(m>0){var A="".concat(n.name||"animation".concat(n.index),"_channel").concat(r.index,"_").concat(t);d.buildAnimations(l,A,i,_,(function(e,n){++t,a(e,n)}))}}}))},e.prototype._loadAnimationSamplerAsync=function(e,t){if(t._data)return t._data;var n=t.interpolation||"LINEAR";switch(n){case"STEP":case"LINEAR":case"CUBICSPLINE":break;default:throw new Error("".concat(e,"/interpolation: Invalid value (").concat(t.interpolation,")"))}var r=pe.Get("".concat(e,"/input"),this._gltf.accessors,t.input),o=pe.Get("".concat(e,"/output"),this._gltf.accessors,t.output);return t._data=Promise.all([this._loadFloatAccessorAsync("/accessors/".concat(r.index),r),this._loadFloatAccessorAsync("/accessors/".concat(o.index),o)]).then((function(e){var t=e[0],r=e[1];return{input:t,interpolation:n,output:r}})),t._data},e.prototype.loadBufferAsync=function(e,t,n,r){var o=this._extensionsLoadBufferAsync(e,t,n,r);if(o)return o;if(!t._data)if(t.uri)t._data=this.loadUriAsync("".concat(e,"/uri"),t,t.uri);else{if(!this._bin)throw new Error("".concat(e,": Uri is missing or the binary glTF is missing its binary chunk"));t._data=this._bin.readAsync(0,t.byteLength)}return t._data.then((function(t){try{return new Uint8Array(t.buffer,t.byteOffset+n,r)}catch(t){throw new Error("".concat(e,": ").concat(t.message))}}))},e.prototype.loadBufferViewAsync=function(e,t){var n=this._extensionsLoadBufferViewAsync(e,t);if(n)return n;if(t._data)return t._data;var r=pe.Get("".concat(e,"/buffer"),this._gltf.buffers,t.buffer);return t._data=this.loadBufferAsync("/buffers/".concat(r.index),r,t.byteOffset||0,t.byteLength),t._data},e.prototype._loadAccessorAsync=function(t,n,r){var o=this;if(n._data)return n._data;var a=e._GetNumComponents(t,n.type),i=a*y.VertexBuffer.GetTypeByteLength(n.componentType),s=a*n.count;if(null==n.bufferView)n._data=Promise.resolve(new r(s));else{var l=pe.Get("".concat(t,"/bufferView"),this._gltf.bufferViews,n.bufferView);n._data=this.loadBufferViewAsync("/bufferViews/".concat(l.index),l).then((function(o){if(5126!==n.componentType||n.normalized||l.byteStride&&l.byteStride!==i){var c=new r(s);return y.VertexBuffer.ForEach(o,n.byteOffset||0,l.byteStride||i,a,n.componentType,c.length,n.normalized||!1,(function(e,t){c[t]=e})),c}return e._GetTypedArray(t,n.componentType,o,n.byteOffset,s)}))}if(n.sparse){var c=n.sparse;n._data=n._data.then((function(s){var l=s,u=pe.Get("".concat(t,"/sparse/indices/bufferView"),o._gltf.bufferViews,c.indices.bufferView),d=pe.Get("".concat(t,"/sparse/values/bufferView"),o._gltf.bufferViews,c.values.bufferView);return Promise.all([o.loadBufferViewAsync("/bufferViews/".concat(u.index),u),o.loadBufferViewAsync("/bufferViews/".concat(d.index),d)]).then((function(o){var s,u=o[0],d=o[1],h=e._GetTypedArray("".concat(t,"/sparse/indices"),c.indices.componentType,u,c.indices.byteOffset,c.count),f=a*c.count;if(5126!==n.componentType||n.normalized){var p=e._GetTypedArray("".concat(t,"/sparse/values"),n.componentType,d,c.values.byteOffset,f);s=new r(f),y.VertexBuffer.ForEach(p,0,i,a,n.componentType,s.length,n.normalized||!1,(function(e,t){s[t]=e}))}else s=e._GetTypedArray("".concat(t,"/sparse/values"),n.componentType,d,c.values.byteOffset,f);for(var _=0,m=0;m<h.length;m++)for(var v=h[m]*a,g=0;g<a;g++)l[v++]=s[_++];return l}))}))}return n._data},e.prototype._loadFloatAccessorAsync=function(e,t){return this._loadAccessorAsync(e,t,Float32Array)},e.prototype._loadIndicesAccessorAsync=function(t,n){if("SCALAR"!==n.type)throw new Error("".concat(t,"/type: Invalid value ").concat(n.type));if(5121!==n.componentType&&5123!==n.componentType&&5125!==n.componentType)throw new Error("".concat(t,"/componentType: Invalid value ").concat(n.componentType));if(n._data)return n._data;if(n.sparse){var r=e._GetTypedArrayConstructor("".concat(t,"/componentType"),n.componentType);n._data=this._loadAccessorAsync(t,n,r)}else{var o=pe.Get("".concat(t,"/bufferView"),this._gltf.bufferViews,n.bufferView);n._data=this.loadBufferViewAsync("/bufferViews/".concat(o.index),o).then((function(r){return e._GetTypedArray(t,n.componentType,r,n.byteOffset,n.count)}))}return n._data},e.prototype._loadVertexBufferViewAsync=function(e){if(e._babylonBuffer)return e._babylonBuffer;var t=this._babylonScene.getEngine();return e._babylonBuffer=this.loadBufferViewAsync("/bufferViews/".concat(e.index),e).then((function(e){return new y.Buffer(t,e,!1)})),e._babylonBuffer},e.prototype._loadVertexAccessorAsync=function(t,n,r){var o;if(null===(o=n._babylonVertexBuffer)||void 0===o?void 0:o[r])return n._babylonVertexBuffer[r];n._babylonVertexBuffer||(n._babylonVertexBuffer={});var a=this._babylonScene.getEngine();if(n.sparse||null==n.bufferView)n._babylonVertexBuffer[r]=this._loadFloatAccessorAsync(t,n).then((function(e){return new y.VertexBuffer(a,e,r,!1)}));else{var i=pe.Get("".concat(t,"/bufferView"),this._gltf.bufferViews,n.bufferView);n._babylonVertexBuffer[r]=this._loadVertexBufferViewAsync(i).then((function(o){var s=e._GetNumComponents(t,n.type);return new y.VertexBuffer(a,o,r,!1,void 0,i.byteStride,void 0,n.byteOffset,s,n.componentType,n.normalized,!0,void 0,!0)}))}return n._babylonVertexBuffer[r]},e.prototype._loadMaterialMetallicRoughnessPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return t&&(t.baseColorFactor?(n.albedoColor=y.Color3.FromArray(t.baseColorFactor),n.alpha=t.baseColorFactor[3]):n.albedoColor=y.Color3.White(),n.metallic=null==t.metallicFactor?1:t.metallicFactor,n.roughness=null==t.roughnessFactor?1:t.roughnessFactor,t.baseColorTexture&&r.push(this.loadTextureInfoAsync("".concat(e,"/baseColorTexture"),t.baseColorTexture,(function(e){e.name="".concat(n.name," (Base Color)"),n.albedoTexture=e}))),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture.nonColorData=!0,r.push(this.loadTextureInfoAsync("".concat(e,"/metallicRoughnessTexture"),t.metallicRoughnessTexture,(function(e){e.name="".concat(n.name," (Metallic Roughness)"),n.metallicTexture=e}))),n.useMetallnessFromMetallicTextureBlue=!0,n.useRoughnessFromMetallicTextureGreen=!0,n.useRoughnessFromMetallicTextureAlpha=!1)),Promise.all(r).then((function(){}))},e.prototype._loadMaterialAsync=function(t,n,r,o,a){void 0===a&&(a=function(){});var i=this._extensionsLoadMaterialAsync(t,n,r,o,a);if(i)return i;n._data=n._data||{};var s=n._data[o];if(!s){this.logOpen("".concat(t," ").concat(n.name||""));var l=this.createMaterial(t,n,o);s={babylonMaterial:l,babylonMeshes:[],promise:this.loadMaterialPropertiesAsync(t,n,l)},n._data[o]=s,e.AddPointerMetadata(l,t),this._parent.onMaterialLoadedObservable.notifyObservers(l),this.logClose()}return r&&(s.babylonMeshes.push(r),r.onDisposeObservable.addOnce((function(){var e=s.babylonMeshes.indexOf(r);-1!==e&&s.babylonMeshes.splice(e,1)}))),a(s.babylonMaterial),s.promise.then((function(){return s.babylonMaterial}))},e.prototype._createDefaultMaterial=function(e,t){this._babylonScene._blockEntityCollection=!!this._assetContainer;var n=new y.PBRMaterial(e,this._babylonScene);return n._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,n.fillMode=t,n.enableSpecularAntiAliasing=!0,n.useRadianceOverAlpha=!this._parent.transparencyAsCoverage,n.useSpecularOverAlpha=!this._parent.transparencyAsCoverage,n.transparencyMode=y.PBRMaterial.PBRMATERIAL_OPAQUE,n.metallic=1,n.roughness=1,n},e.prototype.createMaterial=function(e,t,n){var r=this._extensionsCreateMaterial(e,t,n);if(r)return r;var o=t.name||"material".concat(t.index);return this._createDefaultMaterial(o,n)},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this._extensionsLoadMaterialPropertiesAsync(e,t,n);if(r)return r;var o=new Array;return o.push(this.loadMaterialBasePropertiesAsync(e,t,n)),t.pbrMetallicRoughness&&o.push(this._loadMaterialMetallicRoughnessPropertiesAsync("".concat(e,"/pbrMetallicRoughness"),t.pbrMetallicRoughness,n)),this.loadMaterialAlphaProperties(e,t,n),Promise.all(o).then((function(){}))},e.prototype.loadMaterialBasePropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return n.emissiveColor=t.emissiveFactor?y.Color3.FromArray(t.emissiveFactor):new y.Color3(0,0,0),t.doubleSided&&(n.backFaceCulling=!1,n.twoSidedLighting=!0),t.normalTexture&&(t.normalTexture.nonColorData=!0,r.push(this.loadTextureInfoAsync("".concat(e,"/normalTexture"),t.normalTexture,(function(e){e.name="".concat(n.name," (Normal)"),n.bumpTexture=e}))),n.invertNormalMapX=!this._babylonScene.useRightHandedSystem,n.invertNormalMapY=this._babylonScene.useRightHandedSystem,null!=t.normalTexture.scale&&n.bumpTexture&&(n.bumpTexture.level=t.normalTexture.scale),n.forceIrradianceInFragment=!0),t.occlusionTexture&&(t.occlusionTexture.nonColorData=!0,r.push(this.loadTextureInfoAsync("".concat(e,"/occlusionTexture"),t.occlusionTexture,(function(e){e.name="".concat(n.name," (Occlusion)"),n.ambientTexture=e}))),n.useAmbientInGrayScale=!0,null!=t.occlusionTexture.strength&&(n.ambientTextureStrength=t.occlusionTexture.strength)),t.emissiveTexture&&r.push(this.loadTextureInfoAsync("".concat(e,"/emissiveTexture"),t.emissiveTexture,(function(e){e.name="".concat(n.name," (Emissive)"),n.emissiveTexture=e}))),Promise.all(r).then((function(){}))},e.prototype.loadMaterialAlphaProperties=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));switch(t.alphaMode||"OPAQUE"){case"OPAQUE":n.transparencyMode=y.PBRMaterial.PBRMATERIAL_OPAQUE,n.alpha=1;break;case"MASK":n.transparencyMode=y.PBRMaterial.PBRMATERIAL_ALPHATEST,n.alphaCutOff=null==t.alphaCutoff?.5:t.alphaCutoff,n.albedoTexture&&(n.albedoTexture.hasAlpha=!0);break;case"BLEND":n.transparencyMode=y.PBRMaterial.PBRMATERIAL_ALPHABLEND,n.albedoTexture&&(n.albedoTexture.hasAlpha=!0,n.useAlphaFromAlbedoTexture=!0);break;default:throw new Error("".concat(e,"/alphaMode: Invalid value (").concat(t.alphaMode,")"))}},e.prototype.loadTextureInfoAsync=function(t,n,r){var o=this;void 0===r&&(r=function(){});var a=this._extensionsLoadTextureInfoAsync(t,n,r);if(a)return a;if(this.logOpen("".concat(t)),n.texCoord>=6)throw new Error("".concat(t,"/texCoord: Invalid value (").concat(n.texCoord,")"));var i=pe.Get("".concat(t,"/index"),this._gltf.textures,n.index);i._textureInfo=n;var s=this._loadTextureAsync("/textures/".concat(n.index),i,(function(a){a.coordinatesIndex=n.texCoord||0,e.AddPointerMetadata(a,t),o._parent.onTextureLoadedObservable.notifyObservers(a),r(a)}));return this.logClose(),s},e.prototype._loadTextureAsync=function(t,n,r){void 0===r&&(r=function(){});var o=this._extensionsLoadTextureAsync(t,n,r);if(o)return o;this.logOpen("".concat(t," ").concat(n.name||""));var a=null==n.sampler?e.DefaultSampler:pe.Get("".concat(t,"/sampler"),this._gltf.samplers,n.sampler),i=pe.Get("".concat(t,"/source"),this._gltf.images,n.source),s=this._createTextureAsync(t,a,i,r,void 0,!n._textureInfo.nonColorData);return this.logClose(),s},e.prototype._createTextureAsync=function(e,t,n,r,o,a){var i=this;void 0===r&&(r=function(){});var s=this._loadSampler("/samplers/".concat(t.index),t),l=new Array,c=new y.Deferred;this._babylonScene._blockEntityCollection=!!this._assetContainer;var u={noMipmap:s.noMipMaps,invertY:!1,samplingMode:s.samplingMode,onLoad:function(){i._disposed||c.resolve()},onError:function(t,n){i._disposed||c.reject(new Error("".concat(e,": ").concat(n&&n.message?n.message:t||"Failed to load texture")))},mimeType:n.mimeType,loaderOptions:o,useSRGBBuffer:!!a&&this._parent.useSRGBBuffers},d=new y.Texture(null,this._babylonScene,u);return d._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,l.push(c.promise),l.push(this.loadImageAsync("/images/".concat(n.index),n).then((function(e){var t=n.uri||"".concat(i._fileName,"#image").concat(n.index),r="data:".concat(i._uniqueRootUrl).concat(t);d.updateURL(r,e)}))),d.wrapU=s.wrapU,d.wrapV=s.wrapV,r(d),Promise.all(l).then((function(){return d}))},e.prototype._loadSampler=function(t,n){return n._data||(n._data={noMipMaps:9728===n.minFilter||9729===n.minFilter,samplingMode:e._GetTextureSamplingMode(t,n),wrapU:e._GetTextureWrapMode("".concat(t,"/wrapS"),n.wrapS),wrapV:e._GetTextureWrapMode("".concat(t,"/wrapT"),n.wrapT)}),n._data},e.prototype.loadImageAsync=function(e,t){if(!t._data){if(this.logOpen("".concat(e," ").concat(t.name||"")),t.uri)t._data=this.loadUriAsync("".concat(e,"/uri"),t,t.uri);else{var n=pe.Get("".concat(e,"/bufferView"),this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync("/bufferViews/".concat(n.index),n)}this.logClose()}return t._data},e.prototype.loadUriAsync=function(t,n,r){var o=this,a=this._extensionsLoadUriAsync(t,n,r);if(a)return a;if(!e._ValidateUri(r))throw new Error("".concat(t,": '").concat(r,"' is invalid"));if((0,y.IsBase64DataUrl)(r)){var i=new Uint8Array((0,y.DecodeBase64UrlToBinary)(r));return this.log("".concat(t,": Decoded ").concat(r.substr(0,64),"... (").concat(i.length," bytes)")),Promise.resolve(i)}return this.log("".concat(t,": Loading ").concat(r)),this._parent.preprocessUrlAsync(this._rootUrl+r).then((function(e){return new Promise((function(n,a){o._parent._loadFile(o._babylonScene,e,(function(e){o._disposed||(o.log("".concat(t,": Loaded ").concat(r," (").concat(e.byteLength," bytes)")),n(new Uint8Array(e)))}),!0,(function(e){a(new y.LoadFileError("".concat(t,": Failed to load '").concat(r,"'").concat(e?": "+e.status+" "+e.statusText:""),e))}))}))}))},e.AddPointerMetadata=function(e,t){e.metadata=e.metadata||{};var n=e._internalMetadata=e._internalMetadata||{},r=n.gltf=n.gltf||{};(r.pointers=r.pointers||[]).push(t)},e._GetTextureWrapMode=function(e,t){switch(t=null==t?10497:t){case 33071:return y.Texture.CLAMP_ADDRESSMODE;case 33648:return y.Texture.MIRROR_ADDRESSMODE;case 10497:return y.Texture.WRAP_ADDRESSMODE;default:return y.Logger.Warn("".concat(e,": Invalid value (").concat(t,")")),y.Texture.WRAP_ADDRESSMODE}},e._GetTextureSamplingMode=function(e,t){var n=null==t.magFilter?9729:t.magFilter,r=null==t.minFilter?9987:t.minFilter;if(9729===n)switch(r){case 9728:return y.Texture.LINEAR_NEAREST;case 9729:return y.Texture.LINEAR_LINEAR;case 9984:return y.Texture.LINEAR_NEAREST_MIPNEAREST;case 9985:return y.Texture.LINEAR_LINEAR_MIPNEAREST;case 9986:return y.Texture.LINEAR_NEAREST_MIPLINEAR;case 9987:return y.Texture.LINEAR_LINEAR_MIPLINEAR;default:return y.Logger.Warn("".concat(e,"/minFilter: Invalid value (").concat(r,")")),y.Texture.LINEAR_LINEAR_MIPLINEAR}else switch(9728!==n&&y.Logger.Warn("".concat(e,"/magFilter: Invalid value (").concat(n,")")),r){case 9728:return y.Texture.NEAREST_NEAREST;case 9729:return y.Texture.NEAREST_LINEAR;case 9984:return y.Texture.NEAREST_NEAREST_MIPNEAREST;case 9985:return y.Texture.NEAREST_LINEAR_MIPNEAREST;case 9986:return y.Texture.NEAREST_NEAREST_MIPLINEAR;case 9987:return y.Texture.NEAREST_LINEAR_MIPLINEAR;default:return y.Logger.Warn("".concat(e,"/minFilter: Invalid value (").concat(r,")")),y.Texture.NEAREST_NEAREST_MIPNEAREST}},e._GetTypedArrayConstructor=function(e,t){switch(t){case 5120:return Int8Array;case 5121:return Uint8Array;case 5122:return Int16Array;case 5123:return Uint16Array;case 5125:return Uint32Array;case 5126:return Float32Array;default:throw new Error("".concat(e,": Invalid component type ").concat(t))}},e._GetTypedArray=function(t,n,r,o,a){var i=r.buffer;o=r.byteOffset+(o||0);var s=e._GetTypedArrayConstructor("".concat(t,"/componentType"),n),l=y.VertexBuffer.GetTypeByteLength(n);return o%l!=0?(y.Logger.Warn("".concat(t,": Copying buffer as byte offset (").concat(o,") is not a multiple of component type byte length (").concat(l,")")),new s(i.slice(o,o+a*l),0)):new s(i,o,a)},e._GetNumComponents=function(e,t){switch(t){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}throw new Error("".concat(e,": Invalid type (").concat(t,")"))},e._ValidateUri=function(e){return y.Tools.IsBase64(e)||-1===e.indexOf("..")},e._GetDrawMode=function(e,t){switch(null==t&&(t=4),t){case 0:return y.Material.PointListDrawMode;case 1:return y.Material.LineListDrawMode;case 2:return y.Material.LineLoopDrawMode;case 3:return y.Material.LineStripDrawMode;case 4:return y.Material.TriangleFillMode;case 5:return y.Material.TriangleStripDrawMode;case 6:return y.Material.TriangleFanDrawMode}throw new Error("".concat(e,": Invalid mesh primitive mode (").concat(t,")"))},e.prototype._compileMaterialsAsync=function(){var e=this;this._parent._startPerformanceCounter("Compile materials");var t=new Array;if(this._gltf.materials)for(var n=0,r=this._gltf.materials;n<r.length;n++){var o=r[n];if(o._data)for(var a in o._data)for(var i=o._data[a],s=0,l=i.babylonMeshes;s<l.length;s++){var c=l[s];c.computeWorldMatrix(!0);var u=i.babylonMaterial;t.push(u.forceCompilationAsync(c)),t.push(u.forceCompilationAsync(c,{useInstances:!0})),this._parent.useClipPlane&&(t.push(u.forceCompilationAsync(c,{clipPlane:!0})),t.push(u.forceCompilationAsync(c,{clipPlane:!0,useInstances:!0})))}}return Promise.all(t).then((function(){e._parent._endPerformanceCounter("Compile materials")}))},e.prototype._compileShadowGeneratorsAsync=function(){var e=this;this._parent._startPerformanceCounter("Compile shadow generators");for(var t=new Array,n=0,r=this._babylonScene.lights;n<r.length;n++){var o=r[n].getShadowGenerator();o&&t.push(o.forceCompilationAsync())}return Promise.all(t).then((function(){e._parent._endPerformanceCounter("Compile shadow generators")}))},e.prototype._forEachExtensions=function(e){for(var t=0,n=this._extensions;t<n.length;t++){var r=n[t];r.enabled&&e(r)}},e.prototype._applyExtensions=function(e,t,n){for(var r=0,o=this._extensions;r<o.length;r++){var a=o[r];if(a.enabled){var i="".concat(a.name,".").concat(t),s=e;s._activeLoaderExtensionFunctions=s._activeLoaderExtensionFunctions||{};var l=s._activeLoaderExtensionFunctions;if(!l[i]){l[i]=!0;try{var c=n(a);if(c)return c}finally{delete l[i]}}}}return null},e.prototype._extensionsOnLoading=function(){this._forEachExtensions((function(e){return e.onLoading&&e.onLoading()}))},e.prototype._extensionsOnReady=function(){this._forEachExtensions((function(e){return e.onReady&&e.onReady()}))},e.prototype._extensionsLoadSceneAsync=function(e,t){return this._applyExtensions(t,"loadScene",(function(n){return n.loadSceneAsync&&n.loadSceneAsync(e,t)}))},e.prototype._extensionsLoadNodeAsync=function(e,t,n){return this._applyExtensions(t,"loadNode",(function(r){return r.loadNodeAsync&&r.loadNodeAsync(e,t,n)}))},e.prototype._extensionsLoadCameraAsync=function(e,t,n){return this._applyExtensions(t,"loadCamera",(function(r){return r.loadCameraAsync&&r.loadCameraAsync(e,t,n)}))},e.prototype._extensionsLoadVertexDataAsync=function(e,t,n){return this._applyExtensions(t,"loadVertexData",(function(r){return r._loadVertexDataAsync&&r._loadVertexDataAsync(e,t,n)}))},e.prototype._extensionsLoadMeshPrimitiveAsync=function(e,t,n,r,o,a){return this._applyExtensions(o,"loadMeshPrimitive",(function(i){return i._loadMeshPrimitiveAsync&&i._loadMeshPrimitiveAsync(e,t,n,r,o,a)}))},e.prototype._extensionsLoadMaterialAsync=function(e,t,n,r,o){return this._applyExtensions(t,"loadMaterial",(function(a){return a._loadMaterialAsync&&a._loadMaterialAsync(e,t,n,r,o)}))},e.prototype._extensionsCreateMaterial=function(e,t,n){return this._applyExtensions(t,"createMaterial",(function(r){return r.createMaterial&&r.createMaterial(e,t,n)}))},e.prototype._extensionsLoadMaterialPropertiesAsync=function(e,t,n){return this._applyExtensions(t,"loadMaterialProperties",(function(r){return r.loadMaterialPropertiesAsync&&r.loadMaterialPropertiesAsync(e,t,n)}))},e.prototype._extensionsLoadTextureInfoAsync=function(e,t,n){return this._applyExtensions(t,"loadTextureInfo",(function(r){return r.loadTextureInfoAsync&&r.loadTextureInfoAsync(e,t,n)}))},e.prototype._extensionsLoadTextureAsync=function(e,t,n){return this._applyExtensions(t,"loadTexture",(function(r){return r._loadTextureAsync&&r._loadTextureAsync(e,t,n)}))},e.prototype._extensionsLoadAnimationAsync=function(e,t){return this._applyExtensions(t,"loadAnimation",(function(n){return n.loadAnimationAsync&&n.loadAnimationAsync(e,t)}))},e.prototype._extensionsLoadAnimationChannelAsync=function(e,t,n,r,o){return this._applyExtensions(n,"loadAnimationChannel",(function(a){return a._loadAnimationChannelAsync&&a._loadAnimationChannelAsync(e,t,n,r,o)}))},e.prototype._extensionsLoadSkinAsync=function(e,t,n){return this._applyExtensions(n,"loadSkin",(function(r){return r._loadSkinAsync&&r._loadSkinAsync(e,t,n)}))},e.prototype._extensionsLoadUriAsync=function(e,t,n){return this._applyExtensions(t,"loadUri",(function(r){return r._loadUriAsync&&r._loadUriAsync(e,t,n)}))},e.prototype._extensionsLoadBufferViewAsync=function(e,t){return this._applyExtensions(t,"loadBufferView",(function(n){return n.loadBufferViewAsync&&n.loadBufferViewAsync(e,t)}))},e.prototype._extensionsLoadBufferAsync=function(e,t,n,r){return this._applyExtensions(t,"loadBuffer",(function(o){return o.loadBufferAsync&&o.loadBufferAsync(e,t,n,r)}))},e.LoadExtensionAsync=function(e,t,n,r){if(!t.extensions)return null;var o=t.extensions[n];return o?r("".concat(e,"/extensions/").concat(n),o):null},e.LoadExtraAsync=function(e,t,n,r){if(!t.extras)return null;var o=t.extras[n];return o?r("".concat(e,"/extras/").concat(n),o):null},e.prototype.isExtensionUsed=function(e){return!!this._gltf.extensionsUsed&&-1!==this._gltf.extensionsUsed.indexOf(e)},e.prototype.logOpen=function(e){this._parent._logOpen(e)},e.prototype.logClose=function(){this._parent._logClose()},e.prototype.log=function(e){this._parent._log(e)},e.prototype.startPerformanceCounter=function(e){this._parent._startPerformanceCounter(e)},e.prototype.endPerformanceCounter=function(e){this._parent._endPerformanceCounter(e)},e._RegisteredExtensions={},e.DefaultSampler={index:-1},e}();P._CreateGLTF2Loader=function(e){return new _e(e)};var me="EXT_lights_image_based",ye=function(){function e(e){this.name=me,this._loader=e,this.enabled=this._loader.isExtensionUsed(me)}return e.prototype.dispose=function(){this._loader=null,delete this._lights},e.prototype.onLoading=function(){var e=this._loader.gltf.extensions;if(e&&e[this.name]){var t=e[this.name];this._lights=t.lights}},e.prototype.loadSceneAsync=function(e,t){var n=this;return _e.LoadExtensionAsync(e,t,this.name,(function(r,o){n._loader._allMaterialsDirtyRequired=!0;var a=new Array;a.push(n._loader.loadSceneAsync(e,t)),n._loader.logOpen("".concat(r));var i=pe.Get("".concat(r,"/light"),n._lights,o.light);return a.push(n._loadLightAsync("/extensions/".concat(n.name,"/lights/").concat(o.light),i).then((function(e){n._loader.babylonScene.environmentTexture=e}))),n._loader.logClose(),Promise.all(a).then((function(){}))}))},e.prototype._loadLightAsync=function(e,t){var n=this;if(!t._loaded){var r=new Array;this._loader.logOpen("".concat(e));for(var o=new Array(t.specularImages.length),a=function(n){var a=t.specularImages[n];o[n]=new Array(a.length);for(var s=function(t){var s="".concat(e,"/specularImages/").concat(n,"/").concat(t);i._loader.logOpen("".concat(s));var l=a[t],c=pe.Get(s,i._loader.gltf.images,l);r.push(i._loader.loadImageAsync("/images/".concat(l),c).then((function(e){o[n][t]=e}))),i._loader.logClose()},l=0;l<a.length;l++)s(l)},i=this,s=0;s<t.specularImages.length;s++)a(s);this._loader.logClose(),t._loaded=Promise.all(r).then((function(){var r=new y.RawCubeTexture(n._loader.babylonScene,null,t.specularImageSize);if(r.name=t.name||"environment",t._babylonTexture=r,null!=t.intensity&&(r.level=t.intensity),t.rotation){var a=y.Quaternion.FromArray(t.rotation);n._loader.babylonScene.useRightHandedSystem||(a=y.Quaternion.Inverse(a)),y.Matrix.FromQuaternionToRef(a,r.getReflectionTextureMatrix())}if(!t.irradianceCoefficients)throw new Error("".concat(e,": Irradiance coefficients are missing"));var i=y.SphericalHarmonics.FromArray(t.irradianceCoefficients);i.scaleInPlace(t.intensity),i.convertIrradianceToLambertianRadiance();var s=y.SphericalPolynomial.FromHarmonics(i),l=(o.length-1)/y.Scalar.Log2(t.specularImageSize);return r.updateRGBDAsync(o,s,l)}))}return t._loaded.then((function(){return t._babylonTexture}))},e}();_e.RegisterExtension(me,(function(e){return new ye(e)}));var ve="EXT_mesh_gpu_instancing",ge=function(){function e(e){this.name=ve,this._loader=e,this.enabled=this._loader.isExtensionUsed(ve)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(e,o){r._loader._disableInstancedMesh++;var a=r._loader.loadNodeAsync("/nodes/".concat(t.index),t,n);if(r._loader._disableInstancedMesh--,!t._primitiveBabylonMeshes)return a;var i=new Array,s=0,l=function(t){if(null!=o.attributes[t]){var n=pe.Get("".concat(e,"/attributes/").concat(t),r._loader.gltf.accessors,o.attributes[t]);if(i.push(r._loader._loadFloatAccessorAsync("/accessors/".concat(n.bufferView),n)),0===s)s=n.count;else if(s!==n.count)throw new Error("".concat(e,"/attributes: Instance buffer accessors do not have the same count."))}else i.push(Promise.resolve(null))};return l("TRANSLATION"),l("ROTATION"),l("SCALE"),a.then((function(e){return Promise.all(i).then((function(n){var r=n[0],o=n[1],a=n[2],i=new Float32Array(16*s);y.TmpVectors.Vector3[0].copyFromFloats(0,0,0),y.TmpVectors.Quaternion[0].copyFromFloats(0,0,0,1),y.TmpVectors.Vector3[1].copyFromFloats(1,1,1);for(var l=0;l<s;++l)r&&y.Vector3.FromArrayToRef(r,3*l,y.TmpVectors.Vector3[0]),o&&y.Quaternion.FromArrayToRef(o,4*l,y.TmpVectors.Quaternion[0]),a&&y.Vector3.FromArrayToRef(a,3*l,y.TmpVectors.Vector3[1]),y.Matrix.ComposeToRef(y.TmpVectors.Vector3[1],y.TmpVectors.Quaternion[0],y.TmpVectors.Vector3[0],y.TmpVectors.Matrix[0]),y.TmpVectors.Matrix[0].copyToArray(i,16*l);for(var c=0,u=t._primitiveBabylonMeshes;c<u.length;c++)u[c].thinInstanceSetBuffer("matrix",i,16,!0);return e}))}))}))},e}();_e.RegisterExtension(ve,(function(e){return new ge(e)}));var be="EXT_meshopt_compression",Ae=function(){function e(e){this.name=be,this.enabled=e.isExtensionUsed(be),this._loader=e}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadBufferViewAsync=function(e,t){var n=this;return _e.LoadExtensionAsync(e,t,this.name,(function(r,o){var a=t;if(a._meshOptData)return a._meshOptData;var i=pe.Get("".concat(e,"/buffer"),n._loader.gltf.buffers,o.buffer);return a._meshOptData=n._loader.loadBufferAsync("/buffers/".concat(i.index),i,o.byteOffset||0,o.byteLength).then((function(e){return y.MeshoptCompression.Default.decodeGltfBufferAsync(e,o.count,o.byteStride,o.mode,o.filter)})),a._meshOptData}))},e}();_e.RegisterExtension(be,(function(e){return new Ae(e)}));var Te="EXT_texture_webp",xe=function(){function e(e){this.name=Te,this._loader=e,this.enabled=e.isExtensionUsed(Te)}return e.prototype.dispose=function(){this._loader=null},e.prototype._loadTextureAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=null==t.sampler?_e.DefaultSampler:pe.Get("".concat(e,"/sampler"),r._loader.gltf.samplers,t.sampler),s=pe.Get("".concat(o,"/source"),r._loader.gltf.images,a.source);return r._loader._createTextureAsync(e,i,s,(function(e){n(e)}),void 0,!t._textureInfo.nonColorData)}))},e}();_e.RegisterExtension(Te,(function(e){return new xe(e)}));var Ee="EXT_texture_avif",Oe=function(){function e(e){this.name=Ee,this._loader=e,this.enabled=e.isExtensionUsed(Ee)}return e.prototype.dispose=function(){this._loader=null},e.prototype._loadTextureAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=null==t.sampler?_e.DefaultSampler:pe.Get("".concat(e,"/sampler"),r._loader.gltf.samplers,t.sampler),s=pe.Get("".concat(o,"/source"),r._loader.gltf.images,a.source);return r._loader._createTextureAsync(e,i,s,(function(e){n(e)}),void 0,!t._textureInfo.nonColorData)}))},e}();_e.RegisterExtension(Ee,(function(e){return new Oe(e)}));var Me="KHR_draco_mesh_compression",we=function(){function e(e){this.name=Me,this.useNormalizedFlagFromAccessor=!0,this._loader=e,this.enabled=y.DracoCompression.DecoderAvailable&&this._loader.isExtensionUsed(Me)}return e.prototype.dispose=function(){delete this.dracoCompression,this._loader=null},e.prototype._loadVertexDataAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){if(null!=t.mode&&4!==t.mode&&5!==t.mode)throw new Error("".concat(e,": Unsupported mode ").concat(t.mode));var i={},s={},l=function(e,o){var l=a.attributes[e];if(null!=l&&(n._delayInfo=n._delayInfo||[],-1===n._delayInfo.indexOf(o)&&n._delayInfo.push(o),i[o]=l,r.useNormalizedFlagFromAccessor)){var c=pe.TryGet(r._loader.gltf.accessors,t.attributes[e]);c&&(s[o]=c.normalized||!1)}};l("POSITION",y.VertexBuffer.PositionKind),l("NORMAL",y.VertexBuffer.NormalKind),l("TANGENT",y.VertexBuffer.TangentKind),l("TEXCOORD_0",y.VertexBuffer.UVKind),l("TEXCOORD_1",y.VertexBuffer.UV2Kind),l("TEXCOORD_2",y.VertexBuffer.UV3Kind),l("TEXCOORD_3",y.VertexBuffer.UV4Kind),l("TEXCOORD_4",y.VertexBuffer.UV5Kind),l("TEXCOORD_5",y.VertexBuffer.UV6Kind),l("JOINTS_0",y.VertexBuffer.MatricesIndicesKind),l("WEIGHTS_0",y.VertexBuffer.MatricesWeightsKind),l("COLOR_0",y.VertexBuffer.ColorKind);var c=pe.Get(o,r._loader.gltf.bufferViews,a.bufferView);return c._dracoBabylonGeometry||(c._dracoBabylonGeometry=r._loader.loadBufferViewAsync("/bufferViews/".concat(c.index),c).then((function(t){return(r.dracoCompression||y.DracoCompression.Default)._decodeMeshToGeometryForGltfAsync(n.name,r._loader.babylonScene,t,i,s).catch((function(t){throw new Error("".concat(e,": ").concat(t.message))}))}))),c._dracoBabylonGeometry}))},e}();_e.RegisterExtension(Me,(function(e){return new we(e)}));var Ce="KHR_lights_punctual",Le=function(){function e(e){this.name=Ce,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ce)}return e.prototype.dispose=function(){this._loader=null,delete this._lights},e.prototype.onLoading=function(){var e=this._loader.gltf.extensions;if(e&&e[this.name]){var t=e[this.name];this._lights=t.lights,pe.Assign(this._lights)}},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){return r._loader._allMaterialsDirtyRequired=!0,r._loader.loadNodeAsync(e,t,(function(e){var t,i=pe.Get(o,r._lights,a.light),s=i.name||e.name;switch(r._loader.babylonScene._blockEntityCollection=!!r._loader._assetContainer,i.type){case"directional":var l=new y.DirectionalLight(s,y.Vector3.Backward(),r._loader.babylonScene);l.position.setAll(0),t=l;break;case"point":t=new y.PointLight(s,y.Vector3.Zero(),r._loader.babylonScene);break;case"spot":var c=new y.SpotLight(s,y.Vector3.Zero(),y.Vector3.Backward(),0,1,r._loader.babylonScene);c.angle=2*(i.spot&&i.spot.outerConeAngle||Math.PI/4),c.innerAngle=2*(i.spot&&i.spot.innerConeAngle||0),t=c;break;default:throw r._loader.babylonScene._blockEntityCollection=!1,new Error("".concat(o,": Invalid light type (").concat(i.type,")"))}t._parentContainer=r._loader._assetContainer,r._loader.babylonScene._blockEntityCollection=!1,i._babylonLight=t,t.falloffType=y.Light.FALLOFF_GLTF,t.diffuse=i.color?y.Color3.FromArray(i.color):y.Color3.White(),t.intensity=null==i.intensity?1:i.intensity,t.range=null==i.range?Number.MAX_VALUE:i.range,t.parent=e,r._loader._babylonLights.push(t),_e.AddPointerMetadata(t,o),n(e)}))}))},e}();_e.RegisterExtension(Ce,(function(e){return new Le(e)}));var Ne="KHR_materials_pbrSpecularGlossiness",Se=function(){function e(e){this.name=Ne,this.order=200,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ne)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loadSpecularGlossinessPropertiesAsync(o,a,n)),r._loader.loadMaterialAlphaProperties(e,t,n),Promise.all(i).then((function(){}))}))},e.prototype._loadSpecularGlossinessPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return n.metallic=null,n.roughness=null,t.diffuseFactor?(n.albedoColor=y.Color3.FromArray(t.diffuseFactor),n.alpha=t.diffuseFactor[3]):n.albedoColor=y.Color3.White(),n.reflectivityColor=t.specularFactor?y.Color3.FromArray(t.specularFactor):y.Color3.White(),n.microSurface=null==t.glossinessFactor?1:t.glossinessFactor,t.diffuseTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/diffuseTexture"),t.diffuseTexture,(function(e){e.name="".concat(n.name," (Diffuse)"),n.albedoTexture=e}))),t.specularGlossinessTexture&&(r.push(this._loader.loadTextureInfoAsync("".concat(e,"/specularGlossinessTexture"),t.specularGlossinessTexture,(function(e){e.name="".concat(n.name," (Specular Glossiness)"),n.reflectivityTexture=e,n.reflectivityTexture.hasAlpha=!0}))),n.useMicroSurfaceFromReflectivityMapAlpha=!0),Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(Ne,(function(e){return new Se(e)}));var Re="KHR_materials_unlit",Fe=function(){function e(e){this.name=Re,this.order=210,this._loader=e,this.enabled=this._loader.isExtensionUsed(Re)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(){return r._loadUnlitPropertiesAsync(e,t,n)}))},e.prototype._loadUnlitPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;n.unlit=!0;var o=t.pbrMetallicRoughness;return o&&(o.baseColorFactor?(n.albedoColor=y.Color3.FromArray(o.baseColorFactor),n.alpha=o.baseColorFactor[3]):n.albedoColor=y.Color3.White(),o.baseColorTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/baseColorTexture"),o.baseColorTexture,(function(e){e.name="".concat(n.name," (Base Color)"),n.albedoTexture=e})))),t.doubleSided&&(n.backFaceCulling=!1,n.twoSidedLighting=!0),this._loader.loadMaterialAlphaProperties(e,t,n),Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(Re,(function(e){return new Fe(e)}));var Pe="KHR_materials_clearcoat",Ie=function(){function e(e){this.name=Pe,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(Pe)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadClearCoatPropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadClearCoatPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return n.clearCoat.isEnabled=!0,n.clearCoat.useRoughnessFromMainTexture=!1,n.clearCoat.remapF0OnInterfaceChange=!1,null!=t.clearcoatFactor?n.clearCoat.intensity=t.clearcoatFactor:n.clearCoat.intensity=0,t.clearcoatTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/clearcoatTexture"),t.clearcoatTexture,(function(e){e.name="".concat(n.name," (ClearCoat Intensity)"),n.clearCoat.texture=e}))),null!=t.clearcoatRoughnessFactor?n.clearCoat.roughness=t.clearcoatRoughnessFactor:n.clearCoat.roughness=0,t.clearcoatRoughnessTexture&&(t.clearcoatRoughnessTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync("".concat(e,"/clearcoatRoughnessTexture"),t.clearcoatRoughnessTexture,(function(e){e.name="".concat(n.name," (ClearCoat Roughness)"),n.clearCoat.textureRoughness=e})))),t.clearcoatNormalTexture&&(t.clearcoatNormalTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync("".concat(e,"/clearcoatNormalTexture"),t.clearcoatNormalTexture,(function(e){e.name="".concat(n.name," (ClearCoat Normal)"),n.clearCoat.bumpTexture=e}))),n.invertNormalMapX=!n.getScene().useRightHandedSystem,n.invertNormalMapY=n.getScene().useRightHandedSystem,null!=t.clearcoatNormalTexture.scale&&(n.clearCoat.bumpTexture.level=t.clearcoatNormalTexture.scale)),Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(Pe,(function(e){return new Ie(e)}));var Be="KHR_materials_iridescence",De=function(){function e(e){this.name=Be,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(Be)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadIridescencePropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadIridescencePropertiesAsync=function(e,t,n){var r,o,a,i,s;if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var l=new Array;return n.iridescence.isEnabled=!0,n.iridescence.intensity=null!==(r=t.iridescenceFactor)&&void 0!==r?r:0,n.iridescence.indexOfRefraction=null!==(a=null!==(o=t.iridescenceIor)&&void 0!==o?o:t.iridescenceIOR)&&void 0!==a?a:1.3,n.iridescence.minimumThickness=null!==(i=t.iridescenceThicknessMinimum)&&void 0!==i?i:100,n.iridescence.maximumThickness=null!==(s=t.iridescenceThicknessMaximum)&&void 0!==s?s:400,t.iridescenceTexture&&l.push(this._loader.loadTextureInfoAsync("".concat(e,"/iridescenceTexture"),t.iridescenceTexture,(function(e){e.name="".concat(n.name," (Iridescence Intensity)"),n.iridescence.texture=e}))),t.iridescenceThicknessTexture&&l.push(this._loader.loadTextureInfoAsync("".concat(e,"/iridescenceThicknessTexture"),t.iridescenceThicknessTexture,(function(e){e.name="".concat(n.name," (Iridescence Thickness)"),n.iridescence.thicknessTexture=e}))),Promise.all(l).then((function(){}))},e}();_e.RegisterExtension(Be,(function(e){return new De(e)}));var Ve="KHR_materials_anisotropy",ke=function(){function e(e){this.name=Ve,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ve)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadIridescencePropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadIridescencePropertiesAsync=function(e,t,n){var r,o;if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var a=new Array;return n.anisotropy.isEnabled=!0,n.anisotropy.intensity=null!==(r=t.anisotropyStrength)&&void 0!==r?r:0,n.anisotropy.angle=null!==(o=t.anisotropyRotation)&&void 0!==o?o:0,t.anisotropyTexture&&a.push(this._loader.loadTextureInfoAsync("".concat(e,"/anisotropyTexture"),t.anisotropyTexture,(function(e){e.name="".concat(n.name," (Anisotropy Intensity)"),n.anisotropy.texture=e}))),Promise.all(a).then((function(){}))},e}();_e.RegisterExtension(Ve,(function(e){return new ke(e)}));var Ge="KHR_materials_emissive_strength",Ue=function(){function e(e){this.name=Ge,this.order=170,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ge)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){return r._loader.loadMaterialPropertiesAsync(e,t,n).then((function(){r._loadEmissiveProperties(o,a,n)}))}))},e.prototype._loadEmissiveProperties=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));void 0!==t.emissiveStrength&&(n.emissiveIntensity=t.emissiveStrength)},e}();_e.RegisterExtension(Ge,(function(e){return new Ue(e)}));var He="KHR_materials_sheen",je=function(){function e(e){this.name=He,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(He)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadSheenPropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadSheenPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return n.sheen.isEnabled=!0,n.sheen.intensity=1,null!=t.sheenColorFactor?n.sheen.color=y.Color3.FromArray(t.sheenColorFactor):n.sheen.color=y.Color3.Black(),t.sheenColorTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/sheenColorTexture"),t.sheenColorTexture,(function(e){e.name="".concat(n.name," (Sheen Color)"),n.sheen.texture=e}))),void 0!==t.sheenRoughnessFactor?n.sheen.roughness=t.sheenRoughnessFactor:n.sheen.roughness=0,t.sheenRoughnessTexture&&(t.sheenRoughnessTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync("".concat(e,"/sheenRoughnessTexture"),t.sheenRoughnessTexture,(function(e){e.name="".concat(n.name," (Sheen Roughness)"),n.sheen.textureRoughness=e})))),n.sheen.albedoScaling=!0,n.sheen.useRoughnessFromMainTexture=!1,Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(He,(function(e){return new je(e)}));var Ke="KHR_materials_specular",We=function(){function e(e){this.name=Ke,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ke)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadSpecularPropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadSpecularPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return void 0!==t.specularFactor&&(n.metallicF0Factor=t.specularFactor),void 0!==t.specularColorFactor&&(n.metallicReflectanceColor=y.Color3.FromArray(t.specularColorFactor)),t.specularTexture&&(t.specularTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync("".concat(e,"/specularTexture"),t.specularTexture,(function(e){e.name="".concat(n.name," (Specular F0 Strength)"),n.metallicReflectanceTexture=e,n.useOnlyMetallicFromMetallicReflectanceTexture=!0})))),t.specularColorTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/specularColorTexture"),t.specularColorTexture,(function(e){e.name="".concat(n.name," (Specular F0 Color)"),n.reflectanceTexture=e}))),Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(Ke,(function(e){return new We(e)}));var Ye="KHR_materials_ior",qe=function(){function e(e){this.name=Ye,this.order=180,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ye)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadIorPropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadIorPropertiesAsync=function(t,n,r){if(!(r instanceof y.PBRMaterial))throw new Error("".concat(t,": Material type not supported"));return void 0!==n.ior?r.indexOfRefraction=n.ior:r.indexOfRefraction=e._DEFAULT_IOR,Promise.resolve()},e._DEFAULT_IOR=1.5,e}();_e.RegisterExtension(Ye,(function(e){return new qe(e)}));var ze="KHR_materials_variants",Xe=function(){function e(e){this.name=ze,this._loader=e,this.enabled=this._loader.isExtensionUsed(ze)}return e.prototype.dispose=function(){this._loader=null},e.GetAvailableVariants=function(e){var t=this._GetExtensionMetadata(e);return t?Object.keys(t.variants):[]},e.prototype.getAvailableVariants=function(t){return e.GetAvailableVariants(t)},e.SelectVariant=function(e,t){var n=this._GetExtensionMetadata(e);if(!n)throw new Error("Cannot select variant on a glTF mesh that does not have the ".concat(ze," extension"));var r=function(e){var t=n.variants[e];if(t)for(var r=0,o=t;r<o.length;r++){var a=o[r];a.mesh.material=a.material}};if(t instanceof Array)for(var o=0,a=t;o<a.length;o++)r(a[o]);else r(t);n.lastSelected=t},e.prototype.selectVariant=function(t,n){e.SelectVariant(t,n)},e.Reset=function(e){var t=this._GetExtensionMetadata(e);if(!t)throw new Error("Cannot reset on a glTF mesh that does not have the ".concat(ze," extension"));for(var n=0,r=t.original;n<r.length;n++){var o=r[n];o.mesh.material=o.material}t.lastSelected=null},e.prototype.reset=function(t){e.Reset(t)},e.GetLastSelectedVariant=function(e){var t=this._GetExtensionMetadata(e);if(!t)throw new Error("Cannot get the last selected variant on a glTF mesh that does not have the ".concat(ze," extension"));return t.lastSelected},e.prototype.getLastSelectedVariant=function(t){return e.GetLastSelectedVariant(t)},e._GetExtensionMetadata=function(e){var t,n;return(null===(n=null===(t=null==e?void 0:e._internalMetadata)||void 0===t?void 0:t.gltf)||void 0===n?void 0:n[ze])||null},e.prototype.onLoading=function(){var e=this._loader.gltf.extensions;if(e&&e[this.name]){var t=e[this.name];this._variants=t.variants}},e.prototype._loadMeshPrimitiveAsync=function(t,n,r,o,a,i){var s=this;return _e.LoadExtensionAsync(t,a,this.name,(function(l,c){var u=new Array;return u.push(s._loader._loadMeshPrimitiveAsync(t,n,r,o,a,(function(n){if(i(n),n instanceof y.Mesh){var r=_e._GetDrawMode(t,a.mode),o=s._loader.rootBabylonMesh,d=o?o._internalMetadata=o._internalMetadata||{}:{},h=d.gltf=d.gltf||{},f=h[ze]=h[ze]||{lastSelected:null,original:[],variants:{}};f.original.push({mesh:n,material:n.material});for(var p=function(t){var a=c.mappings[t],i=pe.Get("".concat(l,"/mappings/").concat(t,"/material"),s._loader.gltf.materials,a.material);u.push(s._loader._loadMaterialAsync("#/materials/".concat(a.material),i,n,r,(function(t){for(var r=function(r){var i=a.variants[r],l=pe.Get("/extensions/".concat(ze,"/variants/").concat(i),s._variants,i);f.variants[l.name]=f.variants[l.name]||[],f.variants[l.name].push({mesh:n,material:t}),n.onClonedObservable.add((function(t){var r=t,a=null,i=r;do{if(!(i=i.parent))return;a=e._GetExtensionMetadata(i)}while(null===a);if(o&&a===e._GetExtensionMetadata(o)){for(var s in i._internalMetadata={},o._internalMetadata)i._internalMetadata[s]=o._internalMetadata[s];for(var s in i._internalMetadata.gltf=[],o._internalMetadata.gltf)i._internalMetadata.gltf[s]=o._internalMetadata.gltf[s];i._internalMetadata.gltf[ze]={lastSelected:null,original:[],variants:{}};for(var c=0,u=a.original;c<u.length;c++){var d=u[c];i._internalMetadata.gltf[ze].original.push({mesh:d.mesh,material:d.material})}for(var s in a.variants)if(Object.prototype.hasOwnProperty.call(a.variants,s)){i._internalMetadata.gltf[ze].variants[s]=[];for(var h=0,f=a.variants[s];h<f.length;h++){var p=f[h];i._internalMetadata.gltf[ze].variants[s].push({mesh:p.mesh,material:p.material})}}a=i._internalMetadata.gltf[ze]}for(var _=0,m=a.original;_<m.length;_++)(g=m[_]).mesh===n&&(g.mesh=r);for(var y=0,v=a.variants[l.name];y<v.length;y++){var g;(g=v[y]).mesh===n&&(g.mesh=r)}}))},i=0;i<a.variants.length;++i)r(i)})))},_=0;_<c.mappings.length;++_)p(_)}}))),Promise.all(u).then((function(e){return e[0]}))}))},e}();_e.RegisterExtension(ze,(function(e){return new Xe(e)}));var Ze=function(){function e(t,n){var r=this;this._opaqueRenderTarget=null,this._opaqueMeshesCache=[],this._transparentMeshesCache=[],this._materialObservers={},this._options=m(m({},e._GetDefaultOptions()),t),this._scene=n,this._scene._transmissionHelper=this,this.onErrorObservable=new y.Observable,this._scene.onDisposeObservable.addOnce((function(){r.dispose()})),this._parseScene(),this._setupRenderTargets()}return e._GetDefaultOptions=function(){return{renderSize:1024,samples:4,lodGenerationScale:1,lodGenerationOffset:-4,renderTargetTextureType:y.Constants.TEXTURETYPE_HALF_FLOAT,generateMipmaps:!0}},e.prototype.updateOptions=function(e){var t=this,n=Object.keys(e).filter((function(n){return t._options[n]!==e[n]}));if(n.length){var r=m(m({},this._options),e),o=this._options;this._options=r,r.renderSize===o.renderSize&&r.renderTargetTextureType===o.renderTargetTextureType&&r.generateMipmaps===o.generateMipmaps&&this._opaqueRenderTarget?(this._opaqueRenderTarget.samples=r.samples,this._opaqueRenderTarget.lodGenerationScale=r.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=r.lodGenerationOffset):this._setupRenderTargets()}},e.prototype.getOpaqueTarget=function(){return this._opaqueRenderTarget},e.prototype._shouldRenderAsTransmission=function(e){return!!e&&!!(e instanceof y.PBRMaterial&&e.subSurface.isRefractionEnabled)},e.prototype._addMesh=function(e){var t=this;this._materialObservers[e.uniqueId]=e.onMaterialChangedObservable.add(this._onMeshMaterialChanged.bind(this)),y.Tools.SetImmediate((function(){t._shouldRenderAsTransmission(e.material)?(e.material.refractionTexture=t._opaqueRenderTarget,-1===t._transparentMeshesCache.indexOf(e)&&t._transparentMeshesCache.push(e)):-1===t._opaqueMeshesCache.indexOf(e)&&t._opaqueMeshesCache.push(e)}))},e.prototype._removeMesh=function(e){e.onMaterialChangedObservable.remove(this._materialObservers[e.uniqueId]),delete this._materialObservers[e.uniqueId];var t=this._transparentMeshesCache.indexOf(e);-1!==t&&this._transparentMeshesCache.splice(t,1),-1!==(t=this._opaqueMeshesCache.indexOf(e))&&this._opaqueMeshesCache.splice(t,1)},e.prototype._parseScene=function(){this._scene.meshes.forEach(this._addMesh.bind(this)),this._scene.onNewMeshAddedObservable.add(this._addMesh.bind(this)),this._scene.onMeshRemovedObservable.add(this._removeMesh.bind(this))},e.prototype._onMeshMaterialChanged=function(e){var t=this._transparentMeshesCache.indexOf(e),n=this._opaqueMeshesCache.indexOf(e);this._shouldRenderAsTransmission(e.material)?(e.material instanceof y.PBRMaterial&&(e.material.subSurface.refractionTexture=this._opaqueRenderTarget),-1!==n?(this._opaqueMeshesCache.splice(n,1),this._transparentMeshesCache.push(e)):-1===t&&this._transparentMeshesCache.push(e)):-1!==t?(this._transparentMeshesCache.splice(t,1),this._opaqueMeshesCache.push(e)):-1===n&&this._opaqueMeshesCache.push(e)},e.prototype._isRenderTargetValid=function(){var e;return null!==(null===(e=this._opaqueRenderTarget)||void 0===e?void 0:e.getInternalTexture())},e.prototype._setupRenderTargets=function(){var e,t,n,r,o=this;this._opaqueRenderTarget&&this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=new y.RenderTargetTexture("opaqueSceneTexture",this._options.renderSize,this._scene,this._options.generateMipmaps,void 0,this._options.renderTargetTextureType),this._opaqueRenderTarget.ignoreCameraViewport=!0,this._opaqueRenderTarget.renderList=this._opaqueMeshesCache,this._opaqueRenderTarget.clearColor=null!==(t=null===(e=this._options.clearColor)||void 0===e?void 0:e.clone())&&void 0!==t?t:this._scene.clearColor.clone(),this._opaqueRenderTarget.gammaSpace=!1,this._opaqueRenderTarget.lodGenerationScale=this._options.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=this._options.lodGenerationOffset,this._opaqueRenderTarget.samples=this._options.samples,this._opaqueRenderTarget.renderSprites=!0,this._opaqueRenderTarget.renderParticles=!0,this._opaqueRenderTarget.onBeforeBindObservable.add((function(e){r=o._scene.environmentIntensity,o._scene.environmentIntensity=1,n=o._scene.imageProcessingConfiguration.applyByPostProcess,o._options.clearColor?e.clearColor.copyFrom(o._options.clearColor):o._scene.clearColor.toLinearSpaceToRef(e.clearColor,o._scene.getEngine().useExactSrgbConversions),o._scene.imageProcessingConfiguration._applyByPostProcess=!0})),this._opaqueRenderTarget.onAfterUnbindObservable.add((function(){o._scene.environmentIntensity=r,o._scene.imageProcessingConfiguration._applyByPostProcess=n})),this._transparentMeshesCache.forEach((function(e){o._shouldRenderAsTransmission(e.material)&&(e.material.refractionTexture=o._opaqueRenderTarget)}))},e.prototype.dispose=function(){this._scene._transmissionHelper=void 0,this._opaqueRenderTarget&&(this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=null),this._transparentMeshesCache=[],this._opaqueMeshesCache=[]},e}(),Je="KHR_materials_transmission",Qe=function(){function e(e){this.name=Je,this.order=175,this._loader=e,this.enabled=this._loader.isExtensionUsed(Je),this.enabled&&(e.parent.transparencyAsCoverage=!0)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadTransparentPropertiesAsync(o,t,n,a)),Promise.all(i).then((function(){}))}))},e.prototype._loadTransparentPropertiesAsync=function(e,t,n,r){var o,a;if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var i=n;if(i.subSurface.isRefractionEnabled=!0,i.subSurface.volumeIndexOfRefraction=1,i.subSurface.useAlbedoToTintRefraction=!0,void 0===r.transmissionFactor)return i.subSurface.refractionIntensity=0,i.subSurface.isRefractionEnabled=!1,Promise.resolve();i.subSurface.refractionIntensity=r.transmissionFactor;var s=i.getScene();return i.subSurface.refractionIntensity&&!s._transmissionHelper?new Ze({},i.getScene()):i.subSurface.refractionIntensity&&!(null===(o=s._transmissionHelper)||void 0===o?void 0:o._isRenderTargetValid())&&(null===(a=s._transmissionHelper)||void 0===a||a._setupRenderTargets()),i.subSurface.minimumThickness=0,i.subSurface.maximumThickness=0,r.transmissionTexture?(r.transmissionTexture.nonColorData=!0,this._loader.loadTextureInfoAsync("".concat(e,"/transmissionTexture"),r.transmissionTexture,void 0).then((function(e){i.subSurface.refractionIntensityTexture=e,i.subSurface.useGltfStyleTextures=!0}))):Promise.resolve()},e}();_e.RegisterExtension(Je,(function(e){return new Qe(e)}));var $e="KHR_materials_diffuse_transmission",et=function(){function e(e){this.name=$e,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed($e),this.enabled&&(e.parent.transparencyAsCoverage=!0)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadTranslucentPropertiesAsync(o,t,n,a)),Promise.all(i).then((function(){}))}))},e.prototype._loadTranslucentPropertiesAsync=function(e,t,n,r){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var o=n;if(o.subSurface.isTranslucencyEnabled=!0,o.subSurface.volumeIndexOfRefraction=1,o.subSurface.minimumThickness=0,o.subSurface.maximumThickness=0,o.subSurface.useAlbedoToTintTranslucency=!1,void 0===r.diffuseTransmissionFactor)return o.subSurface.translucencyIntensity=0,o.subSurface.isTranslucencyEnabled=!1,Promise.resolve();o.subSurface.translucencyIntensity=r.diffuseTransmissionFactor;var a=new Array;return o.subSurface.useGltfStyleTextures=!0,r.diffuseTransmissionTexture&&(r.diffuseTransmissionTexture.nonColorData=!0,a.push(this._loader.loadTextureInfoAsync("".concat(e,"/diffuseTransmissionTexture"),r.diffuseTransmissionTexture).then((function(e){o.subSurface.translucencyIntensityTexture=e})))),void 0!==r.diffuseTransmissionColorFactor?o.subSurface.translucencyColor=y.Color3.FromArray(r.diffuseTransmissionColorFactor):o.subSurface.translucencyColor=y.Color3.White(),r.diffuseTransmissionColorTexture&&a.push(this._loader.loadTextureInfoAsync("".concat(e,"/diffuseTransmissionColorTexture"),r.diffuseTransmissionColorTexture).then((function(e){o.subSurface.translucencyColorTexture=e}))),Promise.all(a).then((function(){}))},e}();_e.RegisterExtension($e,(function(e){return new et(e)}));var tt="KHR_materials_volume",nt=function(){function e(e){this.name=tt,this.order=173,this._loader=e,this.enabled=this._loader.isExtensionUsed(tt),this.enabled&&this._loader._disableInstancedMesh++}return e.prototype.dispose=function(){this.enabled&&this._loader._disableInstancedMesh--,this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadVolumePropertiesAsync(o,t,n,a)),Promise.all(i).then((function(){}))}))},e.prototype._loadVolumePropertiesAsync=function(e,t,n,r){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));if(!n.subSurface.isRefractionEnabled&&!n.subSurface.isTranslucencyEnabled||!r.thicknessFactor)return Promise.resolve();n.subSurface.volumeIndexOfRefraction=n.indexOfRefraction;var o=void 0!==r.attenuationDistance?r.attenuationDistance:Number.MAX_VALUE;return n.subSurface.tintColorAtDistance=o,void 0!==r.attenuationColor&&3==r.attenuationColor.length&&n.subSurface.tintColor.copyFromFloats(r.attenuationColor[0],r.attenuationColor[1],r.attenuationColor[2]),n.subSurface.minimumThickness=0,n.subSurface.maximumThickness=r.thicknessFactor,n.subSurface.useThicknessAsDepth=!0,r.thicknessTexture?(r.thicknessTexture.nonColorData=!0,this._loader.loadTextureInfoAsync("".concat(e,"/thicknessTexture"),r.thicknessTexture).then((function(e){n.subSurface.thicknessTexture=e,n.subSurface.useGltfStyleTextures=!0}))):Promise.resolve()},e}();_e.RegisterExtension(tt,(function(e){return new nt(e)}));var rt="KHR_materials_dispersion",ot=function(){function e(e){this.name=rt,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed(rt)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadDispersionPropertiesAsync(o,t,n,a)),Promise.all(i).then((function(){}))}))},e.prototype._loadDispersionPropertiesAsync=function(e,t,n,r){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));return n.subSurface.isRefractionEnabled&&r.dispersion?(n.subSurface.isDispersionEnabled=!0,n.subSurface.dispersion=r.dispersion,Promise.resolve()):Promise.resolve()},e}();_e.RegisterExtension(rt,(function(e){return new ot(e)}));var at="KHR_mesh_quantization",it=function(){function e(e){this.name=at,this.enabled=e.isExtensionUsed(at)}return e.prototype.dispose=function(){},e}();_e.RegisterExtension(at,(function(e){return new it(e)}));var st="KHR_texture_basisu",lt=function(){function e(e){this.name=st,this._loader=e,this.enabled=e.isExtensionUsed(st)}return e.prototype.dispose=function(){this._loader=null},e.prototype._loadTextureAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=null==t.sampler?_e.DefaultSampler:pe.Get("".concat(e,"/sampler"),r._loader.gltf.samplers,t.sampler),s=pe.Get("".concat(o,"/source"),r._loader.gltf.images,a.source);return r._loader._createTextureAsync(e,i,s,(function(e){n(e)}),t._textureInfo.nonColorData?{useRGBAIfASTCBC7NotAvailableWhenUASTC:!0}:void 0,!t._textureInfo.nonColorData)}))},e}();_e.RegisterExtension(st,(function(e){return new lt(e)}));var ct="KHR_texture_transform",ut=function(){function e(e){this.name=ct,this._loader=e,this.enabled=this._loader.isExtensionUsed(ct)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadTextureInfoAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){return r._loader.loadTextureInfoAsync(e,t,(function(e){if(!(e instanceof y.Texture))throw new Error("".concat(o,": Texture type not supported"));a.offset&&(e.uOffset=a.offset[0],e.vOffset=a.offset[1]),e.uRotationCenter=0,e.vRotationCenter=0,a.rotation&&(e.wAng=-a.rotation),a.scale&&(e.uScale=a.scale[0],e.vScale=a.scale[1]),null!=a.texCoord&&(e.coordinatesIndex=a.texCoord),n(e)}))}))},e}();_e.RegisterExtension(ct,(function(e){return new ut(e)}));var dt="KHR_xmp_json_ld",ht=function(){function e(e){this.name=dt,this.order=100,this._loader=e,this.enabled=this._loader.isExtensionUsed(dt)}return e.prototype.dispose=function(){this._loader=null},e.prototype.onLoading=function(){var e,t,n;if(null!==this._loader.rootBabylonMesh){var r=null===(e=this._loader.gltf.extensions)||void 0===e?void 0:e.KHR_xmp_json_ld,o=null===(n=null===(t=this._loader.gltf.asset)||void 0===t?void 0:t.extensions)||void 0===n?void 0:n.KHR_xmp_json_ld;if(r&&o){var a=+o.packet;r.packets&&a<r.packets.length&&(this._loader.rootBabylonMesh.metadata=this._loader.rootBabylonMesh.metadata||{},this._loader.rootBabylonMesh.metadata.xmp=r.packets[a])}}},e}();function ft(e,t,n,r){return y.Color3.FromArray(t,n).scale(r)}function pt(e,t,n,r){return t[n]*r}function _t(e,t,n,r){return-t[n]*r}function mt(e,t,n,r){return t[n+1]*r}function yt(e,t,n,r){return t[n]*r*2}function vt(e){return{scale:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".uScale"),pt,(function(){return 2})),new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".vScale"),mt,(function(){return 2}))],offset:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".uOffset"),pt,(function(){return 2})),new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".vOffset"),mt,(function(){return 2}))],rotation:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".wAng"),_t,(function(){return 1}))]}}_e.RegisterExtension(dt,(function(e){return new ht(e)}));var gt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){o(e._babylonCamera,this._buildAnimation(t,n,r))},t}(ce),bt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){for(var a in e._data)o(e._data[a].babylonMaterial,this._buildAnimation(t,n,r))},t}(ce),At=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){o(e._babylonLight,this._buildAnimation(t,n,r))},t}(ce),Tt={__array__:m({__target__:!0},he)},xt={__array__:{__target__:!0,orthographic:{xmag:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"orthoLeft",_t,(function(){return 1})),new gt(y.Animation.ANIMATIONTYPE_FLOAT,"orthoRight",mt,(function(){return 1}))],ymag:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"orthoBottom",_t,(function(){return 1})),new gt(y.Animation.ANIMATIONTYPE_FLOAT,"orthoTop",mt,(function(){return 1}))],zfar:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"maxZ",pt,(function(){return 1}))],znear:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"minZ",pt,(function(){return 1}))]},perspective:{yfov:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"fov",pt,(function(){return 1}))],zfar:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"maxZ",pt,(function(){return 1}))],znear:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"minZ",pt,(function(){return 1}))]}}},Et={nodes:Tt,materials:{__array__:{__target__:!0,pbrMetallicRoughness:{baseColorFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"albedoColor",ft,(function(){return 4})),new bt(y.Animation.ANIMATIONTYPE_FLOAT,"alpha",(function(e,t,n,r){return t[n+3]*r}),(function(){return 4}))],metallicFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"metallic",pt,(function(){return 1}))],roughnessFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"roughness",pt,(function(){return 1}))],baseColorTexture:{extensions:{KHR_texture_transform:vt("albedoTexture")}},metallicRoughnessTexture:{extensions:{KHR_texture_transform:vt("metallicTexture")}}},emissiveFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"emissiveColor",ft,(function(){return 3}))],normalTexture:{scale:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"bumpTexture.level",pt,(function(){return 1}))],extensions:{KHR_texture_transform:vt("bumpTexture")}},occlusionTexture:{strength:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"ambientTextureStrength",pt,(function(){return 1}))],extensions:{KHR_texture_transform:vt("ambientTexture")}},emissiveTexture:{extensions:{KHR_texture_transform:vt("emissiveTexture")}},extensions:{KHR_materials_anisotropy:{anisotropyStrength:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"anisotropy.intensity",pt,(function(){return 1}))],anisotropyRotation:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"anisotropy.angle",pt,(function(){return 1}))],anisotropyTexture:{extensions:{KHR_texture_transform:vt("anisotropy.texture")}}},KHR_materials_clearcoat:{clearcoatFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.intensity",pt,(function(){return 1}))],clearcoatRoughnessFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.roughness",pt,(function(){return 1}))],clearcoatTexture:{extensions:{KHR_texture_transform:vt("clearCoat.texture")}},clearcoatNormalTexture:{scale:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.bumpTexture.level",pt,(function(){return 1}))],extensions:{KHR_texture_transform:vt("clearCoat.bumpTexture")}},clearcoatRoughnessTexture:{extensions:{KHR_texture_transform:vt("clearCoat.textureRoughness")}}},KHR_materials_dispersion:{dispersion:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.dispersion",pt,(function(){return 1}))]},KHR_materials_emissive_strength:{emissiveStrength:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"emissiveIntensity",pt,(function(){return 1}))]},KHR_materials_ior:{ior:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"indexOfRefraction",pt,(function(){return 1}))]},KHR_materials_iridescence:{iridescenceFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"iridescence.intensity",pt,(function(){return 1}))],iridescenceIor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"iridescence.indexOfRefraction",pt,(function(){return 1}))],iridescenceThicknessMinimum:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"iridescence.minimumThickness",pt,(function(){return 1}))],iridescenceThicknessMaximum:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"iridescence.maximumThickness",pt,(function(){return 1}))],iridescenceTexture:{extensions:{KHR_texture_transform:vt("iridescence.texture")}},iridescenceThicknessTexture:{extensions:{KHR_texture_transform:vt("iridescence.thicknessTexture")}}},KHR_materials_sheen:{sheenColorFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"sheen.color",ft,(function(){return 3}))],sheenRoughnessFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"sheen.roughness",pt,(function(){return 1}))],sheenColorTexture:{extensions:{KHR_texture_transform:vt("sheen.texture")}},sheenRoughnessTexture:{extensions:{KHR_texture_transform:vt("sheen.textureRoughness")}}},KHR_materials_specular:{specularFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"metallicF0Factor",pt,(function(){return 1}))],specularColorFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"metallicReflectanceColor",ft,(function(){return 3}))],specularTexture:{extensions:{KHR_texture_transform:vt("metallicReflectanceTexture")}},specularColorTexture:{extensions:{KHR_texture_transform:vt("reflectanceTexture")}}},KHR_materials_transmission:{transmissionFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.refractionIntensity",pt,(function(){return 1}))],transmissionTexture:{extensions:{KHR_texture_transform:vt("subSurface.refractionIntensityTexture")}}},KHR_materials_volume:{attenuationColor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"subSurface.tintColor",ft,(function(){return 3}))],attenuationDistance:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.tintColorAtDistance",pt,(function(){return 1}))],thicknessFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.maximumThickness",pt,(function(){return 1}))],thicknessTexture:{extensions:{KHR_texture_transform:vt("subSurface.thicknessTexture")}}},KHR_materials_diffuse_transmission:{diffuseTransmissionFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.translucencyIntensity",pt,(function(){return 1}))],diffuseTransmissionTexture:{extensions:{KHR_texture_transform:vt("subSurface.translucencyIntensityTexture")}},diffuseTransmissionColorFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"subSurface.translucencyColor",ft,(function(){return 3}))],diffuseTransmissionColorTexture:{extensions:{KHR_texture_transform:vt("subSurface.translucencyColorTexture")}}}}}},cameras:xt,extensions:{KHR_lights_punctual:{lights:{__array__:{__target__:!0,color:[new At(y.Animation.ANIMATIONTYPE_COLOR3,"diffuse",ft,(function(){return 3}))],intensity:[new At(y.Animation.ANIMATIONTYPE_FLOAT,"intensity",pt,(function(){return 1}))],range:[new At(y.Animation.ANIMATIONTYPE_FLOAT,"range",pt,(function(){return 1}))],spot:{innerConeAngle:[new At(y.Animation.ANIMATIONTYPE_FLOAT,"innerAngle",yt,(function(){return 1}))],outerConeAngle:[new At(y.Animation.ANIMATIONTYPE_FLOAT,"angle",yt,(function(){return 1}))]}}}}}},Ot=function(){function e(e,t){this._gltf=e,this._infoTree=t}return e.prototype.convert=function(e){var t=this._gltf,n=this._infoTree,r=void 0;if(!e.startsWith("/"))throw new Error("Path must start with a /");var o=e.split("/");o.shift();for(var a=0,i=o;a<i.length;a++){var s=i[a];if(n.__array__)n=n.__array__;else if(!(n=n[s]))throw new Error("Path ".concat(e," is invalid"));if(void 0===t)throw new Error("Path ".concat(e," is invalid"));t=t[s],n.__target__&&(r=t)}return{object:r,info:n}},e}(),Mt="KHR_animation_pointer",wt=function(e){function t(t){return e.call(this,t,Et)||this}return _(t,e),t}(Ot),Ct=function(){function e(e){this.name=Mt,this._loader=e,this._pathToObjectConverter=new wt(this._loader.gltf)}return Object.defineProperty(e.prototype,"enabled",{get:function(){return this._loader.isExtensionUsed(Mt)},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this._loader=null,delete this._pathToObjectConverter},e.prototype._loadAnimationChannelAsync=function(e,t,n,r,o){var a,i=null===(a=r.target.extensions)||void 0===a?void 0:a.KHR_animation_pointer;if(!i||!this._pathToObjectConverter)return null;"pointer"!==r.target.path&&y.Logger.Warn("".concat(e,"/target/path: Value (").concat(r.target.path,") must be (").concat("pointer",") when using the ").concat(this.name," extension")),null!=r.target.node&&y.Logger.Warn("".concat(e,"/target/node: Value (").concat(r.target.node,") must not be present when using the ").concat(this.name," extension"));var s="".concat(e,"/extensions/").concat(this.name),l=i.pointer;if(!l)throw new Error("".concat(s,": Pointer is missing"));try{var c=this._pathToObjectConverter.convert(l);return this._loader._loadAnimationChannelFromTargetInfoAsync(e,t,n,r,c,o)}catch(e){return y.Logger.Warn("".concat(s,"/pointer: Invalid pointer (").concat(l,") skipped")),null}},e}();_e.RegisterExtension(Mt,(function(e){return new Ct(e)}));var Lt="MSFT_audio_emitter",Nt=function(){function e(e){this.name=Lt,this._loader=e,this.enabled=this._loader.isExtensionUsed(Lt)}return e.prototype.dispose=function(){this._loader=null,this._clips=null,this._emitters=null},e.prototype.onLoading=function(){var e=this._loader.gltf.extensions;if(e&&e[this.name]){var t=e[this.name];this._clips=t.clips,this._emitters=t.emitters,pe.Assign(this._clips),pe.Assign(this._emitters)}},e.prototype.loadSceneAsync=function(e,t){var n=this;return _e.LoadExtensionAsync(e,t,this.name,(function(r,o){var a=new Array;a.push(n._loader.loadSceneAsync(e,t));for(var i=0,s=o.emitters;i<s.length;i++){var l=s[i],c=pe.Get("".concat(r,"/emitters"),n._emitters,l);if(null!=c.refDistance||null!=c.maxDistance||null!=c.rolloffFactor||null!=c.distanceModel||null!=c.innerAngle||null!=c.outerAngle)throw new Error("".concat(r,": Direction or Distance properties are not allowed on emitters attached to a scene"));a.push(n._loadEmitterAsync("".concat(r,"/emitters/").concat(c.index),c))}return Promise.all(a).then((function(){}))}))},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(e,o){var a=new Array;return r._loader.loadNodeAsync(e,t,(function(t){for(var i=function(n){var o=pe.Get("".concat(e,"/emitters"),r._emitters,n);a.push(r._loadEmitterAsync("".concat(e,"/emitters/").concat(o.index),o).then((function(){for(var e=0,n=o._babylonSounds;e<n.length;e++){var r=n[e];r.attachToMesh(t),null==o.innerAngle&&null==o.outerAngle||(r.setLocalDirectionToMesh(y.Vector3.Forward()),r.setDirectionalCone(2*y.Tools.ToDegrees(null==o.innerAngle?Math.PI:o.innerAngle),2*y.Tools.ToDegrees(null==o.outerAngle?Math.PI:o.outerAngle),0))}})))},s=0,l=o.emitters;s<l.length;s++)i(l[s]);n(t)})).then((function(e){return Promise.all(a).then((function(){return e}))}))}))},e.prototype.loadAnimationAsync=function(e,t){var n=this;return _e.LoadExtensionAsync(e,t,this.name,(function(r,o){return n._loader.loadAnimationAsync(e,t).then((function(a){var i=new Array;pe.Assign(o.events);for(var s=0,l=o.events;s<l.length;s++){var c=l[s];i.push(n._loadAnimationEventAsync("".concat(r,"/events/").concat(c.index),e,t,c,a))}return Promise.all(i).then((function(){return a}))}))}))},e.prototype._loadClipAsync=function(e,t){if(t._objectURL)return t._objectURL;var n;if(t.uri)n=this._loader.loadUriAsync(e,t,t.uri);else{var r=pe.Get("".concat(e,"/bufferView"),this._loader.gltf.bufferViews,t.bufferView);n=this._loader.loadBufferViewAsync("/bufferViews/".concat(r.index),r)}return t._objectURL=n.then((function(e){return URL.createObjectURL(new Blob([e],{type:t.mimeType}))})),t._objectURL},e.prototype._loadEmitterAsync=function(e,t){var n=this;if(t._babylonSounds=t._babylonSounds||[],!t._babylonData){for(var r=new Array,o=t.name||"emitter".concat(t.index),a={loop:!1,autoplay:!1,volume:null==t.volume?1:t.volume},i=function(e){var i="/extensions/".concat(s.name,"/clips"),l=pe.Get(i,s._clips,t.clips[e].clip);r.push(s._loadClipAsync("".concat(i,"/").concat(t.clips[e].clip),l).then((function(r){var i=t._babylonSounds[e]=new y.Sound(o,r,n._loader.babylonScene,null,a);i.refDistance=t.refDistance||1,i.maxDistance=t.maxDistance||256,i.rolloffFactor=t.rolloffFactor||1,i.distanceModel=t.distanceModel||"exponential"})))},s=this,l=0;l<t.clips.length;l++)i(l);var c=Promise.all(r).then((function(){var e=t.clips.map((function(e){return e.weight||1})),n=new y.WeightedSound(t.loop||!1,t._babylonSounds,e);t.innerAngle&&(n.directionalConeInnerAngle=2*y.Tools.ToDegrees(t.innerAngle)),t.outerAngle&&(n.directionalConeOuterAngle=2*y.Tools.ToDegrees(t.outerAngle)),t.volume&&(n.volume=t.volume),t._babylonData.sound=n}));t._babylonData={loaded:c}}return t._babylonData.loaded},e.prototype._getEventAction=function(e,t,n,r,o){switch(n){case"play":return function(e){var n=(o||0)+(e-r);t.play(n)};case"stop":return function(){t.stop()};case"pause":return function(){t.pause()};default:throw new Error("".concat(e,": Unsupported action ").concat(n))}},e.prototype._loadAnimationEventAsync=function(e,t,n,r,o){var a=this;if(0==o.targetedAnimations.length)return Promise.resolve();var i=o.targetedAnimations[0],s=r.emitter,l=pe.Get("/extensions/".concat(this.name,"/emitters"),this._emitters,s);return this._loadEmitterAsync(e,l).then((function(){var t=l._babylonData.sound;if(t){var n=new y.AnimationEvent(r.time,a._getEventAction(e,t,r.action,r.time,r.startOffset));i.animation.addEvent(n),o.onAnimationGroupEndObservable.add((function(){t.stop()})),o.onAnimationGroupPauseObservable.add((function(){t.pause()}))}}))},e}();_e.RegisterExtension(Lt,(function(e){return new Nt(e)}));var St="MSFT_lod",Rt=function(){function e(e){var t,n;this.name=St,this.order=100,this.maxLODsToLoad=10,this.onNodeLODsLoadedObservable=new y.Observable,this.onMaterialLODsLoadedObservable=new y.Observable,this._bufferLODs=new Array,this._nodeIndexLOD=null,this._nodeSignalLODs=new Array,this._nodePromiseLODs=new Array,this._nodeBufferLODs=new Array,this._materialIndexLOD=null,this._materialSignalLODs=new Array,this._materialPromiseLODs=new Array,this._materialBufferLODs=new Array,this._loader=e,this.maxLODsToLoad=null!==(n=null===(t=this._loader.parent.extensionOptions[St])||void 0===t?void 0:t.maxLODsToLoad)&&void 0!==n?n:this.maxLODsToLoad,this.enabled=this._loader.isExtensionUsed(St)}return e.prototype.dispose=function(){this._loader=null,this._nodeIndexLOD=null,this._nodeSignalLODs.length=0,this._nodePromiseLODs.length=0,this._nodeBufferLODs.length=0,this._materialIndexLOD=null,this._materialSignalLODs.length=0,this._materialPromiseLODs.length=0,this._materialBufferLODs.length=0,this.onMaterialLODsLoadedObservable.clear(),this.onNodeLODsLoadedObservable.clear()},e.prototype.onReady=function(){for(var e=this,t=function(t){var r=Promise.all(n._nodePromiseLODs[t]).then((function(){0!==t&&(e._loader.endPerformanceCounter("Node LOD ".concat(t)),e._loader.log("Loaded node LOD ".concat(t))),e.onNodeLODsLoadedObservable.notifyObservers(t),t!==e._nodePromiseLODs.length-1&&(e._loader.startPerformanceCounter("Node LOD ".concat(t+1)),e._loadBufferLOD(e._nodeBufferLODs,t+1),e._nodeSignalLODs[t]&&e._nodeSignalLODs[t].resolve())}));n._loader._completePromises.push(r)},n=this,r=0;r<this._nodePromiseLODs.length;r++)t(r);var o=function(t){var n=Promise.all(a._materialPromiseLODs[t]).then((function(){0!==t&&(e._loader.endPerformanceCounter("Material LOD ".concat(t)),e._loader.log("Loaded material LOD ".concat(t))),e.onMaterialLODsLoadedObservable.notifyObservers(t),t!==e._materialPromiseLODs.length-1&&(e._loader.startPerformanceCounter("Material LOD ".concat(t+1)),e._loadBufferLOD(e._materialBufferLODs,t+1),e._materialSignalLODs[t]&&e._materialSignalLODs[t].resolve())}));a._loader._completePromises.push(n)},a=this;for(r=0;r<this._materialPromiseLODs.length;r++)o(r)},e.prototype.loadSceneAsync=function(e,t){var n=this._loader.loadSceneAsync(e,t);return this._loadBufferLOD(this._bufferLODs,0),n},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(e,o){var a,i=r._getLODs(e,t,r._loader.gltf.nodes,o.ids);r._loader.logOpen("".concat(e));for(var s=function(e){var t=i[e];0!==e&&(r._nodeIndexLOD=e,r._nodeSignalLODs[e]=r._nodeSignalLODs[e]||new y.Deferred);var o=r._loader.loadNodeAsync("/nodes/".concat(t.index),t,(function(e){n(e),e.setEnabled(!1)})).then((function(t){if(0!==e){var n=i[e-1];n._babylonTransformNode&&(r._disposeTransformNode(n._babylonTransformNode),delete n._babylonTransformNode)}return t.setEnabled(!0),t}));r._nodePromiseLODs[e]=r._nodePromiseLODs[e]||[],0===e?a=o:(r._nodeIndexLOD=null,r._nodePromiseLODs[e].push(o))},l=0;l<i.length;l++)s(l);return r._loader.logClose(),a}))},e.prototype._loadMaterialAsync=function(e,t,n,r,o){var a=this;return this._nodeIndexLOD?null:_e.LoadExtensionAsync(e,t,this.name,(function(e,i){var s,l=a._getLODs(e,t,a._loader.gltf.materials,i.ids);a._loader.logOpen("".concat(e));for(var c=function(e){var t=l[e];0!==e&&(a._materialIndexLOD=e);var i=a._loader._loadMaterialAsync("/materials/".concat(t.index),t,n,r,(function(t){0===e&&o(t)})).then((function(t){if(0!==e){o(t);var n=l[e-1]._data;n[r]&&(a._disposeMaterials([n[r].babylonMaterial]),delete n[r])}return t}));a._materialPromiseLODs[e]=a._materialPromiseLODs[e]||[],0===e?s=i:(a._materialIndexLOD=null,a._materialPromiseLODs[e].push(i))},u=0;u<l.length;u++)c(u);return a._loader.logClose(),s}))},e.prototype._loadUriAsync=function(e,t,n){var r=this;if(null!==this._nodeIndexLOD){this._loader.log("deferred");var o=this._nodeIndexLOD-1;return this._nodeSignalLODs[o]=this._nodeSignalLODs[o]||new y.Deferred,this._nodeSignalLODs[this._nodeIndexLOD-1].promise.then((function(){return r._loader.loadUriAsync(e,t,n)}))}return null!==this._materialIndexLOD?(this._loader.log("deferred"),o=this._materialIndexLOD-1,this._materialSignalLODs[o]=this._materialSignalLODs[o]||new y.Deferred,this._materialSignalLODs[o].promise.then((function(){return r._loader.loadUriAsync(e,t,n)}))):null},e.prototype.loadBufferAsync=function(e,t,n,r){if(this._loader.parent.useRangeRequests&&!t.uri){if(!this._loader.bin)throw new Error("".concat(e,": Uri is missing or the binary glTF is missing its binary chunk"));var o=function(e,t){var o=n,a=o+r-1,i=e[t];return i?(i.start=Math.min(i.start,o),i.end=Math.max(i.end,a)):(i={start:o,end:a,loaded:new y.Deferred},e[t]=i),i.loaded.promise.then((function(e){return new Uint8Array(e.buffer,e.byteOffset+n-i.start,r)}))};return this._loader.log("deferred"),null!==this._nodeIndexLOD?o(this._nodeBufferLODs,this._nodeIndexLOD):null!==this._materialIndexLOD?o(this._materialBufferLODs,this._materialIndexLOD):o(this._bufferLODs,0)}return null},e.prototype._loadBufferLOD=function(e,t){var n=e[t];n&&(this._loader.log("Loading buffer range [".concat(n.start,"-").concat(n.end,"]")),this._loader.bin.readAsync(n.start,n.end-n.start+1).then((function(e){n.loaded.resolve(e)}),(function(e){n.loaded.reject(e)})))},e.prototype._getLODs=function(e,t,n,r){if(this.maxLODsToLoad<=0)throw new Error("maxLODsToLoad must be greater than zero");for(var o=[],a=r.length-1;a>=0;a--)if(o.push(pe.Get("".concat(e,"/ids/").concat(r[a]),n,r[a])),o.length===this.maxLODsToLoad)return o;return o.push(t),o},e.prototype._disposeTransformNode=function(e){var t=this,n=[],r=e.material;r&&n.push(r);for(var o=0,a=e.getChildMeshes();o<a.length;o++){var i=a[o];i.material&&n.push(i.material)}e.dispose();var s=n.filter((function(e){return t._loader.babylonScene.meshes.every((function(t){return t.material!=e}))}));this._disposeMaterials(s)},e.prototype._disposeMaterials=function(e){for(var t={},n=0,r=e;n<r.length;n++){for(var o=0,a=(u=r[n]).getActiveTextures();o<a.length;o++){var i=a[o];t[i.uniqueId]=i}u.dispose()}for(var s in t)for(var l=0,c=this._loader.babylonScene.materials;l<c.length;l++){var u;(u=c[l]).hasTexture(t[s])&&delete t[s]}for(var s in t)t[s].dispose()},e}();_e.RegisterExtension(St,(function(e){return new Rt(e)}));var Ft="MSFT_minecraftMesh",Pt=function(){function e(e){this.name=Ft,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ft)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtraAsync(e,t,this.name,(function(o,a){if(a){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(o,": Material type not supported"));var i=r._loader.loadMaterialPropertiesAsync(e,t,n);return n.needAlphaBlending()&&(n.forceDepthWrite=!0,n.separateCullingPass=!0),n.backFaceCulling=n.forceDepthWrite,n.twoSidedLighting=!0,i}return null}))},e}();_e.RegisterExtension(Ft,(function(e){return new Pt(e)}));var It="MSFT_sRGBFactors",Bt=function(){function e(e){this.name=It,this._loader=e,this.enabled=this._loader.isExtensionUsed(It)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtraAsync(e,t,this.name,(function(o,a){if(a){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(o,": Material type not supported"));var i=r._loader.loadMaterialPropertiesAsync(e,t,n),s=n.getScene().getEngine().useExactSrgbConversions;return n.albedoTexture||n.albedoColor.toLinearSpaceToRef(n.albedoColor,s),n.reflectivityTexture||n.reflectivityColor.toLinearSpaceToRef(n.reflectivityColor,s),i}return null}))},e}();_e.RegisterExtension(It,(function(e){return new Bt(e)}));var Dt={"lifecycle/onStart":y.FlowGraphSceneReadyEventBlock.ClassName,"lifecycle/onTick":y.FlowGraphSceneTickEventBlock.ClassName,log:y.FlowGraphConsoleLogBlock.ClassName,"flow/delay":y.FlowGraphTimerBlock.ClassName,"customEvent/send":y.FlowGraphSendCustomEventBlock.ClassName,"customEvent/receive":y.FlowGraphReceiveCustomEventBlock.ClassName,"flow/sequence":y.FlowGraphSequenceBlock.ClassName,"world/get":y.FlowGraphGetPropertyBlock.ClassName,"world/set":y.FlowGraphSetPropertyBlock.ClassName,"flow/doN":y.FlowGraphDoNBlock.ClassName,"variable/get":y.FlowGraphGetVariableBlock.ClassName,"variable/set":y.FlowGraphSetVariableBlock.ClassName,"flow/whileLoop":y.FlowGraphWhileLoopBlock.ClassName,"math/random":y.FlowGraphRandomBlock.ClassName,"math/e":y.FlowGraphEBlock.ClassName,"math/pi":y.FlowGraphPiBlock.ClassName,"math/inf":y.FlowGraphInfBlock.ClassName,"math/nan":y.FlowGraphNaNBlock.ClassName,"math/abs":y.FlowGraphAbsBlock.ClassName,"math/sign":y.FlowGraphSignBlock.ClassName,"math/trunc":y.FlowGraphTruncBlock.ClassName,"math/floor":y.FlowGraphFloorBlock.ClassName,"math/ceil":y.FlowGraphCeilBlock.ClassName,"math/fract":y.FlowGraphFractBlock.ClassName,"math/neg":y.FlowGraphNegBlock.ClassName,"math/add":y.FlowGraphAddBlock.ClassName,"math/sub":y.FlowGraphSubtractBlock.ClassName,"math/mul":y.FlowGraphMultiplyBlock.ClassName,"math/div":y.FlowGraphDivideBlock.ClassName,"math/rem":y.FlowGraphRemainderBlock.ClassName,"math/min":y.FlowGraphMinBlock.ClassName,"math/max":y.FlowGraphMaxBlock.ClassName,"math/clamp":y.FlowGraphClampBlock.ClassName,"math/saturate":y.FlowGraphSaturateBlock.ClassName,"math/mix":y.FlowGraphInterpolateBlock.ClassName,"math/eq":y.FlowGraphEqBlock.ClassName,"math/lt":y.FlowGraphLessThanBlock.ClassName,"math/le":y.FlowGraphLessThanOrEqualBlock.ClassName,"math/gt":y.FlowGraphGreaterThanBlock.ClassName,"math/ge":y.FlowGraphGreaterThanOrEqualBlock.ClassName,"math/isnan":y.FlowGraphIsNanBlock.ClassName,"math/isinf":y.FlowGraphIsInfBlock.ClassName,"math/rad":y.FlowGraphDegToRadBlock.ClassName,"math/deg":y.FlowGraphRadToDegBlock.ClassName,"math/sin":y.FlowGraphSinBlock.ClassName,"math/cos":y.FlowGraphCosBlock.ClassName,"math/tan":y.FlowGraphTanBlock.ClassName,"math/asin":y.FlowGraphAsinBlock.ClassName,"math/acos":y.FlowGraphAcosBlock.ClassName,"math/atan":y.FlowGraphAtanBlock.ClassName,"math/atan2":y.FlowGraphAtan2Block.ClassName,"math/sinh":y.FlowGraphSinhBlock.ClassName,"math/cosh":y.FlowGraphCoshBlock.ClassName,"math/tanh":y.FlowGraphTanhBlock.ClassName,"math/asinh":y.FlowGraphAsinhBlock.ClassName,"math/acosh":y.FlowGraphAcoshBlock.ClassName,"math/atanh":y.FlowGraphAtanhBlock.ClassName,"math/exp":y.FlowGraphExpBlock.ClassName,"math/log":y.FlowGraphLogBlock.ClassName,"math/log2":y.FlowGraphLog2Block.ClassName,"math/log10":y.FlowGraphLog10Block.ClassName,"math/sqrt":y.FlowGraphSqrtBlock.ClassName,"math/cbrt":y.FlowGraphCubeRootBlock.ClassName,"math/pow":y.FlowGraphPowBlock.ClassName,"math/length":y.FlowGraphLengthBlock.ClassName,"math/normalize":y.FlowGraphNormalizeBlock.ClassName,"math/dot":y.FlowGraphDotBlock.ClassName,"math/cross":y.FlowGraphCrossBlock.ClassName,"math/rotate2d":y.FlowGraphRotate2DBlock.ClassName,"math/rotate3d":y.FlowGraphRotate3DBlock.ClassName,"math/transpose":y.FlowGraphTransposeBlock.ClassName,"math/determinant":y.FlowGraphDeterminantBlock.ClassName,"math/inverse":y.FlowGraphInvertMatrixBlock.ClassName,"math/matmul":y.FlowGraphMatMulBlock.ClassName,"math/not":y.FlowGraphBitwiseNotBlock.ClassName,"math/and":y.FlowGraphBitwiseAndBlock.ClassName,"math/or":y.FlowGraphBitwiseOrBlock.ClassName,"math/xor":y.FlowGraphBitwiseXorBlock.ClassName,"math/asr":y.FlowGraphBitwiseRightShiftBlock.ClassName,"math/lsl":y.FlowGraphBitwiseLeftShiftBlock.ClassName,"math/clz":y.FlowGraphCountLeadingZerosBlock.ClassName,"math/ctz":y.FlowGraphCountTrailingZerosBlock.ClassName,"math/popcnt":y.FlowGraphCountOneBitsBlock.ClassName},Vt={float2:"Vector2",float3:"Vector3",float4:"Vector4",float4x4:"Matrix",int:"FlowGraphInteger"};function kt(e,t,n){if(void 0!==e.type){var r=t.types&&t.types[e.type];if(!r)throw new Error("".concat(n,": Unknown type: ").concat(e.type));var o=r.signature;if(!o)throw new Error("".concat(n,": Type ").concat(e.type," has no signature"));var a=Vt[o];return{value:e.value,className:a}}return e.value}function Gt(e,t,n){var r=Dt[t.type];if(!r)throw new Error("/extensions/KHR_interactivity/nodes/".concat(e,": Unknown block type: ").concat(t.type));var o=e.toString(),a=function(e,t,n){for(var r,o={},a=0,i=null!==(r=e.configuration)&&void 0!==r?r:[];a<i.length;a++){var s=i[a];if("customEvent"===s.id){var l=t.customEvents&&t.customEvents[s.value];if(!l)throw new Error("/extensions/KHR_interactivity/nodes/".concat(n,": Unknown custom event: ").concat(s.value));o.eventId=l.id,o.eventData=l.values.map((function(e){return e.id}))}else if("variable"===s.id){var c=t.variables&&t.variables[s.value];if(!c)throw new Error("/extensions/KHR_interactivity/nodes/".concat(n,": Unknown variable: ").concat(s.value));o.variableName=c.id}else if("path"===s.id){var u=s.value;o.path=u}else o[s.id]=kt(s,t,"/extensions/KHR_interactivity/nodes/".concat(n))}return o}(t,n,o);return{className:r,config:a,uniqueId:o,metadata:t.metadata,dataInputs:[],dataOutputs:[],signalInputs:[],signalOutputs:[]}}var Ut=function(e){function t(t){return e.call(this,t,Ht)||this}return _(t,e),t}(Ot),Ht={nodes:{__array__:{__target__:!0,translation:{type:"Vector3",get:function(e){return e._babylonTransformNode.position},set:function(e,t){t._babylonTransformNode.position=e},getObject:function(e){return e._babylonTransformNode}}}}},jt="KHR_interactivity",Kt=function(){function e(e){this._loader=e,this.name=jt,this.enabled=this._loader.isExtensionUsed(jt),this._pathConverter=new Ut(this._loader.gltf)}return e.prototype.dispose=function(){this._loader=null,delete this._pathConverter},e.prototype.onReady=function(){var e;if(this._loader.babylonScene&&this._pathConverter){var t=this._loader.babylonScene,n=function(e){for(var t,n,r,o={uniqueId:(0,y.RandomGUID)(),_userVariables:{},_connectionValues:{}},a=[o],i=[],s=0;s<e.nodes.length;s++){var l=e.nodes[s],c=Gt(s,l,e);i.push(c)}for(s=0;s<e.nodes.length;s++){l=e.nodes[s];for(var u=i[s],d=function(e){var t=e.id,n={uniqueId:(0,y.RandomGUID)(),name:t,_connectionType:1,connectedPointIds:[]};u.signalOutputs.push(n);var r=e.node,o=e.socket,a=i[r];if(!a)throw new Error("/extensions/KHR_interactivity/nodes/".concat(s,": Could not find node with id ").concat(r," that connects its input with with node ").concat(s,"'s output ").concat(t));var l=a.signalInputs.find((function(e){return e.name===o}));l||(l={uniqueId:(0,y.RandomGUID)(),name:o,_connectionType:0,connectedPointIds:[]},a.signalInputs.push(l)),l.connectedPointIds.push(n.uniqueId),n.connectedPointIds.push(l.uniqueId)},h=0,f=null!==(t=l.flows)&&void 0!==t?t:[];h<f.length;h++)d(f[h]);for(var p=function(t){var n=t.id,r={uniqueId:(0,y.RandomGUID)(),name:n,_connectionType:0,connectedPointIds:[]};if(u.dataInputs.push(r),void 0!==t.value){var a=kt(t,e,"/extensions/KHR_interactivity/nodes/".concat(s));o._connectionValues[r.uniqueId]=a}else{if(void 0===t.node||void 0===t.socket)throw new Error("/extensions/KHR_interactivity/nodes/".concat(s,": Invalid socket ").concat(n," in node ").concat(s));var l=t.node,c=t.socket,d=i[l];if(!d)throw new Error("/extensions/KHR_interactivity/nodes/".concat(s,": Could not find node with id ").concat(l," that connects its output with node").concat(s,"'s input ").concat(n));var h=d.dataOutputs.find((function(e){return e.name===c}));h||(h={uniqueId:(0,y.RandomGUID)(),name:c,_connectionType:1,connectedPointIds:[]},d.dataOutputs.push(h)),r.connectedPointIds.push(h.uniqueId),h.connectedPointIds.push(r.uniqueId)}},_=0,m=null!==(n=l.values)&&void 0!==n?n:[];_<m.length;_++)p(m[_])}var v=null!==(r=e.variables)&&void 0!==r?r:[];for(s=0;s<v.length;s++){var g=v[s],b=g.id;o._userVariables[b]=kt(g,e,"/extensions/KHR_interactivity/variables/".concat(s))}return{allBlocks:i,executionContexts:a}}(null===(e=this._loader.gltf.extensions)||void 0===e?void 0:e.KHR_interactivity),r=new y.FlowGraphCoordinator({scene:t});y.FlowGraph.Parse(n,{coordinator:r,pathConverter:this._pathConverter}),r.start()}},e}();_e.RegisterExtension(jt,(function(e){return new Kt(e)}));var Wt="ExtrasAsMetadata",Yt=function(){function e(e){this.name=Wt,this.enabled=!0,this._loader=e}return e.prototype._assignExtras=function(e,t){if(t.extras&&Object.keys(t.extras).length>0){var n=e.metadata=e.metadata||{};(n.gltf=n.gltf||{}).extras=t.extras}},e.prototype.dispose=function(){this._loader=null},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return this._loader.loadNodeAsync(e,t,(function(e){r._assignExtras(e,t),n(e)}))},e.prototype.loadCameraAsync=function(e,t,n){var r=this;return this._loader.loadCameraAsync(e,t,(function(e){r._assignExtras(e,t),n(e)}))},e.prototype.createMaterial=function(e,t,n){var r=this._loader.createMaterial(e,t,n);return this._assignExtras(r,t),r},e}();_e.RegisterExtension(Wt,(function(e){return new Yt(e)}));var qt=function(){function e(){this.materials=[]}return e.prototype.parseMTL=function(t,n,r,o){if(!(n instanceof ArrayBuffer)){for(var a,i=n.split("\n"),s=/\s+/,l=null,c=0;c<i.length;c++){var u=i[c].trim();if(0!==u.length&&"#"!==u.charAt(0)){var d=u.indexOf(" "),h=d>=0?u.substring(0,d):u;h=h.toLowerCase();var f=d>=0?u.substring(d+1).trim():"";if("newmtl"===h)l&&this.materials.push(l),t._blockEntityCollection=!!o,(l=new y.StandardMaterial(f,t))._parentContainer=o,t._blockEntityCollection=!1;else if("kd"===h&&l)a=f.split(s,3).map(parseFloat),l.diffuseColor=y.Color3.FromArray(a);else if("ka"===h&&l)a=f.split(s,3).map(parseFloat),l.ambientColor=y.Color3.FromArray(a);else if("ks"===h&&l)a=f.split(s,3).map(parseFloat),l.specularColor=y.Color3.FromArray(a);else if("ke"===h&&l)a=f.split(s,3).map(parseFloat),l.emissiveColor=y.Color3.FromArray(a);else if("ns"===h&&l)l.specularPower=parseFloat(f);else if("d"===h&&l)l.alpha=parseFloat(f);else if("map_ka"===h&&l)l.ambientTexture=e._GetTexture(r,f,t);else if("map_kd"===h&&l)l.diffuseTexture=e._GetTexture(r,f,t);else if("map_ks"===h&&l)l.specularTexture=e._GetTexture(r,f,t);else if("map_ns"===h);else if("map_bump"===h&&l){var p=f.split(s),_=p.indexOf("-bm"),m=null;_>=0&&(m=p[_+1],p.splice(_,2)),l.bumpTexture=e._GetTexture(r,p.join(" "),t),l.bumpTexture&&null!==m&&(l.bumpTexture.level=parseFloat(m))}else"map_d"===h&&l&&(l.opacityTexture=e._GetTexture(r,f,t))}}l&&this.materials.push(l)}},e._GetTexture=function(t,n,r){if(!n)return null;var o=t;if("file:"===t){var a=n.lastIndexOf("\\");-1===a&&(a=n.lastIndexOf("/")),o+=a>-1?n.substr(a+1):n}else o+=n;return new y.Texture(o,r,!1,e.INVERT_TEXTURE_Y)},e.INVERT_TEXTURE_Y=!0,e}(),zt=function(){function e(e,t,n){this._positions=[],this._normals=[],this._uvs=[],this._colors=[],this._meshesFromObj=[],this._indicesForBabylon=[],this._wrappedPositionForBabylon=[],this._wrappedUvsForBabylon=[],this._wrappedColorsForBabylon=[],this._wrappedNormalsForBabylon=[],this._tuplePosNorm=[],this._curPositionInIndices=0,this._hasMeshes=!1,this._unwrappedPositionsForBabylon=[],this._unwrappedColorsForBabylon=[],this._unwrappedNormalsForBabylon=[],this._unwrappedUVForBabylon=[],this._triangles=[],this._materialNameFromObj="",this._objMeshName="",this._increment=1,this._isFirstMaterial=!0,this._grayColor=new y.Color4(.5,.5,.5,1),this._hasLineData=!1,this._materialToUse=e,this._babylonMeshesArray=t,this._loadingOptions=n}return e.prototype._isInArray=function(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[]});var n=e[t[0]].normals.indexOf(t[1]);return-1===n?-1:e[t[0]].idx[n]},e.prototype._isInArrayUV=function(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[],uv:[]});var n=e[t[0]].normals.indexOf(t[1]);return 1!=n&&t[2]===e[t[0]].uv[n]?e[t[0]].idx[n]:-1},e.prototype._setData=function(e,t,n,r,o,a,i){var s;-1===(s=this._loadingOptions.optimizeWithUV?this._isInArrayUV(this._tuplePosNorm,[e,n,t]):this._isInArray(this._tuplePosNorm,[e,n]))?(this._indicesForBabylon.push(this._wrappedPositionForBabylon.length),this._wrappedPositionForBabylon.push(r),o=null!=o?o:new y.Vector2(0,0),this._wrappedUvsForBabylon.push(o),this._wrappedNormalsForBabylon.push(a),void 0!==i&&this._wrappedColorsForBabylon.push(i),this._tuplePosNorm[e].normals.push(n),this._tuplePosNorm[e].idx.push(this._curPositionInIndices++),this._loadingOptions.optimizeWithUV&&this._tuplePosNorm[e].uv.push(t)):this._indicesForBabylon.push(s)},e.prototype._unwrapData=function(){for(var e=0;e<this._wrappedPositionForBabylon.length;e++)this._unwrappedPositionsForBabylon.push(this._wrappedPositionForBabylon[e].x*this._handednessSign,this._wrappedPositionForBabylon[e].y,this._wrappedPositionForBabylon[e].z),this._unwrappedNormalsForBabylon.push(this._wrappedNormalsForBabylon[e].x*this._handednessSign,this._wrappedNormalsForBabylon[e].y,this._wrappedNormalsForBabylon[e].z),this._unwrappedUVForBabylon.push(this._wrappedUvsForBabylon[e].x,this._wrappedUvsForBabylon[e].y),this._loadingOptions.importVertexColors&&this._unwrappedColorsForBabylon.push(this._wrappedColorsForBabylon[e].r,this._wrappedColorsForBabylon[e].g,this._wrappedColorsForBabylon[e].b,this._wrappedColorsForBabylon[e].a);this._wrappedPositionForBabylon.length=0,this._wrappedNormalsForBabylon.length=0,this._wrappedUvsForBabylon.length=0,this._wrappedColorsForBabylon.length=0,this._tuplePosNorm.length=0,this._curPositionInIndices=0},e.prototype._getTriangles=function(e,t){for(var n=t;n<e.length-1;n++)this._pushTriangle(e,n)},e.prototype._setDataForCurrentFaceWithPattern1=function(e,t){this._getTriangles(e,t);for(var n=0;n<this._triangles.length;n++){var r=parseInt(this._triangles[n])-1;this._setData(r,0,0,this._positions[r],y.Vector2.Zero(),y.Vector3.Up(),this._loadingOptions.importVertexColors?this._colors[r]:void 0)}this._triangles.length=0},e.prototype._setDataForCurrentFaceWithPattern2=function(e,t){var n;this._getTriangles(e,t);for(var r=0;r<this._triangles.length;r++){var o=this._triangles[r].split("/"),a=parseInt(o[0])-1,i=parseInt(o[1])-1;this._setData(a,i,0,this._positions[a],null!==(n=this._uvs[i])&&void 0!==n?n:y.Vector2.Zero(),y.Vector3.Up(),this._loadingOptions.importVertexColors?this._colors[a]:void 0)}this._triangles.length=0},e.prototype._setDataForCurrentFaceWithPattern3=function(e,t){var n,r;this._getTriangles(e,t);for(var o=0;o<this._triangles.length;o++){var a=this._triangles[o].split("/"),i=parseInt(a[0])-1,s=parseInt(a[1])-1,l=parseInt(a[2])-1;this._setData(i,s,l,this._positions[i],null!==(n=this._uvs[s])&&void 0!==n?n:y.Vector2.Zero(),null!==(r=this._normals[l])&&void 0!==r?r:y.Vector3.Up())}this._triangles.length=0},e.prototype._setDataForCurrentFaceWithPattern4=function(e,t){this._getTriangles(e,t);for(var n=0;n<this._triangles.length;n++){var r=this._triangles[n].split("//"),o=parseInt(r[0])-1,a=parseInt(r[1])-1;this._setData(o,1,a,this._positions[o],y.Vector2.Zero(),this._normals[a],this._loadingOptions.importVertexColors?this._colors[o]:void 0)}this._triangles.length=0},e.prototype._setDataForCurrentFaceWithPattern5=function(e,t){this._getTriangles(e,t);for(var n=0;n<this._triangles.length;n++){var r=this._triangles[n].split("/"),o=this._positions.length+parseInt(r[0]),a=this._uvs.length+parseInt(r[1]),i=this._normals.length+parseInt(r[2]);this._setData(o,a,i,this._positions[o],this._uvs[a],this._normals[i],this._loadingOptions.importVertexColors?this._colors[o]:void 0)}this._triangles.length=0},e.prototype._addPreviousObjMesh=function(){this._meshesFromObj.length>0&&(this._handledMesh=this._meshesFromObj[this._meshesFromObj.length-1],this._unwrapData(),this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._handledMesh.indices=this._indicesForBabylon.slice(),this._handledMesh.positions=this._unwrappedPositionsForBabylon.slice(),this._handledMesh.normals=this._unwrappedNormalsForBabylon.slice(),this._handledMesh.uvs=this._unwrappedUVForBabylon.slice(),this._handledMesh.hasLines=this._hasLineData,this._loadingOptions.importVertexColors&&(this._handledMesh.colors=this._unwrappedColorsForBabylon.slice()),this._indicesForBabylon.length=0,this._unwrappedPositionsForBabylon.length=0,this._unwrappedColorsForBabylon.length=0,this._unwrappedNormalsForBabylon.length=0,this._unwrappedUVForBabylon.length=0,this._hasLineData=!1)},e.prototype._optimizeNormals=function(e){var t=e.getVerticesData(y.VertexBuffer.PositionKind),n=e.getVerticesData(y.VertexBuffer.NormalKind),r={};if(t&&n){for(var o=0;o<t.length/3;o++)(s=r[i=t[3*o+0]+"_"+t[3*o+1]+"_"+t[3*o+2]])||(s=[],r[i]=s),s.push(o);var a=new y.Vector3;for(var i in r){var s;if(!((s=r[i]).length<2)){var l=s[0];for(o=1;o<s.length;++o){var c=s[o];n[3*l+0]+=n[3*c+0],n[3*l+1]+=n[3*c+1],n[3*l+2]+=n[3*c+2]}for(a.copyFromFloats(n[3*l+0],n[3*l+1],n[3*l+2]),a.normalize(),o=0;o<s.length;++o)n[3*(c=s[o])+0]=a.x,n[3*c+1]=a.y,n[3*c+2]=a.z}}e.setVerticesData(y.VertexBuffer.NormalKind,n)}},e._IsLineElement=function(e){return e.startsWith("l")},e._IsObjectElement=function(e){return e.startsWith("o")},e._IsGroupElement=function(e){return e.startsWith("g")},e.prototype.parse=function(t,n,r,o,a){var i,s,l=this;this._loadingOptions.useLegacyBehavior?(this._pushTriangle=function(e,t){return l._triangles.push(e[0],e[t],e[t+1])},this._handednessSign=1):r.useRightHandedSystem?(this._pushTriangle=function(e,t){return l._triangles.push(e[0],e[t+1],e[t])},this._handednessSign=1):(this._pushTriangle=function(e,t){return l._triangles.push(e[0],e[t],e[t+1])},this._handednessSign=-1);var c=n.split("\n"),u=[],d=[];u.push(d);for(var h=0;h<c.length;h++)if(0!==(m=c[h].trim().replace(/\s\s/g," ")).length&&"#"!==m.charAt(0))if((e._IsGroupElement(m)||e._IsObjectElement(m))&&(d=[],u.push(d)),e._IsLineElement(m))for(var f=m.split(" "),p=1;p<f.length-1;p++)d.push("l ".concat(f[p]," ").concat(f[p+1]));else d.push(m);var _=u.flat();for(h=0;h<_.length;h++){var m,v=void 0;if(0!==(m=_[h].trim().replace(/\s\s/g," ")).length&&"#"!==m.charAt(0))if(e.VertexPattern.test(m)){if(v=m.match(/[^ ]+/g),this._positions.push(new y.Vector3(parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3]))),this._loadingOptions.importVertexColors)if(v.length>=7){var g=parseFloat(v[4]),b=parseFloat(v[5]),A=parseFloat(v[6]);this._colors.push(new y.Color4(g>1?g/255:g,b>1?b/255:b,A>1?A/255:A,7===v.length||void 0===v[7]?1:parseFloat(v[7])))}else this._colors.push(this._grayColor)}else if(null!==(v=e.NormalPattern.exec(m)))this._normals.push(new y.Vector3(parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3])));else if(null!==(v=e.UVPattern.exec(m)))this._uvs.push(new y.Vector2(parseFloat(v[1])*this._loadingOptions.UVScaling.x,parseFloat(v[2])*this._loadingOptions.UVScaling.y));else if(null!==(v=e.FacePattern3.exec(m)))this._setDataForCurrentFaceWithPattern3(v[1].trim().split(" "),1);else if(null!==(v=e.FacePattern4.exec(m)))this._setDataForCurrentFaceWithPattern4(v[1].trim().split(" "),1);else if(null!==(v=e.FacePattern5.exec(m)))this._setDataForCurrentFaceWithPattern5(v[1].trim().split(" "),1);else if(null!==(v=e.FacePattern2.exec(m)))this._setDataForCurrentFaceWithPattern2(v[1].trim().split(" "),1);else if(null!==(v=e.FacePattern1.exec(m)))this._setDataForCurrentFaceWithPattern1(v[1].trim().split(" "),1);else if(null!==(v=e.LinePattern1.exec(m)))this._setDataForCurrentFaceWithPattern1(v[1].trim().split(" "),0),this._hasLineData=!0;else if(null!==(v=e.LinePattern2.exec(m)))this._setDataForCurrentFaceWithPattern2(v[1].trim().split(" "),0),this._hasLineData=!0;else if(null!==(v=e.LinePattern3.exec(m)))this._setDataForCurrentFaceWithPattern3(v[1].trim().split(" "),0),this._hasLineData=!0;else if(e.GroupDescriptor.test(m)||e.ObjectDescriptor.test(m)){var T={name:m.substring(2).trim(),indices:null,positions:null,normals:null,uvs:null,colors:null,materialName:this._materialNameFromObj,isObject:e.ObjectDescriptor.test(m)};this._addPreviousObjMesh(),this._meshesFromObj.push(T),this._hasMeshes=!0,this._isFirstMaterial=!0,this._increment=1}else e.UseMtlDescriptor.test(m)?(this._materialNameFromObj=m.substring(7).trim(),this._isFirstMaterial&&this._hasMeshes||(this._addPreviousObjMesh(),T={name:(this._objMeshName||"mesh")+"_mm"+this._increment.toString(),indices:null,positions:null,normals:null,uvs:null,colors:null,materialName:this._materialNameFromObj,isObject:!1},this._increment++,this._meshesFromObj.push(T),this._hasMeshes=!0),this._hasMeshes&&this._isFirstMaterial&&(this._meshesFromObj[this._meshesFromObj.length-1].materialName=this._materialNameFromObj,this._isFirstMaterial=!1)):e.MtlLibGroupDescriptor.test(m)?a(m.substring(7).trim()):e.SmoothDescriptor.test(m)||y.Logger.Log("Unhandled expression at line : "+m)}if(this._hasMeshes&&(this._handledMesh=this._meshesFromObj[this._meshesFromObj.length-1],this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData(),this._handledMesh.indices=this._indicesForBabylon,this._handledMesh.positions=this._unwrappedPositionsForBabylon,this._handledMesh.normals=this._unwrappedNormalsForBabylon,this._handledMesh.uvs=this._unwrappedUVForBabylon,this._handledMesh.hasLines=this._hasLineData,this._loadingOptions.importVertexColors&&(this._handledMesh.colors=this._unwrappedColorsForBabylon)),!this._hasMeshes){var x=null;if(this._indicesForBabylon.length)this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData();else{for(var E=0,O=this._positions;E<O.length;E++){var M=O[E];this._unwrappedPositionsForBabylon.push(M.x,M.y,M.z)}if(this._normals.length)for(var w=0,C=this._normals;w<C.length;w++){var L=C[w];this._unwrappedNormalsForBabylon.push(L.x,L.y,L.z)}if(this._uvs.length)for(var N=0,S=this._uvs;N<S.length;N++){var R=S[N];this._unwrappedUVForBabylon.push(R.x,R.y)}if(this._colors.length)for(var F=0,P=this._colors;F<P.length;F++){var I=P[F];this._unwrappedColorsForBabylon.push(I.r,I.g,I.b,I.a)}this._materialNameFromObj||((x=new y.StandardMaterial(y.Geometry.RandomId(),r)).pointsCloud=!0,this._materialNameFromObj=x.name,this._normals.length||(x.disableLighting=!0,x.emissiveColor=y.Color3.White()))}this._meshesFromObj.push({name:y.Geometry.RandomId(),indices:this._indicesForBabylon,positions:this._unwrappedPositionsForBabylon,colors:this._unwrappedColorsForBabylon,normals:this._unwrappedNormalsForBabylon,uvs:this._unwrappedUVForBabylon,materialName:this._materialNameFromObj,directMaterial:x,isObject:!0,hasLines:this._hasLineData})}for(var B=0;B<this._meshesFromObj.length;B++){if(t&&this._meshesFromObj[B].name)if(t instanceof Array){if(-1===t.indexOf(this._meshesFromObj[B].name))continue}else if(this._meshesFromObj[B].name!==t)continue;this._handledMesh=this._meshesFromObj[B],r._blockEntityCollection=!!o;var D=new y.Mesh(this._meshesFromObj[B].name,r);if(D._parentContainer=o,r._blockEntityCollection=!1,this._handledMesh._babylonMesh=D,!this._handledMesh.isObject)for(var V=B-1;V>=0;--V)if(this._meshesFromObj[V].isObject&&this._meshesFromObj[V]._babylonMesh){D.parent=this._meshesFromObj[V]._babylonMesh;break}if(this._materialToUse.push(this._meshesFromObj[B].materialName),this._handledMesh.hasLines&&(null!==(i=D._internalMetadata)&&void 0!==i||(D._internalMetadata={}),D._internalMetadata._isLine=!0),0!==(null===(s=this._handledMesh.positions)||void 0===s?void 0:s.length)){var k=new y.VertexData;if(k.uvs=this._handledMesh.uvs,k.indices=this._handledMesh.indices,k.positions=this._handledMesh.positions,this._loadingOptions.computeNormals){var G=new Array;y.VertexData.ComputeNormals(this._handledMesh.positions,this._handledMesh.indices,G),k.normals=G}else k.normals=this._handledMesh.normals;this._loadingOptions.importVertexColors&&(k.colors=this._handledMesh.colors),k.applyToMesh(D),this._loadingOptions.invertY&&(D.scaling.y*=-1),this._loadingOptions.optimizeNormals&&this._optimizeNormals(D),this._babylonMeshesArray.push(D),this._handledMesh.directMaterial&&(D.material=this._handledMesh.directMaterial)}else this._babylonMeshesArray.push(D)}},e.ObjectDescriptor=/^o/,e.GroupDescriptor=/^g/,e.MtlLibGroupDescriptor=/^mtllib /,e.UseMtlDescriptor=/^usemtl /,e.SmoothDescriptor=/^s /,e.VertexPattern=/^v(\s+[\d|.|+|\-|e|E]+){3,7}/,e.NormalPattern=/^vn(\s+[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)/,e.UVPattern=/^vt(\s+[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)/,e.FacePattern1=/^f\s+(([\d]{1,}[\s]?){3,})+/,e.FacePattern2=/^f\s+((([\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,e.FacePattern3=/^f\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,e.FacePattern4=/^f\s+((([\d]{1,}\/\/[\d]{1,}[\s]?){3,})+)/,e.FacePattern5=/^f\s+(((-[\d]{1,}\/-[\d]{1,}\/-[\d]{1,}[\s]?){3,})+)/,e.LinePattern1=/^l\s+(([\d]{1,}[\s]?){2,})+/,e.LinePattern2=/^l\s+((([\d]{1,}\/[\d]{1,}[\s]?){2,})+)/,e.LinePattern3=/^l\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){2,})+)/,e}(),Xt=function(){function e(t){this.name="obj",this.extensions=".obj",this._assetContainer=null,this._loadingOptions=t||e._DefaultLoadingOptions}return Object.defineProperty(e,"INVERT_TEXTURE_Y",{get:function(){return qt.INVERT_TEXTURE_Y},set:function(e){qt.INVERT_TEXTURE_Y=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,"_DefaultLoadingOptions",{get:function(){return{computeNormals:e.COMPUTE_NORMALS,optimizeNormals:e.OPTIMIZE_NORMALS,importVertexColors:e.IMPORT_VERTEX_COLORS,invertY:e.INVERT_Y,invertTextureY:e.INVERT_TEXTURE_Y,UVScaling:e.UV_SCALING,materialLoadingFailsSilently:e.MATERIAL_LOADING_FAILS_SILENTLY,optimizeWithUV:e.OPTIMIZE_WITH_UV,skipMaterials:e.SKIP_MATERIALS,useLegacyBehavior:e.USE_LEGACY_BEHAVIOR}},enumerable:!1,configurable:!0}),e.prototype._loadMTL=function(e,t,n,r){var o=t+e;y.Tools.LoadFile(o,n,void 0,void 0,!1,(function(e,t){r(o,t)}))},e.prototype.createPlugin=function(){return new e(e._DefaultLoadingOptions)},e.prototype.canDirectLoad=function(){return!1},e.prototype.importMeshAsync=function(e,t,n,r){return this._parseSolid(e,t,n,r).then((function(e){return{meshes:e,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]}}))},e.prototype.loadAsync=function(e,t,n){return this.importMeshAsync(null,e,t,n).then((function(){}))},e.prototype.loadAssetContainerAsync=function(e,t,n){var r=this,o=new y.AssetContainer(e);return this._assetContainer=o,this.importMeshAsync(null,e,t,n).then((function(e){return e.meshes.forEach((function(e){return o.meshes.push(e)})),e.meshes.forEach((function(e){var t=e.material;t&&-1==o.materials.indexOf(t)&&(o.materials.push(t),t.getActiveTextures().forEach((function(e){-1==o.textures.indexOf(e)&&o.textures.push(e)})))})),r._assetContainer=null,o})).catch((function(e){throw r._assetContainer=null,e}))},e.prototype._parseSolid=function(e,t,n,r){var o=this,a="",i=new qt,s=[],l=[];n=n.replace(/#.*$/gm,"").trim(),new zt(s,l,this._loadingOptions).parse(e,n,t,this._assetContainer,(function(e){a=e}));var c=[];return""===a||this._loadingOptions.skipMaterials||c.push(new Promise((function(e,n){o._loadMTL(a,r,(function(c){try{i.parseMTL(t,c,r,o._assetContainer);for(var u=0;u<i.materials.length;u++){for(var d=0,h=[],f=void 0;(f=s.indexOf(i.materials[u].name,d))>-1;)h.push(f),d=f+1;if(-1===f&&0===h.length)i.materials[u].dispose();else for(var p=0;p<h.length;p++){var _=l[h[p]],m=i.materials[u];_.material=m,_.getTotalIndices()||(m.pointsCloud=!0)}}e()}catch(t){y.Tools.Warn("Error processing MTL file: '".concat(a,"'")),o._loadingOptions.materialLoadingFailsSilently?e():n(t)}}),(function(t,r){y.Tools.Warn("Error downloading MTL file: '".concat(a,"'")),o._loadingOptions.materialLoadingFailsSilently?e():n(r)}))}))),Promise.all(c).then((function(){var e=function(e){var t,n;return Boolean(null!==(n=null===(t=e._internalMetadata)||void 0===t?void 0:t._isLine)&&void 0!==n&&n)};return l.forEach((function(n){var r,o;if(e(n)){var a=null!==(r=n.material)&&void 0!==r?r:new y.StandardMaterial(n.name+"_line",t);a.getBindedMeshes().filter((function(t){return!e(t)})).length>0&&(a=null!==(o=a.clone(a.name+"_line"))&&void 0!==o?o:a),a.wireframe=!0,n.material=a,n._internalMetadata&&(n._internalMetadata._isLine=void 0)}})),l}))},e.OPTIMIZE_WITH_UV=!0,e.INVERT_Y=!1,e.IMPORT_VERTEX_COLORS=!1,e.COMPUTE_NORMALS=!1,e.OPTIMIZE_NORMALS=!1,e.UV_SCALING=new y.Vector2(1,1),e.SKIP_MATERIALS=!1,e.MATERIAL_LOADING_FAILS_SILENTLY=!0,e.USE_LEGACY_BEHAVIOR=!1,e}();(0,y.registerSceneLoaderPlugin)(new Xt);var Zt=function(){function e(){this.solidPattern=/solid (\S*)([\S\s]*?)endsolid[ ]*(\S*)/g,this.facetsPattern=/facet([\s\S]*?)endfacet/g,this.normalPattern=/normal[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g,this.vertexPattern=/vertex[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g,this.name="stl",this.extensions={".stl":{isBinary:!0}}}return e.prototype.importMesh=function(e,t,n,r,o){var a;if("string"!=typeof n){if(this._isBinary(n)){var i=new y.Mesh("stlmesh",t);return this._parseBinary(i,n),o&&o.push(i),!0}n=(new TextDecoder).decode(new Uint8Array(n))}for(;a=this.solidPattern.exec(n);){var s=a[1],l=a[3];if(l&&s!=l)return y.Tools.Error("Error in STL, solid name != endsolid name"),!1;if(e&&s)if(e instanceof Array){if(!e.indexOf(s))continue}else if(s!==e)continue;s=s||"stlmesh",i=new y.Mesh(s,t),this._parseASCII(i,a[2]),o&&o.push(i)}return!0},e.prototype.load=function(e,t,n){return this.importMesh(null,e,t,n,null)},e.prototype.loadAssetContainer=function(e,t,n){var r=new y.AssetContainer(e);return e._blockEntityCollection=!0,this.importMesh(null,e,t,n,r.meshes),e._blockEntityCollection=!1,r},e.prototype._isBinary=function(e){var t=new DataView(e);if(t.byteLength<=80)return!1;if(84+50*t.getUint32(80,!0)===t.byteLength)return!0;for(var n=[115,111,108,105,100],r=0;r<5;r++)if(t.getUint8(r)!==n[r])return!0;return!1},e.prototype._parseBinary=function(t,n){for(var r=new DataView(n),o=r.getUint32(80,!0),a=0,i=new Float32Array(3*o*3),s=new Float32Array(3*o*3),l=new Uint32Array(3*o),c=0,u=0;u<o;u++){for(var d=84+50*u,h=r.getFloat32(d,!0),f=r.getFloat32(d+4,!0),p=r.getFloat32(d+8,!0),_=1;_<=3;_++){var m=d+12*_;i[a]=r.getFloat32(m,!0),s[a]=h,e.DO_NOT_ALTER_FILE_COORDINATES?(i[a+1]=r.getFloat32(m+4,!0),i[a+2]=r.getFloat32(m+8,!0),s[a+1]=f,s[a+2]=p):(i[a+2]=r.getFloat32(m+4,!0),i[a+1]=r.getFloat32(m+8,!0),s[a+2]=f,s[a+1]=p),a+=3}e.DO_NOT_ALTER_FILE_COORDINATES?(l[c]=c,l[c+1]=c+2,l[c+2]=c+1,c+=3):(l[c]=c++,l[c]=c++,l[c]=c++)}t.setVerticesData(y.VertexBuffer.PositionKind,i),t.setVerticesData(y.VertexBuffer.NormalKind,s),t.setIndices(l),t.computeWorldMatrix(!0)},e.prototype._parseASCII=function(t,n){for(var r,o=[],a=[],i=[],s=0;r=this.facetsPattern.exec(n);){var l=r[1],c=this.normalPattern.exec(l);if(this.normalPattern.lastIndex=0,c){for(var u=[Number(c[1]),Number(c[5]),Number(c[3])],d=void 0;d=this.vertexPattern.exec(l);)e.DO_NOT_ALTER_FILE_COORDINATES?(o.push(Number(d[1]),Number(d[3]),Number(d[5])),a.push(u[0],u[2],u[1])):(o.push(Number(d[1]),Number(d[5]),Number(d[3])),a.push(u[0],u[1],u[2]));e.DO_NOT_ALTER_FILE_COORDINATES?(i.push(s,s+2,s+1),s+=3):i.push(s++,s++,s++),this.vertexPattern.lastIndex=0}}this.facetsPattern.lastIndex=0,t.setVerticesData(y.VertexBuffer.PositionKind,o),t.setVerticesData(y.VertexBuffer.NormalKind,a),t.setIndices(i),t.computeWorldMatrix(!0)},e.DO_NOT_ALTER_FILE_COORDINATES=!1,e}();(0,y.registerSceneLoaderPlugin)(new Zt);var Jt=function(){function e(){this.name="splat",this.extensions={".splat":{isBinary:!0},".ply":{isBinary:!0}}}return e.prototype.createPlugin=function(){return new e},e.prototype.canDirectLoad=function(){return!1},e.prototype.importMeshAsync=function(e,t,n,r,o,a){return i=this,s=void 0,c=function(){var e;return function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)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 i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}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(n){switch(n.label){case 0:return[4,(e=new y.GaussianSplattingMesh("GaussianSplatting",null,t)).loadFileAsync(r+(null!=a?a:""))];case 1:return n.sent(),[2,{meshes:[e],particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]}]}}))},new((l=void 0)||(l=Promise))((function(e,t){function n(e){try{o(c.next(e))}catch(e){t(e)}}function r(e){try{o(c.throw(e))}catch(e){t(e)}}function o(t){var o;t.done?e(t.value):(o=t.value,o instanceof l?o:new l((function(e){e(o)}))).then(n,r)}o((c=c.apply(i,s||[])).next())}));var i,s,l,c},e.prototype.loadAsync=function(e,t,n){return new y.GaussianSplattingMesh("GaussianSplatting",null,e).loadDataAsync(y.GaussianSplattingMesh.ConvertPLYToSplat(t))},e.prototype.loadAssetContainerAsync=function(e,t,n){throw new Error("loadAssetContainerAsync not implemented for Gaussian Splatting loading")},e}();(0,y.registerSceneLoaderPlugin)(new Jt);var Qt=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==Qt){for(var $t in Qt.BABYLON=Qt.BABYLON||{},i)Qt.BABYLON[$t]=i[$t];for(var $t in a)Qt.BABYLON[$t]=a[$t]}var en=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==en)for(var tn in en.BABYLON=en.BABYLON||{},en.BABYLON.GLTF1=en.BABYLON.GLTF1||{},s)en.BABYLON.GLTF1[tn]=s[tn];var nn=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==nn){nn.BABYLON=nn.BABYLON||{};var rn=nn.BABYLON;rn.GLTF2=rn.GLTF2||{},rn.GLTF2.Loader=rn.GLTF2.Loader||{},rn.GLTF2.Loader.Extensions=rn.GLTF2.Loader.Extensions||{};var on=[];for(var an in c)rn.GLTF2.Loader.Extensions[an]=c[an],on.push(an);for(var an in l)rn.GLTF2.Loader[an]=l[an],on.push(an);for(var an in u)on.indexOf(an)>-1||(rn.GLTF2[an]=u[an])}var sn=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==sn)for(var ln in d)sn.BABYLON[ln]||(sn.BABYLON[ln]=d[ln]);var cn=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==cn)for(var un in h)cn.BABYLON[un]||(cn.BABYLON[un]=h[un]);const dn=f;return o.default})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-loaders",["babylonjs"],t):"object"==typeof exports?exports["babylonjs-loaders"]=t(require("babylonjs")):e.LOADERS=t(e.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,(e=>(()=>{"use strict";var t={597:t=>{t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};r.d(o,{default:()=>dn});var a={};r.r(a),r.d(a,{GLTFValidation:()=>x});var i={};r.r(i),r.d(i,{GLTFFileLoader:()=>P,GLTFLoaderAnimationStartMode:()=>A,GLTFLoaderCoordinateSystemMode:()=>b,GLTFLoaderState:()=>T});var s={};r.r(s),r.d(s,{EBlendingFunction:()=>F,EComponentType:()=>M,ECullingType:()=>R,EParameterType:()=>C,EShaderType:()=>w,ETextureFilterType:()=>N,ETextureFormat:()=>S,ETextureWrapMode:()=>L,GLTFBinaryExtension:()=>ie,GLTFLoader:()=>oe,GLTFLoaderBase:()=>re,GLTFLoaderExtension:()=>ae,GLTFMaterialsCommonExtension:()=>se,GLTFUtils:()=>B});var l={};r.r(l);var c={};r.r(c),r.d(c,{EXT_lights_image_based:()=>ye,EXT_mesh_gpu_instancing:()=>ge,EXT_meshopt_compression:()=>Ae,EXT_texture_avif:()=>Oe,EXT_texture_webp:()=>xe,ExtrasAsMetadata:()=>Yt,KHR_animation_pointer:()=>Ct,KHR_draco_mesh_compression:()=>we,KHR_interactivity:()=>Kt,KHR_lights:()=>Le,KHR_materials_anisotropy:()=>ke,KHR_materials_clearcoat:()=>Ie,KHR_materials_diffuse_transmission:()=>et,KHR_materials_dispersion:()=>ot,KHR_materials_emissive_strength:()=>Ue,KHR_materials_ior:()=>qe,KHR_materials_iridescence:()=>De,KHR_materials_pbrSpecularGlossiness:()=>Se,KHR_materials_sheen:()=>je,KHR_materials_specular:()=>We,KHR_materials_transmission:()=>Qe,KHR_materials_unlit:()=>Fe,KHR_materials_variants:()=>Xe,KHR_materials_volume:()=>nt,KHR_mesh_quantization:()=>it,KHR_texture_basisu:()=>lt,KHR_texture_transform:()=>ut,KHR_xmp_json_ld:()=>ht,MSFT_audio_emitter:()=>Nt,MSFT_lod:()=>Rt,MSFT_minecraftMesh:()=>Pt,MSFT_sRGBFactors:()=>Bt});var u={};r.r(u),r.d(u,{ArrayItem:()=>pe,EXT_lights_image_based:()=>ye,EXT_mesh_gpu_instancing:()=>ge,EXT_meshopt_compression:()=>Ae,EXT_texture_avif:()=>Oe,EXT_texture_webp:()=>xe,ExtrasAsMetadata:()=>Yt,GLTFLoader:()=>_e,KHR_animation_pointer:()=>Ct,KHR_draco_mesh_compression:()=>we,KHR_interactivity:()=>Kt,KHR_lights:()=>Le,KHR_materials_anisotropy:()=>ke,KHR_materials_clearcoat:()=>Ie,KHR_materials_diffuse_transmission:()=>et,KHR_materials_dispersion:()=>ot,KHR_materials_emissive_strength:()=>Ue,KHR_materials_ior:()=>qe,KHR_materials_iridescence:()=>De,KHR_materials_pbrSpecularGlossiness:()=>Se,KHR_materials_sheen:()=>je,KHR_materials_specular:()=>We,KHR_materials_transmission:()=>Qe,KHR_materials_unlit:()=>Fe,KHR_materials_variants:()=>Xe,KHR_materials_volume:()=>nt,KHR_mesh_quantization:()=>it,KHR_texture_basisu:()=>lt,KHR_texture_transform:()=>ut,KHR_xmp_json_ld:()=>ht,MSFT_audio_emitter:()=>Nt,MSFT_lod:()=>Rt,MSFT_minecraftMesh:()=>Pt,MSFT_sRGBFactors:()=>Bt});var d={};r.r(d),r.d(d,{MTLFileLoader:()=>qt,OBJFileLoader:()=>Xt,SolidParser:()=>zt});var h={};r.r(h),r.d(h,{STLFileLoader:()=>Zt});var f={};r.r(f),r.d(f,{GLTF1:()=>s,GLTF2:()=>u,GLTFFileLoader:()=>P,GLTFLoaderAnimationStartMode:()=>A,GLTFLoaderCoordinateSystemMode:()=>b,GLTFLoaderState:()=>T,GLTFValidation:()=>x,MTLFileLoader:()=>qt,OBJFileLoader:()=>Xt,SPLATFileLoader:()=>Jt,STLFileLoader:()=>Zt,SolidParser:()=>zt});var p=function(e,t){return p=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])},p(e,t)};function _(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var m=function(){return m=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},m.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var y=r(597);function v(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 g(){var e=[];onmessage=function(t){var n=t.data;switch(n.id){case"init":importScripts(n.url);break;case"validate":v(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)}}}var b,A,T,x=function(){function e(){}return e.ValidateAsync=function(e,t,n,r){var o=this;return"function"==typeof Worker?new Promise((function(a,i){var s="".concat(v,"(").concat(g,")()"),l=URL.createObjectURL(new Blob([s],{type:"application/javascript"})),c=new Worker(l),u=function(e){c.removeEventListener("error",u),c.removeEventListener("message",d),i(e)},d=function(e){var t=e.data;switch(t.id){case"getExternalResource":r(t.uri).then((function(e){c.postMessage({id:"getExternalResource.resolve",index:t.index,value:e},[e.buffer])}),(function(e){c.postMessage({id:"getExternalResource.reject",index:t.index,reason:e})}));break;case"validate.resolve":c.removeEventListener("error",u),c.removeEventListener("message",d),a(t.value),c.terminate();break;case"validate.reject":c.removeEventListener("error",u),c.removeEventListener("message",d),i(t.reason),c.terminate()}};if(c.addEventListener("error",u),c.addEventListener("message",d),c.postMessage({id:"init",url:y.Tools.GetBabylonScriptURL(o.Configuration.url)}),ArrayBuffer.isView(e)){var h=e.slice();c.postMessage({id:"validate",data:h,rootUrl:t,fileName:n},[h.buffer])}else c.postMessage({id:"validate",data:e,rootUrl:t,fileName:n})})):(this._LoadScriptPromise||(this._LoadScriptPromise=y.Tools.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then((function(){return v(e,t,n,r)})))},e.Configuration={url:"".concat(y.Tools._DefaultCdnUrl,"/gltf_validator.js")},e}(),E="gltf";function O(e,t,n){try{return Promise.resolve(new Uint8Array(e,t,n))}catch(e){return Promise.reject(e)}}!function(e){e[e.AUTO=0]="AUTO",e[e.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED"}(b||(b={})),function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.ALL=2]="ALL"}(A||(A={})),function(e){e[e.LOADING=0]="LOADING",e[e.READY=1]="READY",e[e.COMPLETE=2]="COMPLETE"}(T||(T={}));var M,w,C,L,N,S,R,F,P=function(e){function t(t){var n=e.call(this)||this;return n.onParsedObservable=new y.Observable,n.onMeshLoadedObservable=new y.Observable,n.onSkinLoadedObservable=new y.Observable,n.onTextureLoadedObservable=new y.Observable,n.onMaterialLoadedObservable=new y.Observable,n.onCameraLoadedObservable=new y.Observable,n.onCompleteObservable=new y.Observable,n.onErrorObservable=new y.Observable,n.onDisposeObservable=new y.Observable,n.onExtensionLoadedObservable=new y.Observable,n.validate=!1,n.onValidatedObservable=new y.Observable,n._loader=null,n._state=null,n._requests=new Array,n.name=E,n.extensions={".gltf":{isBinary:!1},".glb":{isBinary:!0}},n.onLoaderStateChangedObservable=new y.Observable,n._logIndentLevel=0,n._loggingEnabled=!1,n._log=n._logDisabled,n._capturePerformanceCounters=!1,n._startPerformanceCounter=n._startPerformanceCounterDisabled,n._endPerformanceCounter=n._endPerformanceCounterDisabled,n.copyFrom(t),n}return _(t,e),Object.defineProperty(t.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(t.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(t.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(t.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(t.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(t.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(t.prototype,"onComplete",{set:function(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"onError",{set:function(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"onDispose",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"onExtensionLoaded",{set:function(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.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(t.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(t.prototype,"onValidated",{set:function(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)},enumerable:!1,configurable:!0}),t.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()},t.prototype.loadFile=function(e,t,n,r,o,a,i,s){var l=this;if(ArrayBuffer.isView(t))return this._loadBinary(e,t,n,r,i,s),null;this._progressCallback=o;var c=t.name||y.Tools.GetFilename(t);if(a){if(this.useRangeRequests){this.validate&&y.Logger.Warn("glTF validation is not supported when range requests are enabled");var u={abort:function(){},onCompleteObservable:new y.Observable},d={readAsync:function(n,r){return new Promise((function(o,a){l._loadFile(e,t,(function(e){o(new Uint8Array(e))}),!0,(function(e){a(e)}),(function(e){e.setRequestHeader("Range","bytes=".concat(n,"-").concat(n+r-1))}))}))},byteLength:0};return this._unpackBinaryAsync(new y.DataReader(d)).then((function(e){u.onCompleteObservable.notifyObservers(u),r(e)}),i?function(e){return i(void 0,e)}:void 0),u}return this._loadFile(e,t,(function(t){l._validate(e,new Uint8Array(t,0,t.byteLength),n,c),l._unpackBinaryAsync(new y.DataReader({readAsync:function(e,n){return O(t,e,n)},byteLength:t.byteLength})).then((function(e){r(e)}),i?function(e){return i(void 0,e)}:void 0)}),!0,i)}return this._loadFile(e,t,(function(t){try{l._validate(e,t,n,c),r({json:l._parseJson(t)})}catch(e){i&&i()}}),!1,i)},t.prototype._loadBinary=function(e,t,n,r,o,a){this._validate(e,new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n,a),this._unpackBinaryAsync(new y.DataReader({readAsync:function(e,n){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)}}(t,e,n)},byteLength:t.byteLength})).then((function(e){r(e)}),o?function(e){return o(void 0,e)}:void 0)},t.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)}))},t.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)}))},t.prototype.loadAssetContainerAsync=function(e,t,n,r,o){var a=this;return Promise.resolve().then((function(){a.onParsedObservable.notifyObservers(t),a.onParsedObservable.clear(),a._log("Loading ".concat(o||"")),a._loader=a._getLoader(t);var i=new y.AssetContainer(e),s=[];a.onMaterialLoadedObservable.add((function(e){s.push(e)}));var l=[];a.onTextureLoadedObservable.add((function(e){l.push(e)}));var c=[];a.onCameraLoadedObservable.add((function(e){c.push(e)}));var u=[];return a.onMeshLoadedObservable.add((function(e){e.morphTargetManager&&u.push(e.morphTargetManager)})),a._loader.importMeshAsync(null,e,i,t,n,r,o).then((function(e){return Array.prototype.push.apply(i.geometries,e.geometries),Array.prototype.push.apply(i.meshes,e.meshes),Array.prototype.push.apply(i.particleSystems,e.particleSystems),Array.prototype.push.apply(i.skeletons,e.skeletons),Array.prototype.push.apply(i.animationGroups,e.animationGroups),Array.prototype.push.apply(i.materials,s),Array.prototype.push.apply(i.textures,l),Array.prototype.push.apply(i.lights,e.lights),Array.prototype.push.apply(i.transformNodes,e.transformNodes),Array.prototype.push.apply(i.cameras,c),Array.prototype.push.apply(i.morphTargetManagers,u),i}))}))},t.prototype.canDirectLoad=function(e){return-1!==e.indexOf("asset")&&-1!==e.indexOf("version")||e.startsWith("data:base64,"+t._MagicBase64Encoded)||e.startsWith("data:;base64,"+t._MagicBase64Encoded)||e.startsWith("data:application/octet-stream;base64,"+t._MagicBase64Encoded)||e.startsWith("data:model/gltf-binary;base64,"+t._MagicBase64Encoded)},t.prototype.directLoad=function(e,n){if(n.startsWith("base64,"+t._MagicBase64Encoded)||n.startsWith(";base64,"+t._MagicBase64Encoded)||n.startsWith("application/octet-stream;base64,"+t._MagicBase64Encoded)||n.startsWith("model/gltf-binary;base64,"+t._MagicBase64Encoded)){var r=(0,y.DecodeBase64UrlToBinary)(n);return this._validate(e,new Uint8Array(r,0,r.byteLength)),this._unpackBinaryAsync(new y.DataReader({readAsync:function(e,t){return O(r,e,t)},byteLength:r.byteLength}))}return this._validate(e,n),Promise.resolve({json:this._parseJson(n)})},t.prototype.createPlugin=function(e){return new t(e[E])},Object.defineProperty(t.prototype,"loaderState",{get:function(){return this._state},enumerable:!1,configurable:!0}),t.prototype.whenCompleteAsync=function(){var e=this;return new Promise((function(t,n){e.onCompleteObservable.addOnce((function(){t()})),e.onErrorObservable.addOnce((function(e){n(e)}))}))},t.prototype._setState=function(e){this._state!==e&&(this._state=e,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(T[this._state]))},t.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},t.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})}},t.prototype._validate=function(e,t,n,r){var o=this;void 0===n&&(n=""),void 0===r&&(r=""),this.validate&&(this._startPerformanceCounter("Validate JSON"),x.ValidateAsync(t,n,r,(function(t){return o.preprocessUrlAsync(n+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){o._endPerformanceCounter("Validate JSON"),o.onValidatedObservable.notifyObservers(e),o.onValidatedObservable.clear()}),(function(e){o._endPerformanceCounter("Validate JSON"),y.Tools.Warn("Failed to validate: ".concat(e.message)),o.onValidatedObservable.clear()})))},t.prototype._getLoader=function(e){var n=e.json.asset||{};this._log("Asset version: ".concat(n.version)),n.minVersion&&this._log("Asset minimum version: ".concat(n.minVersion)),n.generator&&this._log("Asset generator: ".concat(n.generator));var r=t._parseVersion(n.version);if(!r)throw new Error("Invalid version: "+n.version);if(void 0!==n.minVersion){var o=t._parseVersion(n.minVersion);if(!o)throw new Error("Invalid minimum version: "+n.minVersion);if(t._compareVersion(o,{major:2,minor:0})>0)throw new Error("Incompatible minimum version: "+n.minVersion)}var a={1:t._CreateGLTF1Loader,2:t._CreateGLTF2Loader}[r.major];if(!a)throw new Error("Unsupported version: "+n.version);return a(this)},t.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},t.prototype._unpackBinaryAsync=function(e){var t=this;return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then((function(){var n=e.readUint32();if(1179937895!==n)throw new y.RuntimeError("Unexpected magic: "+n,y.ErrorCodes.GLTFLoaderUnexpectedMagicError);var r=e.readUint32();t.loggingEnabled&&t._log("Binary version: ".concat(r));var o,a=e.readUint32();switch(t.useRangeRequests||a===e.buffer.byteLength||y.Logger.Warn("Length in header does not match actual data length: ".concat(a," != ").concat(e.buffer.byteLength)),r){case 1:o=t._unpackBinaryV1Async(e,a);break;case 2:o=t._unpackBinaryV2Async(e,a);break;default:throw new Error("Unsupported version: "+r)}return t._endPerformanceCounter("Unpack Binary"),o}))},t.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)},t.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()}))},t._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},t._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},t.prototype._logOpen=function(e){this._log(e),this._logIndentLevel++},t.prototype._logClose=function(){--this._logIndentLevel},t.prototype._logEnabled=function(e){var n=t._logSpaces.substr(0,2*this._logIndentLevel);y.Logger.Log("".concat(n).concat(e))},t.prototype._logDisabled=function(e){},t.prototype._startPerformanceCounterEnabled=function(e){y.Tools.StartPerformanceCounter(e)},t.prototype._startPerformanceCounterDisabled=function(e){},t.prototype._endPerformanceCounterEnabled=function(e){y.Tools.EndPerformanceCounter(e)},t.prototype._endPerformanceCounterDisabled=function(e){},t.IncrementalLoading=!0,t.HomogeneousCoordinates=!1,t._MagicBase64Encoded="Z2xURg",t._logSpaces=" ",t}(function(){function e(){this.coordinateSystemMode=b.AUTO,this.animationStartMode=A.FIRST,this.loadNodeAnimations=!0,this.loadSkins=!0,this.loadMorphTargets=!0,this.compileMaterials=!1,this.useClipPlane=!1,this.compileShadowGenerators=!1,this.transparencyAsCoverage=!1,this.useRangeRequests=!1,this.createInstances=!0,this.alwaysComputeBoundingBox=!1,this.loadAllMaterials=!1,this.loadOnlyMaterials=!1,this.skipMaterials=!1,this.useSRGBBuffers=!0,this.targetFps=60,this.alwaysComputeSkeletonRootNode=!1,this.preprocessUrlAsync=function(e){return Promise.resolve(e)},this.extensionOptions={}}return e.prototype.copyFrom=function(e){var t,n,r,o,a,i,s,l,c,u,d,h,f,p,_,m,y,v,g,b;e&&(this.onParsed=e.onParsed,this.coordinateSystemMode=null!==(t=e.coordinateSystemMode)&&void 0!==t?t:this.coordinateSystemMode,this.animationStartMode=null!==(n=e.animationStartMode)&&void 0!==n?n:this.animationStartMode,this.loadNodeAnimations=null!==(r=e.loadNodeAnimations)&&void 0!==r?r:this.loadNodeAnimations,this.loadSkins=null!==(o=e.loadSkins)&&void 0!==o?o:this.loadSkins,this.loadMorphTargets=null!==(a=e.loadMorphTargets)&&void 0!==a?a:this.loadMorphTargets,this.compileMaterials=null!==(i=e.compileMaterials)&&void 0!==i?i:this.compileMaterials,this.useClipPlane=null!==(s=e.useClipPlane)&&void 0!==s?s:this.useClipPlane,this.compileShadowGenerators=null!==(l=e.compileShadowGenerators)&&void 0!==l?l:this.compileShadowGenerators,this.transparencyAsCoverage=null!==(c=e.transparencyAsCoverage)&&void 0!==c?c:this.transparencyAsCoverage,this.useRangeRequests=null!==(u=e.useRangeRequests)&&void 0!==u?u:this.useRangeRequests,this.createInstances=null!==(d=e.createInstances)&&void 0!==d?d:this.createInstances,this.alwaysComputeBoundingBox=null!==(h=e.alwaysComputeBoundingBox)&&void 0!==h?h:this.alwaysComputeBoundingBox,this.loadAllMaterials=null!==(f=e.loadAllMaterials)&&void 0!==f?f:this.loadAllMaterials,this.loadOnlyMaterials=null!==(p=e.loadOnlyMaterials)&&void 0!==p?p:this.loadOnlyMaterials,this.skipMaterials=null!==(_=e.skipMaterials)&&void 0!==_?_:this.skipMaterials,this.useSRGBBuffers=null!==(m=e.useSRGBBuffers)&&void 0!==m?m:this.useSRGBBuffers,this.targetFps=null!==(y=e.targetFps)&&void 0!==y?y:this.targetFps,this.alwaysComputeSkeletonRootNode=null!==(v=e.alwaysComputeSkeletonRootNode)&&void 0!==v?v:this.alwaysComputeSkeletonRootNode,this.preprocessUrlAsync=null!==(g=e.preprocessUrlAsync)&&void 0!==g?g:this.preprocessUrlAsync,this.customRootNode=e.customRootNode,this.onMeshLoaded=e.onMeshLoaded,this.onSkinLoaded=e.onSkinLoaded,this.onTextureLoaded=e.onTextureLoaded,this.onMaterialLoaded=e.onMaterialLoaded,this.onCameraLoaded=e.onCameraLoaded,this.extensionOptions=null!==(b=e.extensionOptions)&&void 0!==b?b:this.extensionOptions)},e}());(0,y.registerSceneLoaderPlugin)(new P),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"}(M||(M={})),function(e){e[e.FRAGMENT=35632]="FRAGMENT",e[e.VERTEX=35633]="VERTEX"}(w||(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.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"}(C||(C={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.REPEAT=10497]="REPEAT"}(L||(L={})),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"}(R||(R={})),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"}(F||(F={}));var I,B=function(){function e(){}return e.SetMatrix=function(e,t,n,r,o){var a=null;if("MODEL"===n.semantic?a=t.getWorldMatrix():"PROJECTION"===n.semantic?a=e.getProjectionMatrix():"VIEW"===n.semantic?a=e.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===n.semantic?a=y.Matrix.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()):"MODELVIEW"===n.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()):"MODELVIEWPROJECTION"===n.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()):"MODELINVERSE"===n.semantic?a=t.getWorldMatrix().invert():"VIEWINVERSE"===n.semantic?a=e.getViewMatrix().invert():"PROJECTIONINVERSE"===n.semantic?a=e.getProjectionMatrix().invert():"MODELVIEWINVERSE"===n.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===n.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===n.semantic&&(a=y.Matrix.Transpose(t.getWorldMatrix().invert())),a)switch(n.type){case C.FLOAT_MAT2:o.setMatrix2x2(r,y.Matrix.GetAsMatrix2x2(a));break;case C.FLOAT_MAT3:o.setMatrix3x3(r,y.Matrix.GetAsMatrix3x3(a));break;case C.FLOAT_MAT4:o.setMatrix(r,a)}},e.SetUniform=function(e,t,n,r){switch(r){case C.FLOAT:return e.setFloat(t,n),!0;case C.FLOAT_VEC2:return e.setVector2(t,y.Vector2.FromArray(n)),!0;case C.FLOAT_VEC3:return e.setVector3(t,y.Vector3.FromArray(n)),!0;case C.FLOAT_VEC4:return e.setVector4(t,y.Vector4.FromArray(n)),!0;default:return!1}},e.GetWrapMode=function(e){switch(e){case L.CLAMP_TO_EDGE:return y.Texture.CLAMP_ADDRESSMODE;case L.MIRRORED_REPEAT:return y.Texture.MIRROR_ADDRESSMODE;case L.REPEAT:default:return y.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 y.Texture.TRILINEAR_SAMPLINGMODE;case N.NEAREST:case N.NEAREST_MIPMAP_NEAREST:return y.Texture.NEAREST_SAMPLINGMODE;default:return y.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 M.BYTE:return new Int8Array(i,n,r);case M.UNSIGNED_BYTE:return new Uint8Array(i,n,r);case M.SHORT:return new Int16Array(i,n,r);case M.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(t){if(!e._DefaultMaterial){y.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"),y.Effect.ShadersStore.GLTFDefaultMaterialPixelShader=["precision highp float;","","uniform vec4 u_emission;","","void main(void)","{"," gl_FragColor = u_emission;","}"].join("\n");var n={attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:new Array,needAlphaBlending:!1};e._DefaultMaterial=new y.ShaderMaterial("GLTFDefaultMaterial",t,{vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},n),e._DefaultMaterial.setColor4("u_emission",new y.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"}(I||(I={}));var D=function(){function e(e){this._pos=0,this.currentToken=I.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 I.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=I.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=I.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}(),V=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],k=["world","view","projection","worldView","worldViewProjection","mBones"],G=["translation","rotation","scale"],U=["position","rotationQuaternion","scaling"],H=function(e,t,n){for(var r in e){var o=e[r];n[t][r]=o}},j=function(e){if(e)for(var t=0;t<e.length/2;t++)e[2*t+1]=1-e[2*t+1]},K=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},W=function(e){var t=null;if(e.translation||e.rotation||e.scale){var n=y.Vector3.FromArray(e.scale||[1,1,1]),r=y.Quaternion.FromArray(e.rotation||[0,0,0,1]),o=y.Vector3.FromArray(e.translation||[0,0,0]);t=y.Matrix.Compose(n,r,o)}else t=y.Matrix.FromArray(e.matrix);return t},Y=function(e,t,n,r){for(var o=0;o<r.bones.length;o++)if(r.bones[o].name===n)return r.bones[o];var a=e.nodes;for(var i in a){var s=a[i];if(s.jointName){var l=s.children;for(o=0;o<l.length;o++){var c=e.nodes[l[o]];if(c.jointName&&c.jointName===n){var u=W(s),d=new y.Bone(s.name||"",r,Y(e,t,s.jointName,r),u);return d.id=i,d}}}}return null},q=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},z=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},X=function(e,t){for(var n=0;n<e.jointNames.length;n++)if(e.jointNames[n]===t)return!0;return!1},Z=function(e,t,n,r,o){if(o||(e.scene._blockEntityCollection=!!e.assetContainer,(o=new y.Mesh(t.name||"",e.scene))._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,o.id=r),!t.babylonNode)return o;for(var a,i=[],s=null,l=[],c=[],u=[],d=[],h=0;h<n.length;h++){var f=n[h];if(L=e.meshes[f])for(var p=0;p<L.primitives.length;p++){var _=new y.VertexData,m=L.primitives[p];m.mode;var v=m.attributes,g=null,b=null;for(var A in v)if(g=e.accessors[v[A]],b=B.GetBufferFromAccessor(e,g),"NORMAL"===A)_.normals=new Float32Array(b.length),_.normals.set(b);else if("POSITION"===A){if(P.HomogeneousCoordinates){_.positions=new Float32Array(b.length-b.length/4);for(var T=0;T<b.length;T+=4)_.positions[T]=b[T],_.positions[T+1]=b[T+1],_.positions[T+2]=b[T+2]}else _.positions=new Float32Array(b.length),_.positions.set(b);c.push(_.positions.length)}else if(-1!==A.indexOf("TEXCOORD_")){var x=Number(A.split("_")[1]),E=y.VertexBuffer.UVKind+(0===x?"":x+1),O=new Float32Array(b.length);O.set(b),j(O),_.set(O,E)}else"JOINT"===A?(_.matricesIndices=new Float32Array(b.length),_.matricesIndices.set(b)):"WEIGHT"===A?(_.matricesWeights=new Float32Array(b.length),_.matricesWeights.set(b)):"COLOR"===A&&(_.colors=new Float32Array(b.length),_.colors.set(b));if(g=e.accessors[m.indices])b=B.GetBufferFromAccessor(e,g),_.indices=new Int32Array(b.length),_.indices.set(b),d.push(_.indices.length);else{var M=[];for(T=0;T<_.positions.length/3;T++)M.push(T);_.indices=new Int32Array(M),d.push(_.indices.length)}s?s.merge(_):s=_;var w=e.scene.getMaterialById(m.material);i.push(null===w?B.GetDefaultMaterial(e.scene):w),l.push(0===l.length?0:l[l.length-1]+c[c.length-2]),u.push(0===u.length?0:u[u.length-1]+d[d.length-2])}}e.scene._blockEntityCollection=!!e.assetContainer,i.length>1?(a=new y.MultiMaterial("multimat"+r,e.scene)).subMaterials=i:a=new y.StandardMaterial("multimat"+r,e.scene),1===i.length&&(a=i[0]),a._parentContainer=e.assetContainer,o.material||(o.material=a),new y.Geometry(r,e.scene,s,!1,o),o.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,o.subMeshes=[];var C=0;for(h=0;h<n.length;h++){var L;if(f=n[h],L=e.meshes[f])for(p=0;p<L.primitives.length;p++)L.primitives[p].mode,y.SubMesh.AddToMesh(C,l[C],c[C],u[C],d[C],o,o,!0),C++}return o},J=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,t,n){var r=null;if(e.importOnlyMeshes&&(t.skin||t.meshes)&&e.importMeshesNames&&e.importMeshesNames.length>0&&-1===e.importMeshesNames.indexOf(t.name||""))return null;if(t.skin){if(t.meshes){var o=e.skins[t.skin];(a=Z(e,t,t.meshes,n,t.babylonNode)).skeleton=e.scene.getLastSkeletonById(t.skin),null===a.skeleton&&(a.skeleton=function(e,t,n,r){if(r||(r=new y.Skeleton(t.name||"","",e.scene)),!t.babylonSkeleton)return r;var o=[],a=[];!function(e,t,n,r){for(var o in e.nodes){var a=e.nodes[o],i=o;if(a.jointName&&!X(n,a.jointName)){var s=W(a),l=new y.Bone(a.name||"",t,null,s);l.id=i,r.push({bone:l,node:a,id:i})}}for(var c=0;c<r.length;c++)for(var u=r[c],d=u.node.children,h=0;h<d.length;h++){for(var f=null,p=0;p<r.length;p++)if(r[p].id===d[h]){f=r[p];break}f&&(f.bone._parent=u.bone,u.bone.children.push(f.bone))}}(e,r,t,o),r.bones=[];for(var i=0;i<t.jointNames.length;i++)if(b=z(e,t.jointNames[i])){var s=b.node;if(s){var l=b.id,c=e.scene.getBoneById(l);if(c)r.bones.push(c);else{for(var u=!1,d=null,h=0;h<i;h++){var f=z(e,t.jointNames[h]);if(f){var p=f.node;if(p){var _=p.children;if(_){u=!1;for(var m=0;m<_.length;m++)if(_[m]===l){d=Y(e,t,t.jointNames[h],r),u=!0;break}if(u)break}}else y.Tools.Warn("Joint named "+t.jointNames[h]+" does not exist when looking for parent")}}var v=W(s);!d&&o.length>0&&(d=q(o,l))&&-1===a.indexOf(d)&&a.push(d),new y.Bone(s.jointName||"",r,d,v).id=l}}else y.Tools.Warn("Joint named "+t.jointNames[i]+" does not exist")}var g=r.bones;for(r.bones=[],i=0;i<t.jointNames.length;i++){var b;if(b=z(e,t.jointNames[i]))for(h=0;h<g.length;h++)if(g[h].id===b.id){r.bones.push(g[h]);break}}for(r.prepare(),i=0;i<a.length;i++)r.bones.push(a[i]);return r}(e,o,0,o.babylonSkeleton),o.babylonSkeleton||(o.babylonSkeleton=a.skeleton)),r=a}}else if(t.meshes){var a;r=a=Z(e,t,t.mesh?[t.mesh]:t.meshes,n,t.babylonNode)}else if(!t.light||t.babylonNode||e.importOnlyMeshes){if(t.camera&&!t.babylonNode&&!e.importOnlyMeshes){var i=e.cameras[t.camera];if(i){if(e.scene._blockEntityCollection=!!e.assetContainer,"orthographic"===i.type){var s=new y.FreeCamera(t.camera,y.Vector3.Zero(),e.scene,!1);s.name=t.name||"",s.mode=y.Camera.ORTHOGRAPHIC_CAMERA,s.attachControl(),r=s,s._parentContainer=e.assetContainer}else if("perspective"===i.type){var l=i[i.type],c=new y.FreeCamera(t.camera,y.Vector3.Zero(),e.scene,!1);c.name=t.name||"",c.attachControl(),l.aspectRatio||(l.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),l.znear&&l.zfar&&(c.maxZ=l.zfar,c.minZ=l.znear),r=c,c._parentContainer=e.assetContainer}e.scene._blockEntityCollection=!1}}}else{var u=e.lights[t.light];if(u)if("ambient"===u.type){var d=u[u.type],h=new y.HemisphericLight(t.light,y.Vector3.Zero(),e.scene);h.name=t.name||"",d.color&&(h.diffuse=y.Color3.FromArray(d.color)),r=h}else if("directional"===u.type){var f=u[u.type],p=new y.DirectionalLight(t.light,y.Vector3.Zero(),e.scene);p.name=t.name||"",f.color&&(p.diffuse=y.Color3.FromArray(f.color)),r=p}else if("point"===u.type){var _=u[u.type],m=new y.PointLight(t.light,y.Vector3.Zero(),e.scene);m.name=t.name||"",_.color&&(m.diffuse=y.Color3.FromArray(_.color)),r=m}else if("spot"===u.type){var v=u[u.type],g=new y.SpotLight(t.light,y.Vector3.Zero(),y.Vector3.Zero(),0,0,e.scene);g.name=t.name||"",v.color&&(g.diffuse=y.Color3.FromArray(v.color)),v.fallOfAngle&&(g.angle=v.fallOfAngle),v.fallOffExponent&&(g.exponent=v.fallOffExponent),r=g}}if(!t.jointName){if(t.babylonNode)return t.babylonNode;if(null===r){e.scene._blockEntityCollection=!!e.assetContainer;var b=new y.Mesh(t.name||"",e.scene);b._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,t.babylonNode=b,r=b}}if(null!==r){if(t.matrix&&r instanceof y.Mesh)!function(e,t){if(t.matrix){var n=new y.Vector3(0,0,0),r=new y.Quaternion,o=new y.Vector3(0,0,0);y.Matrix.FromArray(t.matrix).decompose(o,r,n),J(e,n,r,o)}else t.translation&&t.rotation&&t.scale&&J(e,y.Vector3.FromArray(t.translation),y.Quaternion.FromArray(t.rotation),y.Vector3.FromArray(t.scale));e.computeWorldMatrix(!0)}(r,t);else{var A=t.translation||[0,0,0],T=t.rotation||[0,0,0,1],x=t.scale||[1,1,1];J(r,y.Vector3.FromArray(A),y.Quaternion.FromArray(T),y.Vector3.FromArray(x))}r.updateCache(!0),t.babylonNode=r}return r},$=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++)$(e,o.children[i],a,r)},ee=function(e){var t=e.currentScene;if(t)for(var n=0;n<t.nodes.length;n++)$(e,t.nodes[n],null);else for(var r in e.scenes)for(t=e.scenes[r],n=0;n<t.nodes.length;n++)$(e,t.nodes[n],null);for(function(e){for(var t in e.animations){var n=e.animations[t];if(n.channels&&n.samplers)for(var r=null,o=0;o<n.channels.length;o++){var a=n.channels[o],i=n.samplers[a.sampler];if(i){var s=null,l=null;n.parameters?(s=n.parameters[i.input],l=n.parameters[i.output]):(s=i.input,l=i.output);var c=B.GetBufferFromAccessor(e,e.accessors[s]),u=B.GetBufferFromAccessor(e,e.accessors[l]),d=a.target.id,h=e.scene.getNodeById(d);if(null===h&&(h=e.scene.getNodeByName(d)),null!==h){var f=h instanceof y.Bone,p=a.target.path,_=G.indexOf(p);-1!==_&&(p=U[_]);var m=y.Animation.ANIMATIONTYPE_MATRIX;f||("rotationQuaternion"===p?(m=y.Animation.ANIMATIONTYPE_QUATERNION,h.rotationQuaternion=new y.Quaternion):m=y.Animation.ANIMATIONTYPE_VECTOR3);var v=null,g=[],b=0,A=!1;f&&r&&r.getKeys().length===c.length&&(v=r,A=!0),A||(e.scene._blockEntityCollection=!!e.assetContainer,v=new y.Animation(t,f?"_matrix":p,1,m,y.Animation.ANIMATIONLOOPMODE_CYCLE),e.scene._blockEntityCollection=!1);for(var T=0;T<c.length;T++){var x=null;if("rotationQuaternion"===p?(x=y.Quaternion.FromArray([u[b],u[b+1],u[b+2],u[b+3]]),b+=4):(x=y.Vector3.FromArray([u[b],u[b+1],u[b+2]]),b+=3),f){var E=h,O=y.Vector3.Zero(),M=new y.Quaternion,w=y.Vector3.Zero(),C=E.getBaseMatrix();A&&r&&(C=r.getKeys()[T].value),C.decompose(w,M,O),"position"===p?O=x:"rotationQuaternion"===p?M=x:w=x,x=y.Matrix.Compose(w,M,O)}A?r&&(r.getKeys()[T].value=x):g.push({frame:c[T],value:x})}!A&&v&&(v.setKeys(g),h.animations.push(v)),r=v,e.scene.stopAnimation(h),e.scene.beginAnimation(h,0,c[c.length-1],!0,1)}else y.Tools.Warn("Creating animation named "+t+". But cannot find node named "+d+" to attach to")}}}}(e),n=0;n<e.scene.skeletons.length;n++){var o=e.scene.skeletons[n];e.scene.beginAnimation(o,0,Number.MAX_VALUE,!0,1)}},te=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=V.indexOf(a.semantic);if(-1!==i)return delete n[r],k[i]}}return e.currentIdentifier},ne=function(e){for(var t in e.materials)ae.LoadMaterialAsync(e,t,(function(){}),(function(){}))},re=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&&H(e.extensions,"extensions",r),e.extensionsUsed&&H(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&&H(e.bufferViews,"bufferViews",r),e.accessors&&H(e.accessors,"accessors",r),e.meshes&&H(e.meshes,"meshes",r),e.lights&&H(e.lights,"lights",r),e.cameras&&H(e.cameras,"cameras",r),e.nodes&&H(e.nodes,"nodes",r),e.images&&H(e.images,"images",r),e.textures&&H(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&&H(e.programs,"programs",r),e.samplers&&H(e.samplers,"samplers",r),e.techniques&&H(e.techniques,"techniques",r),e.materials&&H(e.materials,"materials",r),e.animations&&H(e.animations,"animations",r),e.skins&&H(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,t,n,r,o){var a=e.buffers[t];y.Tools.IsBase64(a.uri)?setTimeout((function(){return n(new Uint8Array(y.Tools.DecodeBase64(a.uri)))})):y.Tools.LoadFile(e.rootUrl+a.uri,(function(e){return n(new Uint8Array(e))}),o,void 0,!0,(function(e){e&&r(e.status+" "+e.statusText)}))},e.LoadTextureBufferAsync=function(e,t,n,r){var o=e.textures[t];if(o&&o.source)if(o.babylonTexture)n(null);else{var a=e.images[o.source];y.Tools.IsBase64(a.uri)?setTimeout((function(){return n(new Uint8Array(y.Tools.DecodeBase64(a.uri)))})):y.Tools.LoadFile(e.rootUrl+a.uri,(function(e){return n(new Uint8Array(e))}),void 0,void 0,!0,(function(e){e&&r(e.status+" "+e.statusText)}))}else r("")},e.CreateTextureAsync=function(e,t,n,r){var o=e.textures[t];if(o.babylonTexture)r(o.babylonTexture);else{var a=e.samplers[o.sampler],i=a.minFilter===N.NEAREST_MIPMAP_NEAREST||a.minFilter===N.NEAREST_MIPMAP_LINEAR||a.minFilter===N.LINEAR_MIPMAP_NEAREST||a.minFilter===N.LINEAR_MIPMAP_LINEAR,s=y.Texture.BILINEAR_SAMPLINGMODE,l=null==n?new Blob:new Blob([n]),c=URL.createObjectURL(l),u=function(){return URL.revokeObjectURL(c)},d=new y.Texture(c,e.scene,!i,!0,s,u,u);void 0!==a.wrapS&&(d.wrapU=B.GetWrapMode(a.wrapS)),void 0!==a.wrapT&&(d.wrapV=B.GetWrapMode(a.wrapT)),d.name=t,o.babylonTexture=d,r(d)}},e.LoadShaderStringAsync=function(e,t,n,r){var o=e.shaders[t];if(y.Tools.IsBase64(o.uri)){var a=atob(o.uri.split(",")[1]);n&&n(a)}else y.Tools.LoadFile(e.rootUrl+o.uri,n,void 0,void 0,!1,(function(e){e&&r&&r(e.status+" "+e.statusText)}))},e.LoadMaterialAsync=function(e,t,n,r){var o=e.materials[t];if(o.technique){var a=e.techniques[o.technique];if(!a){e.scene._blockEntityCollection=!!e.assetContainer;var i=new y.StandardMaterial(t,e.scene);return i._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,i.diffuseColor=new y.Color3(.5,.5,.5),i.sideOrientation=y.Material.CounterClockWiseSideOrientation,void n(i)}var s=e.programs[a.program],l=a.states,c=y.Effect.ShadersStore[s.vertexShader+"VertexShader"],u=y.Effect.ShadersStore[s.fragmentShader+"PixelShader"],d="",h="",f=new D(c),p=new D(u),_={},m=[],v=[],g=[];for(var b in a.uniforms){var A=a.uniforms[b],T=a.parameters[A];if(_[b]=T,!T.semantic||T.node||T.source)T.type===C.SAMPLER_2D?g.push(b):m.push(b);else{var x=V.indexOf(T.semantic);-1!==x?(m.push(k[x]),delete _[b]):m.push(b)}}for(var E in a.attributes){var O=a.attributes[E];if((L=a.parameters[O]).semantic){var M=K(L);M&&v.push(M)}}for(;!f.isEnd()&&f.getNextToken();)if(f.currentToken===I.IDENTIFIER){var w=!1;for(var E in a.attributes){O=a.attributes[E];var L=a.parameters[O];if(f.currentIdentifier===E&&L.semantic){d+=K(L),w=!0;break}}w||(d+=te(f,a,_))}else d+=f.currentString;for(;!p.isEnd()&&p.getNextToken();)p.currentToken===I.IDENTIFIER?h+=te(p,a,_):h+=p.currentString;var N={vertex:s.vertexShader+t,fragment:s.fragmentShader+t},S={attributes:v,uniforms:m,samplers:g,needAlphaBlending:l&&l.enable&&-1!==l.enable.indexOf(3042)};y.Effect.ShadersStore[s.vertexShader+t+"VertexShader"]=d,y.Effect.ShadersStore[s.fragmentShader+t+"PixelShader"]=h;var P=new y.ShaderMaterial(t,e.scene,N,S);if(P.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")}}(s,P,r),P.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,c=a[i[n]];if(void 0===c&&(c=s.value),!c)return"continue";var u=function(e){return function(n){s.value&&e&&(t.setTexture(e,n),delete o[e])}};l===C.SAMPLER_2D?ae.LoadTextureAsync(e,r.values?c:s.value,u(n),(function(){return u(null)})):s.value&&B.SetUniform(t,n,r.values?c: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 c=n[l],u=c.type;if(u===C.FLOAT_MAT2||u===C.FLOAT_MAT3||u===C.FLOAT_MAT4)if(!c.semantic||c.source||c.node){if(c.semantic&&(c.source||c.node)){var d=t.scene.getNodeByName(c.source||c.node||"");if(null===d&&(d=t.scene.getNodeById(c.source||c.node||"")),null===d)continue;B.SetMatrix(t.scene,d,c,l,r.getEffect())}}else B.SetMatrix(t.scene,e,c,l,r.getEffect());else{var h=s[o.uniforms[l]];if(!h)continue;if(u===C.SAMPLER_2D){var f=t.textures[a.values?h:c.value].babylonTexture;if(null==f)continue;r.getEffect().setTexture(l,f)}else B.SetUniform(r.getEffect(),l,h,u)}}i(r)}(i,e,o,t,n,r,a)}}}(e,P,a,o,_,n),P.sideOrientation=y.Material.CounterClockWiseSideOrientation,l&&l.functions){var G=l.functions;G.cullFace&&G.cullFace[0]!==R.BACK&&(P.backFaceCulling=!1);var U=G.blendFuncSeparate;U&&(U[0]===F.SRC_ALPHA&&U[1]===F.ONE_MINUS_SRC_ALPHA&&U[2]===F.ONE&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_COMBINE:U[0]===F.ONE&&U[1]===F.ONE&&U[2]===F.ZERO&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_ONEONE:U[0]===F.SRC_ALPHA&&U[1]===F.ONE&&U[2]===F.ZERO&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_ADD:U[0]===F.ZERO&&U[1]===F.ONE_MINUS_SRC_COLOR&&U[2]===F.ONE&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_SUBTRACT:U[0]===F.DST_COLOR&&U[1]===F.ZERO&&U[2]===F.ONE&&U[3]===F.ONE?P.alphaMode=y.Constants.ALPHA_MULTIPLY:U[0]===F.SRC_ALPHA&&U[1]===F.ONE_MINUS_SRC_COLOR&&U[2]===F.ONE&&U[3]===F.ONE&&(P.alphaMode=y.Constants.ALPHA_MAXIMIZED))}}else r&&r("No technique found.")},e}(),oe=function(){function e(){}return e.RegisterExtension=function(t){e.Extensions[t.name]?y.Tools.Error('Tool with the same name "'+t.name+'" already exists'):e.Extensions[t.name]=t},e.prototype.dispose=function(){},e.prototype._importMeshAsync=function(e,t,n,r,o,a,i,s){var l=this;return t.useRightHandedSystem=!0,ae.LoadRuntimeAsync(t,n,r,(function(t){t.assetContainer=o,t.importOnlyMeshes=!0,""===e?t.importMeshesNames=[]:"string"==typeof e?t.importMeshesNames=[e]:!e||e instanceof Array?(t.importMeshesNames=[],y.Tools.Warn("Argument meshesNames must be of type string or string[]")):t.importMeshesNames=[e],l._createNodes(t);var n=[],r=[];for(var i in t.nodes){var s=t.nodes[i];s.babylonNode instanceof y.AbstractMesh&&n.push(s.babylonNode)}for(var c in t.skins){var u=t.skins[c];u.babylonSkeleton instanceof y.Skeleton&&r.push(u.babylonSkeleton)}l._loadBuffersAsync(t,(function(){l._loadShadersAsync(t,(function(){ne(t),ee(t),!P.IncrementalLoading&&a&&a(n,r)}))})),P.IncrementalLoading&&a&&a(n,r)}),s),!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,ae.LoadRuntimeAsync(e,t,n,(function(e){ae.LoadRuntimeExtensionsAsync(e,(function(){i._createNodes(e),i._loadBuffersAsync(e,(function(){i._loadShadersAsync(e,(function(){ne(e),ee(e),P.IncrementalLoading||r()}))})),P.IncrementalLoading&&r()}),a)}),a)},e.prototype.loadAsync=function(e,t,n,r){var o=this;return new Promise((function(a,i){o._loadAsync(e,t,n,(function(){a()}),r,(function(e){i(new Error(e))}))}))},e.prototype._loadShadersAsync=function(e,t){var n=!1,r=function(n,r){ae.LoadShaderStringAsync(e,n,(function(o){o instanceof ArrayBuffer||(e.loadedShaderCount++,o&&(y.Effect.ShadersStore[n+(r.type===w.VERTEX?"VertexShader":"PixelShader")]=o),e.loadedShaderCount===e.shaderscount&&t())}),(function(){y.Tools.Error("Error when loading shader program named "+n+" located at "+r.uri)}))};for(var o in e.shaders){n=!0;var a=e.shaders[o];a?r.bind(this,o,a)():y.Tools.Error("No shader named: "+o)}n||t()},e.prototype._loadBuffersAsync=function(e,t){var n=!1,r=function(n,r){ae.LoadBufferAsync(e,n,(function(o){e.loadedBufferCount++,o&&(o.byteLength!=e.buffers[n].byteLength&&y.Tools.Error("Buffer named "+n+" is length "+o.byteLength+". Expected: "+r.byteLength),e.loadedBufferViews[n]=o),e.loadedBufferCount===e.buffersCount&&t()}),(function(){y.Tools.Error("Error when loading buffer named "+n+" located at "+r.uri)}))};for(var o in e.buffers){n=!0;var a=e.buffers[o];a?r.bind(this,o,a)():y.Tools.Error("No buffer named: "+o)}n||t()},e.prototype._createNodes=function(e){var t=e.currentScene;if(t)for(var n=0;n<t.nodes.length;n++)$(e,t.nodes[n],null);else for(var r in e.scenes)for(t=e.scenes[r],n=0;n<t.nodes.length;n++)$(e,t.nodes[n],null)},e.Extensions={},e}(),ae=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(re.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(){re.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(){re.LoadShaderStringAsync(t,n,r,o)}))},e.LoadMaterialAsync=function(t,n,r,o){e._ApplyExtensions((function(e){return e.loadMaterialAsync(t,n,r,o)}),(function(){re.LoadMaterialAsync(t,n,r,o)}))},e._LoadTextureBufferAsync=function(t,n,r,o){e._ApplyExtensions((function(e){return e.loadTextureBufferAsync(t,n,r,o)}),(function(){re.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(){re.CreateTextureAsync(t,n,r,o)}))},e._ApplyExtensions=function(e,t){for(var n in oe.Extensions)if(e(oe.Extensions[n]))return;t()},e}();P._CreateGLTF1Loader=function(){return new oe};var ie=function(e){function t(){return e.call(this,"KHR_binary_glTF")||this}return _(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(re.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(B.GetBufferFromBufferView(e,i,0,i.byteLength,M.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=B.GetBufferFromBufferView(e,a,0,a.byteLength,M.UNSIGNED_BYTE);return setTimeout((function(){var e=B.DecodeBufferToText(i);n(e)})),!0},t}(ae);oe.RegisterExtension(new ie);var se=function(e){function t(){return e.call(this,"KHR_materials_common")||this}return _(t,e),t.prototype.loadRuntimeExtensionsAsync=function(e){if(!e.extensions)return!1;var t=e.extensions[this.name];if(!t)return!1;var n=t.lights;if(n)for(var r in n){var o=n[r];switch(o.type){case"ambient":var a=new y.HemisphericLight(o.name,new y.Vector3(0,1,0),e.scene),i=o.ambient;i&&(a.diffuse=y.Color3.FromArray(i.color||[1,1,1]));break;case"point":var s=new y.PointLight(o.name,new y.Vector3(10,10,10),e.scene),l=o.point;l&&(s.diffuse=y.Color3.FromArray(l.color||[1,1,1]));break;case"directional":var c=new y.DirectionalLight(o.name,new y.Vector3(0,-1,0),e.scene),u=o.directional;u&&(c.diffuse=y.Color3.FromArray(u.color||[1,1,1]));break;case"spot":var d=o.spot;d&&(new y.SpotLight(o.name,new y.Vector3(0,10,0),new y.Vector3(0,-1,0),d.fallOffAngle||Math.PI,d.fallOffExponent||0,e.scene).diffuse=y.Color3.FromArray(d.color||[1,1,1]));break;default:y.Tools.Warn('GLTF Material Common extension: light type "'+o.type+"” not supported")}}return!1},t.prototype.loadMaterialAsync=function(e,t,n,r){var o=e.materials[t];if(!o||!o.extensions)return!1;var a=o.extensions[this.name];if(!a)return!1;var i=new y.StandardMaterial(t,e.scene);return i.sideOrientation=y.Material.CounterClockWiseSideOrientation,"CONSTANT"===a.technique&&(i.disableLighting=!0),i.backFaceCulling=void 0!==a.doubleSided&&!a.doubleSided,i.alpha=void 0===a.values.transparency?1:a.values.transparency,i.specularPower=void 0===a.values.shininess?0:a.values.shininess,"string"==typeof a.values.ambient?this._loadTexture(e,a.values.ambient,i,"ambientTexture",r):i.ambientColor=y.Color3.FromArray(a.values.ambient||[0,0,0]),"string"==typeof a.values.diffuse?this._loadTexture(e,a.values.diffuse,i,"diffuseTexture",r):i.diffuseColor=y.Color3.FromArray(a.values.diffuse||[0,0,0]),"string"==typeof a.values.emission?this._loadTexture(e,a.values.emission,i,"emissiveTexture",r):i.emissiveColor=y.Color3.FromArray(a.values.emission||[0,0,0]),"string"==typeof a.values.specular?this._loadTexture(e,a.values.specular,i,"specularTexture",r):i.specularColor=y.Color3.FromArray(a.values.specular||[0,0,0]),!0},t.prototype._loadTexture=function(e,t,n,r,o){re.LoadTextureBufferAsync(e,t,(function(o){re.CreateTextureAsync(e,t,o,(function(e){return n[r]=e}))}),o)},t}(ae);function le(e,t,n,r){return y.Vector3.FromArray(t,n).scaleInPlace(r)}oe.RegisterExtension(new se);var ce=function(){function e(e,t,n,r){this.type=e,this.name=t,this.getValue=n,this.getStride=r}return e.prototype._buildAnimation=function(e,t,n){var r=new y.Animation(e,this.name,t,this.type);return r.setKeys(n),r},e}(),ue=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){o(e._babylonTransformNode,this._buildAnimation(t,n,r))},t}(ce),de=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){if(e._numMorphTargets)for(var a=function(a){var s=new y.Animation("".concat(t,"_").concat(a),i.name,n,i.type);if(s.setKeys(r.map((function(e){return{frame:e.frame,inTangent:e.inTangent?e.inTangent[a]:void 0,value:e.value[a],outTangent:e.outTangent?e.outTangent[a]:void 0,interpolation:e.interpolation}}))),e._primitiveBabylonMeshes)for(var l=0,c=e._primitiveBabylonMeshes;l<c.length;l++){var u=c[l];if(u.morphTargetManager){var d=u.morphTargetManager.getTarget(a),h=s.clone();d.animations.push(h),o(d,h)}}},i=this,s=0;s<e._numMorphTargets;s++)a(s)},t}(ce),he={translation:[new ue(y.Animation.ANIMATIONTYPE_VECTOR3,"position",le,(function(){return 3}))],rotation:[new ue(y.Animation.ANIMATIONTYPE_QUATERNION,"rotationQuaternion",(function(e,t,n,r){return y.Quaternion.FromArray(t,n).scaleInPlace(r)}),(function(){return 4}))],scale:[new ue(y.Animation.ANIMATIONTYPE_VECTOR3,"scaling",le,(function(){return 3}))],weights:[new de(y.Animation.ANIMATIONTYPE_FLOAT,"influence",(function(e,t,n,r){for(var o=new Array(e._numMorphTargets),a=0;a<o.length;a++)o[a]=t[n++]*r;return o}),(function(e){return e._numMorphTargets}))]};function fe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=function(e){return e&&"object"==typeof e};return e.reduce((function(e,t){return Object.keys(t).forEach((function(r){var o=e[r],a=t[r];Array.isArray(o)&&Array.isArray(a)?e[r]=o.concat.apply(o,a):n(o)&&n(a)?e[r]=fe(o,a):e[r]=a})),e}),{})}var pe=function(){function e(){}return e.Get=function(e,t,n){if(!t||null==n||!t[n])throw new Error("".concat(e,": Failed to find index (").concat(n,")"));return t[n]},e.TryGet=function(e,t){return e&&null!=t&&e[t]?e[t]:null},e.Assign=function(e){if(e)for(var t=0;t<e.length;t++)e[t].index=t},e}(),_e=function(){function e(e){this._completePromises=new Array,this._assetContainer=null,this._babylonLights=[],this._disableInstancedMesh=0,this._allMaterialsDirtyRequired=!1,this._extensions=new Array,this._disposed=!1,this._rootUrl=null,this._fileName=null,this._uniqueRootUrl=null,this._bin=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions=new Array,this._parent=e}return e.RegisterExtension=function(t,n){e.UnregisterExtension(t)&&y.Logger.Warn("Extension with the name '".concat(t,"' already exists")),e._RegisteredExtensions[t]={factory:n}},e.UnregisterExtension=function(t){return!!e._RegisteredExtensions[t]&&(delete e._RegisteredExtensions[t],!0)},Object.defineProperty(e.prototype,"gltf",{get:function(){if(!this._gltf)throw new Error("glTF JSON is not available");return this._gltf},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"bin",{get:function(){return this._bin},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"babylonScene",{get:function(){if(!this._babylonScene)throw new Error("Scene is not available");return this._babylonScene},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"rootBabylonMesh",{get:function(){return this._rootBabylonMesh},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"rootUrl",{get:function(){return this._rootUrl},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this._disposed||(this._disposed=!0,this._completePromises.length=0,this._extensions.forEach((function(e){return e.dispose&&e.dispose()})),this._extensions.length=0,this._gltf=null,this._bin=null,this._babylonScene=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions.length=0,this._parent.dispose())},e.prototype.importMeshAsync=function(e,t,n,r,o,a,i){var s=this;return void 0===i&&(i=""),Promise.resolve().then((function(){s._babylonScene=t,s._assetContainer=n,s._loadData(r);var a=null;if(e){var l={};if(s._gltf.nodes)for(var c=0,u=s._gltf.nodes;c<u.length;c++){var d=u[c];d.name&&(l[d.name]=d.index)}a=(e instanceof Array?e:[e]).map((function(e){var t=l[e];if(void 0===t)throw new Error("Failed to find node '".concat(e,"'"));return t}))}return s._loadAsync(o,i,a,(function(){return{meshes:s._getMeshes(),particleSystems:[],skeletons:s._getSkeletons(),animationGroups:s._getAnimationGroups(),lights:s._babylonLights,transformNodes:s._getTransformNodes(),geometries:s._getGeometries(),spriteManagers:[]}}))}))},e.prototype.loadAsync=function(e,t,n,r,o){var a=this;return void 0===o&&(o=""),Promise.resolve().then((function(){return a._babylonScene=e,a._loadData(t),a._loadAsync(n,o,null,(function(){}))}))},e.prototype._loadAsync=function(e,t,n,r){var o=this;return Promise.resolve().then((function(){o._rootUrl=e,o._uniqueRootUrl=!e.startsWith("file:")&&t?e:"".concat(e).concat(Date.now(),"/"),o._fileName=t,o._allMaterialsDirtyRequired=!1,o._loadExtensions(),o._checkExtensions();var a="".concat(T[T.LOADING]," => ").concat(T[T.READY]),i="".concat(T[T.LOADING]," => ").concat(T[T.COMPLETE]);o._parent._startPerformanceCounter(a),o._parent._startPerformanceCounter(i),o._parent._setState(T.LOADING),o._extensionsOnLoading();var s=new Array,l=o._babylonScene.blockMaterialDirtyMechanism;if(o._babylonScene.blockMaterialDirtyMechanism=!0,!o.parent.loadOnlyMaterials)if(n)s.push(o.loadSceneAsync("/nodes",{nodes:n,index:-1}));else if(null!=o._gltf.scene||o._gltf.scenes&&o._gltf.scenes[0]){var c=pe.Get("/scene",o._gltf.scenes,o._gltf.scene||0);s.push(o.loadSceneAsync("/scenes/".concat(c.index),c))}if(!o.parent.skipMaterials&&o.parent.loadAllMaterials&&o._gltf.materials)for(var u=0;u<o._gltf.materials.length;++u){var d=o._gltf.materials[u],h="/materials/"+u,f=y.Material.TriangleFillMode;s.push(o._loadMaterialAsync(h,d,null,f,(function(){})))}return o._allMaterialsDirtyRequired?o._babylonScene.blockMaterialDirtyMechanism=l:o._babylonScene._forceBlockMaterialDirtyMechanism(l),o._parent.compileMaterials&&s.push(o._compileMaterialsAsync()),o._parent.compileShadowGenerators&&s.push(o._compileShadowGeneratorsAsync()),Promise.all(s).then((function(){return o._rootBabylonMesh&&o._rootBabylonMesh!==o._parent.customRootNode&&o._rootBabylonMesh.setEnabled(!0),o._extensionsOnReady(),o._parent._setState(T.READY),o._startAnimations(),r()})).then((function(e){return o._parent._endPerformanceCounter(a),y.Tools.SetImmediate((function(){o._disposed||Promise.all(o._completePromises).then((function(){o._parent._endPerformanceCounter(i),o._parent._setState(T.COMPLETE),o._parent.onCompleteObservable.notifyObservers(void 0),o._parent.onCompleteObservable.clear(),o.dispose()}),(function(e){o._parent.onErrorObservable.notifyObservers(e),o._parent.onErrorObservable.clear(),o.dispose()}))})),e}))})).catch((function(e){throw o._disposed||(o._parent.onErrorObservable.notifyObservers(e),o._parent.onErrorObservable.clear(),o.dispose()),e}))},e.prototype._loadData=function(e){if(this._gltf=e.json,this._setupData(),e.bin){var t=this._gltf.buffers;if(t&&t[0]&&!t[0].uri){var n=t[0];(n.byteLength<e.bin.byteLength-3||n.byteLength>e.bin.byteLength)&&y.Logger.Warn("Binary buffer length (".concat(n.byteLength,") from JSON does not match chunk length (").concat(e.bin.byteLength,")")),this._bin=e.bin}else y.Logger.Warn("Unexpected BIN chunk")}},e.prototype._setupData=function(){if(pe.Assign(this._gltf.accessors),pe.Assign(this._gltf.animations),pe.Assign(this._gltf.buffers),pe.Assign(this._gltf.bufferViews),pe.Assign(this._gltf.cameras),pe.Assign(this._gltf.images),pe.Assign(this._gltf.materials),pe.Assign(this._gltf.meshes),pe.Assign(this._gltf.nodes),pe.Assign(this._gltf.samplers),pe.Assign(this._gltf.scenes),pe.Assign(this._gltf.skins),pe.Assign(this._gltf.textures),this._gltf.nodes){for(var e={},t=0,n=this._gltf.nodes;t<n.length;t++)if((l=n[t]).children)for(var r=0,o=l.children;r<o.length;r++)e[o[r]]=l.index;for(var a=this._createRootNode(),i=0,s=this._gltf.nodes;i<s.length;i++){var l,c=e[(l=s[i]).index];l.parent=void 0===c?a:this._gltf.nodes[c]}}},e.prototype._loadExtensions=function(){var t;for(var n in e._RegisteredExtensions)if(!1===(null===(t=this.parent.extensionOptions[n])||void 0===t?void 0:t.enabled))this.isExtensionUsed(n)&&y.Logger.Warn("Extension ".concat(n," is used but has been explicitly disabled."));else{var r=e._RegisteredExtensions[n].factory(this);r.name!==n&&y.Logger.Warn("The name of the glTF loader extension instance does not match the registered name: ".concat(r.name," !== ").concat(n)),this._extensions.push(r),this._parent.onExtensionLoadedObservable.notifyObservers(r)}this._extensions.sort((function(e,t){return(e.order||Number.MAX_VALUE)-(t.order||Number.MAX_VALUE)})),this._parent.onExtensionLoadedObservable.clear()},e.prototype._checkExtensions=function(){var e;if(this._gltf.extensionsRequired)for(var t=function(t){if(!n._extensions.some((function(e){return e.name===t&&e.enabled}))){if(!1===(null===(e=n.parent.extensionOptions[t])||void 0===e?void 0:e.enabled))throw new Error("Required extension ".concat(t," is disabled"));throw new Error("Required extension ".concat(t," is not available"))}},n=this,r=0,o=this._gltf.extensionsRequired;r<o.length;r++)t(o[r])},e.prototype._createRootNode=function(){if(void 0!==this._parent.customRootNode)return this._rootBabylonMesh=this._parent.customRootNode,{_babylonTransformNode:null===this._rootBabylonMesh?void 0:this._rootBabylonMesh,index:-1};this._babylonScene._blockEntityCollection=!!this._assetContainer;var t=new y.Mesh("__root__",this._babylonScene);this._rootBabylonMesh=t,this._rootBabylonMesh._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._rootBabylonMesh.setEnabled(!1);var n={_babylonTransformNode:this._rootBabylonMesh,index:-1};switch(this._parent.coordinateSystemMode){case b.AUTO:this._babylonScene.useRightHandedSystem||(n.rotation=[0,1,0,0],n.scale=[1,1,-1],e._LoadTransform(n,this._rootBabylonMesh));break;case b.FORCE_RIGHT_HANDED:this._babylonScene.useRightHandedSystem=!0;break;default:throw new Error("Invalid coordinate system mode (".concat(this._parent.coordinateSystemMode,")"))}return this._parent.onMeshLoadedObservable.notifyObservers(t),n},e.prototype.loadSceneAsync=function(e,t){var n=this,r=this._extensionsLoadSceneAsync(e,t);if(r)return r;var o=new Array;if(this.logOpen("".concat(e," ").concat(t.name||"")),t.nodes)for(var a=0,i=t.nodes;a<i.length;a++){var s=i[a],l=pe.Get("".concat(e,"/nodes/").concat(s),this._gltf.nodes,s);o.push(this.loadNodeAsync("/nodes/".concat(l.index),l,(function(e){e.parent=n._rootBabylonMesh})))}for(var c=0,u=this._postSceneLoadActions;c<u.length;c++)(0,u[c])();return o.push(this._loadAnimationsAsync()),this.logClose(),Promise.all(o).then((function(){}))},e.prototype._forEachPrimitive=function(e,t){if(e._primitiveBabylonMeshes)for(var n=0,r=e._primitiveBabylonMeshes;n<r.length;n++)t(r[n])},e.prototype._getGeometries=function(){var e=[],t=this._gltf.nodes;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];this._forEachPrimitive(o,(function(t){var n=t.geometry;n&&-1===e.indexOf(n)&&e.push(n)}))}return e},e.prototype._getMeshes=function(){var e=[];this._rootBabylonMesh instanceof y.AbstractMesh&&e.push(this._rootBabylonMesh);var t=this._gltf.nodes;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];this._forEachPrimitive(o,(function(t){e.push(t)}))}return e},e.prototype._getTransformNodes=function(){var e=[],t=this._gltf.nodes;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];o._babylonTransformNode&&"TransformNode"===o._babylonTransformNode.getClassName()&&e.push(o._babylonTransformNode),o._babylonTransformNodeForSkin&&e.push(o._babylonTransformNodeForSkin)}return e},e.prototype._getSkeletons=function(){var e=[],t=this._gltf.skins;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];o._data&&e.push(o._data.babylonSkeleton)}return e},e.prototype._getAnimationGroups=function(){var e=[],t=this._gltf.animations;if(t)for(var n=0,r=t;n<r.length;n++){var o=r[n];o._babylonAnimationGroup&&e.push(o._babylonAnimationGroup)}return e},e.prototype._startAnimations=function(){switch(this._parent.animationStartMode){case A.NONE:break;case A.FIRST:0!==(e=this._getAnimationGroups()).length&&e[0].start(!0);break;case A.ALL:for(var e,t=0,n=e=this._getAnimationGroups();t<n.length;t++)n[t].start(!0);break;default:return void y.Logger.Error("Invalid animation start mode (".concat(this._parent.animationStartMode,")"))}},e.prototype.loadNodeAsync=function(t,n,r){var o=this;void 0===r&&(r=function(){});var a=this._extensionsLoadNodeAsync(t,n,r);if(a)return a;if(n._babylonTransformNode)throw new Error("".concat(t,": Invalid recursive node hierarchy"));var i=new Array;this.logOpen("".concat(t," ").concat(n.name||""));var s=function(a){if(e.AddPointerMetadata(a,t),e._LoadTransform(n,a),null!=n.camera){var s=pe.Get("".concat(t,"/camera"),o._gltf.cameras,n.camera);i.push(o.loadCameraAsync("/cameras/".concat(s.index),s,(function(e){e.parent=a})))}if(n.children)for(var l=0,c=n.children;l<c.length;l++){var u=c[l],d=pe.Get("".concat(t,"/children/").concat(u),o._gltf.nodes,u);i.push(o.loadNodeAsync("/nodes/".concat(d.index),d,(function(e){e.parent=a})))}r(a)},l=null!=n.mesh,c=this._parent.loadSkins&&null!=n.skin;if(!l||c){var u=n.name||"node".concat(n.index);this._babylonScene._blockEntityCollection=!!this._assetContainer;var d=new y.TransformNode(u,this._babylonScene);d._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,null==n.mesh?n._babylonTransformNode=d:n._babylonTransformNodeForSkin=d,s(d)}if(l)if(c){var h=pe.Get("".concat(t,"/mesh"),this._gltf.meshes,n.mesh);i.push(this._loadMeshAsync("/meshes/".concat(h.index),n,h,(function(e){var r=n._babylonTransformNodeForSkin;e.metadata=fe(r.metadata,e.metadata||{});var a=pe.Get("".concat(t,"/skin"),o._gltf.skins,n.skin);i.push(o._loadSkinAsync("/skins/".concat(a.index),n,a,(function(t){o._forEachPrimitive(n,(function(e){e.skeleton=t})),o._postSceneLoadActions.push((function(){if(null!=a.skeleton){var t=pe.Get("/skins/".concat(a.index,"/skeleton"),o._gltf.nodes,a.skeleton).parent;n.index===t.index?e.parent=r.parent:e.parent=t._babylonTransformNode}else e.parent=o._rootBabylonMesh;o._parent.onSkinLoadedObservable.notifyObservers({node:r,skinnedNode:e})}))})))})))}else h=pe.Get("".concat(t,"/mesh"),this._gltf.meshes,n.mesh),i.push(this._loadMeshAsync("/meshes/".concat(h.index),n,h,s));return this.logClose(),Promise.all(i).then((function(){return o._forEachPrimitive(n,(function(e){e.geometry&&e.geometry.useBoundingInfoFromGeometry?e._updateBoundingInfo():e.refreshBoundingInfo(!0,!0)})),n._babylonTransformNode}))},e.prototype._loadMeshAsync=function(e,t,n,r){var o=n.primitives;if(!o||!o.length)throw new Error("".concat(e,": Primitives are missing"));null==o[0].index&&pe.Assign(o);var a=new Array;this.logOpen("".concat(e," ").concat(n.name||""));var i=t.name||"node".concat(t.index);if(1===o.length){var s=n.primitives[0];a.push(this._loadMeshPrimitiveAsync("".concat(e,"/primitives/").concat(s.index),i,t,n,s,(function(e){t._babylonTransformNode=e,t._primitiveBabylonMeshes=[e]})))}else{this._babylonScene._blockEntityCollection=!!this._assetContainer,t._babylonTransformNode=new y.TransformNode(i,this._babylonScene),t._babylonTransformNode._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._primitiveBabylonMeshes=[];for(var l=0,c=o;l<c.length;l++)s=c[l],a.push(this._loadMeshPrimitiveAsync("".concat(e,"/primitives/").concat(s.index),"".concat(i,"_primitive").concat(s.index),t,n,s,(function(e){e.parent=t._babylonTransformNode,t._primitiveBabylonMeshes.push(e)})))}return r(t._babylonTransformNode),this.logClose(),Promise.all(a).then((function(){return t._babylonTransformNode}))},e.prototype._loadMeshPrimitiveAsync=function(t,n,r,o,a,i){var s=this,l=this._extensionsLoadMeshPrimitiveAsync(t,n,r,o,a,i);if(l)return l;this.logOpen("".concat(t));var c,u,d=0===this._disableInstancedMesh&&this._parent.createInstances&&null==r.skin&&!o.primitives[0].targets;if(d&&a._instanceData)this._babylonScene._blockEntityCollection=!!this._assetContainer,(c=a._instanceData.babylonSourceMesh.createInstance(n))._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,u=a._instanceData.promise;else{var h=new Array;this._babylonScene._blockEntityCollection=!!this._assetContainer;var f=new y.Mesh(n,this._babylonScene);f._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,f.sideOrientation=this._babylonScene.useRightHandedSystem?y.Material.CounterClockWiseSideOrientation:y.Material.ClockWiseSideOrientation,this._createMorphTargets(t,r,o,a,f),h.push(this._loadVertexDataAsync(t,a,f).then((function(e){return s._loadMorphTargetsAsync(t,a,f,e).then((function(){s._disposed||(s._babylonScene._blockEntityCollection=!!s._assetContainer,e.applyToMesh(f),e._parentContainer=s._assetContainer,s._babylonScene._blockEntityCollection=!1)}))})));var p=e._GetDrawMode(t,a.mode);if(null==a.material){var _=this._defaultBabylonMaterialData[p];_||(_=this._createDefaultMaterial("__GLTFLoader._default",p),this._parent.onMaterialLoadedObservable.notifyObservers(_),this._defaultBabylonMaterialData[p]=_),f.material=_}else if(!this.parent.skipMaterials){var m=pe.Get("".concat(t,"/material"),this._gltf.materials,a.material);h.push(this._loadMaterialAsync("/materials/".concat(m.index),m,f,p,(function(e){f.material=e})))}u=Promise.all(h),d&&(a._instanceData={babylonSourceMesh:f,promise:u}),c=f}return e.AddPointerMetadata(c,t),this._parent.onMeshLoadedObservable.notifyObservers(c),i(c),this.logClose(),u.then((function(){return c}))},e.prototype._loadVertexDataAsync=function(e,t,n){var r=this,o=this._extensionsLoadVertexDataAsync(e,t,n);if(o)return o;var a=t.attributes;if(!a)throw new Error("".concat(e,": Attributes are missing"));var i=new Array,s=new y.Geometry(n.name,this._babylonScene);if(null==t.indices)n.isUnIndexed=!0;else{var l=pe.Get("".concat(e,"/indices"),this._gltf.accessors,t.indices);i.push(this._loadIndicesAccessorAsync("/accessors/".concat(l.index),l).then((function(e){s.setIndices(e)})))}var c=function(t,o,l){if(null!=a[t]){n._delayInfo=n._delayInfo||[],-1===n._delayInfo.indexOf(o)&&n._delayInfo.push(o);var c=pe.Get("".concat(e,"/attributes/").concat(t),r._gltf.accessors,a[t]);i.push(r._loadVertexAccessorAsync("/accessors/".concat(c.index),c,o).then((function(e){var t,o;if(e.getKind()===y.VertexBuffer.PositionKind&&!r.parent.alwaysComputeBoundingBox&&!n.skeleton&&c.min&&c.max){var a=(t=y.TmpVectors.Vector3[0]).copyFromFloats.apply(t,c.min),i=(o=y.TmpVectors.Vector3[1]).copyFromFloats.apply(o,c.max);if(c.normalized&&5126!==c.componentType){var l=1;switch(c.componentType){case 5120:l=127;break;case 5121:l=255;break;case 5122:l=32767;break;case 5123:l=65535}var u=1/l;a.scaleInPlace(u),i.scaleInPlace(u)}s._boundingInfo=new y.BoundingInfo(a,i),s.useBoundingInfoFromGeometry=!0}s.setVerticesBuffer(e,c.count)}))),o==y.VertexBuffer.MatricesIndicesExtraKind&&(n.numBoneInfluencers=8),l&&l(c)}};return c("POSITION",y.VertexBuffer.PositionKind),c("NORMAL",y.VertexBuffer.NormalKind),c("TANGENT",y.VertexBuffer.TangentKind),c("TEXCOORD_0",y.VertexBuffer.UVKind),c("TEXCOORD_1",y.VertexBuffer.UV2Kind),c("TEXCOORD_2",y.VertexBuffer.UV3Kind),c("TEXCOORD_3",y.VertexBuffer.UV4Kind),c("TEXCOORD_4",y.VertexBuffer.UV5Kind),c("TEXCOORD_5",y.VertexBuffer.UV6Kind),c("JOINTS_0",y.VertexBuffer.MatricesIndicesKind),c("WEIGHTS_0",y.VertexBuffer.MatricesWeightsKind),c("JOINTS_1",y.VertexBuffer.MatricesIndicesExtraKind),c("WEIGHTS_1",y.VertexBuffer.MatricesWeightsExtraKind),c("COLOR_0",y.VertexBuffer.ColorKind,(function(e){"VEC4"===e.type&&(n.hasVertexAlpha=!0)})),Promise.all(i).then((function(){return s}))},e.prototype._createMorphTargets=function(e,t,n,r,o){if(r.targets&&this._parent.loadMorphTargets){if(null==t._numMorphTargets)t._numMorphTargets=r.targets.length;else if(r.targets.length!==t._numMorphTargets)throw new Error("".concat(e,": Primitives do not have the same number of targets"));var a=n.extras?n.extras.targetNames:null;this._babylonScene._blockEntityCollection=!!this._assetContainer,o.morphTargetManager=new y.MorphTargetManager(this._babylonScene),o.morphTargetManager._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,o.morphTargetManager.areUpdatesFrozen=!0;for(var i=0;i<r.targets.length;i++){var s=t.weights?t.weights[i]:n.weights?n.weights[i]:0,l=a?a[i]:"morphTarget".concat(i);o.morphTargetManager.addTarget(new y.MorphTarget(l,s,o.getScene()))}}},e.prototype._loadMorphTargetsAsync=function(e,t,n,r){if(!t.targets||!this._parent.loadMorphTargets)return Promise.resolve();for(var o=new Array,a=n.morphTargetManager,i=0;i<a.numTargets;i++){var s=a.getTarget(i);o.push(this._loadMorphTargetVertexDataAsync("".concat(e,"/targets/").concat(i),r,t.targets[i],s))}return Promise.all(o).then((function(){a.areUpdatesFrozen=!1}))},e.prototype._loadMorphTargetVertexDataAsync=function(e,t,n,r){var o=this,a=new Array,i=function(r,i,s){if(null!=n[r]){var l=t.getVertexBuffer(i);if(l){var c=pe.Get("".concat(e,"/").concat(r),o._gltf.accessors,n[r]);a.push(o._loadFloatAccessorAsync("/accessors/".concat(c.index),c).then((function(e){s(l,e)})))}}};return i("POSITION",y.VertexBuffer.PositionKind,(function(e,t){var n=new Float32Array(t.length);e.forEach(t.length,(function(e,r){n[r]=t[r]+e})),r.setPositions(n)})),i("NORMAL",y.VertexBuffer.NormalKind,(function(e,t){var n=new Float32Array(t.length);e.forEach(n.length,(function(e,r){n[r]=t[r]+e})),r.setNormals(n)})),i("TANGENT",y.VertexBuffer.TangentKind,(function(e,t){var n=new Float32Array(t.length/3*4),o=0;e.forEach(t.length/3*4,(function(e,r){(r+1)%4!=0&&(n[o]=t[o]+e,o++)})),r.setTangents(n)})),Promise.all(a).then((function(){}))},e._LoadTransform=function(e,t){if(null==e.skin){var n=y.Vector3.Zero(),r=y.Quaternion.Identity(),o=y.Vector3.One();e.matrix?y.Matrix.FromArray(e.matrix).decompose(o,r,n):(e.translation&&(n=y.Vector3.FromArray(e.translation)),e.rotation&&(r=y.Quaternion.FromArray(e.rotation)),e.scale&&(o=y.Vector3.FromArray(e.scale))),t.position=n,t.rotationQuaternion=r,t.scaling=o}},e.prototype._loadSkinAsync=function(e,t,n,r){var o=this;if(!this._parent.loadSkins)return Promise.resolve();var a=this._extensionsLoadSkinAsync(e,t,n);if(a)return a;if(n._data)return r(n._data.babylonSkeleton),n._data.promise;var i="skeleton".concat(n.index);this._babylonScene._blockEntityCollection=!!this._assetContainer;var s=new y.Skeleton(n.name||i,i,this._babylonScene);s._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._loadBones(e,n,s);var l=this._loadSkinInverseBindMatricesDataAsync(e,n).then((function(e){o._updateBoneMatrices(s,e)}));return n._data={babylonSkeleton:s,promise:l},r(s),l},e.prototype._loadBones=function(e,t,n){if(null==t.skeleton||this._parent.alwaysComputeSkeletonRootNode){var r=this._findSkeletonRootNode("".concat(e,"/joints"),t.joints);if(r)if(void 0===t.skeleton)t.skeleton=r.index;else{var o=pe.Get("".concat(e,"/skeleton"),this._gltf.nodes,t.skeleton);o===r||function(e,t){for(;t.parent;t=t.parent)if(t.parent===e)return!0;return!1}(o,r)||(y.Logger.Warn("".concat(e,"/skeleton: Overriding with nearest common ancestor as skeleton node is not a common root")),t.skeleton=r.index)}else y.Logger.Warn("".concat(e,": Failed to find common root"))}for(var a={},i=0,s=t.joints;i<s.length;i++){var l=s[i],c=pe.Get("".concat(e,"/joints/").concat(l),this._gltf.nodes,l);this._loadBone(c,t,n,a)}},e.prototype._findSkeletonRootNode=function(e,t){if(0===t.length)return null;for(var n={},r=0,o=t;r<o.length;r++){for(var a=o[r],i=[],s=pe.Get("".concat(e,"/").concat(a),this._gltf.nodes,a);-1!==s.index;)i.unshift(s),s=s.parent;n[a]=i}for(var l=null,c=0;;++c){if(c>=(i=n[t[0]]).length)return l;s=i[c];for(var u=1;u<t.length;++u)if(c>=(i=n[t[u]]).length||s!==i[c])return l;l=s}},e.prototype._loadBone=function(e,t,n,r){e._isJoint=!0;var o=r[e.index];if(o)return o;var a=null;e.index!==t.skeleton&&(e.parent&&-1!==e.parent.index?a=this._loadBone(e.parent,t,n,r):void 0!==t.skeleton&&y.Logger.Warn("/skins/".concat(t.index,"/skeleton: Skeleton node is not a common root")));var i=t.joints.indexOf(e.index);return o=new y.Bone(e.name||"joint".concat(e.index),n,a,this._getNodeMatrix(e),null,null,i),r[e.index]=o,this._postSceneLoadActions.push((function(){o.linkTransformNode(e._babylonTransformNode)})),o},e.prototype._loadSkinInverseBindMatricesDataAsync=function(e,t){if(null==t.inverseBindMatrices)return Promise.resolve(null);var n=pe.Get("".concat(e,"/inverseBindMatrices"),this._gltf.accessors,t.inverseBindMatrices);return this._loadFloatAccessorAsync("/accessors/".concat(n.index),n)},e.prototype._updateBoneMatrices=function(e,t){for(var n=0,r=e.bones;n<r.length;n++){var o=r[n],a=y.Matrix.Identity(),i=o._index;t&&-1!==i&&(y.Matrix.FromArrayToRef(t,16*i,a),a.invertToRef(a));var s=o.getParent();s&&a.multiplyToRef(s.getAbsoluteInverseBindMatrix(),a),o.updateMatrix(a,!1,!1),o._updateAbsoluteBindMatrices(void 0,!1)}},e.prototype._getNodeMatrix=function(e){return e.matrix?y.Matrix.FromArray(e.matrix):y.Matrix.Compose(e.scale?y.Vector3.FromArray(e.scale):y.Vector3.One(),e.rotation?y.Quaternion.FromArray(e.rotation):y.Quaternion.Identity(),e.translation?y.Vector3.FromArray(e.translation):y.Vector3.Zero())},e.prototype.loadCameraAsync=function(t,n,r){void 0===r&&(r=function(){});var o=this._extensionsLoadCameraAsync(t,n,r);if(o)return o;var a=new Array;this.logOpen("".concat(t," ").concat(n.name||"")),this._babylonScene._blockEntityCollection=!!this._assetContainer;var i=new y.FreeCamera(n.name||"camera".concat(n.index),y.Vector3.Zero(),this._babylonScene,!1);switch(i._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,i.ignoreParentScaling=!0,n._babylonCamera=i,i.rotation.set(0,Math.PI,0),n.type){case"perspective":var s=n.perspective;if(!s)throw new Error("".concat(t,": Camera perspective properties are missing"));i.fov=s.yfov,i.minZ=s.znear,i.maxZ=s.zfar||0;break;case"orthographic":if(!n.orthographic)throw new Error("".concat(t,": Camera orthographic properties are missing"));i.mode=y.Camera.ORTHOGRAPHIC_CAMERA,i.orthoLeft=-n.orthographic.xmag,i.orthoRight=n.orthographic.xmag,i.orthoBottom=-n.orthographic.ymag,i.orthoTop=n.orthographic.ymag,i.minZ=n.orthographic.znear,i.maxZ=n.orthographic.zfar;break;default:throw new Error("".concat(t,": Invalid camera type (").concat(n.type,")"))}return e.AddPointerMetadata(i,t),this._parent.onCameraLoadedObservable.notifyObservers(i),r(i),this.logClose(),Promise.all(a).then((function(){return i}))},e.prototype._loadAnimationsAsync=function(){var e=this._gltf.animations;if(!e)return Promise.resolve();for(var t=new Array,n=0;n<e.length;n++){var r=e[n];t.push(this.loadAnimationAsync("/animations/".concat(r.index),r).then((function(e){0===e.targetedAnimations.length&&e.dispose()})))}return Promise.all(t).then((function(){}))},e.prototype.loadAnimationAsync=function(e,t){var n=this._extensionsLoadAnimationAsync(e,t);if(n)return n;this._babylonScene._blockEntityCollection=!!this._assetContainer;var r=new y.AnimationGroup(t.name||"animation".concat(t.index),this._babylonScene);r._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._babylonAnimationGroup=r;var o=new Array;pe.Assign(t.channels),pe.Assign(t.samplers);for(var a=0,i=t.channels;a<i.length;a++){var s=i[a];o.push(this._loadAnimationChannelAsync("".concat(e,"/channels/").concat(s.index),e,t,s,(function(e,t){e.animations=e.animations||[],e.animations.push(t),r.addTargetedAnimation(t,e)})))}return Promise.all(o).then((function(){return r.normalize(0),r}))},e.prototype._loadAnimationChannelAsync=function(e,t,n,r,o){var a=this._extensionsLoadAnimationChannelAsync(e,t,n,r,o);if(a)return a;if(null==r.target.node)return Promise.resolve();var i,s=pe.Get("".concat(e,"/target/node"),this._gltf.nodes,r.target.node),l=r.target.path,c="weights"===l;if(c&&!s._numMorphTargets||!c&&!s._babylonTransformNode)return Promise.resolve();if(!this._parent.loadNodeAnimations&&!c&&!s._isJoint)return Promise.resolve();switch(l){case"translation":i=he.translation;break;case"rotation":i=he.rotation;break;case"scale":i=he.scale;break;case"weights":i=he.weights;break;default:throw new Error("".concat(e,"/target/path: Invalid value (").concat(r.target.path,")"))}var u={object:s,info:i};return this._loadAnimationChannelFromTargetInfoAsync(e,t,n,r,u,o)},e.prototype._loadAnimationChannelFromTargetInfoAsync=function(e,t,n,r,o,a){var i=this.parent.targetFps,s=1/i,l=pe.Get("".concat(e,"/sampler"),n.samplers,r.sampler);return this._loadAnimationSamplerAsync("".concat(t,"/samplers/").concat(r.sampler),l).then((function(e){for(var t=0,l=o.object,c=0,u=o.info;c<u.length;c++){var d=u[c],h=d.getStride(l),f=e.input,p=e.output,_=new Array(f.length),m=0;switch(e.interpolation){case"STEP":for(var y=0;y<f.length;y++){var v=d.getValue(l,p,m,1);m+=h,_[y]={frame:f[y]*i,value:v,interpolation:1}}break;case"CUBICSPLINE":for(y=0;y<f.length;y++){var g=d.getValue(l,p,m,s);m+=h,v=d.getValue(l,p,m,1),m+=h;var b=d.getValue(l,p,m,s);m+=h,_[y]={frame:f[y]*i,inTangent:g,value:v,outTangent:b}}break;case"LINEAR":for(y=0;y<f.length;y++)v=d.getValue(l,p,m,1),m+=h,_[y]={frame:f[y]*i,value:v}}if(m>0){var A="".concat(n.name||"animation".concat(n.index),"_channel").concat(r.index,"_").concat(t);d.buildAnimations(l,A,i,_,(function(e,n){++t,a(e,n)}))}}}))},e.prototype._loadAnimationSamplerAsync=function(e,t){if(t._data)return t._data;var n=t.interpolation||"LINEAR";switch(n){case"STEP":case"LINEAR":case"CUBICSPLINE":break;default:throw new Error("".concat(e,"/interpolation: Invalid value (").concat(t.interpolation,")"))}var r=pe.Get("".concat(e,"/input"),this._gltf.accessors,t.input),o=pe.Get("".concat(e,"/output"),this._gltf.accessors,t.output);return t._data=Promise.all([this._loadFloatAccessorAsync("/accessors/".concat(r.index),r),this._loadFloatAccessorAsync("/accessors/".concat(o.index),o)]).then((function(e){var t=e[0],r=e[1];return{input:t,interpolation:n,output:r}})),t._data},e.prototype.loadBufferAsync=function(e,t,n,r){var o=this._extensionsLoadBufferAsync(e,t,n,r);if(o)return o;if(!t._data)if(t.uri)t._data=this.loadUriAsync("".concat(e,"/uri"),t,t.uri);else{if(!this._bin)throw new Error("".concat(e,": Uri is missing or the binary glTF is missing its binary chunk"));t._data=this._bin.readAsync(0,t.byteLength)}return t._data.then((function(t){try{return new Uint8Array(t.buffer,t.byteOffset+n,r)}catch(t){throw new Error("".concat(e,": ").concat(t.message))}}))},e.prototype.loadBufferViewAsync=function(e,t){var n=this._extensionsLoadBufferViewAsync(e,t);if(n)return n;if(t._data)return t._data;var r=pe.Get("".concat(e,"/buffer"),this._gltf.buffers,t.buffer);return t._data=this.loadBufferAsync("/buffers/".concat(r.index),r,t.byteOffset||0,t.byteLength),t._data},e.prototype._loadAccessorAsync=function(t,n,r){var o=this;if(n._data)return n._data;var a=e._GetNumComponents(t,n.type),i=a*y.VertexBuffer.GetTypeByteLength(n.componentType),s=a*n.count;if(null==n.bufferView)n._data=Promise.resolve(new r(s));else{var l=pe.Get("".concat(t,"/bufferView"),this._gltf.bufferViews,n.bufferView);n._data=this.loadBufferViewAsync("/bufferViews/".concat(l.index),l).then((function(o){if(5126!==n.componentType||n.normalized||l.byteStride&&l.byteStride!==i){var c=new r(s);return y.VertexBuffer.ForEach(o,n.byteOffset||0,l.byteStride||i,a,n.componentType,c.length,n.normalized||!1,(function(e,t){c[t]=e})),c}return e._GetTypedArray(t,n.componentType,o,n.byteOffset,s)}))}if(n.sparse){var c=n.sparse;n._data=n._data.then((function(s){var l=s,u=pe.Get("".concat(t,"/sparse/indices/bufferView"),o._gltf.bufferViews,c.indices.bufferView),d=pe.Get("".concat(t,"/sparse/values/bufferView"),o._gltf.bufferViews,c.values.bufferView);return Promise.all([o.loadBufferViewAsync("/bufferViews/".concat(u.index),u),o.loadBufferViewAsync("/bufferViews/".concat(d.index),d)]).then((function(o){var s,u=o[0],d=o[1],h=e._GetTypedArray("".concat(t,"/sparse/indices"),c.indices.componentType,u,c.indices.byteOffset,c.count),f=a*c.count;if(5126!==n.componentType||n.normalized){var p=e._GetTypedArray("".concat(t,"/sparse/values"),n.componentType,d,c.values.byteOffset,f);s=new r(f),y.VertexBuffer.ForEach(p,0,i,a,n.componentType,s.length,n.normalized||!1,(function(e,t){s[t]=e}))}else s=e._GetTypedArray("".concat(t,"/sparse/values"),n.componentType,d,c.values.byteOffset,f);for(var _=0,m=0;m<h.length;m++)for(var v=h[m]*a,g=0;g<a;g++)l[v++]=s[_++];return l}))}))}return n._data},e.prototype._loadFloatAccessorAsync=function(e,t){return this._loadAccessorAsync(e,t,Float32Array)},e.prototype._loadIndicesAccessorAsync=function(t,n){if("SCALAR"!==n.type)throw new Error("".concat(t,"/type: Invalid value ").concat(n.type));if(5121!==n.componentType&&5123!==n.componentType&&5125!==n.componentType)throw new Error("".concat(t,"/componentType: Invalid value ").concat(n.componentType));if(n._data)return n._data;if(n.sparse){var r=e._GetTypedArrayConstructor("".concat(t,"/componentType"),n.componentType);n._data=this._loadAccessorAsync(t,n,r)}else{var o=pe.Get("".concat(t,"/bufferView"),this._gltf.bufferViews,n.bufferView);n._data=this.loadBufferViewAsync("/bufferViews/".concat(o.index),o).then((function(r){return e._GetTypedArray(t,n.componentType,r,n.byteOffset,n.count)}))}return n._data},e.prototype._loadVertexBufferViewAsync=function(e){if(e._babylonBuffer)return e._babylonBuffer;var t=this._babylonScene.getEngine();return e._babylonBuffer=this.loadBufferViewAsync("/bufferViews/".concat(e.index),e).then((function(e){return new y.Buffer(t,e,!1)})),e._babylonBuffer},e.prototype._loadVertexAccessorAsync=function(t,n,r){var o;if(null===(o=n._babylonVertexBuffer)||void 0===o?void 0:o[r])return n._babylonVertexBuffer[r];n._babylonVertexBuffer||(n._babylonVertexBuffer={});var a=this._babylonScene.getEngine();if(n.sparse||null==n.bufferView)n._babylonVertexBuffer[r]=this._loadFloatAccessorAsync(t,n).then((function(e){return new y.VertexBuffer(a,e,r,!1)}));else{var i=pe.Get("".concat(t,"/bufferView"),this._gltf.bufferViews,n.bufferView);n._babylonVertexBuffer[r]=this._loadVertexBufferViewAsync(i).then((function(o){var s=e._GetNumComponents(t,n.type);return new y.VertexBuffer(a,o,r,!1,void 0,i.byteStride,void 0,n.byteOffset,s,n.componentType,n.normalized,!0,void 0,!0)}))}return n._babylonVertexBuffer[r]},e.prototype._loadMaterialMetallicRoughnessPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return t&&(t.baseColorFactor?(n.albedoColor=y.Color3.FromArray(t.baseColorFactor),n.alpha=t.baseColorFactor[3]):n.albedoColor=y.Color3.White(),n.metallic=null==t.metallicFactor?1:t.metallicFactor,n.roughness=null==t.roughnessFactor?1:t.roughnessFactor,t.baseColorTexture&&r.push(this.loadTextureInfoAsync("".concat(e,"/baseColorTexture"),t.baseColorTexture,(function(e){e.name="".concat(n.name," (Base Color)"),n.albedoTexture=e}))),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture.nonColorData=!0,r.push(this.loadTextureInfoAsync("".concat(e,"/metallicRoughnessTexture"),t.metallicRoughnessTexture,(function(e){e.name="".concat(n.name," (Metallic Roughness)"),n.metallicTexture=e}))),n.useMetallnessFromMetallicTextureBlue=!0,n.useRoughnessFromMetallicTextureGreen=!0,n.useRoughnessFromMetallicTextureAlpha=!1)),Promise.all(r).then((function(){}))},e.prototype._loadMaterialAsync=function(t,n,r,o,a){void 0===a&&(a=function(){});var i=this._extensionsLoadMaterialAsync(t,n,r,o,a);if(i)return i;n._data=n._data||{};var s=n._data[o];if(!s){this.logOpen("".concat(t," ").concat(n.name||""));var l=this.createMaterial(t,n,o);s={babylonMaterial:l,babylonMeshes:[],promise:this.loadMaterialPropertiesAsync(t,n,l)},n._data[o]=s,e.AddPointerMetadata(l,t),this._parent.onMaterialLoadedObservable.notifyObservers(l),this.logClose()}return r&&(s.babylonMeshes.push(r),r.onDisposeObservable.addOnce((function(){var e=s.babylonMeshes.indexOf(r);-1!==e&&s.babylonMeshes.splice(e,1)}))),a(s.babylonMaterial),s.promise.then((function(){return s.babylonMaterial}))},e.prototype._createDefaultMaterial=function(e,t){this._babylonScene._blockEntityCollection=!!this._assetContainer;var n=new y.PBRMaterial(e,this._babylonScene);return n._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,n.fillMode=t,n.enableSpecularAntiAliasing=!0,n.useRadianceOverAlpha=!this._parent.transparencyAsCoverage,n.useSpecularOverAlpha=!this._parent.transparencyAsCoverage,n.transparencyMode=y.PBRMaterial.PBRMATERIAL_OPAQUE,n.metallic=1,n.roughness=1,n},e.prototype.createMaterial=function(e,t,n){var r=this._extensionsCreateMaterial(e,t,n);if(r)return r;var o=t.name||"material".concat(t.index);return this._createDefaultMaterial(o,n)},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this._extensionsLoadMaterialPropertiesAsync(e,t,n);if(r)return r;var o=new Array;return o.push(this.loadMaterialBasePropertiesAsync(e,t,n)),t.pbrMetallicRoughness&&o.push(this._loadMaterialMetallicRoughnessPropertiesAsync("".concat(e,"/pbrMetallicRoughness"),t.pbrMetallicRoughness,n)),this.loadMaterialAlphaProperties(e,t,n),Promise.all(o).then((function(){}))},e.prototype.loadMaterialBasePropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return n.emissiveColor=t.emissiveFactor?y.Color3.FromArray(t.emissiveFactor):new y.Color3(0,0,0),t.doubleSided&&(n.backFaceCulling=!1,n.twoSidedLighting=!0),t.normalTexture&&(t.normalTexture.nonColorData=!0,r.push(this.loadTextureInfoAsync("".concat(e,"/normalTexture"),t.normalTexture,(function(e){e.name="".concat(n.name," (Normal)"),n.bumpTexture=e}))),n.invertNormalMapX=!this._babylonScene.useRightHandedSystem,n.invertNormalMapY=this._babylonScene.useRightHandedSystem,null!=t.normalTexture.scale&&n.bumpTexture&&(n.bumpTexture.level=t.normalTexture.scale),n.forceIrradianceInFragment=!0),t.occlusionTexture&&(t.occlusionTexture.nonColorData=!0,r.push(this.loadTextureInfoAsync("".concat(e,"/occlusionTexture"),t.occlusionTexture,(function(e){e.name="".concat(n.name," (Occlusion)"),n.ambientTexture=e}))),n.useAmbientInGrayScale=!0,null!=t.occlusionTexture.strength&&(n.ambientTextureStrength=t.occlusionTexture.strength)),t.emissiveTexture&&r.push(this.loadTextureInfoAsync("".concat(e,"/emissiveTexture"),t.emissiveTexture,(function(e){e.name="".concat(n.name," (Emissive)"),n.emissiveTexture=e}))),Promise.all(r).then((function(){}))},e.prototype.loadMaterialAlphaProperties=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));switch(t.alphaMode||"OPAQUE"){case"OPAQUE":n.transparencyMode=y.PBRMaterial.PBRMATERIAL_OPAQUE,n.alpha=1;break;case"MASK":n.transparencyMode=y.PBRMaterial.PBRMATERIAL_ALPHATEST,n.alphaCutOff=null==t.alphaCutoff?.5:t.alphaCutoff,n.albedoTexture&&(n.albedoTexture.hasAlpha=!0);break;case"BLEND":n.transparencyMode=y.PBRMaterial.PBRMATERIAL_ALPHABLEND,n.albedoTexture&&(n.albedoTexture.hasAlpha=!0,n.useAlphaFromAlbedoTexture=!0);break;default:throw new Error("".concat(e,"/alphaMode: Invalid value (").concat(t.alphaMode,")"))}},e.prototype.loadTextureInfoAsync=function(t,n,r){var o=this;void 0===r&&(r=function(){});var a=this._extensionsLoadTextureInfoAsync(t,n,r);if(a)return a;if(this.logOpen("".concat(t)),n.texCoord>=6)throw new Error("".concat(t,"/texCoord: Invalid value (").concat(n.texCoord,")"));var i=pe.Get("".concat(t,"/index"),this._gltf.textures,n.index);i._textureInfo=n;var s=this._loadTextureAsync("/textures/".concat(n.index),i,(function(a){a.coordinatesIndex=n.texCoord||0,e.AddPointerMetadata(a,t),o._parent.onTextureLoadedObservable.notifyObservers(a),r(a)}));return this.logClose(),s},e.prototype._loadTextureAsync=function(t,n,r){void 0===r&&(r=function(){});var o=this._extensionsLoadTextureAsync(t,n,r);if(o)return o;this.logOpen("".concat(t," ").concat(n.name||""));var a=null==n.sampler?e.DefaultSampler:pe.Get("".concat(t,"/sampler"),this._gltf.samplers,n.sampler),i=pe.Get("".concat(t,"/source"),this._gltf.images,n.source),s=this._createTextureAsync(t,a,i,r,void 0,!n._textureInfo.nonColorData);return this.logClose(),s},e.prototype._createTextureAsync=function(e,t,n,r,o,a){var i=this;void 0===r&&(r=function(){});var s=this._loadSampler("/samplers/".concat(t.index),t),l=new Array,c=new y.Deferred;this._babylonScene._blockEntityCollection=!!this._assetContainer;var u={noMipmap:s.noMipMaps,invertY:!1,samplingMode:s.samplingMode,onLoad:function(){i._disposed||c.resolve()},onError:function(t,n){i._disposed||c.reject(new Error("".concat(e,": ").concat(n&&n.message?n.message:t||"Failed to load texture")))},mimeType:n.mimeType,loaderOptions:o,useSRGBBuffer:!!a&&this._parent.useSRGBBuffers},d=new y.Texture(null,this._babylonScene,u);return d._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,l.push(c.promise),l.push(this.loadImageAsync("/images/".concat(n.index),n).then((function(e){var t=n.uri||"".concat(i._fileName,"#image").concat(n.index),r="data:".concat(i._uniqueRootUrl).concat(t);d.updateURL(r,e)}))),d.wrapU=s.wrapU,d.wrapV=s.wrapV,r(d),Promise.all(l).then((function(){return d}))},e.prototype._loadSampler=function(t,n){return n._data||(n._data={noMipMaps:9728===n.minFilter||9729===n.minFilter,samplingMode:e._GetTextureSamplingMode(t,n),wrapU:e._GetTextureWrapMode("".concat(t,"/wrapS"),n.wrapS),wrapV:e._GetTextureWrapMode("".concat(t,"/wrapT"),n.wrapT)}),n._data},e.prototype.loadImageAsync=function(e,t){if(!t._data){if(this.logOpen("".concat(e," ").concat(t.name||"")),t.uri)t._data=this.loadUriAsync("".concat(e,"/uri"),t,t.uri);else{var n=pe.Get("".concat(e,"/bufferView"),this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync("/bufferViews/".concat(n.index),n)}this.logClose()}return t._data},e.prototype.loadUriAsync=function(t,n,r){var o=this,a=this._extensionsLoadUriAsync(t,n,r);if(a)return a;if(!e._ValidateUri(r))throw new Error("".concat(t,": '").concat(r,"' is invalid"));if((0,y.IsBase64DataUrl)(r)){var i=new Uint8Array((0,y.DecodeBase64UrlToBinary)(r));return this.log("".concat(t,": Decoded ").concat(r.substr(0,64),"... (").concat(i.length," bytes)")),Promise.resolve(i)}return this.log("".concat(t,": Loading ").concat(r)),this._parent.preprocessUrlAsync(this._rootUrl+r).then((function(e){return new Promise((function(n,a){o._parent._loadFile(o._babylonScene,e,(function(e){o._disposed||(o.log("".concat(t,": Loaded ").concat(r," (").concat(e.byteLength," bytes)")),n(new Uint8Array(e)))}),!0,(function(e){a(new y.LoadFileError("".concat(t,": Failed to load '").concat(r,"'").concat(e?": "+e.status+" "+e.statusText:""),e))}))}))}))},e.AddPointerMetadata=function(e,t){e.metadata=e.metadata||{};var n=e._internalMetadata=e._internalMetadata||{},r=n.gltf=n.gltf||{};(r.pointers=r.pointers||[]).push(t)},e._GetTextureWrapMode=function(e,t){switch(t=null==t?10497:t){case 33071:return y.Texture.CLAMP_ADDRESSMODE;case 33648:return y.Texture.MIRROR_ADDRESSMODE;case 10497:return y.Texture.WRAP_ADDRESSMODE;default:return y.Logger.Warn("".concat(e,": Invalid value (").concat(t,")")),y.Texture.WRAP_ADDRESSMODE}},e._GetTextureSamplingMode=function(e,t){var n=null==t.magFilter?9729:t.magFilter,r=null==t.minFilter?9987:t.minFilter;if(9729===n)switch(r){case 9728:return y.Texture.LINEAR_NEAREST;case 9729:return y.Texture.LINEAR_LINEAR;case 9984:return y.Texture.LINEAR_NEAREST_MIPNEAREST;case 9985:return y.Texture.LINEAR_LINEAR_MIPNEAREST;case 9986:return y.Texture.LINEAR_NEAREST_MIPLINEAR;case 9987:return y.Texture.LINEAR_LINEAR_MIPLINEAR;default:return y.Logger.Warn("".concat(e,"/minFilter: Invalid value (").concat(r,")")),y.Texture.LINEAR_LINEAR_MIPLINEAR}else switch(9728!==n&&y.Logger.Warn("".concat(e,"/magFilter: Invalid value (").concat(n,")")),r){case 9728:return y.Texture.NEAREST_NEAREST;case 9729:return y.Texture.NEAREST_LINEAR;case 9984:return y.Texture.NEAREST_NEAREST_MIPNEAREST;case 9985:return y.Texture.NEAREST_LINEAR_MIPNEAREST;case 9986:return y.Texture.NEAREST_NEAREST_MIPLINEAR;case 9987:return y.Texture.NEAREST_LINEAR_MIPLINEAR;default:return y.Logger.Warn("".concat(e,"/minFilter: Invalid value (").concat(r,")")),y.Texture.NEAREST_NEAREST_MIPNEAREST}},e._GetTypedArrayConstructor=function(e,t){switch(t){case 5120:return Int8Array;case 5121:return Uint8Array;case 5122:return Int16Array;case 5123:return Uint16Array;case 5125:return Uint32Array;case 5126:return Float32Array;default:throw new Error("".concat(e,": Invalid component type ").concat(t))}},e._GetTypedArray=function(t,n,r,o,a){var i=r.buffer;o=r.byteOffset+(o||0);var s=e._GetTypedArrayConstructor("".concat(t,"/componentType"),n),l=y.VertexBuffer.GetTypeByteLength(n);return o%l!=0?(y.Logger.Warn("".concat(t,": Copying buffer as byte offset (").concat(o,") is not a multiple of component type byte length (").concat(l,")")),new s(i.slice(o,o+a*l),0)):new s(i,o,a)},e._GetNumComponents=function(e,t){switch(t){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}throw new Error("".concat(e,": Invalid type (").concat(t,")"))},e._ValidateUri=function(e){return y.Tools.IsBase64(e)||-1===e.indexOf("..")},e._GetDrawMode=function(e,t){switch(null==t&&(t=4),t){case 0:return y.Material.PointListDrawMode;case 1:return y.Material.LineListDrawMode;case 2:return y.Material.LineLoopDrawMode;case 3:return y.Material.LineStripDrawMode;case 4:return y.Material.TriangleFillMode;case 5:return y.Material.TriangleStripDrawMode;case 6:return y.Material.TriangleFanDrawMode}throw new Error("".concat(e,": Invalid mesh primitive mode (").concat(t,")"))},e.prototype._compileMaterialsAsync=function(){var e=this;this._parent._startPerformanceCounter("Compile materials");var t=new Array;if(this._gltf.materials)for(var n=0,r=this._gltf.materials;n<r.length;n++){var o=r[n];if(o._data)for(var a in o._data)for(var i=o._data[a],s=0,l=i.babylonMeshes;s<l.length;s++){var c=l[s];c.computeWorldMatrix(!0);var u=i.babylonMaterial;t.push(u.forceCompilationAsync(c)),t.push(u.forceCompilationAsync(c,{useInstances:!0})),this._parent.useClipPlane&&(t.push(u.forceCompilationAsync(c,{clipPlane:!0})),t.push(u.forceCompilationAsync(c,{clipPlane:!0,useInstances:!0})))}}return Promise.all(t).then((function(){e._parent._endPerformanceCounter("Compile materials")}))},e.prototype._compileShadowGeneratorsAsync=function(){var e=this;this._parent._startPerformanceCounter("Compile shadow generators");for(var t=new Array,n=0,r=this._babylonScene.lights;n<r.length;n++){var o=r[n].getShadowGenerator();o&&t.push(o.forceCompilationAsync())}return Promise.all(t).then((function(){e._parent._endPerformanceCounter("Compile shadow generators")}))},e.prototype._forEachExtensions=function(e){for(var t=0,n=this._extensions;t<n.length;t++){var r=n[t];r.enabled&&e(r)}},e.prototype._applyExtensions=function(e,t,n){for(var r=0,o=this._extensions;r<o.length;r++){var a=o[r];if(a.enabled){var i="".concat(a.name,".").concat(t),s=e;s._activeLoaderExtensionFunctions=s._activeLoaderExtensionFunctions||{};var l=s._activeLoaderExtensionFunctions;if(!l[i]){l[i]=!0;try{var c=n(a);if(c)return c}finally{delete l[i]}}}}return null},e.prototype._extensionsOnLoading=function(){this._forEachExtensions((function(e){return e.onLoading&&e.onLoading()}))},e.prototype._extensionsOnReady=function(){this._forEachExtensions((function(e){return e.onReady&&e.onReady()}))},e.prototype._extensionsLoadSceneAsync=function(e,t){return this._applyExtensions(t,"loadScene",(function(n){return n.loadSceneAsync&&n.loadSceneAsync(e,t)}))},e.prototype._extensionsLoadNodeAsync=function(e,t,n){return this._applyExtensions(t,"loadNode",(function(r){return r.loadNodeAsync&&r.loadNodeAsync(e,t,n)}))},e.prototype._extensionsLoadCameraAsync=function(e,t,n){return this._applyExtensions(t,"loadCamera",(function(r){return r.loadCameraAsync&&r.loadCameraAsync(e,t,n)}))},e.prototype._extensionsLoadVertexDataAsync=function(e,t,n){return this._applyExtensions(t,"loadVertexData",(function(r){return r._loadVertexDataAsync&&r._loadVertexDataAsync(e,t,n)}))},e.prototype._extensionsLoadMeshPrimitiveAsync=function(e,t,n,r,o,a){return this._applyExtensions(o,"loadMeshPrimitive",(function(i){return i._loadMeshPrimitiveAsync&&i._loadMeshPrimitiveAsync(e,t,n,r,o,a)}))},e.prototype._extensionsLoadMaterialAsync=function(e,t,n,r,o){return this._applyExtensions(t,"loadMaterial",(function(a){return a._loadMaterialAsync&&a._loadMaterialAsync(e,t,n,r,o)}))},e.prototype._extensionsCreateMaterial=function(e,t,n){return this._applyExtensions(t,"createMaterial",(function(r){return r.createMaterial&&r.createMaterial(e,t,n)}))},e.prototype._extensionsLoadMaterialPropertiesAsync=function(e,t,n){return this._applyExtensions(t,"loadMaterialProperties",(function(r){return r.loadMaterialPropertiesAsync&&r.loadMaterialPropertiesAsync(e,t,n)}))},e.prototype._extensionsLoadTextureInfoAsync=function(e,t,n){return this._applyExtensions(t,"loadTextureInfo",(function(r){return r.loadTextureInfoAsync&&r.loadTextureInfoAsync(e,t,n)}))},e.prototype._extensionsLoadTextureAsync=function(e,t,n){return this._applyExtensions(t,"loadTexture",(function(r){return r._loadTextureAsync&&r._loadTextureAsync(e,t,n)}))},e.prototype._extensionsLoadAnimationAsync=function(e,t){return this._applyExtensions(t,"loadAnimation",(function(n){return n.loadAnimationAsync&&n.loadAnimationAsync(e,t)}))},e.prototype._extensionsLoadAnimationChannelAsync=function(e,t,n,r,o){return this._applyExtensions(n,"loadAnimationChannel",(function(a){return a._loadAnimationChannelAsync&&a._loadAnimationChannelAsync(e,t,n,r,o)}))},e.prototype._extensionsLoadSkinAsync=function(e,t,n){return this._applyExtensions(n,"loadSkin",(function(r){return r._loadSkinAsync&&r._loadSkinAsync(e,t,n)}))},e.prototype._extensionsLoadUriAsync=function(e,t,n){return this._applyExtensions(t,"loadUri",(function(r){return r._loadUriAsync&&r._loadUriAsync(e,t,n)}))},e.prototype._extensionsLoadBufferViewAsync=function(e,t){return this._applyExtensions(t,"loadBufferView",(function(n){return n.loadBufferViewAsync&&n.loadBufferViewAsync(e,t)}))},e.prototype._extensionsLoadBufferAsync=function(e,t,n,r){return this._applyExtensions(t,"loadBuffer",(function(o){return o.loadBufferAsync&&o.loadBufferAsync(e,t,n,r)}))},e.LoadExtensionAsync=function(e,t,n,r){if(!t.extensions)return null;var o=t.extensions[n];return o?r("".concat(e,"/extensions/").concat(n),o):null},e.LoadExtraAsync=function(e,t,n,r){if(!t.extras)return null;var o=t.extras[n];return o?r("".concat(e,"/extras/").concat(n),o):null},e.prototype.isExtensionUsed=function(e){return!!this._gltf.extensionsUsed&&-1!==this._gltf.extensionsUsed.indexOf(e)},e.prototype.logOpen=function(e){this._parent._logOpen(e)},e.prototype.logClose=function(){this._parent._logClose()},e.prototype.log=function(e){this._parent._log(e)},e.prototype.startPerformanceCounter=function(e){this._parent._startPerformanceCounter(e)},e.prototype.endPerformanceCounter=function(e){this._parent._endPerformanceCounter(e)},e._RegisteredExtensions={},e.DefaultSampler={index:-1},e}();P._CreateGLTF2Loader=function(e){return new _e(e)};var me="EXT_lights_image_based",ye=function(){function e(e){this.name=me,this._loader=e,this.enabled=this._loader.isExtensionUsed(me)}return e.prototype.dispose=function(){this._loader=null,delete this._lights},e.prototype.onLoading=function(){var e=this._loader.gltf.extensions;if(e&&e[this.name]){var t=e[this.name];this._lights=t.lights}},e.prototype.loadSceneAsync=function(e,t){var n=this;return _e.LoadExtensionAsync(e,t,this.name,(function(r,o){n._loader._allMaterialsDirtyRequired=!0;var a=new Array;a.push(n._loader.loadSceneAsync(e,t)),n._loader.logOpen("".concat(r));var i=pe.Get("".concat(r,"/light"),n._lights,o.light);return a.push(n._loadLightAsync("/extensions/".concat(n.name,"/lights/").concat(o.light),i).then((function(e){n._loader.babylonScene.environmentTexture=e}))),n._loader.logClose(),Promise.all(a).then((function(){}))}))},e.prototype._loadLightAsync=function(e,t){var n=this;if(!t._loaded){var r=new Array;this._loader.logOpen("".concat(e));for(var o=new Array(t.specularImages.length),a=function(n){var a=t.specularImages[n];o[n]=new Array(a.length);for(var s=function(t){var s="".concat(e,"/specularImages/").concat(n,"/").concat(t);i._loader.logOpen("".concat(s));var l=a[t],c=pe.Get(s,i._loader.gltf.images,l);r.push(i._loader.loadImageAsync("/images/".concat(l),c).then((function(e){o[n][t]=e}))),i._loader.logClose()},l=0;l<a.length;l++)s(l)},i=this,s=0;s<t.specularImages.length;s++)a(s);this._loader.logClose(),t._loaded=Promise.all(r).then((function(){var r=new y.RawCubeTexture(n._loader.babylonScene,null,t.specularImageSize);if(r.name=t.name||"environment",t._babylonTexture=r,null!=t.intensity&&(r.level=t.intensity),t.rotation){var a=y.Quaternion.FromArray(t.rotation);n._loader.babylonScene.useRightHandedSystem||(a=y.Quaternion.Inverse(a)),y.Matrix.FromQuaternionToRef(a,r.getReflectionTextureMatrix())}if(!t.irradianceCoefficients)throw new Error("".concat(e,": Irradiance coefficients are missing"));var i=y.SphericalHarmonics.FromArray(t.irradianceCoefficients);i.scaleInPlace(t.intensity),i.convertIrradianceToLambertianRadiance();var s=y.SphericalPolynomial.FromHarmonics(i),l=(o.length-1)/y.Scalar.Log2(t.specularImageSize);return r.updateRGBDAsync(o,s,l)}))}return t._loaded.then((function(){return t._babylonTexture}))},e}();_e.RegisterExtension(me,(function(e){return new ye(e)}));var ve="EXT_mesh_gpu_instancing",ge=function(){function e(e){this.name=ve,this._loader=e,this.enabled=this._loader.isExtensionUsed(ve)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(e,o){r._loader._disableInstancedMesh++;var a=r._loader.loadNodeAsync("/nodes/".concat(t.index),t,n);if(r._loader._disableInstancedMesh--,!t._primitiveBabylonMeshes)return a;var i=new Array,s=0,l=function(t){if(null!=o.attributes[t]){var n=pe.Get("".concat(e,"/attributes/").concat(t),r._loader.gltf.accessors,o.attributes[t]);if(i.push(r._loader._loadFloatAccessorAsync("/accessors/".concat(n.bufferView),n)),0===s)s=n.count;else if(s!==n.count)throw new Error("".concat(e,"/attributes: Instance buffer accessors do not have the same count."))}else i.push(Promise.resolve(null))};return l("TRANSLATION"),l("ROTATION"),l("SCALE"),a.then((function(e){return Promise.all(i).then((function(n){var r=n[0],o=n[1],a=n[2],i=new Float32Array(16*s);y.TmpVectors.Vector3[0].copyFromFloats(0,0,0),y.TmpVectors.Quaternion[0].copyFromFloats(0,0,0,1),y.TmpVectors.Vector3[1].copyFromFloats(1,1,1);for(var l=0;l<s;++l)r&&y.Vector3.FromArrayToRef(r,3*l,y.TmpVectors.Vector3[0]),o&&y.Quaternion.FromArrayToRef(o,4*l,y.TmpVectors.Quaternion[0]),a&&y.Vector3.FromArrayToRef(a,3*l,y.TmpVectors.Vector3[1]),y.Matrix.ComposeToRef(y.TmpVectors.Vector3[1],y.TmpVectors.Quaternion[0],y.TmpVectors.Vector3[0],y.TmpVectors.Matrix[0]),y.TmpVectors.Matrix[0].copyToArray(i,16*l);for(var c=0,u=t._primitiveBabylonMeshes;c<u.length;c++)u[c].thinInstanceSetBuffer("matrix",i,16,!0);return e}))}))}))},e}();_e.RegisterExtension(ve,(function(e){return new ge(e)}));var be="EXT_meshopt_compression",Ae=function(){function e(e){this.name=be,this.enabled=e.isExtensionUsed(be),this._loader=e}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadBufferViewAsync=function(e,t){var n=this;return _e.LoadExtensionAsync(e,t,this.name,(function(r,o){var a=t;if(a._meshOptData)return a._meshOptData;var i=pe.Get("".concat(e,"/buffer"),n._loader.gltf.buffers,o.buffer);return a._meshOptData=n._loader.loadBufferAsync("/buffers/".concat(i.index),i,o.byteOffset||0,o.byteLength).then((function(e){return y.MeshoptCompression.Default.decodeGltfBufferAsync(e,o.count,o.byteStride,o.mode,o.filter)})),a._meshOptData}))},e}();_e.RegisterExtension(be,(function(e){return new Ae(e)}));var Te="EXT_texture_webp",xe=function(){function e(e){this.name=Te,this._loader=e,this.enabled=e.isExtensionUsed(Te)}return e.prototype.dispose=function(){this._loader=null},e.prototype._loadTextureAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=null==t.sampler?_e.DefaultSampler:pe.Get("".concat(e,"/sampler"),r._loader.gltf.samplers,t.sampler),s=pe.Get("".concat(o,"/source"),r._loader.gltf.images,a.source);return r._loader._createTextureAsync(e,i,s,(function(e){n(e)}),void 0,!t._textureInfo.nonColorData)}))},e}();_e.RegisterExtension(Te,(function(e){return new xe(e)}));var Ee="EXT_texture_avif",Oe=function(){function e(e){this.name=Ee,this._loader=e,this.enabled=e.isExtensionUsed(Ee)}return e.prototype.dispose=function(){this._loader=null},e.prototype._loadTextureAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=null==t.sampler?_e.DefaultSampler:pe.Get("".concat(e,"/sampler"),r._loader.gltf.samplers,t.sampler),s=pe.Get("".concat(o,"/source"),r._loader.gltf.images,a.source);return r._loader._createTextureAsync(e,i,s,(function(e){n(e)}),void 0,!t._textureInfo.nonColorData)}))},e}();_e.RegisterExtension(Ee,(function(e){return new Oe(e)}));var Me="KHR_draco_mesh_compression",we=function(){function e(e){this.name=Me,this.useNormalizedFlagFromAccessor=!0,this._loader=e,this.enabled=y.DracoCompression.DecoderAvailable&&this._loader.isExtensionUsed(Me)}return e.prototype.dispose=function(){delete this.dracoCompression,this._loader=null},e.prototype._loadVertexDataAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){if(null!=t.mode&&4!==t.mode&&5!==t.mode)throw new Error("".concat(e,": Unsupported mode ").concat(t.mode));var i={},s={},l=function(e,o){var l=a.attributes[e];if(null!=l&&(n._delayInfo=n._delayInfo||[],-1===n._delayInfo.indexOf(o)&&n._delayInfo.push(o),i[o]=l,r.useNormalizedFlagFromAccessor)){var c=pe.TryGet(r._loader.gltf.accessors,t.attributes[e]);c&&(s[o]=c.normalized||!1)}};l("POSITION",y.VertexBuffer.PositionKind),l("NORMAL",y.VertexBuffer.NormalKind),l("TANGENT",y.VertexBuffer.TangentKind),l("TEXCOORD_0",y.VertexBuffer.UVKind),l("TEXCOORD_1",y.VertexBuffer.UV2Kind),l("TEXCOORD_2",y.VertexBuffer.UV3Kind),l("TEXCOORD_3",y.VertexBuffer.UV4Kind),l("TEXCOORD_4",y.VertexBuffer.UV5Kind),l("TEXCOORD_5",y.VertexBuffer.UV6Kind),l("JOINTS_0",y.VertexBuffer.MatricesIndicesKind),l("WEIGHTS_0",y.VertexBuffer.MatricesWeightsKind),l("COLOR_0",y.VertexBuffer.ColorKind);var c=pe.Get(o,r._loader.gltf.bufferViews,a.bufferView);return c._dracoBabylonGeometry||(c._dracoBabylonGeometry=r._loader.loadBufferViewAsync("/bufferViews/".concat(c.index),c).then((function(t){return(r.dracoCompression||y.DracoCompression.Default)._decodeMeshToGeometryForGltfAsync(n.name,r._loader.babylonScene,t,i,s).catch((function(t){throw new Error("".concat(e,": ").concat(t.message))}))}))),c._dracoBabylonGeometry}))},e}();_e.RegisterExtension(Me,(function(e){return new we(e)}));var Ce="KHR_lights_punctual",Le=function(){function e(e){this.name=Ce,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ce)}return e.prototype.dispose=function(){this._loader=null,delete this._lights},e.prototype.onLoading=function(){var e=this._loader.gltf.extensions;if(e&&e[this.name]){var t=e[this.name];this._lights=t.lights,pe.Assign(this._lights)}},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){return r._loader._allMaterialsDirtyRequired=!0,r._loader.loadNodeAsync(e,t,(function(e){var t,i=pe.Get(o,r._lights,a.light),s=i.name||e.name;switch(r._loader.babylonScene._blockEntityCollection=!!r._loader._assetContainer,i.type){case"directional":var l=new y.DirectionalLight(s,y.Vector3.Backward(),r._loader.babylonScene);l.position.setAll(0),t=l;break;case"point":t=new y.PointLight(s,y.Vector3.Zero(),r._loader.babylonScene);break;case"spot":var c=new y.SpotLight(s,y.Vector3.Zero(),y.Vector3.Backward(),0,1,r._loader.babylonScene);c.angle=2*(i.spot&&i.spot.outerConeAngle||Math.PI/4),c.innerAngle=2*(i.spot&&i.spot.innerConeAngle||0),t=c;break;default:throw r._loader.babylonScene._blockEntityCollection=!1,new Error("".concat(o,": Invalid light type (").concat(i.type,")"))}t._parentContainer=r._loader._assetContainer,r._loader.babylonScene._blockEntityCollection=!1,i._babylonLight=t,t.falloffType=y.Light.FALLOFF_GLTF,t.diffuse=i.color?y.Color3.FromArray(i.color):y.Color3.White(),t.intensity=null==i.intensity?1:i.intensity,t.range=null==i.range?Number.MAX_VALUE:i.range,t.parent=e,r._loader._babylonLights.push(t),_e.AddPointerMetadata(t,o),n(e)}))}))},e}();_e.RegisterExtension(Ce,(function(e){return new Le(e)}));var Ne="KHR_materials_pbrSpecularGlossiness",Se=function(){function e(e){this.name=Ne,this.order=200,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ne)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loadSpecularGlossinessPropertiesAsync(o,a,n)),r._loader.loadMaterialAlphaProperties(e,t,n),Promise.all(i).then((function(){}))}))},e.prototype._loadSpecularGlossinessPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return n.metallic=null,n.roughness=null,t.diffuseFactor?(n.albedoColor=y.Color3.FromArray(t.diffuseFactor),n.alpha=t.diffuseFactor[3]):n.albedoColor=y.Color3.White(),n.reflectivityColor=t.specularFactor?y.Color3.FromArray(t.specularFactor):y.Color3.White(),n.microSurface=null==t.glossinessFactor?1:t.glossinessFactor,t.diffuseTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/diffuseTexture"),t.diffuseTexture,(function(e){e.name="".concat(n.name," (Diffuse)"),n.albedoTexture=e}))),t.specularGlossinessTexture&&(r.push(this._loader.loadTextureInfoAsync("".concat(e,"/specularGlossinessTexture"),t.specularGlossinessTexture,(function(e){e.name="".concat(n.name," (Specular Glossiness)"),n.reflectivityTexture=e,n.reflectivityTexture.hasAlpha=!0}))),n.useMicroSurfaceFromReflectivityMapAlpha=!0),Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(Ne,(function(e){return new Se(e)}));var Re="KHR_materials_unlit",Fe=function(){function e(e){this.name=Re,this.order=210,this._loader=e,this.enabled=this._loader.isExtensionUsed(Re)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(){return r._loadUnlitPropertiesAsync(e,t,n)}))},e.prototype._loadUnlitPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;n.unlit=!0;var o=t.pbrMetallicRoughness;return o&&(o.baseColorFactor?(n.albedoColor=y.Color3.FromArray(o.baseColorFactor),n.alpha=o.baseColorFactor[3]):n.albedoColor=y.Color3.White(),o.baseColorTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/baseColorTexture"),o.baseColorTexture,(function(e){e.name="".concat(n.name," (Base Color)"),n.albedoTexture=e})))),t.doubleSided&&(n.backFaceCulling=!1,n.twoSidedLighting=!0),this._loader.loadMaterialAlphaProperties(e,t,n),Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(Re,(function(e){return new Fe(e)}));var Pe="KHR_materials_clearcoat",Ie=function(){function e(e){this.name=Pe,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(Pe)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadClearCoatPropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadClearCoatPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return n.clearCoat.isEnabled=!0,n.clearCoat.useRoughnessFromMainTexture=!1,n.clearCoat.remapF0OnInterfaceChange=!1,null!=t.clearcoatFactor?n.clearCoat.intensity=t.clearcoatFactor:n.clearCoat.intensity=0,t.clearcoatTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/clearcoatTexture"),t.clearcoatTexture,(function(e){e.name="".concat(n.name," (ClearCoat Intensity)"),n.clearCoat.texture=e}))),null!=t.clearcoatRoughnessFactor?n.clearCoat.roughness=t.clearcoatRoughnessFactor:n.clearCoat.roughness=0,t.clearcoatRoughnessTexture&&(t.clearcoatRoughnessTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync("".concat(e,"/clearcoatRoughnessTexture"),t.clearcoatRoughnessTexture,(function(e){e.name="".concat(n.name," (ClearCoat Roughness)"),n.clearCoat.textureRoughness=e})))),t.clearcoatNormalTexture&&(t.clearcoatNormalTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync("".concat(e,"/clearcoatNormalTexture"),t.clearcoatNormalTexture,(function(e){e.name="".concat(n.name," (ClearCoat Normal)"),n.clearCoat.bumpTexture=e}))),n.invertNormalMapX=!n.getScene().useRightHandedSystem,n.invertNormalMapY=n.getScene().useRightHandedSystem,null!=t.clearcoatNormalTexture.scale&&(n.clearCoat.bumpTexture.level=t.clearcoatNormalTexture.scale)),Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(Pe,(function(e){return new Ie(e)}));var Be="KHR_materials_iridescence",De=function(){function e(e){this.name=Be,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(Be)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadIridescencePropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadIridescencePropertiesAsync=function(e,t,n){var r,o,a,i,s;if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var l=new Array;return n.iridescence.isEnabled=!0,n.iridescence.intensity=null!==(r=t.iridescenceFactor)&&void 0!==r?r:0,n.iridescence.indexOfRefraction=null!==(a=null!==(o=t.iridescenceIor)&&void 0!==o?o:t.iridescenceIOR)&&void 0!==a?a:1.3,n.iridescence.minimumThickness=null!==(i=t.iridescenceThicknessMinimum)&&void 0!==i?i:100,n.iridescence.maximumThickness=null!==(s=t.iridescenceThicknessMaximum)&&void 0!==s?s:400,t.iridescenceTexture&&l.push(this._loader.loadTextureInfoAsync("".concat(e,"/iridescenceTexture"),t.iridescenceTexture,(function(e){e.name="".concat(n.name," (Iridescence Intensity)"),n.iridescence.texture=e}))),t.iridescenceThicknessTexture&&l.push(this._loader.loadTextureInfoAsync("".concat(e,"/iridescenceThicknessTexture"),t.iridescenceThicknessTexture,(function(e){e.name="".concat(n.name," (Iridescence Thickness)"),n.iridescence.thicknessTexture=e}))),Promise.all(l).then((function(){}))},e}();_e.RegisterExtension(Be,(function(e){return new De(e)}));var Ve="KHR_materials_anisotropy",ke=function(){function e(e){this.name=Ve,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ve)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadIridescencePropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadIridescencePropertiesAsync=function(e,t,n){var r,o;if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var a=new Array;return n.anisotropy.isEnabled=!0,n.anisotropy.intensity=null!==(r=t.anisotropyStrength)&&void 0!==r?r:0,n.anisotropy.angle=null!==(o=t.anisotropyRotation)&&void 0!==o?o:0,t.anisotropyTexture&&a.push(this._loader.loadTextureInfoAsync("".concat(e,"/anisotropyTexture"),t.anisotropyTexture,(function(e){e.name="".concat(n.name," (Anisotropy Intensity)"),n.anisotropy.texture=e}))),Promise.all(a).then((function(){}))},e}();_e.RegisterExtension(Ve,(function(e){return new ke(e)}));var Ge="KHR_materials_emissive_strength",Ue=function(){function e(e){this.name=Ge,this.order=170,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ge)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){return r._loader.loadMaterialPropertiesAsync(e,t,n).then((function(){r._loadEmissiveProperties(o,a,n)}))}))},e.prototype._loadEmissiveProperties=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));void 0!==t.emissiveStrength&&(n.emissiveIntensity=t.emissiveStrength)},e}();_e.RegisterExtension(Ge,(function(e){return new Ue(e)}));var He="KHR_materials_sheen",je=function(){function e(e){this.name=He,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(He)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadSheenPropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadSheenPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return n.sheen.isEnabled=!0,n.sheen.intensity=1,null!=t.sheenColorFactor?n.sheen.color=y.Color3.FromArray(t.sheenColorFactor):n.sheen.color=y.Color3.Black(),t.sheenColorTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/sheenColorTexture"),t.sheenColorTexture,(function(e){e.name="".concat(n.name," (Sheen Color)"),n.sheen.texture=e}))),void 0!==t.sheenRoughnessFactor?n.sheen.roughness=t.sheenRoughnessFactor:n.sheen.roughness=0,t.sheenRoughnessTexture&&(t.sheenRoughnessTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync("".concat(e,"/sheenRoughnessTexture"),t.sheenRoughnessTexture,(function(e){e.name="".concat(n.name," (Sheen Roughness)"),n.sheen.textureRoughness=e})))),n.sheen.albedoScaling=!0,n.sheen.useRoughnessFromMainTexture=!1,Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(He,(function(e){return new je(e)}));var Ke="KHR_materials_specular",We=function(){function e(e){this.name=Ke,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ke)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadSpecularPropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadSpecularPropertiesAsync=function(e,t,n){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var r=new Array;return void 0!==t.specularFactor&&(n.metallicF0Factor=t.specularFactor),void 0!==t.specularColorFactor&&(n.metallicReflectanceColor=y.Color3.FromArray(t.specularColorFactor)),t.specularTexture&&(t.specularTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync("".concat(e,"/specularTexture"),t.specularTexture,(function(e){e.name="".concat(n.name," (Specular F0 Strength)"),n.metallicReflectanceTexture=e,n.useOnlyMetallicFromMetallicReflectanceTexture=!0})))),t.specularColorTexture&&r.push(this._loader.loadTextureInfoAsync("".concat(e,"/specularColorTexture"),t.specularColorTexture,(function(e){e.name="".concat(n.name," (Specular F0 Color)"),n.reflectanceTexture=e}))),Promise.all(r).then((function(){}))},e}();_e.RegisterExtension(Ke,(function(e){return new We(e)}));var Ye="KHR_materials_ior",qe=function(){function e(e){this.name=Ye,this.order=180,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ye)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadIorPropertiesAsync(o,a,n)),Promise.all(i).then((function(){}))}))},e.prototype._loadIorPropertiesAsync=function(t,n,r){if(!(r instanceof y.PBRMaterial))throw new Error("".concat(t,": Material type not supported"));return void 0!==n.ior?r.indexOfRefraction=n.ior:r.indexOfRefraction=e._DEFAULT_IOR,Promise.resolve()},e._DEFAULT_IOR=1.5,e}();_e.RegisterExtension(Ye,(function(e){return new qe(e)}));var ze="KHR_materials_variants",Xe=function(){function e(e){this.name=ze,this._loader=e,this.enabled=this._loader.isExtensionUsed(ze)}return e.prototype.dispose=function(){this._loader=null},e.GetAvailableVariants=function(e){var t=this._GetExtensionMetadata(e);return t?Object.keys(t.variants):[]},e.prototype.getAvailableVariants=function(t){return e.GetAvailableVariants(t)},e.SelectVariant=function(e,t){var n=this._GetExtensionMetadata(e);if(!n)throw new Error("Cannot select variant on a glTF mesh that does not have the ".concat(ze," extension"));var r=function(e){var t=n.variants[e];if(t)for(var r=0,o=t;r<o.length;r++){var a=o[r];a.mesh.material=a.material}};if(t instanceof Array)for(var o=0,a=t;o<a.length;o++)r(a[o]);else r(t);n.lastSelected=t},e.prototype.selectVariant=function(t,n){e.SelectVariant(t,n)},e.Reset=function(e){var t=this._GetExtensionMetadata(e);if(!t)throw new Error("Cannot reset on a glTF mesh that does not have the ".concat(ze," extension"));for(var n=0,r=t.original;n<r.length;n++){var o=r[n];o.mesh.material=o.material}t.lastSelected=null},e.prototype.reset=function(t){e.Reset(t)},e.GetLastSelectedVariant=function(e){var t=this._GetExtensionMetadata(e);if(!t)throw new Error("Cannot get the last selected variant on a glTF mesh that does not have the ".concat(ze," extension"));return t.lastSelected},e.prototype.getLastSelectedVariant=function(t){return e.GetLastSelectedVariant(t)},e._GetExtensionMetadata=function(e){var t,n;return(null===(n=null===(t=null==e?void 0:e._internalMetadata)||void 0===t?void 0:t.gltf)||void 0===n?void 0:n[ze])||null},e.prototype.onLoading=function(){var e=this._loader.gltf.extensions;if(e&&e[this.name]){var t=e[this.name];this._variants=t.variants}},e.prototype._loadMeshPrimitiveAsync=function(t,n,r,o,a,i){var s=this;return _e.LoadExtensionAsync(t,a,this.name,(function(l,c){var u=new Array;return u.push(s._loader._loadMeshPrimitiveAsync(t,n,r,o,a,(function(n){if(i(n),n instanceof y.Mesh){var r=_e._GetDrawMode(t,a.mode),o=s._loader.rootBabylonMesh,d=o?o._internalMetadata=o._internalMetadata||{}:{},h=d.gltf=d.gltf||{},f=h[ze]=h[ze]||{lastSelected:null,original:[],variants:{}};f.original.push({mesh:n,material:n.material});for(var p=function(t){var a=c.mappings[t],i=pe.Get("".concat(l,"/mappings/").concat(t,"/material"),s._loader.gltf.materials,a.material);u.push(s._loader._loadMaterialAsync("#/materials/".concat(a.material),i,n,r,(function(t){for(var r=function(r){var i=a.variants[r],l=pe.Get("/extensions/".concat(ze,"/variants/").concat(i),s._variants,i);f.variants[l.name]=f.variants[l.name]||[],f.variants[l.name].push({mesh:n,material:t}),n.onClonedObservable.add((function(t){var r=t,a=null,i=r;do{if(!(i=i.parent))return;a=e._GetExtensionMetadata(i)}while(null===a);if(o&&a===e._GetExtensionMetadata(o)){for(var s in i._internalMetadata={},o._internalMetadata)i._internalMetadata[s]=o._internalMetadata[s];for(var s in i._internalMetadata.gltf=[],o._internalMetadata.gltf)i._internalMetadata.gltf[s]=o._internalMetadata.gltf[s];i._internalMetadata.gltf[ze]={lastSelected:null,original:[],variants:{}};for(var c=0,u=a.original;c<u.length;c++){var d=u[c];i._internalMetadata.gltf[ze].original.push({mesh:d.mesh,material:d.material})}for(var s in a.variants)if(Object.prototype.hasOwnProperty.call(a.variants,s)){i._internalMetadata.gltf[ze].variants[s]=[];for(var h=0,f=a.variants[s];h<f.length;h++){var p=f[h];i._internalMetadata.gltf[ze].variants[s].push({mesh:p.mesh,material:p.material})}}a=i._internalMetadata.gltf[ze]}for(var _=0,m=a.original;_<m.length;_++)(g=m[_]).mesh===n&&(g.mesh=r);for(var y=0,v=a.variants[l.name];y<v.length;y++){var g;(g=v[y]).mesh===n&&(g.mesh=r)}}))},i=0;i<a.variants.length;++i)r(i)})))},_=0;_<c.mappings.length;++_)p(_)}}))),Promise.all(u).then((function(e){return e[0]}))}))},e}();_e.RegisterExtension(ze,(function(e){return new Xe(e)}));var Ze=function(){function e(t,n){var r=this;this._opaqueRenderTarget=null,this._opaqueMeshesCache=[],this._transparentMeshesCache=[],this._materialObservers={},this._options=m(m({},e._GetDefaultOptions()),t),this._scene=n,this._scene._transmissionHelper=this,this.onErrorObservable=new y.Observable,this._scene.onDisposeObservable.addOnce((function(){r.dispose()})),this._parseScene(),this._setupRenderTargets()}return e._GetDefaultOptions=function(){return{renderSize:1024,samples:4,lodGenerationScale:1,lodGenerationOffset:-4,renderTargetTextureType:y.Constants.TEXTURETYPE_HALF_FLOAT,generateMipmaps:!0}},e.prototype.updateOptions=function(e){var t=this,n=Object.keys(e).filter((function(n){return t._options[n]!==e[n]}));if(n.length){var r=m(m({},this._options),e),o=this._options;this._options=r,r.renderSize===o.renderSize&&r.renderTargetTextureType===o.renderTargetTextureType&&r.generateMipmaps===o.generateMipmaps&&this._opaqueRenderTarget?(this._opaqueRenderTarget.samples=r.samples,this._opaqueRenderTarget.lodGenerationScale=r.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=r.lodGenerationOffset):this._setupRenderTargets()}},e.prototype.getOpaqueTarget=function(){return this._opaqueRenderTarget},e.prototype._shouldRenderAsTransmission=function(e){return!!e&&!!(e instanceof y.PBRMaterial&&e.subSurface.isRefractionEnabled)},e.prototype._addMesh=function(e){var t=this;this._materialObservers[e.uniqueId]=e.onMaterialChangedObservable.add(this._onMeshMaterialChanged.bind(this)),y.Tools.SetImmediate((function(){t._shouldRenderAsTransmission(e.material)?(e.material.refractionTexture=t._opaqueRenderTarget,-1===t._transparentMeshesCache.indexOf(e)&&t._transparentMeshesCache.push(e)):-1===t._opaqueMeshesCache.indexOf(e)&&t._opaqueMeshesCache.push(e)}))},e.prototype._removeMesh=function(e){e.onMaterialChangedObservable.remove(this._materialObservers[e.uniqueId]),delete this._materialObservers[e.uniqueId];var t=this._transparentMeshesCache.indexOf(e);-1!==t&&this._transparentMeshesCache.splice(t,1),-1!==(t=this._opaqueMeshesCache.indexOf(e))&&this._opaqueMeshesCache.splice(t,1)},e.prototype._parseScene=function(){this._scene.meshes.forEach(this._addMesh.bind(this)),this._scene.onNewMeshAddedObservable.add(this._addMesh.bind(this)),this._scene.onMeshRemovedObservable.add(this._removeMesh.bind(this))},e.prototype._onMeshMaterialChanged=function(e){var t=this._transparentMeshesCache.indexOf(e),n=this._opaqueMeshesCache.indexOf(e);this._shouldRenderAsTransmission(e.material)?(e.material instanceof y.PBRMaterial&&(e.material.subSurface.refractionTexture=this._opaqueRenderTarget),-1!==n?(this._opaqueMeshesCache.splice(n,1),this._transparentMeshesCache.push(e)):-1===t&&this._transparentMeshesCache.push(e)):-1!==t?(this._transparentMeshesCache.splice(t,1),this._opaqueMeshesCache.push(e)):-1===n&&this._opaqueMeshesCache.push(e)},e.prototype._isRenderTargetValid=function(){var e;return null!==(null===(e=this._opaqueRenderTarget)||void 0===e?void 0:e.getInternalTexture())},e.prototype._setupRenderTargets=function(){var e,t,n,r,o=this;this._opaqueRenderTarget&&this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=new y.RenderTargetTexture("opaqueSceneTexture",this._options.renderSize,this._scene,this._options.generateMipmaps,void 0,this._options.renderTargetTextureType),this._opaqueRenderTarget.ignoreCameraViewport=!0,this._opaqueRenderTarget.renderList=this._opaqueMeshesCache,this._opaqueRenderTarget.clearColor=null!==(t=null===(e=this._options.clearColor)||void 0===e?void 0:e.clone())&&void 0!==t?t:this._scene.clearColor.clone(),this._opaqueRenderTarget.gammaSpace=!1,this._opaqueRenderTarget.lodGenerationScale=this._options.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=this._options.lodGenerationOffset,this._opaqueRenderTarget.samples=this._options.samples,this._opaqueRenderTarget.renderSprites=!0,this._opaqueRenderTarget.renderParticles=!0,this._opaqueRenderTarget.onBeforeBindObservable.add((function(e){r=o._scene.environmentIntensity,o._scene.environmentIntensity=1,n=o._scene.imageProcessingConfiguration.applyByPostProcess,o._options.clearColor?e.clearColor.copyFrom(o._options.clearColor):o._scene.clearColor.toLinearSpaceToRef(e.clearColor,o._scene.getEngine().useExactSrgbConversions),o._scene.imageProcessingConfiguration._applyByPostProcess=!0})),this._opaqueRenderTarget.onAfterUnbindObservable.add((function(){o._scene.environmentIntensity=r,o._scene.imageProcessingConfiguration._applyByPostProcess=n})),this._transparentMeshesCache.forEach((function(e){o._shouldRenderAsTransmission(e.material)&&(e.material.refractionTexture=o._opaqueRenderTarget)}))},e.prototype.dispose=function(){this._scene._transmissionHelper=void 0,this._opaqueRenderTarget&&(this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=null),this._transparentMeshesCache=[],this._opaqueMeshesCache=[]},e}(),Je="KHR_materials_transmission",Qe=function(){function e(e){this.name=Je,this.order=175,this._loader=e,this.enabled=this._loader.isExtensionUsed(Je),this.enabled&&(e.parent.transparencyAsCoverage=!0)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadTransparentPropertiesAsync(o,t,n,a)),Promise.all(i).then((function(){}))}))},e.prototype._loadTransparentPropertiesAsync=function(e,t,n,r){var o,a;if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var i=n;if(i.subSurface.isRefractionEnabled=!0,i.subSurface.volumeIndexOfRefraction=1,i.subSurface.useAlbedoToTintRefraction=!0,void 0===r.transmissionFactor)return i.subSurface.refractionIntensity=0,i.subSurface.isRefractionEnabled=!1,Promise.resolve();i.subSurface.refractionIntensity=r.transmissionFactor;var s=i.getScene();return i.subSurface.refractionIntensity&&!s._transmissionHelper?new Ze({},i.getScene()):i.subSurface.refractionIntensity&&!(null===(o=s._transmissionHelper)||void 0===o?void 0:o._isRenderTargetValid())&&(null===(a=s._transmissionHelper)||void 0===a||a._setupRenderTargets()),i.subSurface.minimumThickness=0,i.subSurface.maximumThickness=0,r.transmissionTexture?(r.transmissionTexture.nonColorData=!0,this._loader.loadTextureInfoAsync("".concat(e,"/transmissionTexture"),r.transmissionTexture,void 0).then((function(e){i.subSurface.refractionIntensityTexture=e,i.subSurface.useGltfStyleTextures=!0}))):Promise.resolve()},e}();_e.RegisterExtension(Je,(function(e){return new Qe(e)}));var $e="KHR_materials_diffuse_transmission",et=function(){function e(e){this.name=$e,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed($e),this.enabled&&(e.parent.transparencyAsCoverage=!0)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadTranslucentPropertiesAsync(o,t,n,a)),Promise.all(i).then((function(){}))}))},e.prototype._loadTranslucentPropertiesAsync=function(e,t,n,r){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));var o=n;if(o.subSurface.isTranslucencyEnabled=!0,o.subSurface.volumeIndexOfRefraction=1,o.subSurface.minimumThickness=0,o.subSurface.maximumThickness=0,o.subSurface.useAlbedoToTintTranslucency=!1,void 0===r.diffuseTransmissionFactor)return o.subSurface.translucencyIntensity=0,o.subSurface.isTranslucencyEnabled=!1,Promise.resolve();o.subSurface.translucencyIntensity=r.diffuseTransmissionFactor;var a=new Array;return o.subSurface.useGltfStyleTextures=!0,r.diffuseTransmissionTexture&&(r.diffuseTransmissionTexture.nonColorData=!0,a.push(this._loader.loadTextureInfoAsync("".concat(e,"/diffuseTransmissionTexture"),r.diffuseTransmissionTexture).then((function(e){o.subSurface.translucencyIntensityTexture=e})))),void 0!==r.diffuseTransmissionColorFactor?o.subSurface.translucencyColor=y.Color3.FromArray(r.diffuseTransmissionColorFactor):o.subSurface.translucencyColor=y.Color3.White(),r.diffuseTransmissionColorTexture&&a.push(this._loader.loadTextureInfoAsync("".concat(e,"/diffuseTransmissionColorTexture"),r.diffuseTransmissionColorTexture).then((function(e){o.subSurface.translucencyColorTexture=e}))),Promise.all(a).then((function(){}))},e}();_e.RegisterExtension($e,(function(e){return new et(e)}));var tt="KHR_materials_volume",nt=function(){function e(e){this.name=tt,this.order=173,this._loader=e,this.enabled=this._loader.isExtensionUsed(tt),this.enabled&&this._loader._disableInstancedMesh++}return e.prototype.dispose=function(){this.enabled&&this._loader._disableInstancedMesh--,this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadVolumePropertiesAsync(o,t,n,a)),Promise.all(i).then((function(){}))}))},e.prototype._loadVolumePropertiesAsync=function(e,t,n,r){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));if(!n.subSurface.isRefractionEnabled&&!n.subSurface.isTranslucencyEnabled||!r.thicknessFactor)return Promise.resolve();n.subSurface.volumeIndexOfRefraction=n.indexOfRefraction;var o=void 0!==r.attenuationDistance?r.attenuationDistance:Number.MAX_VALUE;return n.subSurface.tintColorAtDistance=o,void 0!==r.attenuationColor&&3==r.attenuationColor.length&&n.subSurface.tintColor.copyFromFloats(r.attenuationColor[0],r.attenuationColor[1],r.attenuationColor[2]),n.subSurface.minimumThickness=0,n.subSurface.maximumThickness=r.thicknessFactor,n.subSurface.useThicknessAsDepth=!0,r.thicknessTexture?(r.thicknessTexture.nonColorData=!0,this._loader.loadTextureInfoAsync("".concat(e,"/thicknessTexture"),r.thicknessTexture).then((function(e){e.name="".concat(n.name," (thickness)"),n.subSurface.thicknessTexture=e,n.subSurface.useGltfStyleTextures=!0}))):Promise.resolve()},e}();_e.RegisterExtension(tt,(function(e){return new nt(e)}));var rt="KHR_materials_dispersion",ot=function(){function e(e){this.name=rt,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed(rt)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=new Array;return i.push(r._loader.loadMaterialBasePropertiesAsync(e,t,n)),i.push(r._loader.loadMaterialPropertiesAsync(e,t,n)),i.push(r._loadDispersionPropertiesAsync(o,t,n,a)),Promise.all(i).then((function(){}))}))},e.prototype._loadDispersionPropertiesAsync=function(e,t,n,r){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(e,": Material type not supported"));return n.subSurface.isRefractionEnabled&&r.dispersion?(n.subSurface.isDispersionEnabled=!0,n.subSurface.dispersion=r.dispersion,Promise.resolve()):Promise.resolve()},e}();_e.RegisterExtension(rt,(function(e){return new ot(e)}));var at="KHR_mesh_quantization",it=function(){function e(e){this.name=at,this.enabled=e.isExtensionUsed(at)}return e.prototype.dispose=function(){},e}();_e.RegisterExtension(at,(function(e){return new it(e)}));var st="KHR_texture_basisu",lt=function(){function e(e){this.name=st,this._loader=e,this.enabled=e.isExtensionUsed(st)}return e.prototype.dispose=function(){this._loader=null},e.prototype._loadTextureAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){var i=null==t.sampler?_e.DefaultSampler:pe.Get("".concat(e,"/sampler"),r._loader.gltf.samplers,t.sampler),s=pe.Get("".concat(o,"/source"),r._loader.gltf.images,a.source);return r._loader._createTextureAsync(e,i,s,(function(e){n(e)}),t._textureInfo.nonColorData?{useRGBAIfASTCBC7NotAvailableWhenUASTC:!0}:void 0,!t._textureInfo.nonColorData)}))},e}();_e.RegisterExtension(st,(function(e){return new lt(e)}));var ct="KHR_texture_transform",ut=function(){function e(e){this.name=ct,this._loader=e,this.enabled=this._loader.isExtensionUsed(ct)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadTextureInfoAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(o,a){return r._loader.loadTextureInfoAsync(e,t,(function(e){if(!(e instanceof y.Texture))throw new Error("".concat(o,": Texture type not supported"));a.offset&&(e.uOffset=a.offset[0],e.vOffset=a.offset[1]),e.uRotationCenter=0,e.vRotationCenter=0,a.rotation&&(e.wAng=-a.rotation),a.scale&&(e.uScale=a.scale[0],e.vScale=a.scale[1]),null!=a.texCoord&&(e.coordinatesIndex=a.texCoord),n(e)}))}))},e}();_e.RegisterExtension(ct,(function(e){return new ut(e)}));var dt="KHR_xmp_json_ld",ht=function(){function e(e){this.name=dt,this.order=100,this._loader=e,this.enabled=this._loader.isExtensionUsed(dt)}return e.prototype.dispose=function(){this._loader=null},e.prototype.onLoading=function(){var e,t,n;if(null!==this._loader.rootBabylonMesh){var r=null===(e=this._loader.gltf.extensions)||void 0===e?void 0:e.KHR_xmp_json_ld,o=null===(n=null===(t=this._loader.gltf.asset)||void 0===t?void 0:t.extensions)||void 0===n?void 0:n.KHR_xmp_json_ld;if(r&&o){var a=+o.packet;r.packets&&a<r.packets.length&&(this._loader.rootBabylonMesh.metadata=this._loader.rootBabylonMesh.metadata||{},this._loader.rootBabylonMesh.metadata.xmp=r.packets[a])}}},e}();function ft(e,t,n,r){return y.Color3.FromArray(t,n).scale(r)}function pt(e,t,n,r){return t[n]*r}function _t(e,t,n,r){return-t[n]*r}function mt(e,t,n,r){return t[n+1]*r}function yt(e,t,n,r){return t[n]*r*2}function vt(e){return{scale:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".uScale"),pt,(function(){return 2})),new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".vScale"),mt,(function(){return 2}))],offset:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".uOffset"),pt,(function(){return 2})),new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".vOffset"),mt,(function(){return 2}))],rotation:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"".concat(e,".wAng"),_t,(function(){return 1}))]}}_e.RegisterExtension(dt,(function(e){return new ht(e)}));var gt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){o(e._babylonCamera,this._buildAnimation(t,n,r))},t}(ce),bt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){for(var a in e._data)o(e._data[a].babylonMaterial,this._buildAnimation(t,n,r))},t}(ce),At=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.buildAnimations=function(e,t,n,r,o){o(e._babylonLight,this._buildAnimation(t,n,r))},t}(ce),Tt={__array__:m({__target__:!0},he)},xt={__array__:{__target__:!0,orthographic:{xmag:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"orthoLeft",_t,(function(){return 1})),new gt(y.Animation.ANIMATIONTYPE_FLOAT,"orthoRight",mt,(function(){return 1}))],ymag:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"orthoBottom",_t,(function(){return 1})),new gt(y.Animation.ANIMATIONTYPE_FLOAT,"orthoTop",mt,(function(){return 1}))],zfar:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"maxZ",pt,(function(){return 1}))],znear:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"minZ",pt,(function(){return 1}))]},perspective:{yfov:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"fov",pt,(function(){return 1}))],zfar:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"maxZ",pt,(function(){return 1}))],znear:[new gt(y.Animation.ANIMATIONTYPE_FLOAT,"minZ",pt,(function(){return 1}))]}}},Et={nodes:Tt,materials:{__array__:{__target__:!0,pbrMetallicRoughness:{baseColorFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"albedoColor",ft,(function(){return 4})),new bt(y.Animation.ANIMATIONTYPE_FLOAT,"alpha",(function(e,t,n,r){return t[n+3]*r}),(function(){return 4}))],metallicFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"metallic",pt,(function(){return 1}))],roughnessFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"roughness",pt,(function(){return 1}))],baseColorTexture:{extensions:{KHR_texture_transform:vt("albedoTexture")}},metallicRoughnessTexture:{extensions:{KHR_texture_transform:vt("metallicTexture")}}},emissiveFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"emissiveColor",ft,(function(){return 3}))],normalTexture:{scale:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"bumpTexture.level",pt,(function(){return 1}))],extensions:{KHR_texture_transform:vt("bumpTexture")}},occlusionTexture:{strength:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"ambientTextureStrength",pt,(function(){return 1}))],extensions:{KHR_texture_transform:vt("ambientTexture")}},emissiveTexture:{extensions:{KHR_texture_transform:vt("emissiveTexture")}},extensions:{KHR_materials_anisotropy:{anisotropyStrength:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"anisotropy.intensity",pt,(function(){return 1}))],anisotropyRotation:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"anisotropy.angle",pt,(function(){return 1}))],anisotropyTexture:{extensions:{KHR_texture_transform:vt("anisotropy.texture")}}},KHR_materials_clearcoat:{clearcoatFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.intensity",pt,(function(){return 1}))],clearcoatRoughnessFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.roughness",pt,(function(){return 1}))],clearcoatTexture:{extensions:{KHR_texture_transform:vt("clearCoat.texture")}},clearcoatNormalTexture:{scale:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.bumpTexture.level",pt,(function(){return 1}))],extensions:{KHR_texture_transform:vt("clearCoat.bumpTexture")}},clearcoatRoughnessTexture:{extensions:{KHR_texture_transform:vt("clearCoat.textureRoughness")}}},KHR_materials_dispersion:{dispersion:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.dispersion",pt,(function(){return 1}))]},KHR_materials_emissive_strength:{emissiveStrength:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"emissiveIntensity",pt,(function(){return 1}))]},KHR_materials_ior:{ior:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"indexOfRefraction",pt,(function(){return 1}))]},KHR_materials_iridescence:{iridescenceFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"iridescence.intensity",pt,(function(){return 1}))],iridescenceIor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"iridescence.indexOfRefraction",pt,(function(){return 1}))],iridescenceThicknessMinimum:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"iridescence.minimumThickness",pt,(function(){return 1}))],iridescenceThicknessMaximum:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"iridescence.maximumThickness",pt,(function(){return 1}))],iridescenceTexture:{extensions:{KHR_texture_transform:vt("iridescence.texture")}},iridescenceThicknessTexture:{extensions:{KHR_texture_transform:vt("iridescence.thicknessTexture")}}},KHR_materials_sheen:{sheenColorFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"sheen.color",ft,(function(){return 3}))],sheenRoughnessFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"sheen.roughness",pt,(function(){return 1}))],sheenColorTexture:{extensions:{KHR_texture_transform:vt("sheen.texture")}},sheenRoughnessTexture:{extensions:{KHR_texture_transform:vt("sheen.textureRoughness")}}},KHR_materials_specular:{specularFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"metallicF0Factor",pt,(function(){return 1}))],specularColorFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"metallicReflectanceColor",ft,(function(){return 3}))],specularTexture:{extensions:{KHR_texture_transform:vt("metallicReflectanceTexture")}},specularColorTexture:{extensions:{KHR_texture_transform:vt("reflectanceTexture")}}},KHR_materials_transmission:{transmissionFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.refractionIntensity",pt,(function(){return 1}))],transmissionTexture:{extensions:{KHR_texture_transform:vt("subSurface.refractionIntensityTexture")}}},KHR_materials_volume:{attenuationColor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"subSurface.tintColor",ft,(function(){return 3}))],attenuationDistance:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.tintColorAtDistance",pt,(function(){return 1}))],thicknessFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.maximumThickness",pt,(function(){return 1}))],thicknessTexture:{extensions:{KHR_texture_transform:vt("subSurface.thicknessTexture")}}},KHR_materials_diffuse_transmission:{diffuseTransmissionFactor:[new bt(y.Animation.ANIMATIONTYPE_FLOAT,"subSurface.translucencyIntensity",pt,(function(){return 1}))],diffuseTransmissionTexture:{extensions:{KHR_texture_transform:vt("subSurface.translucencyIntensityTexture")}},diffuseTransmissionColorFactor:[new bt(y.Animation.ANIMATIONTYPE_COLOR3,"subSurface.translucencyColor",ft,(function(){return 3}))],diffuseTransmissionColorTexture:{extensions:{KHR_texture_transform:vt("subSurface.translucencyColorTexture")}}}}}},cameras:xt,extensions:{KHR_lights_punctual:{lights:{__array__:{__target__:!0,color:[new At(y.Animation.ANIMATIONTYPE_COLOR3,"diffuse",ft,(function(){return 3}))],intensity:[new At(y.Animation.ANIMATIONTYPE_FLOAT,"intensity",pt,(function(){return 1}))],range:[new At(y.Animation.ANIMATIONTYPE_FLOAT,"range",pt,(function(){return 1}))],spot:{innerConeAngle:[new At(y.Animation.ANIMATIONTYPE_FLOAT,"innerAngle",yt,(function(){return 1}))],outerConeAngle:[new At(y.Animation.ANIMATIONTYPE_FLOAT,"angle",yt,(function(){return 1}))]}}}}}},Ot=function(){function e(e,t){this._gltf=e,this._infoTree=t}return e.prototype.convert=function(e){var t=this._gltf,n=this._infoTree,r=void 0;if(!e.startsWith("/"))throw new Error("Path must start with a /");var o=e.split("/");o.shift();for(var a=0,i=o;a<i.length;a++){var s=i[a];if(n.__array__)n=n.__array__;else if(!(n=n[s]))throw new Error("Path ".concat(e," is invalid"));if(void 0===t)throw new Error("Path ".concat(e," is invalid"));t=t[s],n.__target__&&(r=t)}return{object:r,info:n}},e}(),Mt="KHR_animation_pointer",wt=function(e){function t(t){return e.call(this,t,Et)||this}return _(t,e),t}(Ot),Ct=function(){function e(e){this.name=Mt,this._loader=e,this._pathToObjectConverter=new wt(this._loader.gltf)}return Object.defineProperty(e.prototype,"enabled",{get:function(){return this._loader.isExtensionUsed(Mt)},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this._loader=null,delete this._pathToObjectConverter},e.prototype._loadAnimationChannelAsync=function(e,t,n,r,o){var a,i=null===(a=r.target.extensions)||void 0===a?void 0:a.KHR_animation_pointer;if(!i||!this._pathToObjectConverter)return null;"pointer"!==r.target.path&&y.Logger.Warn("".concat(e,"/target/path: Value (").concat(r.target.path,") must be (").concat("pointer",") when using the ").concat(this.name," extension")),null!=r.target.node&&y.Logger.Warn("".concat(e,"/target/node: Value (").concat(r.target.node,") must not be present when using the ").concat(this.name," extension"));var s="".concat(e,"/extensions/").concat(this.name),l=i.pointer;if(!l)throw new Error("".concat(s,": Pointer is missing"));try{var c=this._pathToObjectConverter.convert(l);return this._loader._loadAnimationChannelFromTargetInfoAsync(e,t,n,r,c,o)}catch(e){return y.Logger.Warn("".concat(s,"/pointer: Invalid pointer (").concat(l,") skipped")),null}},e}();_e.RegisterExtension(Mt,(function(e){return new Ct(e)}));var Lt="MSFT_audio_emitter",Nt=function(){function e(e){this.name=Lt,this._loader=e,this.enabled=this._loader.isExtensionUsed(Lt)}return e.prototype.dispose=function(){this._loader=null,this._clips=null,this._emitters=null},e.prototype.onLoading=function(){var e=this._loader.gltf.extensions;if(e&&e[this.name]){var t=e[this.name];this._clips=t.clips,this._emitters=t.emitters,pe.Assign(this._clips),pe.Assign(this._emitters)}},e.prototype.loadSceneAsync=function(e,t){var n=this;return _e.LoadExtensionAsync(e,t,this.name,(function(r,o){var a=new Array;a.push(n._loader.loadSceneAsync(e,t));for(var i=0,s=o.emitters;i<s.length;i++){var l=s[i],c=pe.Get("".concat(r,"/emitters"),n._emitters,l);if(null!=c.refDistance||null!=c.maxDistance||null!=c.rolloffFactor||null!=c.distanceModel||null!=c.innerAngle||null!=c.outerAngle)throw new Error("".concat(r,": Direction or Distance properties are not allowed on emitters attached to a scene"));a.push(n._loadEmitterAsync("".concat(r,"/emitters/").concat(c.index),c))}return Promise.all(a).then((function(){}))}))},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(e,o){var a=new Array;return r._loader.loadNodeAsync(e,t,(function(t){for(var i=function(n){var o=pe.Get("".concat(e,"/emitters"),r._emitters,n);a.push(r._loadEmitterAsync("".concat(e,"/emitters/").concat(o.index),o).then((function(){for(var e=0,n=o._babylonSounds;e<n.length;e++){var r=n[e];r.attachToMesh(t),null==o.innerAngle&&null==o.outerAngle||(r.setLocalDirectionToMesh(y.Vector3.Forward()),r.setDirectionalCone(2*y.Tools.ToDegrees(null==o.innerAngle?Math.PI:o.innerAngle),2*y.Tools.ToDegrees(null==o.outerAngle?Math.PI:o.outerAngle),0))}})))},s=0,l=o.emitters;s<l.length;s++)i(l[s]);n(t)})).then((function(e){return Promise.all(a).then((function(){return e}))}))}))},e.prototype.loadAnimationAsync=function(e,t){var n=this;return _e.LoadExtensionAsync(e,t,this.name,(function(r,o){return n._loader.loadAnimationAsync(e,t).then((function(a){var i=new Array;pe.Assign(o.events);for(var s=0,l=o.events;s<l.length;s++){var c=l[s];i.push(n._loadAnimationEventAsync("".concat(r,"/events/").concat(c.index),e,t,c,a))}return Promise.all(i).then((function(){return a}))}))}))},e.prototype._loadClipAsync=function(e,t){if(t._objectURL)return t._objectURL;var n;if(t.uri)n=this._loader.loadUriAsync(e,t,t.uri);else{var r=pe.Get("".concat(e,"/bufferView"),this._loader.gltf.bufferViews,t.bufferView);n=this._loader.loadBufferViewAsync("/bufferViews/".concat(r.index),r)}return t._objectURL=n.then((function(e){return URL.createObjectURL(new Blob([e],{type:t.mimeType}))})),t._objectURL},e.prototype._loadEmitterAsync=function(e,t){var n=this;if(t._babylonSounds=t._babylonSounds||[],!t._babylonData){for(var r=new Array,o=t.name||"emitter".concat(t.index),a={loop:!1,autoplay:!1,volume:null==t.volume?1:t.volume},i=function(e){var i="/extensions/".concat(s.name,"/clips"),l=pe.Get(i,s._clips,t.clips[e].clip);r.push(s._loadClipAsync("".concat(i,"/").concat(t.clips[e].clip),l).then((function(r){var i=t._babylonSounds[e]=new y.Sound(o,r,n._loader.babylonScene,null,a);i.refDistance=t.refDistance||1,i.maxDistance=t.maxDistance||256,i.rolloffFactor=t.rolloffFactor||1,i.distanceModel=t.distanceModel||"exponential"})))},s=this,l=0;l<t.clips.length;l++)i(l);var c=Promise.all(r).then((function(){var e=t.clips.map((function(e){return e.weight||1})),n=new y.WeightedSound(t.loop||!1,t._babylonSounds,e);t.innerAngle&&(n.directionalConeInnerAngle=2*y.Tools.ToDegrees(t.innerAngle)),t.outerAngle&&(n.directionalConeOuterAngle=2*y.Tools.ToDegrees(t.outerAngle)),t.volume&&(n.volume=t.volume),t._babylonData.sound=n}));t._babylonData={loaded:c}}return t._babylonData.loaded},e.prototype._getEventAction=function(e,t,n,r,o){switch(n){case"play":return function(e){var n=(o||0)+(e-r);t.play(n)};case"stop":return function(){t.stop()};case"pause":return function(){t.pause()};default:throw new Error("".concat(e,": Unsupported action ").concat(n))}},e.prototype._loadAnimationEventAsync=function(e,t,n,r,o){var a=this;if(0==o.targetedAnimations.length)return Promise.resolve();var i=o.targetedAnimations[0],s=r.emitter,l=pe.Get("/extensions/".concat(this.name,"/emitters"),this._emitters,s);return this._loadEmitterAsync(e,l).then((function(){var t=l._babylonData.sound;if(t){var n=new y.AnimationEvent(r.time,a._getEventAction(e,t,r.action,r.time,r.startOffset));i.animation.addEvent(n),o.onAnimationGroupEndObservable.add((function(){t.stop()})),o.onAnimationGroupPauseObservable.add((function(){t.pause()}))}}))},e}();_e.RegisterExtension(Lt,(function(e){return new Nt(e)}));var St="MSFT_lod",Rt=function(){function e(e){var t,n;this.name=St,this.order=100,this.maxLODsToLoad=10,this.onNodeLODsLoadedObservable=new y.Observable,this.onMaterialLODsLoadedObservable=new y.Observable,this._bufferLODs=new Array,this._nodeIndexLOD=null,this._nodeSignalLODs=new Array,this._nodePromiseLODs=new Array,this._nodeBufferLODs=new Array,this._materialIndexLOD=null,this._materialSignalLODs=new Array,this._materialPromiseLODs=new Array,this._materialBufferLODs=new Array,this._loader=e,this.maxLODsToLoad=null!==(n=null===(t=this._loader.parent.extensionOptions[St])||void 0===t?void 0:t.maxLODsToLoad)&&void 0!==n?n:this.maxLODsToLoad,this.enabled=this._loader.isExtensionUsed(St)}return e.prototype.dispose=function(){this._loader=null,this._nodeIndexLOD=null,this._nodeSignalLODs.length=0,this._nodePromiseLODs.length=0,this._nodeBufferLODs.length=0,this._materialIndexLOD=null,this._materialSignalLODs.length=0,this._materialPromiseLODs.length=0,this._materialBufferLODs.length=0,this.onMaterialLODsLoadedObservable.clear(),this.onNodeLODsLoadedObservable.clear()},e.prototype.onReady=function(){for(var e=this,t=function(t){var r=Promise.all(n._nodePromiseLODs[t]).then((function(){0!==t&&(e._loader.endPerformanceCounter("Node LOD ".concat(t)),e._loader.log("Loaded node LOD ".concat(t))),e.onNodeLODsLoadedObservable.notifyObservers(t),t!==e._nodePromiseLODs.length-1&&(e._loader.startPerformanceCounter("Node LOD ".concat(t+1)),e._loadBufferLOD(e._nodeBufferLODs,t+1),e._nodeSignalLODs[t]&&e._nodeSignalLODs[t].resolve())}));n._loader._completePromises.push(r)},n=this,r=0;r<this._nodePromiseLODs.length;r++)t(r);var o=function(t){var n=Promise.all(a._materialPromiseLODs[t]).then((function(){0!==t&&(e._loader.endPerformanceCounter("Material LOD ".concat(t)),e._loader.log("Loaded material LOD ".concat(t))),e.onMaterialLODsLoadedObservable.notifyObservers(t),t!==e._materialPromiseLODs.length-1&&(e._loader.startPerformanceCounter("Material LOD ".concat(t+1)),e._loadBufferLOD(e._materialBufferLODs,t+1),e._materialSignalLODs[t]&&e._materialSignalLODs[t].resolve())}));a._loader._completePromises.push(n)},a=this;for(r=0;r<this._materialPromiseLODs.length;r++)o(r)},e.prototype.loadSceneAsync=function(e,t){var n=this._loader.loadSceneAsync(e,t);return this._loadBufferLOD(this._bufferLODs,0),n},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return _e.LoadExtensionAsync(e,t,this.name,(function(e,o){var a,i=r._getLODs(e,t,r._loader.gltf.nodes,o.ids);r._loader.logOpen("".concat(e));for(var s=function(e){var t=i[e];0!==e&&(r._nodeIndexLOD=e,r._nodeSignalLODs[e]=r._nodeSignalLODs[e]||new y.Deferred);var o=r._loader.loadNodeAsync("/nodes/".concat(t.index),t,(function(e){n(e),e.setEnabled(!1)})).then((function(t){if(0!==e){var n=i[e-1];n._babylonTransformNode&&(r._disposeTransformNode(n._babylonTransformNode),delete n._babylonTransformNode)}return t.setEnabled(!0),t}));r._nodePromiseLODs[e]=r._nodePromiseLODs[e]||[],0===e?a=o:(r._nodeIndexLOD=null,r._nodePromiseLODs[e].push(o))},l=0;l<i.length;l++)s(l);return r._loader.logClose(),a}))},e.prototype._loadMaterialAsync=function(e,t,n,r,o){var a=this;return this._nodeIndexLOD?null:_e.LoadExtensionAsync(e,t,this.name,(function(e,i){var s,l=a._getLODs(e,t,a._loader.gltf.materials,i.ids);a._loader.logOpen("".concat(e));for(var c=function(e){var t=l[e];0!==e&&(a._materialIndexLOD=e);var i=a._loader._loadMaterialAsync("/materials/".concat(t.index),t,n,r,(function(t){0===e&&o(t)})).then((function(t){if(0!==e){o(t);var n=l[e-1]._data;n[r]&&(a._disposeMaterials([n[r].babylonMaterial]),delete n[r])}return t}));a._materialPromiseLODs[e]=a._materialPromiseLODs[e]||[],0===e?s=i:(a._materialIndexLOD=null,a._materialPromiseLODs[e].push(i))},u=0;u<l.length;u++)c(u);return a._loader.logClose(),s}))},e.prototype._loadUriAsync=function(e,t,n){var r=this;if(null!==this._nodeIndexLOD){this._loader.log("deferred");var o=this._nodeIndexLOD-1;return this._nodeSignalLODs[o]=this._nodeSignalLODs[o]||new y.Deferred,this._nodeSignalLODs[this._nodeIndexLOD-1].promise.then((function(){return r._loader.loadUriAsync(e,t,n)}))}return null!==this._materialIndexLOD?(this._loader.log("deferred"),o=this._materialIndexLOD-1,this._materialSignalLODs[o]=this._materialSignalLODs[o]||new y.Deferred,this._materialSignalLODs[o].promise.then((function(){return r._loader.loadUriAsync(e,t,n)}))):null},e.prototype.loadBufferAsync=function(e,t,n,r){if(this._loader.parent.useRangeRequests&&!t.uri){if(!this._loader.bin)throw new Error("".concat(e,": Uri is missing or the binary glTF is missing its binary chunk"));var o=function(e,t){var o=n,a=o+r-1,i=e[t];return i?(i.start=Math.min(i.start,o),i.end=Math.max(i.end,a)):(i={start:o,end:a,loaded:new y.Deferred},e[t]=i),i.loaded.promise.then((function(e){return new Uint8Array(e.buffer,e.byteOffset+n-i.start,r)}))};return this._loader.log("deferred"),null!==this._nodeIndexLOD?o(this._nodeBufferLODs,this._nodeIndexLOD):null!==this._materialIndexLOD?o(this._materialBufferLODs,this._materialIndexLOD):o(this._bufferLODs,0)}return null},e.prototype._loadBufferLOD=function(e,t){var n=e[t];n&&(this._loader.log("Loading buffer range [".concat(n.start,"-").concat(n.end,"]")),this._loader.bin.readAsync(n.start,n.end-n.start+1).then((function(e){n.loaded.resolve(e)}),(function(e){n.loaded.reject(e)})))},e.prototype._getLODs=function(e,t,n,r){if(this.maxLODsToLoad<=0)throw new Error("maxLODsToLoad must be greater than zero");for(var o=[],a=r.length-1;a>=0;a--)if(o.push(pe.Get("".concat(e,"/ids/").concat(r[a]),n,r[a])),o.length===this.maxLODsToLoad)return o;return o.push(t),o},e.prototype._disposeTransformNode=function(e){var t=this,n=[],r=e.material;r&&n.push(r);for(var o=0,a=e.getChildMeshes();o<a.length;o++){var i=a[o];i.material&&n.push(i.material)}e.dispose();var s=n.filter((function(e){return t._loader.babylonScene.meshes.every((function(t){return t.material!=e}))}));this._disposeMaterials(s)},e.prototype._disposeMaterials=function(e){for(var t={},n=0,r=e;n<r.length;n++){for(var o=0,a=(u=r[n]).getActiveTextures();o<a.length;o++){var i=a[o];t[i.uniqueId]=i}u.dispose()}for(var s in t)for(var l=0,c=this._loader.babylonScene.materials;l<c.length;l++){var u;(u=c[l]).hasTexture(t[s])&&delete t[s]}for(var s in t)t[s].dispose()},e}();_e.RegisterExtension(St,(function(e){return new Rt(e)}));var Ft="MSFT_minecraftMesh",Pt=function(){function e(e){this.name=Ft,this._loader=e,this.enabled=this._loader.isExtensionUsed(Ft)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtraAsync(e,t,this.name,(function(o,a){if(a){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(o,": Material type not supported"));var i=r._loader.loadMaterialPropertiesAsync(e,t,n);return n.needAlphaBlending()&&(n.forceDepthWrite=!0,n.separateCullingPass=!0),n.backFaceCulling=n.forceDepthWrite,n.twoSidedLighting=!0,i}return null}))},e}();_e.RegisterExtension(Ft,(function(e){return new Pt(e)}));var It="MSFT_sRGBFactors",Bt=function(){function e(e){this.name=It,this._loader=e,this.enabled=this._loader.isExtensionUsed(It)}return e.prototype.dispose=function(){this._loader=null},e.prototype.loadMaterialPropertiesAsync=function(e,t,n){var r=this;return _e.LoadExtraAsync(e,t,this.name,(function(o,a){if(a){if(!(n instanceof y.PBRMaterial))throw new Error("".concat(o,": Material type not supported"));var i=r._loader.loadMaterialPropertiesAsync(e,t,n),s=n.getScene().getEngine().useExactSrgbConversions;return n.albedoTexture||n.albedoColor.toLinearSpaceToRef(n.albedoColor,s),n.reflectivityTexture||n.reflectivityColor.toLinearSpaceToRef(n.reflectivityColor,s),i}return null}))},e}();_e.RegisterExtension(It,(function(e){return new Bt(e)}));var Dt={"lifecycle/onStart":y.FlowGraphSceneReadyEventBlock.ClassName,"lifecycle/onTick":y.FlowGraphSceneTickEventBlock.ClassName,log:y.FlowGraphConsoleLogBlock.ClassName,"flow/delay":y.FlowGraphTimerBlock.ClassName,"customEvent/send":y.FlowGraphSendCustomEventBlock.ClassName,"customEvent/receive":y.FlowGraphReceiveCustomEventBlock.ClassName,"flow/sequence":y.FlowGraphSequenceBlock.ClassName,"world/get":y.FlowGraphGetPropertyBlock.ClassName,"world/set":y.FlowGraphSetPropertyBlock.ClassName,"flow/doN":y.FlowGraphDoNBlock.ClassName,"variable/get":y.FlowGraphGetVariableBlock.ClassName,"variable/set":y.FlowGraphSetVariableBlock.ClassName,"flow/whileLoop":y.FlowGraphWhileLoopBlock.ClassName,"math/random":y.FlowGraphRandomBlock.ClassName,"math/e":y.FlowGraphEBlock.ClassName,"math/pi":y.FlowGraphPiBlock.ClassName,"math/inf":y.FlowGraphInfBlock.ClassName,"math/nan":y.FlowGraphNaNBlock.ClassName,"math/abs":y.FlowGraphAbsBlock.ClassName,"math/sign":y.FlowGraphSignBlock.ClassName,"math/trunc":y.FlowGraphTruncBlock.ClassName,"math/floor":y.FlowGraphFloorBlock.ClassName,"math/ceil":y.FlowGraphCeilBlock.ClassName,"math/fract":y.FlowGraphFractBlock.ClassName,"math/neg":y.FlowGraphNegBlock.ClassName,"math/add":y.FlowGraphAddBlock.ClassName,"math/sub":y.FlowGraphSubtractBlock.ClassName,"math/mul":y.FlowGraphMultiplyBlock.ClassName,"math/div":y.FlowGraphDivideBlock.ClassName,"math/rem":y.FlowGraphRemainderBlock.ClassName,"math/min":y.FlowGraphMinBlock.ClassName,"math/max":y.FlowGraphMaxBlock.ClassName,"math/clamp":y.FlowGraphClampBlock.ClassName,"math/saturate":y.FlowGraphSaturateBlock.ClassName,"math/mix":y.FlowGraphInterpolateBlock.ClassName,"math/eq":y.FlowGraphEqBlock.ClassName,"math/lt":y.FlowGraphLessThanBlock.ClassName,"math/le":y.FlowGraphLessThanOrEqualBlock.ClassName,"math/gt":y.FlowGraphGreaterThanBlock.ClassName,"math/ge":y.FlowGraphGreaterThanOrEqualBlock.ClassName,"math/isnan":y.FlowGraphIsNanBlock.ClassName,"math/isinf":y.FlowGraphIsInfBlock.ClassName,"math/rad":y.FlowGraphDegToRadBlock.ClassName,"math/deg":y.FlowGraphRadToDegBlock.ClassName,"math/sin":y.FlowGraphSinBlock.ClassName,"math/cos":y.FlowGraphCosBlock.ClassName,"math/tan":y.FlowGraphTanBlock.ClassName,"math/asin":y.FlowGraphAsinBlock.ClassName,"math/acos":y.FlowGraphAcosBlock.ClassName,"math/atan":y.FlowGraphAtanBlock.ClassName,"math/atan2":y.FlowGraphAtan2Block.ClassName,"math/sinh":y.FlowGraphSinhBlock.ClassName,"math/cosh":y.FlowGraphCoshBlock.ClassName,"math/tanh":y.FlowGraphTanhBlock.ClassName,"math/asinh":y.FlowGraphAsinhBlock.ClassName,"math/acosh":y.FlowGraphAcoshBlock.ClassName,"math/atanh":y.FlowGraphAtanhBlock.ClassName,"math/exp":y.FlowGraphExpBlock.ClassName,"math/log":y.FlowGraphLogBlock.ClassName,"math/log2":y.FlowGraphLog2Block.ClassName,"math/log10":y.FlowGraphLog10Block.ClassName,"math/sqrt":y.FlowGraphSqrtBlock.ClassName,"math/cbrt":y.FlowGraphCubeRootBlock.ClassName,"math/pow":y.FlowGraphPowBlock.ClassName,"math/length":y.FlowGraphLengthBlock.ClassName,"math/normalize":y.FlowGraphNormalizeBlock.ClassName,"math/dot":y.FlowGraphDotBlock.ClassName,"math/cross":y.FlowGraphCrossBlock.ClassName,"math/rotate2d":y.FlowGraphRotate2DBlock.ClassName,"math/rotate3d":y.FlowGraphRotate3DBlock.ClassName,"math/transpose":y.FlowGraphTransposeBlock.ClassName,"math/determinant":y.FlowGraphDeterminantBlock.ClassName,"math/inverse":y.FlowGraphInvertMatrixBlock.ClassName,"math/matmul":y.FlowGraphMatMulBlock.ClassName,"math/not":y.FlowGraphBitwiseNotBlock.ClassName,"math/and":y.FlowGraphBitwiseAndBlock.ClassName,"math/or":y.FlowGraphBitwiseOrBlock.ClassName,"math/xor":y.FlowGraphBitwiseXorBlock.ClassName,"math/asr":y.FlowGraphBitwiseRightShiftBlock.ClassName,"math/lsl":y.FlowGraphBitwiseLeftShiftBlock.ClassName,"math/clz":y.FlowGraphCountLeadingZerosBlock.ClassName,"math/ctz":y.FlowGraphCountTrailingZerosBlock.ClassName,"math/popcnt":y.FlowGraphCountOneBitsBlock.ClassName},Vt={float2:"Vector2",float3:"Vector3",float4:"Vector4",float4x4:"Matrix",int:"FlowGraphInteger"};function kt(e,t,n){if(void 0!==e.type){var r=t.types&&t.types[e.type];if(!r)throw new Error("".concat(n,": Unknown type: ").concat(e.type));var o=r.signature;if(!o)throw new Error("".concat(n,": Type ").concat(e.type," has no signature"));var a=Vt[o];return{value:e.value,className:a}}return e.value}function Gt(e,t,n){var r=Dt[t.type];if(!r)throw new Error("/extensions/KHR_interactivity/nodes/".concat(e,": Unknown block type: ").concat(t.type));var o=e.toString(),a=function(e,t,n){for(var r,o={},a=0,i=null!==(r=e.configuration)&&void 0!==r?r:[];a<i.length;a++){var s=i[a];if("customEvent"===s.id){var l=t.customEvents&&t.customEvents[s.value];if(!l)throw new Error("/extensions/KHR_interactivity/nodes/".concat(n,": Unknown custom event: ").concat(s.value));o.eventId=l.id,o.eventData=l.values.map((function(e){return e.id}))}else if("variable"===s.id){var c=t.variables&&t.variables[s.value];if(!c)throw new Error("/extensions/KHR_interactivity/nodes/".concat(n,": Unknown variable: ").concat(s.value));o.variableName=c.id}else if("path"===s.id){var u=s.value;o.path=u}else o[s.id]=kt(s,t,"/extensions/KHR_interactivity/nodes/".concat(n))}return o}(t,n,o);return{className:r,config:a,uniqueId:o,metadata:t.metadata,dataInputs:[],dataOutputs:[],signalInputs:[],signalOutputs:[]}}var Ut=function(e){function t(t){return e.call(this,t,Ht)||this}return _(t,e),t}(Ot),Ht={nodes:{__array__:{__target__:!0,translation:{type:"Vector3",get:function(e){return e._babylonTransformNode.position},set:function(e,t){t._babylonTransformNode.position=e},getObject:function(e){return e._babylonTransformNode}}}}},jt="KHR_interactivity",Kt=function(){function e(e){this._loader=e,this.name=jt,this.enabled=this._loader.isExtensionUsed(jt),this._pathConverter=new Ut(this._loader.gltf)}return e.prototype.dispose=function(){this._loader=null,delete this._pathConverter},e.prototype.onReady=function(){var e;if(this._loader.babylonScene&&this._pathConverter){var t=this._loader.babylonScene,n=function(e){for(var t,n,r,o={uniqueId:(0,y.RandomGUID)(),_userVariables:{},_connectionValues:{}},a=[o],i=[],s=0;s<e.nodes.length;s++){var l=e.nodes[s],c=Gt(s,l,e);i.push(c)}for(s=0;s<e.nodes.length;s++){l=e.nodes[s];for(var u=i[s],d=function(e){var t=e.id,n={uniqueId:(0,y.RandomGUID)(),name:t,_connectionType:1,connectedPointIds:[]};u.signalOutputs.push(n);var r=e.node,o=e.socket,a=i[r];if(!a)throw new Error("/extensions/KHR_interactivity/nodes/".concat(s,": Could not find node with id ").concat(r," that connects its input with with node ").concat(s,"'s output ").concat(t));var l=a.signalInputs.find((function(e){return e.name===o}));l||(l={uniqueId:(0,y.RandomGUID)(),name:o,_connectionType:0,connectedPointIds:[]},a.signalInputs.push(l)),l.connectedPointIds.push(n.uniqueId),n.connectedPointIds.push(l.uniqueId)},h=0,f=null!==(t=l.flows)&&void 0!==t?t:[];h<f.length;h++)d(f[h]);for(var p=function(t){var n=t.id,r={uniqueId:(0,y.RandomGUID)(),name:n,_connectionType:0,connectedPointIds:[]};if(u.dataInputs.push(r),void 0!==t.value){var a=kt(t,e,"/extensions/KHR_interactivity/nodes/".concat(s));o._connectionValues[r.uniqueId]=a}else{if(void 0===t.node||void 0===t.socket)throw new Error("/extensions/KHR_interactivity/nodes/".concat(s,": Invalid socket ").concat(n," in node ").concat(s));var l=t.node,c=t.socket,d=i[l];if(!d)throw new Error("/extensions/KHR_interactivity/nodes/".concat(s,": Could not find node with id ").concat(l," that connects its output with node").concat(s,"'s input ").concat(n));var h=d.dataOutputs.find((function(e){return e.name===c}));h||(h={uniqueId:(0,y.RandomGUID)(),name:c,_connectionType:1,connectedPointIds:[]},d.dataOutputs.push(h)),r.connectedPointIds.push(h.uniqueId),h.connectedPointIds.push(r.uniqueId)}},_=0,m=null!==(n=l.values)&&void 0!==n?n:[];_<m.length;_++)p(m[_])}var v=null!==(r=e.variables)&&void 0!==r?r:[];for(s=0;s<v.length;s++){var g=v[s],b=g.id;o._userVariables[b]=kt(g,e,"/extensions/KHR_interactivity/variables/".concat(s))}return{allBlocks:i,executionContexts:a}}(null===(e=this._loader.gltf.extensions)||void 0===e?void 0:e.KHR_interactivity),r=new y.FlowGraphCoordinator({scene:t});y.FlowGraph.Parse(n,{coordinator:r,pathConverter:this._pathConverter}),r.start()}},e}();_e.RegisterExtension(jt,(function(e){return new Kt(e)}));var Wt="ExtrasAsMetadata",Yt=function(){function e(e){this.name=Wt,this.enabled=!0,this._loader=e}return e.prototype._assignExtras=function(e,t){if(t.extras&&Object.keys(t.extras).length>0){var n=e.metadata=e.metadata||{};(n.gltf=n.gltf||{}).extras=t.extras}},e.prototype.dispose=function(){this._loader=null},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return this._loader.loadNodeAsync(e,t,(function(e){r._assignExtras(e,t),n(e)}))},e.prototype.loadCameraAsync=function(e,t,n){var r=this;return this._loader.loadCameraAsync(e,t,(function(e){r._assignExtras(e,t),n(e)}))},e.prototype.createMaterial=function(e,t,n){var r=this._loader.createMaterial(e,t,n);return this._assignExtras(r,t),r},e}();_e.RegisterExtension(Wt,(function(e){return new Yt(e)}));var qt=function(){function e(){this.materials=[]}return e.prototype.parseMTL=function(t,n,r,o){if(!(n instanceof ArrayBuffer)){for(var a,i=n.split("\n"),s=/\s+/,l=null,c=0;c<i.length;c++){var u=i[c].trim();if(0!==u.length&&"#"!==u.charAt(0)){var d=u.indexOf(" "),h=d>=0?u.substring(0,d):u;h=h.toLowerCase();var f=d>=0?u.substring(d+1).trim():"";if("newmtl"===h)l&&this.materials.push(l),t._blockEntityCollection=!!o,(l=new y.StandardMaterial(f,t))._parentContainer=o,t._blockEntityCollection=!1;else if("kd"===h&&l)a=f.split(s,3).map(parseFloat),l.diffuseColor=y.Color3.FromArray(a);else if("ka"===h&&l)a=f.split(s,3).map(parseFloat),l.ambientColor=y.Color3.FromArray(a);else if("ks"===h&&l)a=f.split(s,3).map(parseFloat),l.specularColor=y.Color3.FromArray(a);else if("ke"===h&&l)a=f.split(s,3).map(parseFloat),l.emissiveColor=y.Color3.FromArray(a);else if("ns"===h&&l)l.specularPower=parseFloat(f);else if("d"===h&&l)l.alpha=parseFloat(f);else if("map_ka"===h&&l)l.ambientTexture=e._GetTexture(r,f,t);else if("map_kd"===h&&l)l.diffuseTexture=e._GetTexture(r,f,t);else if("map_ks"===h&&l)l.specularTexture=e._GetTexture(r,f,t);else if("map_ns"===h);else if("map_bump"===h&&l){var p=f.split(s),_=p.indexOf("-bm"),m=null;_>=0&&(m=p[_+1],p.splice(_,2)),l.bumpTexture=e._GetTexture(r,p.join(" "),t),l.bumpTexture&&null!==m&&(l.bumpTexture.level=parseFloat(m))}else"map_d"===h&&l&&(l.opacityTexture=e._GetTexture(r,f,t))}}l&&this.materials.push(l)}},e._GetTexture=function(t,n,r){if(!n)return null;var o=t;if("file:"===t){var a=n.lastIndexOf("\\");-1===a&&(a=n.lastIndexOf("/")),o+=a>-1?n.substr(a+1):n}else o+=n;return new y.Texture(o,r,!1,e.INVERT_TEXTURE_Y)},e.INVERT_TEXTURE_Y=!0,e}(),zt=function(){function e(e,t,n){this._positions=[],this._normals=[],this._uvs=[],this._colors=[],this._meshesFromObj=[],this._indicesForBabylon=[],this._wrappedPositionForBabylon=[],this._wrappedUvsForBabylon=[],this._wrappedColorsForBabylon=[],this._wrappedNormalsForBabylon=[],this._tuplePosNorm=[],this._curPositionInIndices=0,this._hasMeshes=!1,this._unwrappedPositionsForBabylon=[],this._unwrappedColorsForBabylon=[],this._unwrappedNormalsForBabylon=[],this._unwrappedUVForBabylon=[],this._triangles=[],this._materialNameFromObj="",this._objMeshName="",this._increment=1,this._isFirstMaterial=!0,this._grayColor=new y.Color4(.5,.5,.5,1),this._hasLineData=!1,this._materialToUse=e,this._babylonMeshesArray=t,this._loadingOptions=n}return e.prototype._isInArray=function(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[]});var n=e[t[0]].normals.indexOf(t[1]);return-1===n?-1:e[t[0]].idx[n]},e.prototype._isInArrayUV=function(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[],uv:[]});var n=e[t[0]].normals.indexOf(t[1]);return 1!=n&&t[2]===e[t[0]].uv[n]?e[t[0]].idx[n]:-1},e.prototype._setData=function(e,t,n,r,o,a,i){var s;-1===(s=this._loadingOptions.optimizeWithUV?this._isInArrayUV(this._tuplePosNorm,[e,n,t]):this._isInArray(this._tuplePosNorm,[e,n]))?(this._indicesForBabylon.push(this._wrappedPositionForBabylon.length),this._wrappedPositionForBabylon.push(r),o=null!=o?o:new y.Vector2(0,0),this._wrappedUvsForBabylon.push(o),this._wrappedNormalsForBabylon.push(a),void 0!==i&&this._wrappedColorsForBabylon.push(i),this._tuplePosNorm[e].normals.push(n),this._tuplePosNorm[e].idx.push(this._curPositionInIndices++),this._loadingOptions.optimizeWithUV&&this._tuplePosNorm[e].uv.push(t)):this._indicesForBabylon.push(s)},e.prototype._unwrapData=function(){for(var e=0;e<this._wrappedPositionForBabylon.length;e++)this._unwrappedPositionsForBabylon.push(this._wrappedPositionForBabylon[e].x*this._handednessSign,this._wrappedPositionForBabylon[e].y,this._wrappedPositionForBabylon[e].z),this._unwrappedNormalsForBabylon.push(this._wrappedNormalsForBabylon[e].x*this._handednessSign,this._wrappedNormalsForBabylon[e].y,this._wrappedNormalsForBabylon[e].z),this._unwrappedUVForBabylon.push(this._wrappedUvsForBabylon[e].x,this._wrappedUvsForBabylon[e].y),this._loadingOptions.importVertexColors&&this._unwrappedColorsForBabylon.push(this._wrappedColorsForBabylon[e].r,this._wrappedColorsForBabylon[e].g,this._wrappedColorsForBabylon[e].b,this._wrappedColorsForBabylon[e].a);this._wrappedPositionForBabylon.length=0,this._wrappedNormalsForBabylon.length=0,this._wrappedUvsForBabylon.length=0,this._wrappedColorsForBabylon.length=0,this._tuplePosNorm.length=0,this._curPositionInIndices=0},e.prototype._getTriangles=function(e,t){for(var n=t;n<e.length-1;n++)this._pushTriangle(e,n)},e.prototype._setDataForCurrentFaceWithPattern1=function(e,t){this._getTriangles(e,t);for(var n=0;n<this._triangles.length;n++){var r=parseInt(this._triangles[n])-1;this._setData(r,0,0,this._positions[r],y.Vector2.Zero(),y.Vector3.Up(),this._loadingOptions.importVertexColors?this._colors[r]:void 0)}this._triangles.length=0},e.prototype._setDataForCurrentFaceWithPattern2=function(e,t){var n;this._getTriangles(e,t);for(var r=0;r<this._triangles.length;r++){var o=this._triangles[r].split("/"),a=parseInt(o[0])-1,i=parseInt(o[1])-1;this._setData(a,i,0,this._positions[a],null!==(n=this._uvs[i])&&void 0!==n?n:y.Vector2.Zero(),y.Vector3.Up(),this._loadingOptions.importVertexColors?this._colors[a]:void 0)}this._triangles.length=0},e.prototype._setDataForCurrentFaceWithPattern3=function(e,t){var n,r;this._getTriangles(e,t);for(var o=0;o<this._triangles.length;o++){var a=this._triangles[o].split("/"),i=parseInt(a[0])-1,s=parseInt(a[1])-1,l=parseInt(a[2])-1;this._setData(i,s,l,this._positions[i],null!==(n=this._uvs[s])&&void 0!==n?n:y.Vector2.Zero(),null!==(r=this._normals[l])&&void 0!==r?r:y.Vector3.Up())}this._triangles.length=0},e.prototype._setDataForCurrentFaceWithPattern4=function(e,t){this._getTriangles(e,t);for(var n=0;n<this._triangles.length;n++){var r=this._triangles[n].split("//"),o=parseInt(r[0])-1,a=parseInt(r[1])-1;this._setData(o,1,a,this._positions[o],y.Vector2.Zero(),this._normals[a],this._loadingOptions.importVertexColors?this._colors[o]:void 0)}this._triangles.length=0},e.prototype._setDataForCurrentFaceWithPattern5=function(e,t){this._getTriangles(e,t);for(var n=0;n<this._triangles.length;n++){var r=this._triangles[n].split("/"),o=this._positions.length+parseInt(r[0]),a=this._uvs.length+parseInt(r[1]),i=this._normals.length+parseInt(r[2]);this._setData(o,a,i,this._positions[o],this._uvs[a],this._normals[i],this._loadingOptions.importVertexColors?this._colors[o]:void 0)}this._triangles.length=0},e.prototype._addPreviousObjMesh=function(){this._meshesFromObj.length>0&&(this._handledMesh=this._meshesFromObj[this._meshesFromObj.length-1],this._unwrapData(),this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._handledMesh.indices=this._indicesForBabylon.slice(),this._handledMesh.positions=this._unwrappedPositionsForBabylon.slice(),this._handledMesh.normals=this._unwrappedNormalsForBabylon.slice(),this._handledMesh.uvs=this._unwrappedUVForBabylon.slice(),this._handledMesh.hasLines=this._hasLineData,this._loadingOptions.importVertexColors&&(this._handledMesh.colors=this._unwrappedColorsForBabylon.slice()),this._indicesForBabylon.length=0,this._unwrappedPositionsForBabylon.length=0,this._unwrappedColorsForBabylon.length=0,this._unwrappedNormalsForBabylon.length=0,this._unwrappedUVForBabylon.length=0,this._hasLineData=!1)},e.prototype._optimizeNormals=function(e){var t=e.getVerticesData(y.VertexBuffer.PositionKind),n=e.getVerticesData(y.VertexBuffer.NormalKind),r={};if(t&&n){for(var o=0;o<t.length/3;o++)(s=r[i=t[3*o+0]+"_"+t[3*o+1]+"_"+t[3*o+2]])||(s=[],r[i]=s),s.push(o);var a=new y.Vector3;for(var i in r){var s;if(!((s=r[i]).length<2)){var l=s[0];for(o=1;o<s.length;++o){var c=s[o];n[3*l+0]+=n[3*c+0],n[3*l+1]+=n[3*c+1],n[3*l+2]+=n[3*c+2]}for(a.copyFromFloats(n[3*l+0],n[3*l+1],n[3*l+2]),a.normalize(),o=0;o<s.length;++o)n[3*(c=s[o])+0]=a.x,n[3*c+1]=a.y,n[3*c+2]=a.z}}e.setVerticesData(y.VertexBuffer.NormalKind,n)}},e._IsLineElement=function(e){return e.startsWith("l")},e._IsObjectElement=function(e){return e.startsWith("o")},e._IsGroupElement=function(e){return e.startsWith("g")},e.prototype.parse=function(t,n,r,o,a){var i,s,l=this;this._loadingOptions.useLegacyBehavior?(this._pushTriangle=function(e,t){return l._triangles.push(e[0],e[t],e[t+1])},this._handednessSign=1):r.useRightHandedSystem?(this._pushTriangle=function(e,t){return l._triangles.push(e[0],e[t+1],e[t])},this._handednessSign=1):(this._pushTriangle=function(e,t){return l._triangles.push(e[0],e[t],e[t+1])},this._handednessSign=-1);var c=n.split("\n"),u=[],d=[];u.push(d);for(var h=0;h<c.length;h++)if(0!==(m=c[h].trim().replace(/\s\s/g," ")).length&&"#"!==m.charAt(0))if((e._IsGroupElement(m)||e._IsObjectElement(m))&&(d=[],u.push(d)),e._IsLineElement(m))for(var f=m.split(" "),p=1;p<f.length-1;p++)d.push("l ".concat(f[p]," ").concat(f[p+1]));else d.push(m);var _=u.flat();for(h=0;h<_.length;h++){var m,v=void 0;if(0!==(m=_[h].trim().replace(/\s\s/g," ")).length&&"#"!==m.charAt(0))if(e.VertexPattern.test(m)){if(v=m.match(/[^ ]+/g),this._positions.push(new y.Vector3(parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3]))),this._loadingOptions.importVertexColors)if(v.length>=7){var g=parseFloat(v[4]),b=parseFloat(v[5]),A=parseFloat(v[6]);this._colors.push(new y.Color4(g>1?g/255:g,b>1?b/255:b,A>1?A/255:A,7===v.length||void 0===v[7]?1:parseFloat(v[7])))}else this._colors.push(this._grayColor)}else if(null!==(v=e.NormalPattern.exec(m)))this._normals.push(new y.Vector3(parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3])));else if(null!==(v=e.UVPattern.exec(m)))this._uvs.push(new y.Vector2(parseFloat(v[1])*this._loadingOptions.UVScaling.x,parseFloat(v[2])*this._loadingOptions.UVScaling.y));else if(null!==(v=e.FacePattern3.exec(m)))this._setDataForCurrentFaceWithPattern3(v[1].trim().split(" "),1);else if(null!==(v=e.FacePattern4.exec(m)))this._setDataForCurrentFaceWithPattern4(v[1].trim().split(" "),1);else if(null!==(v=e.FacePattern5.exec(m)))this._setDataForCurrentFaceWithPattern5(v[1].trim().split(" "),1);else if(null!==(v=e.FacePattern2.exec(m)))this._setDataForCurrentFaceWithPattern2(v[1].trim().split(" "),1);else if(null!==(v=e.FacePattern1.exec(m)))this._setDataForCurrentFaceWithPattern1(v[1].trim().split(" "),1);else if(null!==(v=e.LinePattern1.exec(m)))this._setDataForCurrentFaceWithPattern1(v[1].trim().split(" "),0),this._hasLineData=!0;else if(null!==(v=e.LinePattern2.exec(m)))this._setDataForCurrentFaceWithPattern2(v[1].trim().split(" "),0),this._hasLineData=!0;else if(null!==(v=e.LinePattern3.exec(m)))this._setDataForCurrentFaceWithPattern3(v[1].trim().split(" "),0),this._hasLineData=!0;else if(e.GroupDescriptor.test(m)||e.ObjectDescriptor.test(m)){var T={name:m.substring(2).trim(),indices:null,positions:null,normals:null,uvs:null,colors:null,materialName:this._materialNameFromObj,isObject:e.ObjectDescriptor.test(m)};this._addPreviousObjMesh(),this._meshesFromObj.push(T),this._hasMeshes=!0,this._isFirstMaterial=!0,this._increment=1}else e.UseMtlDescriptor.test(m)?(this._materialNameFromObj=m.substring(7).trim(),this._isFirstMaterial&&this._hasMeshes||(this._addPreviousObjMesh(),T={name:(this._objMeshName||"mesh")+"_mm"+this._increment.toString(),indices:null,positions:null,normals:null,uvs:null,colors:null,materialName:this._materialNameFromObj,isObject:!1},this._increment++,this._meshesFromObj.push(T),this._hasMeshes=!0),this._hasMeshes&&this._isFirstMaterial&&(this._meshesFromObj[this._meshesFromObj.length-1].materialName=this._materialNameFromObj,this._isFirstMaterial=!1)):e.MtlLibGroupDescriptor.test(m)?a(m.substring(7).trim()):e.SmoothDescriptor.test(m)||y.Logger.Log("Unhandled expression at line : "+m)}if(this._hasMeshes&&(this._handledMesh=this._meshesFromObj[this._meshesFromObj.length-1],this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData(),this._handledMesh.indices=this._indicesForBabylon,this._handledMesh.positions=this._unwrappedPositionsForBabylon,this._handledMesh.normals=this._unwrappedNormalsForBabylon,this._handledMesh.uvs=this._unwrappedUVForBabylon,this._handledMesh.hasLines=this._hasLineData,this._loadingOptions.importVertexColors&&(this._handledMesh.colors=this._unwrappedColorsForBabylon)),!this._hasMeshes){var x=null;if(this._indicesForBabylon.length)this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData();else{for(var E=0,O=this._positions;E<O.length;E++){var M=O[E];this._unwrappedPositionsForBabylon.push(M.x,M.y,M.z)}if(this._normals.length)for(var w=0,C=this._normals;w<C.length;w++){var L=C[w];this._unwrappedNormalsForBabylon.push(L.x,L.y,L.z)}if(this._uvs.length)for(var N=0,S=this._uvs;N<S.length;N++){var R=S[N];this._unwrappedUVForBabylon.push(R.x,R.y)}if(this._colors.length)for(var F=0,P=this._colors;F<P.length;F++){var I=P[F];this._unwrappedColorsForBabylon.push(I.r,I.g,I.b,I.a)}this._materialNameFromObj||((x=new y.StandardMaterial(y.Geometry.RandomId(),r)).pointsCloud=!0,this._materialNameFromObj=x.name,this._normals.length||(x.disableLighting=!0,x.emissiveColor=y.Color3.White()))}this._meshesFromObj.push({name:y.Geometry.RandomId(),indices:this._indicesForBabylon,positions:this._unwrappedPositionsForBabylon,colors:this._unwrappedColorsForBabylon,normals:this._unwrappedNormalsForBabylon,uvs:this._unwrappedUVForBabylon,materialName:this._materialNameFromObj,directMaterial:x,isObject:!0,hasLines:this._hasLineData})}for(var B=0;B<this._meshesFromObj.length;B++){if(t&&this._meshesFromObj[B].name)if(t instanceof Array){if(-1===t.indexOf(this._meshesFromObj[B].name))continue}else if(this._meshesFromObj[B].name!==t)continue;this._handledMesh=this._meshesFromObj[B],r._blockEntityCollection=!!o;var D=new y.Mesh(this._meshesFromObj[B].name,r);if(D._parentContainer=o,r._blockEntityCollection=!1,this._handledMesh._babylonMesh=D,!this._handledMesh.isObject)for(var V=B-1;V>=0;--V)if(this._meshesFromObj[V].isObject&&this._meshesFromObj[V]._babylonMesh){D.parent=this._meshesFromObj[V]._babylonMesh;break}if(this._materialToUse.push(this._meshesFromObj[B].materialName),this._handledMesh.hasLines&&(null!==(i=D._internalMetadata)&&void 0!==i||(D._internalMetadata={}),D._internalMetadata._isLine=!0),0!==(null===(s=this._handledMesh.positions)||void 0===s?void 0:s.length)){var k=new y.VertexData;if(k.uvs=this._handledMesh.uvs,k.indices=this._handledMesh.indices,k.positions=this._handledMesh.positions,this._loadingOptions.computeNormals){var G=new Array;y.VertexData.ComputeNormals(this._handledMesh.positions,this._handledMesh.indices,G),k.normals=G}else k.normals=this._handledMesh.normals;this._loadingOptions.importVertexColors&&(k.colors=this._handledMesh.colors),k.applyToMesh(D),this._loadingOptions.invertY&&(D.scaling.y*=-1),this._loadingOptions.optimizeNormals&&this._optimizeNormals(D),this._babylonMeshesArray.push(D),this._handledMesh.directMaterial&&(D.material=this._handledMesh.directMaterial)}else this._babylonMeshesArray.push(D)}},e.ObjectDescriptor=/^o/,e.GroupDescriptor=/^g/,e.MtlLibGroupDescriptor=/^mtllib /,e.UseMtlDescriptor=/^usemtl /,e.SmoothDescriptor=/^s /,e.VertexPattern=/^v(\s+[\d|.|+|\-|e|E]+){3,7}/,e.NormalPattern=/^vn(\s+[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)/,e.UVPattern=/^vt(\s+[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)/,e.FacePattern1=/^f\s+(([\d]{1,}[\s]?){3,})+/,e.FacePattern2=/^f\s+((([\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,e.FacePattern3=/^f\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,e.FacePattern4=/^f\s+((([\d]{1,}\/\/[\d]{1,}[\s]?){3,})+)/,e.FacePattern5=/^f\s+(((-[\d]{1,}\/-[\d]{1,}\/-[\d]{1,}[\s]?){3,})+)/,e.LinePattern1=/^l\s+(([\d]{1,}[\s]?){2,})+/,e.LinePattern2=/^l\s+((([\d]{1,}\/[\d]{1,}[\s]?){2,})+)/,e.LinePattern3=/^l\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){2,})+)/,e}(),Xt=function(){function e(t){this.name="obj",this.extensions=".obj",this._assetContainer=null,this._loadingOptions=t||e._DefaultLoadingOptions}return Object.defineProperty(e,"INVERT_TEXTURE_Y",{get:function(){return qt.INVERT_TEXTURE_Y},set:function(e){qt.INVERT_TEXTURE_Y=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,"_DefaultLoadingOptions",{get:function(){return{computeNormals:e.COMPUTE_NORMALS,optimizeNormals:e.OPTIMIZE_NORMALS,importVertexColors:e.IMPORT_VERTEX_COLORS,invertY:e.INVERT_Y,invertTextureY:e.INVERT_TEXTURE_Y,UVScaling:e.UV_SCALING,materialLoadingFailsSilently:e.MATERIAL_LOADING_FAILS_SILENTLY,optimizeWithUV:e.OPTIMIZE_WITH_UV,skipMaterials:e.SKIP_MATERIALS,useLegacyBehavior:e.USE_LEGACY_BEHAVIOR}},enumerable:!1,configurable:!0}),e.prototype._loadMTL=function(e,t,n,r){var o=t+e;y.Tools.LoadFile(o,n,void 0,void 0,!1,(function(e,t){r(o,t)}))},e.prototype.createPlugin=function(){return new e(e._DefaultLoadingOptions)},e.prototype.canDirectLoad=function(){return!1},e.prototype.importMeshAsync=function(e,t,n,r){return this._parseSolid(e,t,n,r).then((function(e){return{meshes:e,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]}}))},e.prototype.loadAsync=function(e,t,n){return this.importMeshAsync(null,e,t,n).then((function(){}))},e.prototype.loadAssetContainerAsync=function(e,t,n){var r=this,o=new y.AssetContainer(e);return this._assetContainer=o,this.importMeshAsync(null,e,t,n).then((function(e){return e.meshes.forEach((function(e){return o.meshes.push(e)})),e.meshes.forEach((function(e){var t=e.material;t&&-1==o.materials.indexOf(t)&&(o.materials.push(t),t.getActiveTextures().forEach((function(e){-1==o.textures.indexOf(e)&&o.textures.push(e)})))})),r._assetContainer=null,o})).catch((function(e){throw r._assetContainer=null,e}))},e.prototype._parseSolid=function(e,t,n,r){var o=this,a="",i=new qt,s=[],l=[];n=n.replace(/#.*$/gm,"").trim(),new zt(s,l,this._loadingOptions).parse(e,n,t,this._assetContainer,(function(e){a=e}));var c=[];return""===a||this._loadingOptions.skipMaterials||c.push(new Promise((function(e,n){o._loadMTL(a,r,(function(c){try{i.parseMTL(t,c,r,o._assetContainer);for(var u=0;u<i.materials.length;u++){for(var d=0,h=[],f=void 0;(f=s.indexOf(i.materials[u].name,d))>-1;)h.push(f),d=f+1;if(-1===f&&0===h.length)i.materials[u].dispose();else for(var p=0;p<h.length;p++){var _=l[h[p]],m=i.materials[u];_.material=m,_.getTotalIndices()||(m.pointsCloud=!0)}}e()}catch(t){y.Tools.Warn("Error processing MTL file: '".concat(a,"'")),o._loadingOptions.materialLoadingFailsSilently?e():n(t)}}),(function(t,r){y.Tools.Warn("Error downloading MTL file: '".concat(a,"'")),o._loadingOptions.materialLoadingFailsSilently?e():n(r)}))}))),Promise.all(c).then((function(){var e=function(e){var t,n;return Boolean(null!==(n=null===(t=e._internalMetadata)||void 0===t?void 0:t._isLine)&&void 0!==n&&n)};return l.forEach((function(n){var r,o;if(e(n)){var a=null!==(r=n.material)&&void 0!==r?r:new y.StandardMaterial(n.name+"_line",t);a.getBindedMeshes().filter((function(t){return!e(t)})).length>0&&(a=null!==(o=a.clone(a.name+"_line"))&&void 0!==o?o:a),a.wireframe=!0,n.material=a,n._internalMetadata&&(n._internalMetadata._isLine=void 0)}})),l}))},e.OPTIMIZE_WITH_UV=!0,e.INVERT_Y=!1,e.IMPORT_VERTEX_COLORS=!1,e.COMPUTE_NORMALS=!1,e.OPTIMIZE_NORMALS=!1,e.UV_SCALING=new y.Vector2(1,1),e.SKIP_MATERIALS=!1,e.MATERIAL_LOADING_FAILS_SILENTLY=!0,e.USE_LEGACY_BEHAVIOR=!1,e}();(0,y.registerSceneLoaderPlugin)(new Xt);var Zt=function(){function e(){this.solidPattern=/solid (\S*)([\S\s]*?)endsolid[ ]*(\S*)/g,this.facetsPattern=/facet([\s\S]*?)endfacet/g,this.normalPattern=/normal[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g,this.vertexPattern=/vertex[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g,this.name="stl",this.extensions={".stl":{isBinary:!0}}}return e.prototype.importMesh=function(e,t,n,r,o){var a;if("string"!=typeof n){if(this._isBinary(n)){var i=new y.Mesh("stlmesh",t);return this._parseBinary(i,n),o&&o.push(i),!0}n=(new TextDecoder).decode(new Uint8Array(n))}for(;a=this.solidPattern.exec(n);){var s=a[1],l=a[3];if(l&&s!=l)return y.Tools.Error("Error in STL, solid name != endsolid name"),!1;if(e&&s)if(e instanceof Array){if(!e.indexOf(s))continue}else if(s!==e)continue;s=s||"stlmesh",i=new y.Mesh(s,t),this._parseASCII(i,a[2]),o&&o.push(i)}return!0},e.prototype.load=function(e,t,n){return this.importMesh(null,e,t,n,null)},e.prototype.loadAssetContainer=function(e,t,n){var r=new y.AssetContainer(e);return e._blockEntityCollection=!0,this.importMesh(null,e,t,n,r.meshes),e._blockEntityCollection=!1,r},e.prototype._isBinary=function(e){var t=new DataView(e);if(t.byteLength<=80)return!1;if(84+50*t.getUint32(80,!0)===t.byteLength)return!0;for(var n=[115,111,108,105,100],r=0;r<5;r++)if(t.getUint8(r)!==n[r])return!0;return!1},e.prototype._parseBinary=function(t,n){for(var r=new DataView(n),o=r.getUint32(80,!0),a=0,i=new Float32Array(3*o*3),s=new Float32Array(3*o*3),l=new Uint32Array(3*o),c=0,u=0;u<o;u++){for(var d=84+50*u,h=r.getFloat32(d,!0),f=r.getFloat32(d+4,!0),p=r.getFloat32(d+8,!0),_=1;_<=3;_++){var m=d+12*_;i[a]=r.getFloat32(m,!0),s[a]=h,e.DO_NOT_ALTER_FILE_COORDINATES?(i[a+1]=r.getFloat32(m+4,!0),i[a+2]=r.getFloat32(m+8,!0),s[a+1]=f,s[a+2]=p):(i[a+2]=r.getFloat32(m+4,!0),i[a+1]=r.getFloat32(m+8,!0),s[a+2]=f,s[a+1]=p),a+=3}e.DO_NOT_ALTER_FILE_COORDINATES?(l[c]=c,l[c+1]=c+2,l[c+2]=c+1,c+=3):(l[c]=c++,l[c]=c++,l[c]=c++)}t.setVerticesData(y.VertexBuffer.PositionKind,i),t.setVerticesData(y.VertexBuffer.NormalKind,s),t.setIndices(l),t.computeWorldMatrix(!0)},e.prototype._parseASCII=function(t,n){for(var r,o=[],a=[],i=[],s=0;r=this.facetsPattern.exec(n);){var l=r[1],c=this.normalPattern.exec(l);if(this.normalPattern.lastIndex=0,c){for(var u=[Number(c[1]),Number(c[5]),Number(c[3])],d=void 0;d=this.vertexPattern.exec(l);)e.DO_NOT_ALTER_FILE_COORDINATES?(o.push(Number(d[1]),Number(d[3]),Number(d[5])),a.push(u[0],u[2],u[1])):(o.push(Number(d[1]),Number(d[5]),Number(d[3])),a.push(u[0],u[1],u[2]));e.DO_NOT_ALTER_FILE_COORDINATES?(i.push(s,s+2,s+1),s+=3):i.push(s++,s++,s++),this.vertexPattern.lastIndex=0}}this.facetsPattern.lastIndex=0,t.setVerticesData(y.VertexBuffer.PositionKind,o),t.setVerticesData(y.VertexBuffer.NormalKind,a),t.setIndices(i),t.computeWorldMatrix(!0)},e.DO_NOT_ALTER_FILE_COORDINATES=!1,e}();(0,y.registerSceneLoaderPlugin)(new Zt);var Jt=function(){function e(){this.name="splat",this.extensions={".splat":{isBinary:!0},".ply":{isBinary:!0}}}return e.prototype.createPlugin=function(){return new e},e.prototype.canDirectLoad=function(){return!1},e.prototype.importMeshAsync=function(e,t,n,r,o,a){return i=this,s=void 0,c=function(){var e;return function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)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 i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}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(n){switch(n.label){case 0:return[4,(e=new y.GaussianSplattingMesh("GaussianSplatting",null,t)).loadFileAsync(r+(null!=a?a:""))];case 1:return n.sent(),[2,{meshes:[e],particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]}]}}))},new((l=void 0)||(l=Promise))((function(e,t){function n(e){try{o(c.next(e))}catch(e){t(e)}}function r(e){try{o(c.throw(e))}catch(e){t(e)}}function o(t){var o;t.done?e(t.value):(o=t.value,o instanceof l?o:new l((function(e){e(o)}))).then(n,r)}o((c=c.apply(i,s||[])).next())}));var i,s,l,c},e.prototype.loadAsync=function(e,t,n){return new y.GaussianSplattingMesh("GaussianSplatting",null,e).loadDataAsync(y.GaussianSplattingMesh.ConvertPLYToSplat(t))},e.prototype.loadAssetContainerAsync=function(e,t,n){throw new Error("loadAssetContainerAsync not implemented for Gaussian Splatting loading")},e}();(0,y.registerSceneLoaderPlugin)(new Jt);var Qt=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==Qt){for(var $t in Qt.BABYLON=Qt.BABYLON||{},i)Qt.BABYLON[$t]=i[$t];for(var $t in a)Qt.BABYLON[$t]=a[$t]}var en=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==en)for(var tn in en.BABYLON=en.BABYLON||{},en.BABYLON.GLTF1=en.BABYLON.GLTF1||{},s)en.BABYLON.GLTF1[tn]=s[tn];var nn=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==nn){nn.BABYLON=nn.BABYLON||{};var rn=nn.BABYLON;rn.GLTF2=rn.GLTF2||{},rn.GLTF2.Loader=rn.GLTF2.Loader||{},rn.GLTF2.Loader.Extensions=rn.GLTF2.Loader.Extensions||{};var on=[];for(var an in c)rn.GLTF2.Loader.Extensions[an]=c[an],on.push(an);for(var an in l)rn.GLTF2.Loader[an]=l[an],on.push(an);for(var an in u)on.indexOf(an)>-1||(rn.GLTF2[an]=u[an])}var sn=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==sn)for(var ln in d)sn.BABYLON[ln]||(sn.BABYLON[ln]=d[ln]);var cn=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==cn)for(var un in h)cn.BABYLON[un]||(cn.BABYLON[un]=h[un]);const dn=f;return o.default})()));
2
2
  //# sourceMappingURL=babylonjs.loaders.min.js.map