babylonjs-loaders 6.43.0 → 6.44.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.
- package/babylon.glTF1FileLoader.min.js +1 -1
- package/babylon.glTF1FileLoader.min.js.map +1 -1
- package/babylon.glTF2FileLoader.min.js +1 -1
- package/babylon.glTF2FileLoader.min.js.map +1 -1
- package/babylon.glTFFileLoader.min.js +1 -1
- package/babylon.glTFFileLoader.min.js.map +1 -1
- package/babylon.objFileLoader.min.js +1 -1
- package/babylon.objFileLoader.min.js.map +1 -1
- package/babylon.stlFileLoader.min.js +1 -1
- package/babylon.stlFileLoader.min.js.map +1 -1
- package/babylonjs.loaders.min.js +1 -1
- package/babylonjs.loaders.min.js.map +1 -1
- package/package.json +3 -3
|
@@ -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={520:t=>{t.exports=e}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{n.d(o,{default:()=>re});var e={};n.r(e),n.d(e,{GLTFValidation:()=>d});var t={};n.r(t),n.d(t,{GLTFFileLoader:()=>p,GLTFLoaderAnimationStartMode:()=>c,GLTFLoaderCoordinateSystemMode:()=>u,GLTFLoaderState:()=>f});var r={};n.r(r),n.d(r,{EBlendingFunction:()=>L,EComponentType:()=>b,ECullingType:()=>O,EParameterType:()=>_,EShaderType:()=>y,ETextureFilterType:()=>g,ETextureFormat:()=>E,ETextureWrapMode:()=>A,GLTFBinaryExtension:()=>z,GLTFLoader:()=>Q,GLTFLoaderBase:()=>K,GLTFLoaderExtension:()=>X,GLTFMaterialsCommonExtension:()=>$,GLTFUtils:()=>M});var a={};n.r(a),n.d(a,{GLTF1:()=>r,GLTFFileLoader:()=>p,GLTFLoaderAnimationStartMode:()=>c,GLTFLoaderCoordinateSystemMode:()=>u,GLTFLoaderState:()=>f,GLTFValidation:()=>d});var i=n(520);function s(e,t,r,n){var o={externalResourceFunction:n};return r&&(o.uri="file:"===t?r:t+r),ArrayBuffer.isView(e)?GLTFValidator.validateBytes(e,o):GLTFValidator.validateString(e,o)}function l(){var e=[];onmessage=function(t){var r=t.data;switch(r.id){case"init":importScripts(r.url);break;case"validate":s(r.data,r.rootUrl,r.fileName,(function(t){return new Promise((function(r,n){var o=e.length;e.push({resolve:r,reject:n}),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[r.index].resolve(r.value);break;case"getExternalResource.reject":e[r.index].reject(r.reason)}}}var u,c,f,d=function(){function e(){}return e.ValidateAsync=function(e,t,r,n){var o=this;return"function"==typeof Worker?new Promise((function(a,u){var c="".concat(s,"(").concat(l,")()"),f=URL.createObjectURL(new Blob([c],{type:"application/javascript"})),d=new Worker(f),h=function(e){d.removeEventListener("error",h),d.removeEventListener("message",p),u(e)},p=function(e){var t=e.data;switch(t.id){case"getExternalResource":n(t.uri).then((function(e){d.postMessage({id:"getExternalResource.resolve",index:t.index,value:e},[e])}),(function(e){d.postMessage({id:"getExternalResource.reject",index:t.index,reason:e})}));break;case"validate.resolve":d.removeEventListener("error",h),d.removeEventListener("message",p),a(t.value),d.terminate();break;case"validate.reject":d.removeEventListener("error",h),d.removeEventListener("message",p),u(t.reason),d.terminate()}};if(d.addEventListener("error",h),d.addEventListener("message",p),d.postMessage({id:"init",url:i.Tools.GetBabylonScriptURL(o.Configuration.url)}),ArrayBuffer.isView(e)){var m=e.slice();d.postMessage({id:"validate",data:m,rootUrl:t,fileName:r},[m.buffer])}else d.postMessage({id:"validate",data:e,rootUrl:t,fileName:r})})):(this._LoadScriptPromise||(this._LoadScriptPromise=i.Tools.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then((function(){return s(e,t,r,n)})))},e.Configuration={url:"".concat(i.Tools._DefaultCdnUrl,"/gltf_validator.js")},e}();function h(e,t,r){try{return Promise.resolve(new Uint8Array(e,t,r))}catch(e){return Promise.reject(e)}}!function(e){e[e.AUTO=0]="AUTO",e[e.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED"}(u||(u={})),function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.ALL=2]="ALL"}(c||(c={})),function(e){e[e.LOADING=0]="LOADING",e[e.READY=1]="READY",e[e.COMPLETE=2]="COMPLETE"}(f||(f={}));var p=function(){function e(){this.onParsedObservable=new i.Observable,this.coordinateSystemMode=u.AUTO,this.animationStartMode=c.FIRST,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.onMeshLoadedObservable=new i.Observable,this.onSkinLoadedObservable=new i.Observable,this.onTextureLoadedObservable=new i.Observable,this.onMaterialLoadedObservable=new i.Observable,this.onCameraLoadedObservable=new i.Observable,this.onCompleteObservable=new i.Observable,this.onErrorObservable=new i.Observable,this.onDisposeObservable=new i.Observable,this.onExtensionLoadedObservable=new i.Observable,this.validate=!1,this.onValidatedObservable=new i.Observable,this._loader=null,this._state=null,this._requests=new Array,this.name="gltf",this.extensions={".gltf":{isBinary:!1},".glb":{isBinary:!0}},this.onLoaderStateChangedObservable=new i.Observable,this._logIndentLevel=0,this._loggingEnabled=!1,this._log=this._logDisabled,this._capturePerformanceCounters=!1,this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled}return Object.defineProperty(e.prototype,"onParsed",{set:function(e){this._onParsedObserver&&this.onParsedObservable.remove(this._onParsedObserver),this._onParsedObserver=this.onParsedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMeshLoaded",{set:function(e){this._onMeshLoadedObserver&&this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver),this._onMeshLoadedObserver=this.onMeshLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onTextureLoaded",{set:function(e){this._onTextureLoadedObserver&&this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver),this._onTextureLoadedObserver=this.onTextureLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMaterialLoaded",{set:function(e){this._onMaterialLoadedObserver&&this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver),this._onMaterialLoadedObserver=this.onMaterialLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onCameraLoaded",{set:function(e){this._onCameraLoadedObserver&&this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver),this._onCameraLoadedObserver=this.onCameraLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onComplete",{set:function(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{set:function(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDispose",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onExtensionLoaded",{set:function(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.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(e.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(e.prototype,"onValidated",{set:function(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)},enumerable:!1,configurable:!0}),e.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()},e.prototype.loadFile=function(e,t,r,n,o,a,s,l){var u=this;if(ArrayBuffer.isView(t))return this._loadBinary(e,t,r,n,s,l),null;this._progressCallback=o;var c=t.name||i.Tools.GetFilename(t);if(a){if(this.useRangeRequests){this.validate&&i.Logger.Warn("glTF validation is not supported when range requests are enabled");var f={abort:function(){},onCompleteObservable:new i.Observable},d={readAsync:function(r,n){return new Promise((function(o,a){u._loadFile(e,t,(function(e){o(new Uint8Array(e))}),!0,(function(e){a(e)}),(function(e){e.setRequestHeader("Range","bytes=".concat(r,"-").concat(r+n-1))}))}))},byteLength:0};return this._unpackBinaryAsync(new i.DataReader(d)).then((function(e){f.onCompleteObservable.notifyObservers(f),n(e)}),s?function(e){return s(void 0,e)}:void 0),f}return this._loadFile(e,t,(function(t){u._validate(e,new Uint8Array(t,0,t.byteLength),r,c),u._unpackBinaryAsync(new i.DataReader({readAsync:function(e,r){return h(t,e,r)},byteLength:t.byteLength})).then((function(e){n(e)}),s?function(e){return s(void 0,e)}:void 0)}),!0,s)}return this._loadFile(e,t,(function(t){u._validate(e,t,r,c),n({json:u._parseJson(t)})}),!1,s)},e.prototype._loadBinary=function(e,t,r,n,o,a){this._validate(e,new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r,a),this._unpackBinaryAsync(new i.DataReader({readAsync:function(e,r){return function(e,t,r){try{if(t<0||t>=e.byteLength)throw new RangeError("Offset is out of range.");if(t+r>e.byteLength)throw new RangeError("Length is out of range.");return Promise.resolve(new Uint8Array(e.buffer,e.byteOffset+t,r))}catch(e){return Promise.reject(e)}}(t,e,r)},byteLength:t.byteLength})).then((function(e){n(e)}),o?function(e){return o(void 0,e)}:void 0)},e.prototype.importMeshAsync=function(e,t,r,n,o,a){var i=this;return Promise.resolve().then((function(){return i.onParsedObservable.notifyObservers(r),i.onParsedObservable.clear(),i._log("Loading ".concat(a||"")),i._loader=i._getLoader(r),i._loader.importMeshAsync(e,t,null,r,n,o,a)}))},e.prototype.loadAsync=function(e,t,r,n,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,r,n,o)}))},e.prototype.loadAssetContainerAsync=function(e,t,r,n,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 s=new i.AssetContainer(e),l=[];a.onMaterialLoadedObservable.add((function(e){l.push(e)}));var u=[];a.onTextureLoadedObservable.add((function(e){u.push(e)}));var c=[];a.onCameraLoadedObservable.add((function(e){c.push(e)}));var f=[];return a.onMeshLoadedObservable.add((function(e){e.morphTargetManager&&f.push(e.morphTargetManager)})),a._loader.importMeshAsync(null,e,s,t,r,n,o).then((function(e){return Array.prototype.push.apply(s.geometries,e.geometries),Array.prototype.push.apply(s.meshes,e.meshes),Array.prototype.push.apply(s.particleSystems,e.particleSystems),Array.prototype.push.apply(s.skeletons,e.skeletons),Array.prototype.push.apply(s.animationGroups,e.animationGroups),Array.prototype.push.apply(s.materials,l),Array.prototype.push.apply(s.textures,u),Array.prototype.push.apply(s.lights,e.lights),Array.prototype.push.apply(s.transformNodes,e.transformNodes),Array.prototype.push.apply(s.cameras,c),Array.prototype.push.apply(s.morphTargetManagers,f),s}))}))},e.prototype.canDirectLoad=function(t){return-1!==t.indexOf("asset")&&-1!==t.indexOf("version")||t.startsWith("data:base64,"+e._MagicBase64Encoded)||t.startsWith("data:;base64,"+e._MagicBase64Encoded)||t.startsWith("data:application/octet-stream;base64,"+e._MagicBase64Encoded)||t.startsWith("data:model/gltf-binary;base64,"+e._MagicBase64Encoded)},e.prototype.directLoad=function(t,r){if(r.startsWith("base64,"+e._MagicBase64Encoded)||r.startsWith(";base64,"+e._MagicBase64Encoded)||r.startsWith("application/octet-stream;base64,"+e._MagicBase64Encoded)||r.startsWith("model/gltf-binary;base64,"+e._MagicBase64Encoded)){var n=(0,i.DecodeBase64UrlToBinary)(r);return this._validate(t,new Uint8Array(n,0,n.byteLength)),this._unpackBinaryAsync(new i.DataReader({readAsync:function(e,t){return h(n,e,t)},byteLength:n.byteLength}))}return this._validate(t,r),Promise.resolve({json:this._parseJson(r)})},e.prototype.createPlugin=function(){return new e},Object.defineProperty(e.prototype,"loaderState",{get:function(){return this._state},enumerable:!1,configurable:!0}),e.prototype.whenCompleteAsync=function(){var e=this;return new Promise((function(t,r){e.onCompleteObservable.addOnce((function(){t()})),e.onErrorObservable.addOnce((function(e){r(e)}))}))},e.prototype._setState=function(e){this._state!==e&&(this._state=e,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(f[this._state]))},e.prototype._loadFile=function(e,t,r,n,o,a){var i=this,s=e._loadFile(t,r,(function(e){i._onProgress(e,s)}),!0,n,o,a);return s.onCompleteObservable.add((function(e){i._requests.splice(i._requests.indexOf(e),1)})),this._requests.push(s),s},e.prototype._onProgress=function(e,t){if(this._progressCallback){t._lengthComputable=e.lengthComputable,t._loaded=e.loaded,t._total=e.total;for(var r=!0,n=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;r=r&&s._lengthComputable,n+=s._loaded,o+=s._total}this._progressCallback({lengthComputable:r,loaded:n,total:r?o:0})}},e.prototype._validate=function(e,t,r,n){var o=this;void 0===r&&(r=""),void 0===n&&(n=""),this.validate&&(this._startPerformanceCounter("Validate JSON"),d.ValidateAsync(t,r,n,(function(t){return o.preprocessUrlAsync(r+t).then((function(t){return e._loadFileAsync(t,void 0,!0,!0).then((function(e){return new Uint8Array(e,0,e.byteLength)}))}))})).then((function(e){o._endPerformanceCounter("Validate JSON"),o.onValidatedObservable.notifyObservers(e),o.onValidatedObservable.clear()}),(function(e){o._endPerformanceCounter("Validate JSON"),i.Tools.Warn("Failed to validate: ".concat(e.message)),o.onValidatedObservable.clear()})))},e.prototype._getLoader=function(t){var r=t.json.asset||{};this._log("Asset version: ".concat(r.version)),r.minVersion&&this._log("Asset minimum version: ".concat(r.minVersion)),r.generator&&this._log("Asset generator: ".concat(r.generator));var n=e._parseVersion(r.version);if(!n)throw new Error("Invalid version: "+r.version);if(void 0!==r.minVersion){var o=e._parseVersion(r.minVersion);if(!o)throw new Error("Invalid minimum version: "+r.minVersion);if(e._compareVersion(o,{major:2,minor:0})>0)throw new Error("Incompatible minimum version: "+r.minVersion)}var a={1:e._CreateGLTF1Loader,2:e._CreateGLTF2Loader}[n.major];if(!a)throw new Error("Unsupported version: "+r.version);return a(this)},e.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},e.prototype._unpackBinaryAsync=function(e){var t=this;return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then((function(){var r=e.readUint32();if(1179937895!==r)throw new i.RuntimeError("Unexpected magic: "+r,i.ErrorCodes.GLTFLoaderUnexpectedMagicError);var n=e.readUint32();t.loggingEnabled&&t._log("Binary version: ".concat(n));var o,a=e.readUint32();switch(t.useRangeRequests||a===e.buffer.byteLength||i.Logger.Warn("Length in header does not match actual data length: ".concat(a," != ").concat(e.buffer.byteLength)),n){case 1:o=t._unpackBinaryV1Async(e,a);break;case 2:o=t._unpackBinaryV2Async(e,a);break;default:throw new Error("Unsupported version: "+n)}return t._endPerformanceCounter("Unpack Binary"),o}))},e.prototype._unpackBinaryV1Async=function(e,t){var r=e.readUint32(),n=e.readUint32();if(0!==n)throw new Error("Unexpected content format: ".concat(n));var o=t-e.byteOffset,a={json:this._parseJson(e.readString(r)),bin:null};if(0!==o){var i=e.byteOffset;a.bin={readAsync:function(t,r){return e.buffer.readAsync(i+t,r)},byteLength:o}}return Promise.resolve(a)},e.prototype._unpackBinaryV2Async=function(e,t){var r=this,n=1313821514,o=e.readUint32();if(e.readUint32()!==n)throw new Error("First chunk format is not JSON");return e.byteOffset+o===t?e.loadAsync(o).then((function(){return{json:r._parseJson(e.readString(o)),bin:null}})):e.loadAsync(o+8).then((function(){var a={json:r._parseJson(e.readString(o)),bin:null},i=function(){var r=e.readUint32();switch(e.readUint32()){case n:throw new Error("Unexpected JSON chunk");case 5130562:var o=e.byteOffset;a.bin={readAsync:function(t,r){return e.buffer.readAsync(o+t,r)},byteLength:r},e.skipBytes(r);break;default:e.skipBytes(r)}return e.byteOffset!==t?e.loadAsync(8).then(i):Promise.resolve(a)};return i()}))},e._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},e._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},e.prototype._logOpen=function(e){this._log(e),this._logIndentLevel++},e.prototype._logClose=function(){--this._logIndentLevel},e.prototype._logEnabled=function(t){var r=e._logSpaces.substr(0,2*this._logIndentLevel);i.Logger.Log("".concat(r).concat(t))},e.prototype._logDisabled=function(e){},e.prototype._startPerformanceCounterEnabled=function(e){i.Tools.StartPerformanceCounter(e)},e.prototype._startPerformanceCounterDisabled=function(e){},e.prototype._endPerformanceCounterEnabled=function(e){i.Tools.EndPerformanceCounter(e)},e.prototype._endPerformanceCounterDisabled=function(e){},e.IncrementalLoading=!0,e.HomogeneousCoordinates=!1,e._MagicBase64Encoded="Z2xURg",e._logSpaces=" ",e}();i.SceneLoader&&i.SceneLoader.RegisterPlugin(new p);var m=void 0!==n.g?n.g:"undefined"!=typeof window?window:void 0;if(void 0!==m){for(var v in m.BABYLON=m.BABYLON||{},t)m.BABYLON[v]=t[v];for(var v in e)m.BABYLON[v]=e[v]}var b,y,_,A,g,E,O,L,T=function(e,t){return T=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},T(e,t)};function N(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}T(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError,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"}(b||(b={})),function(e){e[e.FRAGMENT=35632]="FRAGMENT",e[e.VERTEX=35633]="VERTEX"}(y||(y={})),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"}(_||(_={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.REPEAT=10497]="REPEAT"}(A||(A={})),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"}(g||(g={})),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"}(E||(E={})),function(e){e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK"}(O||(O={})),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"}(L||(L={}));var C,M=function(){function e(){}return e.SetMatrix=function(e,t,r,n,o){var a=null;if("MODEL"===r.semantic?a=t.getWorldMatrix():"PROJECTION"===r.semantic?a=e.getProjectionMatrix():"VIEW"===r.semantic?a=e.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===r.semantic?a=i.Matrix.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()):"MODELVIEW"===r.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()):"MODELVIEWPROJECTION"===r.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()):"MODELINVERSE"===r.semantic?a=t.getWorldMatrix().invert():"VIEWINVERSE"===r.semantic?a=e.getViewMatrix().invert():"PROJECTIONINVERSE"===r.semantic?a=e.getProjectionMatrix().invert():"MODELVIEWINVERSE"===r.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===r.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===r.semantic&&(a=i.Matrix.Transpose(t.getWorldMatrix().invert())),a)switch(r.type){case _.FLOAT_MAT2:o.setMatrix2x2(n,i.Matrix.GetAsMatrix2x2(a));break;case _.FLOAT_MAT3:o.setMatrix3x3(n,i.Matrix.GetAsMatrix3x3(a));break;case _.FLOAT_MAT4:o.setMatrix(n,a)}},e.SetUniform=function(e,t,r,n){switch(n){case _.FLOAT:return e.setFloat(t,r),!0;case _.FLOAT_VEC2:return e.setVector2(t,i.Vector2.FromArray(r)),!0;case _.FLOAT_VEC3:return e.setVector3(t,i.Vector3.FromArray(r)),!0;case _.FLOAT_VEC4:return e.setVector4(t,i.Vector4.FromArray(r)),!0;default:return!1}},e.GetWrapMode=function(e){switch(e){case A.CLAMP_TO_EDGE:return i.Texture.CLAMP_ADDRESSMODE;case A.MIRRORED_REPEAT:return i.Texture.MIRROR_ADDRESSMODE;case A.REPEAT:default:return i.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 g.LINEAR:case g.LINEAR_MIPMAP_NEAREST:case g.LINEAR_MIPMAP_LINEAR:return i.Texture.TRILINEAR_SAMPLINGMODE;case g.NEAREST:case g.NEAREST_MIPMAP_NEAREST:return i.Texture.NEAREST_SAMPLINGMODE;default:return i.Texture.BILINEAR_SAMPLINGMODE}},e.GetBufferFromBufferView=function(e,t,r,n,o){r=t.byteOffset+r;var a=e.loadedBufferViews[t.buffer];if(r+n>a.byteLength)throw new Error("Buffer access is out of range");var i=a.buffer;switch(r+=a.byteOffset,o){case b.BYTE:return new Int8Array(i,r,n);case b.UNSIGNED_BYTE:return new Uint8Array(i,r,n);case b.SHORT:return new Int16Array(i,r,n);case b.UNSIGNED_SHORT:return new Uint16Array(i,r,n);default:return new Float32Array(i,r,n)}},e.GetBufferFromAccessor=function(t,r){var n=t.bufferViews[r.bufferView],o=r.count*e.GetByteStrideFromType(r);return e.GetBufferFromBufferView(t,n,r.byteOffset,o,r.componentType)},e.DecodeBufferToText=function(e){for(var t="",r=e.byteLength,n=0;n<r;++n)t+=String.fromCharCode(e[n]);return t},e.GetDefaultMaterial=function(t){if(!e._DefaultMaterial){i.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"),i.Effect.ShadersStore.GLTFDefaultMaterialPixelShader=["precision highp float;","","uniform vec4 u_emission;","","void main(void)","{"," gl_FragColor = u_emission;","}"].join("\n");var r={attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:new Array,needAlphaBlending:!1};e._DefaultMaterial=new i.ShaderMaterial("GLTFDefaultMaterial",t,{vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},r),e._DefaultMaterial.setColor4("u_emission",new i.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"}(C||(C={}));var S=function(){function e(e){this._pos=0,this.currentToken=C.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 C.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=C.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=C.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}(),x=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],R=["world","view","projection","worldView","worldViewProjection","mBones"],P=["translation","rotation","scale"],w=["position","rotationQuaternion","scaling"],I=function(e,t,r){for(var n in e){var o=e[n];r[t][n]=o}},B=function(e){if(e)for(var t=0;t<e.length/2;t++)e[2*t+1]=1-e[2*t+1]},F=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},V=function(e){var t=null;if(e.translation||e.rotation||e.scale){var r=i.Vector3.FromArray(e.scale||[1,1,1]),n=i.Quaternion.FromArray(e.rotation||[0,0,0,1]),o=i.Vector3.FromArray(e.translation||[0,0,0]);t=i.Matrix.Compose(r,n,o)}else t=i.Matrix.FromArray(e.matrix);return t},D=function(e,t,r,n){for(var o=0;o<n.bones.length;o++)if(n.bones[o].name===r)return n.bones[o];var a=e.nodes;for(var s in a){var l=a[s];if(l.jointName){var u=l.children;for(o=0;o<u.length;o++){var c=e.nodes[u[o]];if(c.jointName&&c.jointName===r){var f=V(l),d=new i.Bone(l.name||"",n,D(e,t,l.jointName,n),f);return d.id=s,d}}}}return null},U=function(e,t){for(var r=0;r<e.length;r++)for(var n=e[r],o=0;o<n.node.children.length;o++)if(n.node.children[o]===t)return n.bone;return null},k=function(e,t){var r=e.nodes,n=r[t];if(n)return{node:n,id:t};for(var o in r)if((n=r[o]).jointName===t)return{node:n,id:o};return null},G=function(e,t){for(var r=0;r<e.jointNames.length;r++)if(e.jointNames[r]===t)return!0;return!1},j=function(e,t,r,n,o){if(o||(e.scene._blockEntityCollection=!!e.assetContainer,(o=new i.Mesh(t.name||"",e.scene))._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,o.id=n),!t.babylonNode)return o;for(var a,s=[],l=null,u=[],c=[],f=[],d=[],h=0;h<r.length;h++){var m=r[h];if(R=e.meshes[m])for(var v=0;v<R.primitives.length;v++){var b=new i.VertexData,y=R.primitives[v];y.mode;var _=y.attributes,A=null,g=null;for(var E in _)if(A=e.accessors[_[E]],g=M.GetBufferFromAccessor(e,A),"NORMAL"===E)b.normals=new Float32Array(g.length),b.normals.set(g);else if("POSITION"===E){if(p.HomogeneousCoordinates){b.positions=new Float32Array(g.length-g.length/4);for(var O=0;O<g.length;O+=4)b.positions[O]=g[O],b.positions[O+1]=g[O+1],b.positions[O+2]=g[O+2]}else b.positions=new Float32Array(g.length),b.positions.set(g);c.push(b.positions.length)}else if(-1!==E.indexOf("TEXCOORD_")){var L=Number(E.split("_")[1]),T=i.VertexBuffer.UVKind+(0===L?"":L+1),N=new Float32Array(g.length);N.set(g),B(N),b.set(N,T)}else"JOINT"===E?(b.matricesIndices=new Float32Array(g.length),b.matricesIndices.set(g)):"WEIGHT"===E?(b.matricesWeights=new Float32Array(g.length),b.matricesWeights.set(g)):"COLOR"===E&&(b.colors=new Float32Array(g.length),b.colors.set(g));if(A=e.accessors[y.indices])g=M.GetBufferFromAccessor(e,A),b.indices=new Int32Array(g.length),b.indices.set(g),d.push(b.indices.length);else{var C=[];for(O=0;O<b.positions.length/3;O++)C.push(O);b.indices=new Int32Array(C),d.push(b.indices.length)}l?l.merge(b):l=b;var S=e.scene.getMaterialById(y.material);s.push(null===S?M.GetDefaultMaterial(e.scene):S),u.push(0===u.length?0:u[u.length-1]+c[c.length-2]),f.push(0===f.length?0:f[f.length-1]+d[d.length-2])}}e.scene._blockEntityCollection=!!e.assetContainer,s.length>1?(a=new i.MultiMaterial("multimat"+n,e.scene)).subMaterials=s:a=new i.StandardMaterial("multimat"+n,e.scene),1===s.length&&(a=s[0]),a._parentContainer=e.assetContainer,o.material||(o.material=a),new i.Geometry(n,e.scene,l,!1,o),o.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,o.subMeshes=[];var x=0;for(h=0;h<r.length;h++){var R;if(m=r[h],R=e.meshes[m])for(v=0;v<R.primitives.length;v++)R.primitives[v].mode,i.SubMesh.AddToMesh(x,u[x],c[x],f[x],d[x],o,o,!0),x++}return o},H=function(e,t,r,n){e.position&&(e.position=t),(e.rotationQuaternion||e.rotation)&&(e.rotationQuaternion=r),e.scaling&&(e.scaling=n)},W=function(e,t,r){var n=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=j(e,t,t.meshes,r,t.babylonNode)).skeleton=e.scene.getLastSkeletonById(t.skin),null===a.skeleton&&(a.skeleton=function(e,t,r,n){if(n||(n=new i.Skeleton(t.name||"","",e.scene)),!t.babylonSkeleton)return n;var o=[],a=[];!function(e,t,r,n){for(var o in e.nodes){var a=e.nodes[o],s=o;if(a.jointName&&!G(r,a.jointName)){var l=V(a),u=new i.Bone(a.name||"",t,null,l);u.id=s,n.push({bone:u,node:a,id:s})}}for(var c=0;c<n.length;c++)for(var f=n[c],d=f.node.children,h=0;h<d.length;h++){for(var p=null,m=0;m<n.length;m++)if(n[m].id===d[h]){p=n[m];break}p&&(p.bone._parent=f.bone,f.bone.children.push(p.bone))}}(e,n,t,o),n.bones=[];for(var s=0;s<t.jointNames.length;s++)if(A=k(e,t.jointNames[s])){var l=A.node;if(l){var u=A.id,c=e.scene.getBoneById(u);if(c)n.bones.push(c);else{for(var f=!1,d=null,h=0;h<s;h++){var p=k(e,t.jointNames[h]);if(p){var m=p.node;if(m){var v=m.children;if(v){f=!1;for(var b=0;b<v.length;b++)if(v[b]===u){d=D(e,t,t.jointNames[h],n),f=!0;break}if(f)break}}else i.Tools.Warn("Joint named "+t.jointNames[h]+" does not exist when looking for parent")}}var y=V(l);!d&&o.length>0&&(d=U(o,u))&&-1===a.indexOf(d)&&a.push(d),new i.Bone(l.jointName||"",n,d,y).id=u}}else i.Tools.Warn("Joint named "+t.jointNames[s]+" does not exist")}var _=n.bones;for(n.bones=[],s=0;s<t.jointNames.length;s++){var A;if(A=k(e,t.jointNames[s]))for(h=0;h<_.length;h++)if(_[h].id===A.id){n.bones.push(_[h]);break}}for(n.prepare(),s=0;s<a.length;s++)n.bones.push(a[s]);return n}(e,o,0,o.babylonSkeleton),o.babylonSkeleton||(o.babylonSkeleton=a.skeleton)),n=a}}else if(t.meshes){var a;n=a=j(e,t,t.mesh?[t.mesh]:t.meshes,r,t.babylonNode)}else if(!t.light||t.babylonNode||e.importOnlyMeshes){if(t.camera&&!t.babylonNode&&!e.importOnlyMeshes){var s=e.cameras[t.camera];if(s){if(e.scene._blockEntityCollection=!!e.assetContainer,"orthographic"===s.type){var l=new i.FreeCamera(t.camera,i.Vector3.Zero(),e.scene,!1);l.name=t.name||"",l.mode=i.Camera.ORTHOGRAPHIC_CAMERA,l.attachControl(),n=l,l._parentContainer=e.assetContainer}else if("perspective"===s.type){var u=s[s.type],c=new i.FreeCamera(t.camera,i.Vector3.Zero(),e.scene,!1);c.name=t.name||"",c.attachControl(),u.aspectRatio||(u.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),u.znear&&u.zfar&&(c.maxZ=u.zfar,c.minZ=u.znear),n=c,c._parentContainer=e.assetContainer}e.scene._blockEntityCollection=!1}}}else{var f=e.lights[t.light];if(f)if("ambient"===f.type){var d=f[f.type],h=new i.HemisphericLight(t.light,i.Vector3.Zero(),e.scene);h.name=t.name||"",d.color&&(h.diffuse=i.Color3.FromArray(d.color)),n=h}else if("directional"===f.type){var p=f[f.type],m=new i.DirectionalLight(t.light,i.Vector3.Zero(),e.scene);m.name=t.name||"",p.color&&(m.diffuse=i.Color3.FromArray(p.color)),n=m}else if("point"===f.type){var v=f[f.type],b=new i.PointLight(t.light,i.Vector3.Zero(),e.scene);b.name=t.name||"",v.color&&(b.diffuse=i.Color3.FromArray(v.color)),n=b}else if("spot"===f.type){var y=f[f.type],_=new i.SpotLight(t.light,i.Vector3.Zero(),i.Vector3.Zero(),0,0,e.scene);_.name=t.name||"",y.color&&(_.diffuse=i.Color3.FromArray(y.color)),y.fallOfAngle&&(_.angle=y.fallOfAngle),y.fallOffExponent&&(_.exponent=y.fallOffExponent),n=_}}if(!t.jointName){if(t.babylonNode)return t.babylonNode;if(null===n){e.scene._blockEntityCollection=!!e.assetContainer;var A=new i.Mesh(t.name||"",e.scene);A._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,t.babylonNode=A,n=A}}if(null!==n){if(t.matrix&&n instanceof i.Mesh)!function(e,t){if(t.matrix){var r=new i.Vector3(0,0,0),n=new i.Quaternion,o=new i.Vector3(0,0,0);i.Matrix.FromArray(t.matrix).decompose(o,n,r),H(e,r,n,o)}else t.translation&&t.rotation&&t.scale&&H(e,i.Vector3.FromArray(t.translation),i.Quaternion.FromArray(t.rotation),i.Vector3.FromArray(t.scale));e.computeWorldMatrix(!0)}(n,t);else{var g=t.translation||[0,0,0],E=t.rotation||[0,0,0,1],O=t.scale||[1,1,1];H(n,i.Vector3.FromArray(g),i.Quaternion.FromArray(E),i.Vector3.FromArray(O))}n.updateCache(!0),t.babylonNode=n}return n},Y=function(e,t,r,n){void 0===n&&(n=!1);var o=e.nodes[t],a=null;if(n=!(e.importOnlyMeshes&&!n&&e.importMeshesNames)||-1!==e.importMeshesNames.indexOf(o.name||"")||0===e.importMeshesNames.length,!o.jointName&&n&&null!==(a=W(e,o,t))&&(a.id=t,a.parent=r),o.children)for(var i=0;i<o.children.length;i++)Y(e,o.children[i],a,n)},J=function(e){var t=e.currentScene;if(t)for(var r=0;r<t.nodes.length;r++)Y(e,t.nodes[r],null);else for(var n in e.scenes)for(t=e.scenes[n],r=0;r<t.nodes.length;r++)Y(e,t.nodes[r],null);for(function(e){for(var t in e.animations){var r=e.animations[t];if(r.channels&&r.samplers)for(var n=null,o=0;o<r.channels.length;o++){var a=r.channels[o],s=r.samplers[a.sampler];if(s){var l=null,u=null;r.parameters?(l=r.parameters[s.input],u=r.parameters[s.output]):(l=s.input,u=s.output);var c=M.GetBufferFromAccessor(e,e.accessors[l]),f=M.GetBufferFromAccessor(e,e.accessors[u]),d=a.target.id,h=e.scene.getNodeById(d);if(null===h&&(h=e.scene.getNodeByName(d)),null!==h){var p=h instanceof i.Bone,m=a.target.path,v=P.indexOf(m);-1!==v&&(m=w[v]);var b=i.Animation.ANIMATIONTYPE_MATRIX;p||("rotationQuaternion"===m?(b=i.Animation.ANIMATIONTYPE_QUATERNION,h.rotationQuaternion=new i.Quaternion):b=i.Animation.ANIMATIONTYPE_VECTOR3);var y=null,_=[],A=0,g=!1;p&&n&&n.getKeys().length===c.length&&(y=n,g=!0),g||(e.scene._blockEntityCollection=!!e.assetContainer,y=new i.Animation(t,p?"_matrix":m,1,b,i.Animation.ANIMATIONLOOPMODE_CYCLE),e.scene._blockEntityCollection=!1);for(var E=0;E<c.length;E++){var O=null;if("rotationQuaternion"===m?(O=i.Quaternion.FromArray([f[A],f[A+1],f[A+2],f[A+3]]),A+=4):(O=i.Vector3.FromArray([f[A],f[A+1],f[A+2]]),A+=3),p){var L=h,T=i.Vector3.Zero(),N=new i.Quaternion,C=i.Vector3.Zero(),S=L.getBaseMatrix();g&&n&&(S=n.getKeys()[E].value),S.decompose(C,N,T),"position"===m?T=O:"rotationQuaternion"===m?N=O:C=O,O=i.Matrix.Compose(C,N,T)}g?n&&(n.getKeys()[E].value=O):_.push({frame:c[E],value:O})}!g&&y&&(y.setKeys(_),h.animations.push(y)),n=y,e.scene.stopAnimation(h),e.scene.beginAnimation(h,0,c[c.length-1],!0,1)}else i.Tools.Warn("Creating animation named "+t+". But cannot find node named "+d+" to attach to")}}}}(e),r=0;r<e.scene.skeletons.length;r++){var o=e.scene.skeletons[r];e.scene.beginAnimation(o,0,Number.MAX_VALUE,!0,1)}},q=function(e,t,r){for(var n in t.uniforms){var o=t.uniforms[n],a=t.parameters[o];if(e.currentIdentifier===n&&a.semantic&&!a.source&&!a.node){var i=x.indexOf(a.semantic);if(-1!==i)return delete r[n],R[i]}}return e.currentIdentifier},Z=function(e){for(var t in e.materials)X.LoadMaterialAsync(e,t,(function(){}),(function(){}))},K=function(){function e(){}return e.CreateRuntime=function(e,t,r){var n={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:r,loadedBufferCount:0,loadedBufferViews:{},loadedShaderCount:0,importOnlyMeshes:!1,dummyNodes:[],assetContainer:null};return e.extensions&&I(e.extensions,"extensions",n),e.extensionsUsed&&I(e.extensionsUsed,"extensionsUsed",n),e.buffers&&function(e,t){for(var r in e){var n=e[r];t.buffers[r]=n,t.buffersCount++}}(e.buffers,n),e.bufferViews&&I(e.bufferViews,"bufferViews",n),e.accessors&&I(e.accessors,"accessors",n),e.meshes&&I(e.meshes,"meshes",n),e.lights&&I(e.lights,"lights",n),e.cameras&&I(e.cameras,"cameras",n),e.nodes&&I(e.nodes,"nodes",n),e.images&&I(e.images,"images",n),e.textures&&I(e.textures,"textures",n),e.shaders&&function(e,t){for(var r in e){var n=e[r];t.shaders[r]=n,t.shaderscount++}}(e.shaders,n),e.programs&&I(e.programs,"programs",n),e.samplers&&I(e.samplers,"samplers",n),e.techniques&&I(e.techniques,"techniques",n),e.materials&&I(e.materials,"materials",n),e.animations&&I(e.animations,"animations",n),e.skins&&I(e.skins,"skins",n),e.scenes&&(n.scenes=e.scenes),e.scene&&e.scenes&&(n.currentScene=e.scenes[e.scene]),n},e.LoadBufferAsync=function(e,t,r,n,o){var a=e.buffers[t];i.Tools.IsBase64(a.uri)?setTimeout((function(){return r(new Uint8Array(i.Tools.DecodeBase64(a.uri)))})):i.Tools.LoadFile(e.rootUrl+a.uri,(function(e){return r(new Uint8Array(e))}),o,void 0,!0,(function(e){e&&n(e.status+" "+e.statusText)}))},e.LoadTextureBufferAsync=function(e,t,r,n){var o=e.textures[t];if(o&&o.source)if(o.babylonTexture)r(null);else{var a=e.images[o.source];i.Tools.IsBase64(a.uri)?setTimeout((function(){return r(new Uint8Array(i.Tools.DecodeBase64(a.uri)))})):i.Tools.LoadFile(e.rootUrl+a.uri,(function(e){return r(new Uint8Array(e))}),void 0,void 0,!0,(function(e){e&&n(e.status+" "+e.statusText)}))}else n("")},e.CreateTextureAsync=function(e,t,r,n){var o=e.textures[t];if(o.babylonTexture)n(o.babylonTexture);else{var a=e.samplers[o.sampler],s=a.minFilter===g.NEAREST_MIPMAP_NEAREST||a.minFilter===g.NEAREST_MIPMAP_LINEAR||a.minFilter===g.LINEAR_MIPMAP_NEAREST||a.minFilter===g.LINEAR_MIPMAP_LINEAR,l=i.Texture.BILINEAR_SAMPLINGMODE,u=null==r?new Blob:new Blob([r]),c=URL.createObjectURL(u),f=function(){return URL.revokeObjectURL(c)},d=new i.Texture(c,e.scene,!s,!0,l,f,f);void 0!==a.wrapS&&(d.wrapU=M.GetWrapMode(a.wrapS)),void 0!==a.wrapT&&(d.wrapV=M.GetWrapMode(a.wrapT)),d.name=t,o.babylonTexture=d,n(d)}},e.LoadShaderStringAsync=function(e,t,r,n){var o=e.shaders[t];if(i.Tools.IsBase64(o.uri)){var a=atob(o.uri.split(",")[1]);r&&r(a)}else i.Tools.LoadFile(e.rootUrl+o.uri,r,void 0,void 0,!1,(function(e){e&&n&&n(e.status+" "+e.statusText)}))},e.LoadMaterialAsync=function(e,t,r,n){var o=e.materials[t];if(o.technique){var a=e.techniques[o.technique];if(!a){e.scene._blockEntityCollection=!!e.assetContainer;var s=new i.StandardMaterial(t,e.scene);return s._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,s.diffuseColor=new i.Color3(.5,.5,.5),s.sideOrientation=i.Material.CounterClockWiseSideOrientation,void r(s)}var l=e.programs[a.program],u=a.states,c=i.Effect.ShadersStore[l.vertexShader+"VertexShader"],f=i.Effect.ShadersStore[l.fragmentShader+"PixelShader"],d="",h="",p=new S(c),m=new S(f),v={},b=[],y=[],A=[];for(var g in a.uniforms){var E=a.uniforms[g],T=a.parameters[E];if(v[g]=T,!T.semantic||T.node||T.source)T.type===_.SAMPLER_2D?A.push(g):b.push(g);else{var N=x.indexOf(T.semantic);-1!==N?(b.push(R[N]),delete v[g]):b.push(g)}}for(var P in a.attributes){var w=a.attributes[P];if((V=a.parameters[w]).semantic){var I=F(V);I&&y.push(I)}}for(;!p.isEnd()&&p.getNextToken();)if(p.currentToken===C.IDENTIFIER){var B=!1;for(var P in a.attributes){w=a.attributes[P];var V=a.parameters[w];if(p.currentIdentifier===P&&V.semantic){d+=F(V),B=!0;break}}B||(d+=q(p,a,v))}else d+=p.currentString;for(;!m.isEnd()&&m.getNextToken();)m.currentToken===C.IDENTIFIER?h+=q(m,a,v):h+=m.currentString;var D={vertex:l.vertexShader+t,fragment:l.fragmentShader+t},U={attributes:y,uniforms:b,samplers:A,needAlphaBlending:u&&u.enable&&-1!==u.enable.indexOf(3042)};i.Effect.ShadersStore[l.vertexShader+t+"VertexShader"]=d,i.Effect.ShadersStore[l.fragmentShader+t+"PixelShader"]=h;var k=new i.ShaderMaterial(t,e.scene,D,U);if(k.onError=function(e,t,r){return function(n,o){t.dispose(!0),r("Cannot compile program named "+e.name+". Error: "+o+". Default material will be applied")}}(l,k,n),k.onCompiled=function(e,t,r,n,o,a){return function(i){!function(e,t,r,n,o){var a=n.values||r.parameters,i=r.uniforms,s=function(r){var s=o[r],l=s.type,u=a[i[r]];if(void 0===u&&(u=s.value),!u)return"continue";var c=function(e){return function(r){s.value&&e&&(t.setTexture(e,r),delete o[e])}};l===_.SAMPLER_2D?X.LoadTextureAsync(e,n.values?u:s.value,c(r),(function(){return c(null)})):s.value&&M.SetUniform(t,r,n.values?u:s.value,l)&&delete o[r]};for(var l in o)s(l)}(e,t,r,n,o),t.onBind=function(i){!function(e,t,r,n,o,a,i){var s=a.values||o.parameters;for(var l in r){var u=r[l],c=u.type;if(c===_.FLOAT_MAT2||c===_.FLOAT_MAT3||c===_.FLOAT_MAT4)if(!u.semantic||u.source||u.node){if(u.semantic&&(u.source||u.node)){var f=t.scene.getNodeByName(u.source||u.node||"");if(null===f&&(f=t.scene.getNodeById(u.source||u.node||"")),null===f)continue;M.SetMatrix(t.scene,f,u,l,n.getEffect())}}else M.SetMatrix(t.scene,e,u,l,n.getEffect());else{var d=s[o.uniforms[l]];if(!d)continue;if(c===_.SAMPLER_2D){var h=t.textures[a.values?d:u.value].babylonTexture;if(null==h)continue;n.getEffect().setTexture(l,h)}else M.SetUniform(n.getEffect(),l,d,c)}}i(n)}(i,e,o,t,r,n,a)}}}(e,k,a,o,v,r),k.sideOrientation=i.Material.CounterClockWiseSideOrientation,u&&u.functions){var G=u.functions;G.cullFace&&G.cullFace[0]!==O.BACK&&(k.backFaceCulling=!1);var j=G.blendFuncSeparate;j&&(j[0]===L.SRC_ALPHA&&j[1]===L.ONE_MINUS_SRC_ALPHA&&j[2]===L.ONE&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_COMBINE:j[0]===L.ONE&&j[1]===L.ONE&&j[2]===L.ZERO&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_ONEONE:j[0]===L.SRC_ALPHA&&j[1]===L.ONE&&j[2]===L.ZERO&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_ADD:j[0]===L.ZERO&&j[1]===L.ONE_MINUS_SRC_COLOR&&j[2]===L.ONE&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_SUBTRACT:j[0]===L.DST_COLOR&&j[1]===L.ZERO&&j[2]===L.ONE&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_MULTIPLY:j[0]===L.SRC_ALPHA&&j[1]===L.ONE_MINUS_SRC_COLOR&&j[2]===L.ONE&&j[3]===L.ONE&&(k.alphaMode=i.Constants.ALPHA_MAXIMIZED))}}else n&&n("No technique found.")},e}(),Q=function(){function e(){}return e.RegisterExtension=function(t){e.Extensions[t.name]?i.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,r,n,o,a,s,l){var u=this;return t.useRightHandedSystem=!0,X.LoadRuntimeAsync(t,r,n,(function(t){t.assetContainer=o,t.importOnlyMeshes=!0,""===e?t.importMeshesNames=[]:"string"==typeof e?t.importMeshesNames=[e]:!e||e instanceof Array?(t.importMeshesNames=[],i.Tools.Warn("Argument meshesNames must be of type string or string[]")):t.importMeshesNames=[e],u._createNodes(t);var r=[],n=[];for(var s in t.nodes){var l=t.nodes[s];l.babylonNode instanceof i.AbstractMesh&&r.push(l.babylonNode)}for(var c in t.skins){var f=t.skins[c];f.babylonSkeleton instanceof i.Skeleton&&n.push(f.babylonSkeleton)}u._loadBuffersAsync(t,(function(){u._loadShadersAsync(t,(function(){Z(t),J(t),!p.IncrementalLoading&&a&&a(r,n)}))})),p.IncrementalLoading&&a&&a(r,n)}),l),!0},e.prototype.importMeshAsync=function(e,t,r,n,o,a){var i=this;return new Promise((function(s,l){i._importMeshAsync(e,t,n,o,r,(function(e,t){s({meshes:e,particleSystems:[],skeletons:t,animationGroups:[],lights:[],transformNodes:[],geometries:[]})}),a,(function(e){l(new Error(e))}))}))},e.prototype._loadAsync=function(e,t,r,n,o,a){var i=this;e.useRightHandedSystem=!0,X.LoadRuntimeAsync(e,t,r,(function(e){X.LoadRuntimeExtensionsAsync(e,(function(){i._createNodes(e),i._loadBuffersAsync(e,(function(){i._loadShadersAsync(e,(function(){Z(e),J(e),p.IncrementalLoading||n()}))})),p.IncrementalLoading&&n()}),a)}),a)},e.prototype.loadAsync=function(e,t,r,n){var o=this;return new Promise((function(a,i){o._loadAsync(e,t,r,(function(){a()}),n,(function(e){i(new Error(e))}))}))},e.prototype._loadShadersAsync=function(e,t){var r=!1,n=function(r,n){X.LoadShaderStringAsync(e,r,(function(o){o instanceof ArrayBuffer||(e.loadedShaderCount++,o&&(i.Effect.ShadersStore[r+(n.type===y.VERTEX?"VertexShader":"PixelShader")]=o),e.loadedShaderCount===e.shaderscount&&t())}),(function(){i.Tools.Error("Error when loading shader program named "+r+" located at "+n.uri)}))};for(var o in e.shaders){r=!0;var a=e.shaders[o];a?n.bind(this,o,a)():i.Tools.Error("No shader named: "+o)}r||t()},e.prototype._loadBuffersAsync=function(e,t){var r=!1,n=function(r,n){X.LoadBufferAsync(e,r,(function(o){e.loadedBufferCount++,o&&(o.byteLength!=e.buffers[r].byteLength&&i.Tools.Error("Buffer named "+r+" is length "+o.byteLength+". Expected: "+n.byteLength),e.loadedBufferViews[r]=o),e.loadedBufferCount===e.buffersCount&&t()}),(function(){i.Tools.Error("Error when loading buffer named "+r+" located at "+n.uri)}))};for(var o in e.buffers){r=!0;var a=e.buffers[o];a?n.bind(this,o,a)():i.Tools.Error("No buffer named: "+o)}r||t()},e.prototype._createNodes=function(e){var t=e.currentScene;if(t)for(var r=0;r<t.nodes.length;r++)Y(e,t.nodes[r],null);else for(var n in e.scenes)for(t=e.scenes[n],r=0;r<t.nodes.length;r++)Y(e,t.nodes[r],null)},e.Extensions={},e}(),X=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,r,n,o){return!1},e.prototype.loadRuntimeExtensionsAsync=function(e,t,r){return!1},e.prototype.loadBufferAsync=function(e,t,r,n,o){return!1},e.prototype.loadTextureBufferAsync=function(e,t,r,n){return!1},e.prototype.createTextureAsync=function(e,t,r,n,o){return!1},e.prototype.loadShaderStringAsync=function(e,t,r,n){return!1},e.prototype.loadMaterialAsync=function(e,t,r,n){return!1},e.LoadRuntimeAsync=function(t,r,n,o,a){e._ApplyExtensions((function(e){return e.loadRuntimeAsync(t,r,n,o,a)}),(function(){setTimeout((function(){o&&o(K.CreateRuntime(r.json,t,n))}))}))},e.LoadRuntimeExtensionsAsync=function(t,r,n){e._ApplyExtensions((function(e){return e.loadRuntimeExtensionsAsync(t,r,n)}),(function(){setTimeout((function(){r()}))}))},e.LoadBufferAsync=function(t,r,n,o,a){e._ApplyExtensions((function(e){return e.loadBufferAsync(t,r,n,o,a)}),(function(){K.LoadBufferAsync(t,r,n,o,a)}))},e.LoadTextureAsync=function(t,r,n,o){e._LoadTextureBufferAsync(t,r,(function(a){a&&e._CreateTextureAsync(t,r,a,n,o)}),o)},e.LoadShaderStringAsync=function(t,r,n,o){e._ApplyExtensions((function(e){return e.loadShaderStringAsync(t,r,n,o)}),(function(){K.LoadShaderStringAsync(t,r,n,o)}))},e.LoadMaterialAsync=function(t,r,n,o){e._ApplyExtensions((function(e){return e.loadMaterialAsync(t,r,n,o)}),(function(){K.LoadMaterialAsync(t,r,n,o)}))},e._LoadTextureBufferAsync=function(t,r,n,o){e._ApplyExtensions((function(e){return e.loadTextureBufferAsync(t,r,n,o)}),(function(){K.LoadTextureBufferAsync(t,r,n,o)}))},e._CreateTextureAsync=function(t,r,n,o,a){e._ApplyExtensions((function(e){return e.createTextureAsync(t,r,n,o,a)}),(function(){K.CreateTextureAsync(t,r,n,o)}))},e._ApplyExtensions=function(e,t){for(var r in Q.Extensions)if(e(Q.Extensions[r]))return;t()},e}();p._CreateGLTF1Loader=function(){return new Q};var z=function(e){function t(){return e.call(this,"KHR_binary_glTF")||this}return N(t,e),t.prototype.loadRuntimeAsync=function(e,t,r,n){var o=t.json.extensionsUsed;return!(!o||-1===o.indexOf(this.name)||!t.bin||(this._bin=t.bin,n(K.CreateRuntime(t.json,e,r)),0))},t.prototype.loadBufferAsync=function(e,t,r,n){return-1!==e.extensionsUsed.indexOf(this.name)&&"binary_glTF"===t&&(this._bin.readAsync(0,this._bin.byteLength).then(r,(function(e){return n(e.message)})),!0)},t.prototype.loadTextureBufferAsync=function(e,t,r){var n=e.textures[t],o=e.images[n.source];if(!o.extensions||!(this.name in o.extensions))return!1;var a=o.extensions[this.name],i=e.bufferViews[a.bufferView];return r(M.GetBufferFromBufferView(e,i,0,i.byteLength,b.UNSIGNED_BYTE)),!0},t.prototype.loadShaderStringAsync=function(e,t,r){var n=e.shaders[t];if(!n.extensions||!(this.name in n.extensions))return!1;var o=n.extensions[this.name],a=e.bufferViews[o.bufferView],i=M.GetBufferFromBufferView(e,a,0,a.byteLength,b.UNSIGNED_BYTE);return setTimeout((function(){var e=M.DecodeBufferToText(i);r(e)})),!0},t}(X);Q.RegisterExtension(new z);var $=function(e){function t(){return e.call(this,"KHR_materials_common")||this}return N(t,e),t.prototype.loadRuntimeExtensionsAsync=function(e){if(!e.extensions)return!1;var t=e.extensions[this.name];if(!t)return!1;var r=t.lights;if(r)for(var n in r){var o=r[n];switch(o.type){case"ambient":var a=new i.HemisphericLight(o.name,new i.Vector3(0,1,0),e.scene),s=o.ambient;s&&(a.diffuse=i.Color3.FromArray(s.color||[1,1,1]));break;case"point":var l=new i.PointLight(o.name,new i.Vector3(10,10,10),e.scene),u=o.point;u&&(l.diffuse=i.Color3.FromArray(u.color||[1,1,1]));break;case"directional":var c=new i.DirectionalLight(o.name,new i.Vector3(0,-1,0),e.scene),f=o.directional;f&&(c.diffuse=i.Color3.FromArray(f.color||[1,1,1]));break;case"spot":var d=o.spot;d&&(new i.SpotLight(o.name,new i.Vector3(0,10,0),new i.Vector3(0,-1,0),d.fallOffAngle||Math.PI,d.fallOffExponent||0,e.scene).diffuse=i.Color3.FromArray(d.color||[1,1,1]));break;default:i.Tools.Warn('GLTF Material Common extension: light type "'+o.type+"” not supported")}}return!1},t.prototype.loadMaterialAsync=function(e,t,r,n){var o=e.materials[t];if(!o||!o.extensions)return!1;var a=o.extensions[this.name];if(!a)return!1;var s=new i.StandardMaterial(t,e.scene);return s.sideOrientation=i.Material.CounterClockWiseSideOrientation,"CONSTANT"===a.technique&&(s.disableLighting=!0),s.backFaceCulling=void 0!==a.doubleSided&&!a.doubleSided,s.alpha=void 0===a.values.transparency?1:a.values.transparency,s.specularPower=void 0===a.values.shininess?0:a.values.shininess,"string"==typeof a.values.ambient?this._loadTexture(e,a.values.ambient,s,"ambientTexture",n):s.ambientColor=i.Color3.FromArray(a.values.ambient||[0,0,0]),"string"==typeof a.values.diffuse?this._loadTexture(e,a.values.diffuse,s,"diffuseTexture",n):s.diffuseColor=i.Color3.FromArray(a.values.diffuse||[0,0,0]),"string"==typeof a.values.emission?this._loadTexture(e,a.values.emission,s,"emissiveTexture",n):s.emissiveColor=i.Color3.FromArray(a.values.emission||[0,0,0]),"string"==typeof a.values.specular?this._loadTexture(e,a.values.specular,s,"specularTexture",n):s.specularColor=i.Color3.FromArray(a.values.specular||[0,0,0]),!0},t.prototype._loadTexture=function(e,t,r,n,o){K.LoadTextureBufferAsync(e,t,(function(o){K.CreateTextureAsync(e,t,o,(function(e){return r[n]=e}))}),o)},t}(X);Q.RegisterExtension(new $);var ee=void 0!==n.g?n.g:"undefined"!=typeof window?window:void 0;if(void 0!==ee)for(var te in ee.BABYLON=ee.BABYLON||{},ee.BABYLON.GLTF1=ee.BABYLON.GLTF1||{},r)ee.BABYLON.GLTF1[te]=r[te];const re=a})(),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}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{n.d(o,{default:()=>re});var e={};n.r(e),n.d(e,{GLTFValidation:()=>d});var t={};n.r(t),n.d(t,{GLTFFileLoader:()=>p,GLTFLoaderAnimationStartMode:()=>c,GLTFLoaderCoordinateSystemMode:()=>u,GLTFLoaderState:()=>f});var r={};n.r(r),n.d(r,{EBlendingFunction:()=>L,EComponentType:()=>b,ECullingType:()=>O,EParameterType:()=>_,EShaderType:()=>y,ETextureFilterType:()=>g,ETextureFormat:()=>E,ETextureWrapMode:()=>A,GLTFBinaryExtension:()=>z,GLTFLoader:()=>Q,GLTFLoaderBase:()=>K,GLTFLoaderExtension:()=>X,GLTFMaterialsCommonExtension:()=>$,GLTFUtils:()=>M});var a={};n.r(a),n.d(a,{GLTF1:()=>r,GLTFFileLoader:()=>p,GLTFLoaderAnimationStartMode:()=>c,GLTFLoaderCoordinateSystemMode:()=>u,GLTFLoaderState:()=>f,GLTFValidation:()=>d});var i=n(597);function s(e,t,r,n){var o={externalResourceFunction:n};return r&&(o.uri="file:"===t?r:t+r),ArrayBuffer.isView(e)?GLTFValidator.validateBytes(e,o):GLTFValidator.validateString(e,o)}function l(){var e=[];onmessage=function(t){var r=t.data;switch(r.id){case"init":importScripts(r.url);break;case"validate":s(r.data,r.rootUrl,r.fileName,(function(t){return new Promise((function(r,n){var o=e.length;e.push({resolve:r,reject:n}),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[r.index].resolve(r.value);break;case"getExternalResource.reject":e[r.index].reject(r.reason)}}}var u,c,f,d=function(){function e(){}return e.ValidateAsync=function(e,t,r,n){var o=this;return"function"==typeof Worker?new Promise((function(a,u){var c="".concat(s,"(").concat(l,")()"),f=URL.createObjectURL(new Blob([c],{type:"application/javascript"})),d=new Worker(f),h=function(e){d.removeEventListener("error",h),d.removeEventListener("message",p),u(e)},p=function(e){var t=e.data;switch(t.id){case"getExternalResource":n(t.uri).then((function(e){d.postMessage({id:"getExternalResource.resolve",index:t.index,value:e},[e])}),(function(e){d.postMessage({id:"getExternalResource.reject",index:t.index,reason:e})}));break;case"validate.resolve":d.removeEventListener("error",h),d.removeEventListener("message",p),a(t.value),d.terminate();break;case"validate.reject":d.removeEventListener("error",h),d.removeEventListener("message",p),u(t.reason),d.terminate()}};if(d.addEventListener("error",h),d.addEventListener("message",p),d.postMessage({id:"init",url:i.Tools.GetBabylonScriptURL(o.Configuration.url)}),ArrayBuffer.isView(e)){var m=e.slice();d.postMessage({id:"validate",data:m,rootUrl:t,fileName:r},[m.buffer])}else d.postMessage({id:"validate",data:e,rootUrl:t,fileName:r})})):(this._LoadScriptPromise||(this._LoadScriptPromise=i.Tools.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then((function(){return s(e,t,r,n)})))},e.Configuration={url:"".concat(i.Tools._DefaultCdnUrl,"/gltf_validator.js")},e}();function h(e,t,r){try{return Promise.resolve(new Uint8Array(e,t,r))}catch(e){return Promise.reject(e)}}!function(e){e[e.AUTO=0]="AUTO",e[e.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED"}(u||(u={})),function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.ALL=2]="ALL"}(c||(c={})),function(e){e[e.LOADING=0]="LOADING",e[e.READY=1]="READY",e[e.COMPLETE=2]="COMPLETE"}(f||(f={}));var p=function(){function e(){this.onParsedObservable=new i.Observable,this.coordinateSystemMode=u.AUTO,this.animationStartMode=c.FIRST,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.onMeshLoadedObservable=new i.Observable,this.onSkinLoadedObservable=new i.Observable,this.onTextureLoadedObservable=new i.Observable,this.onMaterialLoadedObservable=new i.Observable,this.onCameraLoadedObservable=new i.Observable,this.onCompleteObservable=new i.Observable,this.onErrorObservable=new i.Observable,this.onDisposeObservable=new i.Observable,this.onExtensionLoadedObservable=new i.Observable,this.validate=!1,this.onValidatedObservable=new i.Observable,this._loader=null,this._state=null,this._requests=new Array,this.name="gltf",this.extensions={".gltf":{isBinary:!1},".glb":{isBinary:!0}},this.onLoaderStateChangedObservable=new i.Observable,this._logIndentLevel=0,this._loggingEnabled=!1,this._log=this._logDisabled,this._capturePerformanceCounters=!1,this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled}return Object.defineProperty(e.prototype,"onParsed",{set:function(e){this._onParsedObserver&&this.onParsedObservable.remove(this._onParsedObserver),this._onParsedObserver=this.onParsedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMeshLoaded",{set:function(e){this._onMeshLoadedObserver&&this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver),this._onMeshLoadedObserver=this.onMeshLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onTextureLoaded",{set:function(e){this._onTextureLoadedObserver&&this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver),this._onTextureLoadedObserver=this.onTextureLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMaterialLoaded",{set:function(e){this._onMaterialLoadedObserver&&this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver),this._onMaterialLoadedObserver=this.onMaterialLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onCameraLoaded",{set:function(e){this._onCameraLoadedObserver&&this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver),this._onCameraLoadedObserver=this.onCameraLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onComplete",{set:function(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{set:function(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDispose",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onExtensionLoaded",{set:function(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.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(e.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(e.prototype,"onValidated",{set:function(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)},enumerable:!1,configurable:!0}),e.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()},e.prototype.loadFile=function(e,t,r,n,o,a,s,l){var u=this;if(ArrayBuffer.isView(t))return this._loadBinary(e,t,r,n,s,l),null;this._progressCallback=o;var c=t.name||i.Tools.GetFilename(t);if(a){if(this.useRangeRequests){this.validate&&i.Logger.Warn("glTF validation is not supported when range requests are enabled");var f={abort:function(){},onCompleteObservable:new i.Observable},d={readAsync:function(r,n){return new Promise((function(o,a){u._loadFile(e,t,(function(e){o(new Uint8Array(e))}),!0,(function(e){a(e)}),(function(e){e.setRequestHeader("Range","bytes=".concat(r,"-").concat(r+n-1))}))}))},byteLength:0};return this._unpackBinaryAsync(new i.DataReader(d)).then((function(e){f.onCompleteObservable.notifyObservers(f),n(e)}),s?function(e){return s(void 0,e)}:void 0),f}return this._loadFile(e,t,(function(t){u._validate(e,new Uint8Array(t,0,t.byteLength),r,c),u._unpackBinaryAsync(new i.DataReader({readAsync:function(e,r){return h(t,e,r)},byteLength:t.byteLength})).then((function(e){n(e)}),s?function(e){return s(void 0,e)}:void 0)}),!0,s)}return this._loadFile(e,t,(function(t){u._validate(e,t,r,c),n({json:u._parseJson(t)})}),!1,s)},e.prototype._loadBinary=function(e,t,r,n,o,a){this._validate(e,new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r,a),this._unpackBinaryAsync(new i.DataReader({readAsync:function(e,r){return function(e,t,r){try{if(t<0||t>=e.byteLength)throw new RangeError("Offset is out of range.");if(t+r>e.byteLength)throw new RangeError("Length is out of range.");return Promise.resolve(new Uint8Array(e.buffer,e.byteOffset+t,r))}catch(e){return Promise.reject(e)}}(t,e,r)},byteLength:t.byteLength})).then((function(e){n(e)}),o?function(e){return o(void 0,e)}:void 0)},e.prototype.importMeshAsync=function(e,t,r,n,o,a){var i=this;return Promise.resolve().then((function(){return i.onParsedObservable.notifyObservers(r),i.onParsedObservable.clear(),i._log("Loading ".concat(a||"")),i._loader=i._getLoader(r),i._loader.importMeshAsync(e,t,null,r,n,o,a)}))},e.prototype.loadAsync=function(e,t,r,n,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,r,n,o)}))},e.prototype.loadAssetContainerAsync=function(e,t,r,n,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 s=new i.AssetContainer(e),l=[];a.onMaterialLoadedObservable.add((function(e){l.push(e)}));var u=[];a.onTextureLoadedObservable.add((function(e){u.push(e)}));var c=[];a.onCameraLoadedObservable.add((function(e){c.push(e)}));var f=[];return a.onMeshLoadedObservable.add((function(e){e.morphTargetManager&&f.push(e.morphTargetManager)})),a._loader.importMeshAsync(null,e,s,t,r,n,o).then((function(e){return Array.prototype.push.apply(s.geometries,e.geometries),Array.prototype.push.apply(s.meshes,e.meshes),Array.prototype.push.apply(s.particleSystems,e.particleSystems),Array.prototype.push.apply(s.skeletons,e.skeletons),Array.prototype.push.apply(s.animationGroups,e.animationGroups),Array.prototype.push.apply(s.materials,l),Array.prototype.push.apply(s.textures,u),Array.prototype.push.apply(s.lights,e.lights),Array.prototype.push.apply(s.transformNodes,e.transformNodes),Array.prototype.push.apply(s.cameras,c),Array.prototype.push.apply(s.morphTargetManagers,f),s}))}))},e.prototype.canDirectLoad=function(t){return-1!==t.indexOf("asset")&&-1!==t.indexOf("version")||t.startsWith("data:base64,"+e._MagicBase64Encoded)||t.startsWith("data:;base64,"+e._MagicBase64Encoded)||t.startsWith("data:application/octet-stream;base64,"+e._MagicBase64Encoded)||t.startsWith("data:model/gltf-binary;base64,"+e._MagicBase64Encoded)},e.prototype.directLoad=function(t,r){if(r.startsWith("base64,"+e._MagicBase64Encoded)||r.startsWith(";base64,"+e._MagicBase64Encoded)||r.startsWith("application/octet-stream;base64,"+e._MagicBase64Encoded)||r.startsWith("model/gltf-binary;base64,"+e._MagicBase64Encoded)){var n=(0,i.DecodeBase64UrlToBinary)(r);return this._validate(t,new Uint8Array(n,0,n.byteLength)),this._unpackBinaryAsync(new i.DataReader({readAsync:function(e,t){return h(n,e,t)},byteLength:n.byteLength}))}return this._validate(t,r),Promise.resolve({json:this._parseJson(r)})},e.prototype.createPlugin=function(){return new e},Object.defineProperty(e.prototype,"loaderState",{get:function(){return this._state},enumerable:!1,configurable:!0}),e.prototype.whenCompleteAsync=function(){var e=this;return new Promise((function(t,r){e.onCompleteObservable.addOnce((function(){t()})),e.onErrorObservable.addOnce((function(e){r(e)}))}))},e.prototype._setState=function(e){this._state!==e&&(this._state=e,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(f[this._state]))},e.prototype._loadFile=function(e,t,r,n,o,a){var i=this,s=e._loadFile(t,r,(function(e){i._onProgress(e,s)}),!0,n,o,a);return s.onCompleteObservable.add((function(e){i._requests.splice(i._requests.indexOf(e),1)})),this._requests.push(s),s},e.prototype._onProgress=function(e,t){if(this._progressCallback){t._lengthComputable=e.lengthComputable,t._loaded=e.loaded,t._total=e.total;for(var r=!0,n=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;r=r&&s._lengthComputable,n+=s._loaded,o+=s._total}this._progressCallback({lengthComputable:r,loaded:n,total:r?o:0})}},e.prototype._validate=function(e,t,r,n){var o=this;void 0===r&&(r=""),void 0===n&&(n=""),this.validate&&(this._startPerformanceCounter("Validate JSON"),d.ValidateAsync(t,r,n,(function(t){return o.preprocessUrlAsync(r+t).then((function(t){return e._loadFileAsync(t,void 0,!0,!0).then((function(e){return new Uint8Array(e,0,e.byteLength)}))}))})).then((function(e){o._endPerformanceCounter("Validate JSON"),o.onValidatedObservable.notifyObservers(e),o.onValidatedObservable.clear()}),(function(e){o._endPerformanceCounter("Validate JSON"),i.Tools.Warn("Failed to validate: ".concat(e.message)),o.onValidatedObservable.clear()})))},e.prototype._getLoader=function(t){var r=t.json.asset||{};this._log("Asset version: ".concat(r.version)),r.minVersion&&this._log("Asset minimum version: ".concat(r.minVersion)),r.generator&&this._log("Asset generator: ".concat(r.generator));var n=e._parseVersion(r.version);if(!n)throw new Error("Invalid version: "+r.version);if(void 0!==r.minVersion){var o=e._parseVersion(r.minVersion);if(!o)throw new Error("Invalid minimum version: "+r.minVersion);if(e._compareVersion(o,{major:2,minor:0})>0)throw new Error("Incompatible minimum version: "+r.minVersion)}var a={1:e._CreateGLTF1Loader,2:e._CreateGLTF2Loader}[n.major];if(!a)throw new Error("Unsupported version: "+r.version);return a(this)},e.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},e.prototype._unpackBinaryAsync=function(e){var t=this;return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then((function(){var r=e.readUint32();if(1179937895!==r)throw new i.RuntimeError("Unexpected magic: "+r,i.ErrorCodes.GLTFLoaderUnexpectedMagicError);var n=e.readUint32();t.loggingEnabled&&t._log("Binary version: ".concat(n));var o,a=e.readUint32();switch(t.useRangeRequests||a===e.buffer.byteLength||i.Logger.Warn("Length in header does not match actual data length: ".concat(a," != ").concat(e.buffer.byteLength)),n){case 1:o=t._unpackBinaryV1Async(e,a);break;case 2:o=t._unpackBinaryV2Async(e,a);break;default:throw new Error("Unsupported version: "+n)}return t._endPerformanceCounter("Unpack Binary"),o}))},e.prototype._unpackBinaryV1Async=function(e,t){var r=e.readUint32(),n=e.readUint32();if(0!==n)throw new Error("Unexpected content format: ".concat(n));var o=t-e.byteOffset,a={json:this._parseJson(e.readString(r)),bin:null};if(0!==o){var i=e.byteOffset;a.bin={readAsync:function(t,r){return e.buffer.readAsync(i+t,r)},byteLength:o}}return Promise.resolve(a)},e.prototype._unpackBinaryV2Async=function(e,t){var r=this,n=1313821514,o=e.readUint32();if(e.readUint32()!==n)throw new Error("First chunk format is not JSON");return e.byteOffset+o===t?e.loadAsync(o).then((function(){return{json:r._parseJson(e.readString(o)),bin:null}})):e.loadAsync(o+8).then((function(){var a={json:r._parseJson(e.readString(o)),bin:null},i=function(){var r=e.readUint32();switch(e.readUint32()){case n:throw new Error("Unexpected JSON chunk");case 5130562:var o=e.byteOffset;a.bin={readAsync:function(t,r){return e.buffer.readAsync(o+t,r)},byteLength:r},e.skipBytes(r);break;default:e.skipBytes(r)}return e.byteOffset!==t?e.loadAsync(8).then(i):Promise.resolve(a)};return i()}))},e._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},e._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},e.prototype._logOpen=function(e){this._log(e),this._logIndentLevel++},e.prototype._logClose=function(){--this._logIndentLevel},e.prototype._logEnabled=function(t){var r=e._logSpaces.substr(0,2*this._logIndentLevel);i.Logger.Log("".concat(r).concat(t))},e.prototype._logDisabled=function(e){},e.prototype._startPerformanceCounterEnabled=function(e){i.Tools.StartPerformanceCounter(e)},e.prototype._startPerformanceCounterDisabled=function(e){},e.prototype._endPerformanceCounterEnabled=function(e){i.Tools.EndPerformanceCounter(e)},e.prototype._endPerformanceCounterDisabled=function(e){},e.IncrementalLoading=!0,e.HomogeneousCoordinates=!1,e._MagicBase64Encoded="Z2xURg",e._logSpaces=" ",e}();i.SceneLoader&&i.SceneLoader.RegisterPlugin(new p);var m=void 0!==n.g?n.g:"undefined"!=typeof window?window:void 0;if(void 0!==m){for(var v in m.BABYLON=m.BABYLON||{},t)m.BABYLON[v]=t[v];for(var v in e)m.BABYLON[v]=e[v]}var b,y,_,A,g,E,O,L,T=function(e,t){return T=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},T(e,t)};function N(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}T(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError,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"}(b||(b={})),function(e){e[e.FRAGMENT=35632]="FRAGMENT",e[e.VERTEX=35633]="VERTEX"}(y||(y={})),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"}(_||(_={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.REPEAT=10497]="REPEAT"}(A||(A={})),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"}(g||(g={})),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"}(E||(E={})),function(e){e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK"}(O||(O={})),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"}(L||(L={}));var C,M=function(){function e(){}return e.SetMatrix=function(e,t,r,n,o){var a=null;if("MODEL"===r.semantic?a=t.getWorldMatrix():"PROJECTION"===r.semantic?a=e.getProjectionMatrix():"VIEW"===r.semantic?a=e.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===r.semantic?a=i.Matrix.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()):"MODELVIEW"===r.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()):"MODELVIEWPROJECTION"===r.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()):"MODELINVERSE"===r.semantic?a=t.getWorldMatrix().invert():"VIEWINVERSE"===r.semantic?a=e.getViewMatrix().invert():"PROJECTIONINVERSE"===r.semantic?a=e.getProjectionMatrix().invert():"MODELVIEWINVERSE"===r.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===r.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===r.semantic&&(a=i.Matrix.Transpose(t.getWorldMatrix().invert())),a)switch(r.type){case _.FLOAT_MAT2:o.setMatrix2x2(n,i.Matrix.GetAsMatrix2x2(a));break;case _.FLOAT_MAT3:o.setMatrix3x3(n,i.Matrix.GetAsMatrix3x3(a));break;case _.FLOAT_MAT4:o.setMatrix(n,a)}},e.SetUniform=function(e,t,r,n){switch(n){case _.FLOAT:return e.setFloat(t,r),!0;case _.FLOAT_VEC2:return e.setVector2(t,i.Vector2.FromArray(r)),!0;case _.FLOAT_VEC3:return e.setVector3(t,i.Vector3.FromArray(r)),!0;case _.FLOAT_VEC4:return e.setVector4(t,i.Vector4.FromArray(r)),!0;default:return!1}},e.GetWrapMode=function(e){switch(e){case A.CLAMP_TO_EDGE:return i.Texture.CLAMP_ADDRESSMODE;case A.MIRRORED_REPEAT:return i.Texture.MIRROR_ADDRESSMODE;case A.REPEAT:default:return i.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 g.LINEAR:case g.LINEAR_MIPMAP_NEAREST:case g.LINEAR_MIPMAP_LINEAR:return i.Texture.TRILINEAR_SAMPLINGMODE;case g.NEAREST:case g.NEAREST_MIPMAP_NEAREST:return i.Texture.NEAREST_SAMPLINGMODE;default:return i.Texture.BILINEAR_SAMPLINGMODE}},e.GetBufferFromBufferView=function(e,t,r,n,o){r=t.byteOffset+r;var a=e.loadedBufferViews[t.buffer];if(r+n>a.byteLength)throw new Error("Buffer access is out of range");var i=a.buffer;switch(r+=a.byteOffset,o){case b.BYTE:return new Int8Array(i,r,n);case b.UNSIGNED_BYTE:return new Uint8Array(i,r,n);case b.SHORT:return new Int16Array(i,r,n);case b.UNSIGNED_SHORT:return new Uint16Array(i,r,n);default:return new Float32Array(i,r,n)}},e.GetBufferFromAccessor=function(t,r){var n=t.bufferViews[r.bufferView],o=r.count*e.GetByteStrideFromType(r);return e.GetBufferFromBufferView(t,n,r.byteOffset,o,r.componentType)},e.DecodeBufferToText=function(e){for(var t="",r=e.byteLength,n=0;n<r;++n)t+=String.fromCharCode(e[n]);return t},e.GetDefaultMaterial=function(t){if(!e._DefaultMaterial){i.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"),i.Effect.ShadersStore.GLTFDefaultMaterialPixelShader=["precision highp float;","","uniform vec4 u_emission;","","void main(void)","{"," gl_FragColor = u_emission;","}"].join("\n");var r={attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:new Array,needAlphaBlending:!1};e._DefaultMaterial=new i.ShaderMaterial("GLTFDefaultMaterial",t,{vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},r),e._DefaultMaterial.setColor4("u_emission",new i.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"}(C||(C={}));var S=function(){function e(e){this._pos=0,this.currentToken=C.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 C.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=C.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=C.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}(),x=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],R=["world","view","projection","worldView","worldViewProjection","mBones"],P=["translation","rotation","scale"],w=["position","rotationQuaternion","scaling"],I=function(e,t,r){for(var n in e){var o=e[n];r[t][n]=o}},B=function(e){if(e)for(var t=0;t<e.length/2;t++)e[2*t+1]=1-e[2*t+1]},F=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},V=function(e){var t=null;if(e.translation||e.rotation||e.scale){var r=i.Vector3.FromArray(e.scale||[1,1,1]),n=i.Quaternion.FromArray(e.rotation||[0,0,0,1]),o=i.Vector3.FromArray(e.translation||[0,0,0]);t=i.Matrix.Compose(r,n,o)}else t=i.Matrix.FromArray(e.matrix);return t},D=function(e,t,r,n){for(var o=0;o<n.bones.length;o++)if(n.bones[o].name===r)return n.bones[o];var a=e.nodes;for(var s in a){var l=a[s];if(l.jointName){var u=l.children;for(o=0;o<u.length;o++){var c=e.nodes[u[o]];if(c.jointName&&c.jointName===r){var f=V(l),d=new i.Bone(l.name||"",n,D(e,t,l.jointName,n),f);return d.id=s,d}}}}return null},U=function(e,t){for(var r=0;r<e.length;r++)for(var n=e[r],o=0;o<n.node.children.length;o++)if(n.node.children[o]===t)return n.bone;return null},k=function(e,t){var r=e.nodes,n=r[t];if(n)return{node:n,id:t};for(var o in r)if((n=r[o]).jointName===t)return{node:n,id:o};return null},G=function(e,t){for(var r=0;r<e.jointNames.length;r++)if(e.jointNames[r]===t)return!0;return!1},j=function(e,t,r,n,o){if(o||(e.scene._blockEntityCollection=!!e.assetContainer,(o=new i.Mesh(t.name||"",e.scene))._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,o.id=n),!t.babylonNode)return o;for(var a,s=[],l=null,u=[],c=[],f=[],d=[],h=0;h<r.length;h++){var m=r[h];if(R=e.meshes[m])for(var v=0;v<R.primitives.length;v++){var b=new i.VertexData,y=R.primitives[v];y.mode;var _=y.attributes,A=null,g=null;for(var E in _)if(A=e.accessors[_[E]],g=M.GetBufferFromAccessor(e,A),"NORMAL"===E)b.normals=new Float32Array(g.length),b.normals.set(g);else if("POSITION"===E){if(p.HomogeneousCoordinates){b.positions=new Float32Array(g.length-g.length/4);for(var O=0;O<g.length;O+=4)b.positions[O]=g[O],b.positions[O+1]=g[O+1],b.positions[O+2]=g[O+2]}else b.positions=new Float32Array(g.length),b.positions.set(g);c.push(b.positions.length)}else if(-1!==E.indexOf("TEXCOORD_")){var L=Number(E.split("_")[1]),T=i.VertexBuffer.UVKind+(0===L?"":L+1),N=new Float32Array(g.length);N.set(g),B(N),b.set(N,T)}else"JOINT"===E?(b.matricesIndices=new Float32Array(g.length),b.matricesIndices.set(g)):"WEIGHT"===E?(b.matricesWeights=new Float32Array(g.length),b.matricesWeights.set(g)):"COLOR"===E&&(b.colors=new Float32Array(g.length),b.colors.set(g));if(A=e.accessors[y.indices])g=M.GetBufferFromAccessor(e,A),b.indices=new Int32Array(g.length),b.indices.set(g),d.push(b.indices.length);else{var C=[];for(O=0;O<b.positions.length/3;O++)C.push(O);b.indices=new Int32Array(C),d.push(b.indices.length)}l?l.merge(b):l=b;var S=e.scene.getMaterialById(y.material);s.push(null===S?M.GetDefaultMaterial(e.scene):S),u.push(0===u.length?0:u[u.length-1]+c[c.length-2]),f.push(0===f.length?0:f[f.length-1]+d[d.length-2])}}e.scene._blockEntityCollection=!!e.assetContainer,s.length>1?(a=new i.MultiMaterial("multimat"+n,e.scene)).subMaterials=s:a=new i.StandardMaterial("multimat"+n,e.scene),1===s.length&&(a=s[0]),a._parentContainer=e.assetContainer,o.material||(o.material=a),new i.Geometry(n,e.scene,l,!1,o),o.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,o.subMeshes=[];var x=0;for(h=0;h<r.length;h++){var R;if(m=r[h],R=e.meshes[m])for(v=0;v<R.primitives.length;v++)R.primitives[v].mode,i.SubMesh.AddToMesh(x,u[x],c[x],f[x],d[x],o,o,!0),x++}return o},H=function(e,t,r,n){e.position&&(e.position=t),(e.rotationQuaternion||e.rotation)&&(e.rotationQuaternion=r),e.scaling&&(e.scaling=n)},W=function(e,t,r){var n=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=j(e,t,t.meshes,r,t.babylonNode)).skeleton=e.scene.getLastSkeletonById(t.skin),null===a.skeleton&&(a.skeleton=function(e,t,r,n){if(n||(n=new i.Skeleton(t.name||"","",e.scene)),!t.babylonSkeleton)return n;var o=[],a=[];!function(e,t,r,n){for(var o in e.nodes){var a=e.nodes[o],s=o;if(a.jointName&&!G(r,a.jointName)){var l=V(a),u=new i.Bone(a.name||"",t,null,l);u.id=s,n.push({bone:u,node:a,id:s})}}for(var c=0;c<n.length;c++)for(var f=n[c],d=f.node.children,h=0;h<d.length;h++){for(var p=null,m=0;m<n.length;m++)if(n[m].id===d[h]){p=n[m];break}p&&(p.bone._parent=f.bone,f.bone.children.push(p.bone))}}(e,n,t,o),n.bones=[];for(var s=0;s<t.jointNames.length;s++)if(A=k(e,t.jointNames[s])){var l=A.node;if(l){var u=A.id,c=e.scene.getBoneById(u);if(c)n.bones.push(c);else{for(var f=!1,d=null,h=0;h<s;h++){var p=k(e,t.jointNames[h]);if(p){var m=p.node;if(m){var v=m.children;if(v){f=!1;for(var b=0;b<v.length;b++)if(v[b]===u){d=D(e,t,t.jointNames[h],n),f=!0;break}if(f)break}}else i.Tools.Warn("Joint named "+t.jointNames[h]+" does not exist when looking for parent")}}var y=V(l);!d&&o.length>0&&(d=U(o,u))&&-1===a.indexOf(d)&&a.push(d),new i.Bone(l.jointName||"",n,d,y).id=u}}else i.Tools.Warn("Joint named "+t.jointNames[s]+" does not exist")}var _=n.bones;for(n.bones=[],s=0;s<t.jointNames.length;s++){var A;if(A=k(e,t.jointNames[s]))for(h=0;h<_.length;h++)if(_[h].id===A.id){n.bones.push(_[h]);break}}for(n.prepare(),s=0;s<a.length;s++)n.bones.push(a[s]);return n}(e,o,0,o.babylonSkeleton),o.babylonSkeleton||(o.babylonSkeleton=a.skeleton)),n=a}}else if(t.meshes){var a;n=a=j(e,t,t.mesh?[t.mesh]:t.meshes,r,t.babylonNode)}else if(!t.light||t.babylonNode||e.importOnlyMeshes){if(t.camera&&!t.babylonNode&&!e.importOnlyMeshes){var s=e.cameras[t.camera];if(s){if(e.scene._blockEntityCollection=!!e.assetContainer,"orthographic"===s.type){var l=new i.FreeCamera(t.camera,i.Vector3.Zero(),e.scene,!1);l.name=t.name||"",l.mode=i.Camera.ORTHOGRAPHIC_CAMERA,l.attachControl(),n=l,l._parentContainer=e.assetContainer}else if("perspective"===s.type){var u=s[s.type],c=new i.FreeCamera(t.camera,i.Vector3.Zero(),e.scene,!1);c.name=t.name||"",c.attachControl(),u.aspectRatio||(u.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),u.znear&&u.zfar&&(c.maxZ=u.zfar,c.minZ=u.znear),n=c,c._parentContainer=e.assetContainer}e.scene._blockEntityCollection=!1}}}else{var f=e.lights[t.light];if(f)if("ambient"===f.type){var d=f[f.type],h=new i.HemisphericLight(t.light,i.Vector3.Zero(),e.scene);h.name=t.name||"",d.color&&(h.diffuse=i.Color3.FromArray(d.color)),n=h}else if("directional"===f.type){var p=f[f.type],m=new i.DirectionalLight(t.light,i.Vector3.Zero(),e.scene);m.name=t.name||"",p.color&&(m.diffuse=i.Color3.FromArray(p.color)),n=m}else if("point"===f.type){var v=f[f.type],b=new i.PointLight(t.light,i.Vector3.Zero(),e.scene);b.name=t.name||"",v.color&&(b.diffuse=i.Color3.FromArray(v.color)),n=b}else if("spot"===f.type){var y=f[f.type],_=new i.SpotLight(t.light,i.Vector3.Zero(),i.Vector3.Zero(),0,0,e.scene);_.name=t.name||"",y.color&&(_.diffuse=i.Color3.FromArray(y.color)),y.fallOfAngle&&(_.angle=y.fallOfAngle),y.fallOffExponent&&(_.exponent=y.fallOffExponent),n=_}}if(!t.jointName){if(t.babylonNode)return t.babylonNode;if(null===n){e.scene._blockEntityCollection=!!e.assetContainer;var A=new i.Mesh(t.name||"",e.scene);A._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,t.babylonNode=A,n=A}}if(null!==n){if(t.matrix&&n instanceof i.Mesh)!function(e,t){if(t.matrix){var r=new i.Vector3(0,0,0),n=new i.Quaternion,o=new i.Vector3(0,0,0);i.Matrix.FromArray(t.matrix).decompose(o,n,r),H(e,r,n,o)}else t.translation&&t.rotation&&t.scale&&H(e,i.Vector3.FromArray(t.translation),i.Quaternion.FromArray(t.rotation),i.Vector3.FromArray(t.scale));e.computeWorldMatrix(!0)}(n,t);else{var g=t.translation||[0,0,0],E=t.rotation||[0,0,0,1],O=t.scale||[1,1,1];H(n,i.Vector3.FromArray(g),i.Quaternion.FromArray(E),i.Vector3.FromArray(O))}n.updateCache(!0),t.babylonNode=n}return n},Y=function(e,t,r,n){void 0===n&&(n=!1);var o=e.nodes[t],a=null;if(n=!(e.importOnlyMeshes&&!n&&e.importMeshesNames)||-1!==e.importMeshesNames.indexOf(o.name||"")||0===e.importMeshesNames.length,!o.jointName&&n&&null!==(a=W(e,o,t))&&(a.id=t,a.parent=r),o.children)for(var i=0;i<o.children.length;i++)Y(e,o.children[i],a,n)},J=function(e){var t=e.currentScene;if(t)for(var r=0;r<t.nodes.length;r++)Y(e,t.nodes[r],null);else for(var n in e.scenes)for(t=e.scenes[n],r=0;r<t.nodes.length;r++)Y(e,t.nodes[r],null);for(function(e){for(var t in e.animations){var r=e.animations[t];if(r.channels&&r.samplers)for(var n=null,o=0;o<r.channels.length;o++){var a=r.channels[o],s=r.samplers[a.sampler];if(s){var l=null,u=null;r.parameters?(l=r.parameters[s.input],u=r.parameters[s.output]):(l=s.input,u=s.output);var c=M.GetBufferFromAccessor(e,e.accessors[l]),f=M.GetBufferFromAccessor(e,e.accessors[u]),d=a.target.id,h=e.scene.getNodeById(d);if(null===h&&(h=e.scene.getNodeByName(d)),null!==h){var p=h instanceof i.Bone,m=a.target.path,v=P.indexOf(m);-1!==v&&(m=w[v]);var b=i.Animation.ANIMATIONTYPE_MATRIX;p||("rotationQuaternion"===m?(b=i.Animation.ANIMATIONTYPE_QUATERNION,h.rotationQuaternion=new i.Quaternion):b=i.Animation.ANIMATIONTYPE_VECTOR3);var y=null,_=[],A=0,g=!1;p&&n&&n.getKeys().length===c.length&&(y=n,g=!0),g||(e.scene._blockEntityCollection=!!e.assetContainer,y=new i.Animation(t,p?"_matrix":m,1,b,i.Animation.ANIMATIONLOOPMODE_CYCLE),e.scene._blockEntityCollection=!1);for(var E=0;E<c.length;E++){var O=null;if("rotationQuaternion"===m?(O=i.Quaternion.FromArray([f[A],f[A+1],f[A+2],f[A+3]]),A+=4):(O=i.Vector3.FromArray([f[A],f[A+1],f[A+2]]),A+=3),p){var L=h,T=i.Vector3.Zero(),N=new i.Quaternion,C=i.Vector3.Zero(),S=L.getBaseMatrix();g&&n&&(S=n.getKeys()[E].value),S.decompose(C,N,T),"position"===m?T=O:"rotationQuaternion"===m?N=O:C=O,O=i.Matrix.Compose(C,N,T)}g?n&&(n.getKeys()[E].value=O):_.push({frame:c[E],value:O})}!g&&y&&(y.setKeys(_),h.animations.push(y)),n=y,e.scene.stopAnimation(h),e.scene.beginAnimation(h,0,c[c.length-1],!0,1)}else i.Tools.Warn("Creating animation named "+t+". But cannot find node named "+d+" to attach to")}}}}(e),r=0;r<e.scene.skeletons.length;r++){var o=e.scene.skeletons[r];e.scene.beginAnimation(o,0,Number.MAX_VALUE,!0,1)}},q=function(e,t,r){for(var n in t.uniforms){var o=t.uniforms[n],a=t.parameters[o];if(e.currentIdentifier===n&&a.semantic&&!a.source&&!a.node){var i=x.indexOf(a.semantic);if(-1!==i)return delete r[n],R[i]}}return e.currentIdentifier},Z=function(e){for(var t in e.materials)X.LoadMaterialAsync(e,t,(function(){}),(function(){}))},K=function(){function e(){}return e.CreateRuntime=function(e,t,r){var n={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:r,loadedBufferCount:0,loadedBufferViews:{},loadedShaderCount:0,importOnlyMeshes:!1,dummyNodes:[],assetContainer:null};return e.extensions&&I(e.extensions,"extensions",n),e.extensionsUsed&&I(e.extensionsUsed,"extensionsUsed",n),e.buffers&&function(e,t){for(var r in e){var n=e[r];t.buffers[r]=n,t.buffersCount++}}(e.buffers,n),e.bufferViews&&I(e.bufferViews,"bufferViews",n),e.accessors&&I(e.accessors,"accessors",n),e.meshes&&I(e.meshes,"meshes",n),e.lights&&I(e.lights,"lights",n),e.cameras&&I(e.cameras,"cameras",n),e.nodes&&I(e.nodes,"nodes",n),e.images&&I(e.images,"images",n),e.textures&&I(e.textures,"textures",n),e.shaders&&function(e,t){for(var r in e){var n=e[r];t.shaders[r]=n,t.shaderscount++}}(e.shaders,n),e.programs&&I(e.programs,"programs",n),e.samplers&&I(e.samplers,"samplers",n),e.techniques&&I(e.techniques,"techniques",n),e.materials&&I(e.materials,"materials",n),e.animations&&I(e.animations,"animations",n),e.skins&&I(e.skins,"skins",n),e.scenes&&(n.scenes=e.scenes),e.scene&&e.scenes&&(n.currentScene=e.scenes[e.scene]),n},e.LoadBufferAsync=function(e,t,r,n,o){var a=e.buffers[t];i.Tools.IsBase64(a.uri)?setTimeout((function(){return r(new Uint8Array(i.Tools.DecodeBase64(a.uri)))})):i.Tools.LoadFile(e.rootUrl+a.uri,(function(e){return r(new Uint8Array(e))}),o,void 0,!0,(function(e){e&&n(e.status+" "+e.statusText)}))},e.LoadTextureBufferAsync=function(e,t,r,n){var o=e.textures[t];if(o&&o.source)if(o.babylonTexture)r(null);else{var a=e.images[o.source];i.Tools.IsBase64(a.uri)?setTimeout((function(){return r(new Uint8Array(i.Tools.DecodeBase64(a.uri)))})):i.Tools.LoadFile(e.rootUrl+a.uri,(function(e){return r(new Uint8Array(e))}),void 0,void 0,!0,(function(e){e&&n(e.status+" "+e.statusText)}))}else n("")},e.CreateTextureAsync=function(e,t,r,n){var o=e.textures[t];if(o.babylonTexture)n(o.babylonTexture);else{var a=e.samplers[o.sampler],s=a.minFilter===g.NEAREST_MIPMAP_NEAREST||a.minFilter===g.NEAREST_MIPMAP_LINEAR||a.minFilter===g.LINEAR_MIPMAP_NEAREST||a.minFilter===g.LINEAR_MIPMAP_LINEAR,l=i.Texture.BILINEAR_SAMPLINGMODE,u=null==r?new Blob:new Blob([r]),c=URL.createObjectURL(u),f=function(){return URL.revokeObjectURL(c)},d=new i.Texture(c,e.scene,!s,!0,l,f,f);void 0!==a.wrapS&&(d.wrapU=M.GetWrapMode(a.wrapS)),void 0!==a.wrapT&&(d.wrapV=M.GetWrapMode(a.wrapT)),d.name=t,o.babylonTexture=d,n(d)}},e.LoadShaderStringAsync=function(e,t,r,n){var o=e.shaders[t];if(i.Tools.IsBase64(o.uri)){var a=atob(o.uri.split(",")[1]);r&&r(a)}else i.Tools.LoadFile(e.rootUrl+o.uri,r,void 0,void 0,!1,(function(e){e&&n&&n(e.status+" "+e.statusText)}))},e.LoadMaterialAsync=function(e,t,r,n){var o=e.materials[t];if(o.technique){var a=e.techniques[o.technique];if(!a){e.scene._blockEntityCollection=!!e.assetContainer;var s=new i.StandardMaterial(t,e.scene);return s._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,s.diffuseColor=new i.Color3(.5,.5,.5),s.sideOrientation=i.Material.CounterClockWiseSideOrientation,void r(s)}var l=e.programs[a.program],u=a.states,c=i.Effect.ShadersStore[l.vertexShader+"VertexShader"],f=i.Effect.ShadersStore[l.fragmentShader+"PixelShader"],d="",h="",p=new S(c),m=new S(f),v={},b=[],y=[],A=[];for(var g in a.uniforms){var E=a.uniforms[g],T=a.parameters[E];if(v[g]=T,!T.semantic||T.node||T.source)T.type===_.SAMPLER_2D?A.push(g):b.push(g);else{var N=x.indexOf(T.semantic);-1!==N?(b.push(R[N]),delete v[g]):b.push(g)}}for(var P in a.attributes){var w=a.attributes[P];if((V=a.parameters[w]).semantic){var I=F(V);I&&y.push(I)}}for(;!p.isEnd()&&p.getNextToken();)if(p.currentToken===C.IDENTIFIER){var B=!1;for(var P in a.attributes){w=a.attributes[P];var V=a.parameters[w];if(p.currentIdentifier===P&&V.semantic){d+=F(V),B=!0;break}}B||(d+=q(p,a,v))}else d+=p.currentString;for(;!m.isEnd()&&m.getNextToken();)m.currentToken===C.IDENTIFIER?h+=q(m,a,v):h+=m.currentString;var D={vertex:l.vertexShader+t,fragment:l.fragmentShader+t},U={attributes:y,uniforms:b,samplers:A,needAlphaBlending:u&&u.enable&&-1!==u.enable.indexOf(3042)};i.Effect.ShadersStore[l.vertexShader+t+"VertexShader"]=d,i.Effect.ShadersStore[l.fragmentShader+t+"PixelShader"]=h;var k=new i.ShaderMaterial(t,e.scene,D,U);if(k.onError=function(e,t,r){return function(n,o){t.dispose(!0),r("Cannot compile program named "+e.name+". Error: "+o+". Default material will be applied")}}(l,k,n),k.onCompiled=function(e,t,r,n,o,a){return function(i){!function(e,t,r,n,o){var a=n.values||r.parameters,i=r.uniforms,s=function(r){var s=o[r],l=s.type,u=a[i[r]];if(void 0===u&&(u=s.value),!u)return"continue";var c=function(e){return function(r){s.value&&e&&(t.setTexture(e,r),delete o[e])}};l===_.SAMPLER_2D?X.LoadTextureAsync(e,n.values?u:s.value,c(r),(function(){return c(null)})):s.value&&M.SetUniform(t,r,n.values?u:s.value,l)&&delete o[r]};for(var l in o)s(l)}(e,t,r,n,o),t.onBind=function(i){!function(e,t,r,n,o,a,i){var s=a.values||o.parameters;for(var l in r){var u=r[l],c=u.type;if(c===_.FLOAT_MAT2||c===_.FLOAT_MAT3||c===_.FLOAT_MAT4)if(!u.semantic||u.source||u.node){if(u.semantic&&(u.source||u.node)){var f=t.scene.getNodeByName(u.source||u.node||"");if(null===f&&(f=t.scene.getNodeById(u.source||u.node||"")),null===f)continue;M.SetMatrix(t.scene,f,u,l,n.getEffect())}}else M.SetMatrix(t.scene,e,u,l,n.getEffect());else{var d=s[o.uniforms[l]];if(!d)continue;if(c===_.SAMPLER_2D){var h=t.textures[a.values?d:u.value].babylonTexture;if(null==h)continue;n.getEffect().setTexture(l,h)}else M.SetUniform(n.getEffect(),l,d,c)}}i(n)}(i,e,o,t,r,n,a)}}}(e,k,a,o,v,r),k.sideOrientation=i.Material.CounterClockWiseSideOrientation,u&&u.functions){var G=u.functions;G.cullFace&&G.cullFace[0]!==O.BACK&&(k.backFaceCulling=!1);var j=G.blendFuncSeparate;j&&(j[0]===L.SRC_ALPHA&&j[1]===L.ONE_MINUS_SRC_ALPHA&&j[2]===L.ONE&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_COMBINE:j[0]===L.ONE&&j[1]===L.ONE&&j[2]===L.ZERO&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_ONEONE:j[0]===L.SRC_ALPHA&&j[1]===L.ONE&&j[2]===L.ZERO&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_ADD:j[0]===L.ZERO&&j[1]===L.ONE_MINUS_SRC_COLOR&&j[2]===L.ONE&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_SUBTRACT:j[0]===L.DST_COLOR&&j[1]===L.ZERO&&j[2]===L.ONE&&j[3]===L.ONE?k.alphaMode=i.Constants.ALPHA_MULTIPLY:j[0]===L.SRC_ALPHA&&j[1]===L.ONE_MINUS_SRC_COLOR&&j[2]===L.ONE&&j[3]===L.ONE&&(k.alphaMode=i.Constants.ALPHA_MAXIMIZED))}}else n&&n("No technique found.")},e}(),Q=function(){function e(){}return e.RegisterExtension=function(t){e.Extensions[t.name]?i.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,r,n,o,a,s,l){var u=this;return t.useRightHandedSystem=!0,X.LoadRuntimeAsync(t,r,n,(function(t){t.assetContainer=o,t.importOnlyMeshes=!0,""===e?t.importMeshesNames=[]:"string"==typeof e?t.importMeshesNames=[e]:!e||e instanceof Array?(t.importMeshesNames=[],i.Tools.Warn("Argument meshesNames must be of type string or string[]")):t.importMeshesNames=[e],u._createNodes(t);var r=[],n=[];for(var s in t.nodes){var l=t.nodes[s];l.babylonNode instanceof i.AbstractMesh&&r.push(l.babylonNode)}for(var c in t.skins){var f=t.skins[c];f.babylonSkeleton instanceof i.Skeleton&&n.push(f.babylonSkeleton)}u._loadBuffersAsync(t,(function(){u._loadShadersAsync(t,(function(){Z(t),J(t),!p.IncrementalLoading&&a&&a(r,n)}))})),p.IncrementalLoading&&a&&a(r,n)}),l),!0},e.prototype.importMeshAsync=function(e,t,r,n,o,a){var i=this;return new Promise((function(s,l){i._importMeshAsync(e,t,n,o,r,(function(e,t){s({meshes:e,particleSystems:[],skeletons:t,animationGroups:[],lights:[],transformNodes:[],geometries:[]})}),a,(function(e){l(new Error(e))}))}))},e.prototype._loadAsync=function(e,t,r,n,o,a){var i=this;e.useRightHandedSystem=!0,X.LoadRuntimeAsync(e,t,r,(function(e){X.LoadRuntimeExtensionsAsync(e,(function(){i._createNodes(e),i._loadBuffersAsync(e,(function(){i._loadShadersAsync(e,(function(){Z(e),J(e),p.IncrementalLoading||n()}))})),p.IncrementalLoading&&n()}),a)}),a)},e.prototype.loadAsync=function(e,t,r,n){var o=this;return new Promise((function(a,i){o._loadAsync(e,t,r,(function(){a()}),n,(function(e){i(new Error(e))}))}))},e.prototype._loadShadersAsync=function(e,t){var r=!1,n=function(r,n){X.LoadShaderStringAsync(e,r,(function(o){o instanceof ArrayBuffer||(e.loadedShaderCount++,o&&(i.Effect.ShadersStore[r+(n.type===y.VERTEX?"VertexShader":"PixelShader")]=o),e.loadedShaderCount===e.shaderscount&&t())}),(function(){i.Tools.Error("Error when loading shader program named "+r+" located at "+n.uri)}))};for(var o in e.shaders){r=!0;var a=e.shaders[o];a?n.bind(this,o,a)():i.Tools.Error("No shader named: "+o)}r||t()},e.prototype._loadBuffersAsync=function(e,t){var r=!1,n=function(r,n){X.LoadBufferAsync(e,r,(function(o){e.loadedBufferCount++,o&&(o.byteLength!=e.buffers[r].byteLength&&i.Tools.Error("Buffer named "+r+" is length "+o.byteLength+". Expected: "+n.byteLength),e.loadedBufferViews[r]=o),e.loadedBufferCount===e.buffersCount&&t()}),(function(){i.Tools.Error("Error when loading buffer named "+r+" located at "+n.uri)}))};for(var o in e.buffers){r=!0;var a=e.buffers[o];a?n.bind(this,o,a)():i.Tools.Error("No buffer named: "+o)}r||t()},e.prototype._createNodes=function(e){var t=e.currentScene;if(t)for(var r=0;r<t.nodes.length;r++)Y(e,t.nodes[r],null);else for(var n in e.scenes)for(t=e.scenes[n],r=0;r<t.nodes.length;r++)Y(e,t.nodes[r],null)},e.Extensions={},e}(),X=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,r,n,o){return!1},e.prototype.loadRuntimeExtensionsAsync=function(e,t,r){return!1},e.prototype.loadBufferAsync=function(e,t,r,n,o){return!1},e.prototype.loadTextureBufferAsync=function(e,t,r,n){return!1},e.prototype.createTextureAsync=function(e,t,r,n,o){return!1},e.prototype.loadShaderStringAsync=function(e,t,r,n){return!1},e.prototype.loadMaterialAsync=function(e,t,r,n){return!1},e.LoadRuntimeAsync=function(t,r,n,o,a){e._ApplyExtensions((function(e){return e.loadRuntimeAsync(t,r,n,o,a)}),(function(){setTimeout((function(){o&&o(K.CreateRuntime(r.json,t,n))}))}))},e.LoadRuntimeExtensionsAsync=function(t,r,n){e._ApplyExtensions((function(e){return e.loadRuntimeExtensionsAsync(t,r,n)}),(function(){setTimeout((function(){r()}))}))},e.LoadBufferAsync=function(t,r,n,o,a){e._ApplyExtensions((function(e){return e.loadBufferAsync(t,r,n,o,a)}),(function(){K.LoadBufferAsync(t,r,n,o,a)}))},e.LoadTextureAsync=function(t,r,n,o){e._LoadTextureBufferAsync(t,r,(function(a){a&&e._CreateTextureAsync(t,r,a,n,o)}),o)},e.LoadShaderStringAsync=function(t,r,n,o){e._ApplyExtensions((function(e){return e.loadShaderStringAsync(t,r,n,o)}),(function(){K.LoadShaderStringAsync(t,r,n,o)}))},e.LoadMaterialAsync=function(t,r,n,o){e._ApplyExtensions((function(e){return e.loadMaterialAsync(t,r,n,o)}),(function(){K.LoadMaterialAsync(t,r,n,o)}))},e._LoadTextureBufferAsync=function(t,r,n,o){e._ApplyExtensions((function(e){return e.loadTextureBufferAsync(t,r,n,o)}),(function(){K.LoadTextureBufferAsync(t,r,n,o)}))},e._CreateTextureAsync=function(t,r,n,o,a){e._ApplyExtensions((function(e){return e.createTextureAsync(t,r,n,o,a)}),(function(){K.CreateTextureAsync(t,r,n,o)}))},e._ApplyExtensions=function(e,t){for(var r in Q.Extensions)if(e(Q.Extensions[r]))return;t()},e}();p._CreateGLTF1Loader=function(){return new Q};var z=function(e){function t(){return e.call(this,"KHR_binary_glTF")||this}return N(t,e),t.prototype.loadRuntimeAsync=function(e,t,r,n){var o=t.json.extensionsUsed;return!(!o||-1===o.indexOf(this.name)||!t.bin||(this._bin=t.bin,n(K.CreateRuntime(t.json,e,r)),0))},t.prototype.loadBufferAsync=function(e,t,r,n){return-1!==e.extensionsUsed.indexOf(this.name)&&"binary_glTF"===t&&(this._bin.readAsync(0,this._bin.byteLength).then(r,(function(e){return n(e.message)})),!0)},t.prototype.loadTextureBufferAsync=function(e,t,r){var n=e.textures[t],o=e.images[n.source];if(!o.extensions||!(this.name in o.extensions))return!1;var a=o.extensions[this.name],i=e.bufferViews[a.bufferView];return r(M.GetBufferFromBufferView(e,i,0,i.byteLength,b.UNSIGNED_BYTE)),!0},t.prototype.loadShaderStringAsync=function(e,t,r){var n=e.shaders[t];if(!n.extensions||!(this.name in n.extensions))return!1;var o=n.extensions[this.name],a=e.bufferViews[o.bufferView],i=M.GetBufferFromBufferView(e,a,0,a.byteLength,b.UNSIGNED_BYTE);return setTimeout((function(){var e=M.DecodeBufferToText(i);r(e)})),!0},t}(X);Q.RegisterExtension(new z);var $=function(e){function t(){return e.call(this,"KHR_materials_common")||this}return N(t,e),t.prototype.loadRuntimeExtensionsAsync=function(e){if(!e.extensions)return!1;var t=e.extensions[this.name];if(!t)return!1;var r=t.lights;if(r)for(var n in r){var o=r[n];switch(o.type){case"ambient":var a=new i.HemisphericLight(o.name,new i.Vector3(0,1,0),e.scene),s=o.ambient;s&&(a.diffuse=i.Color3.FromArray(s.color||[1,1,1]));break;case"point":var l=new i.PointLight(o.name,new i.Vector3(10,10,10),e.scene),u=o.point;u&&(l.diffuse=i.Color3.FromArray(u.color||[1,1,1]));break;case"directional":var c=new i.DirectionalLight(o.name,new i.Vector3(0,-1,0),e.scene),f=o.directional;f&&(c.diffuse=i.Color3.FromArray(f.color||[1,1,1]));break;case"spot":var d=o.spot;d&&(new i.SpotLight(o.name,new i.Vector3(0,10,0),new i.Vector3(0,-1,0),d.fallOffAngle||Math.PI,d.fallOffExponent||0,e.scene).diffuse=i.Color3.FromArray(d.color||[1,1,1]));break;default:i.Tools.Warn('GLTF Material Common extension: light type "'+o.type+"” not supported")}}return!1},t.prototype.loadMaterialAsync=function(e,t,r,n){var o=e.materials[t];if(!o||!o.extensions)return!1;var a=o.extensions[this.name];if(!a)return!1;var s=new i.StandardMaterial(t,e.scene);return s.sideOrientation=i.Material.CounterClockWiseSideOrientation,"CONSTANT"===a.technique&&(s.disableLighting=!0),s.backFaceCulling=void 0!==a.doubleSided&&!a.doubleSided,s.alpha=void 0===a.values.transparency?1:a.values.transparency,s.specularPower=void 0===a.values.shininess?0:a.values.shininess,"string"==typeof a.values.ambient?this._loadTexture(e,a.values.ambient,s,"ambientTexture",n):s.ambientColor=i.Color3.FromArray(a.values.ambient||[0,0,0]),"string"==typeof a.values.diffuse?this._loadTexture(e,a.values.diffuse,s,"diffuseTexture",n):s.diffuseColor=i.Color3.FromArray(a.values.diffuse||[0,0,0]),"string"==typeof a.values.emission?this._loadTexture(e,a.values.emission,s,"emissiveTexture",n):s.emissiveColor=i.Color3.FromArray(a.values.emission||[0,0,0]),"string"==typeof a.values.specular?this._loadTexture(e,a.values.specular,s,"specularTexture",n):s.specularColor=i.Color3.FromArray(a.values.specular||[0,0,0]),!0},t.prototype._loadTexture=function(e,t,r,n,o){K.LoadTextureBufferAsync(e,t,(function(o){K.CreateTextureAsync(e,t,o,(function(e){return r[n]=e}))}),o)},t}(X);Q.RegisterExtension(new $);var ee=void 0!==n.g?n.g:"undefined"!=typeof window?window:void 0;if(void 0!==ee)for(var te in ee.BABYLON=ee.BABYLON||{},ee.BABYLON.GLTF1=ee.BABYLON.GLTF1||{},r)ee.BABYLON.GLTF1[te]=r[te];const re=a})(),o.default})()));
|
|
2
2
|
//# sourceMappingURL=babylon.glTF1FileLoader.min.js.map
|