var BABYLON;!(function(e){var r=(function(){function r(){this.extensions={".gltf":{isBinary:!1},".glb":{isBinary:!0}}}return r.prototype.importMeshAsync=function(e,n,t,a,o,i){var s=r._parse(t),l=this._getLoader(s);if(!l)return void i();l.importMeshAsync(e,n,s,a,o,i)},r.prototype.loadAsync=function(e,n,t,a,o){var i=r._parse(n),s=this._getLoader(i);return s?s.loadAsync(e,i,t,a,o):void o()},r.prototype.canDirectLoad=function(e){return-1!==e.indexOf("scene")&&-1!==e.indexOf("node")},r._parse=function(e){return e instanceof ArrayBuffer?r._parseBinary(e):{json:JSON.parse(e),bin:null}},r.prototype._getLoader=function(n){var t={major:2,minor:0},a=n.json.asset||{},o=r._parseVersion(a.version);if(!o)return e.Tools.Error("Invalid version"),null;var i=r._parseVersion(a.minVersion);if(i&&r._compareVersion(i,t)>0)return e.Tools.Error("Incompatible version"),null;var s={1:r.GLTFLoaderV1,2:r.GLTFLoaderV2},l=s[o.major];return void 0===l?(e.Tools.Error("Unsupported version"),null):null===l?(e.Tools.Error("v"+o.major+" loader is not available"),null):l},r._parseBinary=function(t){var a={Magic:1179937895},o=new n(t),i=o.readUint32();if(i!==a.Magic)return e.Tools.Error("Unexpected magic: "+i),null;var s=o.readUint32();switch(s){case 1:return r._parseV1(o);case 2:return r._parseV2(o)}return e.Tools.Error("Unsupported version: "+s),null},r._parseV1=function(n){var t={JSON:0},a=n.readUint32();if(a!=n.getLength())return e.Tools.Error("Length in header does not match actual data length: "+a+" != "+n.getLength()),null;var o,i=n.readUint32(),s=n.readUint32();switch(s){case t.JSON:o=JSON.parse(r._decodeBufferToText(n.readUint8Array(i)));break;default:return e.Tools.Error("Unexpected content format: "+s),null}var l=n.getLength()-n.getPosition();return{json:o,bin:n.readUint8Array(l)}},r._parseV2=function(n){var t={JSON:1313821514,BIN:5130562},a=n.readUint32();if(a!==n.getLength())return e.Tools.Error("Length in header does not match actual data length: "+a+" != "+n.getLength()),null;var o=n.readUint32(),i=n.readUint32();if(i!==t.JSON)return e.Tools.Error("First chunk format is not JSON"),null;for(var s=JSON.parse(r._decodeBufferToText(n.readUint8Array(o))),l=null;n.getPosition()1&&2!=r.length)return null;parseInt(r[1]);return{major:n,minor:parseInt(r[0])}},r._compareVersion=function(e,r){return e.major>r.major?1:e.majorr.minor?1:e.minor0&&(L=s(b,p))&&-1===m.indexOf(L)&&m.push(L);new e.Bone(y.name||v,d,L,R).id=v}}else e.Tools.Warn("Joint index "+u.joints[h]+" does not exist")}var _=d.bones;d.bones=[];for(var h=0;h=a.length)return e.Tools.Error("Invalid material index"),r.GLTFUtils.GetDefaultMaterial(n);var o=n.gltf.materials[t].babylonMaterial;return o||r.GLTFUtils.GetDefaultMaterial(n)},T=function(n,t,a){var o=a.name||t.name||"mesh"+t.mesh,i=t.babylonNode;if(i||(i=new e.Mesh(o,n.babylonScene)),!t.babylonNode)return i;var s=new e.MultiMaterial(o,n.babylonScene);i.material||(i.material=s);for(var l=new e.VertexData,u=new e.Geometry(o,n.babylonScene,l,!1,i),f=[],c=[],T=[],b=[],m=0;m0&&-1===r.importMeshesNames.indexOf(n.name))return null;if(void 0!==n.skin){if(void 0!==n.mesh){var a=r.gltf.skins[n.skin],o=T(r,n,r.gltf.meshes[n.mesh]),i=c(r,n,a);i&&(o.skeleton=i,a.babylonSkeleton=i),t=o}}else if(void 0!==n.mesh)t=T(r,n,r.gltf.meshes[n.mesh]);else if(void 0!==n.camera&&!n.babylonNode&&!r.importOnlyMeshes){var s=r.gltf.cameras[n.camera];if(void 0!==s)if("orthographic"===s.type){var l=(s.orthographic,new e.FreeCamera(n.name||"camera"+n.camera,e.Vector3.Zero(),r.babylonScene));l.mode=e.Camera.ORTHOGRAPHIC_CAMERA,l.attachControl(r.babylonScene.getEngine().getRenderingCanvas()),t=l}else if("perspective"===s.type){var u=s.perspective,f=new e.FreeCamera(n.name||"camera"+n.camera,e.Vector3.Zero(),r.babylonScene);f.attachControl(r.babylonScene.getEngine().getRenderingCanvas()),u.aspectRatio||(u.aspectRatio=r.babylonScene.getEngine().getRenderWidth()/r.babylonScene.getEngine().getRenderHeight()),u.znear&&u.zfar&&(f.maxZ=u.zfar,f.minZ=u.znear),t=f}}if(n.babylonNode)return n.babylonNode;if(null===t){var d=new e.Mesh(n.name||"mesh"+n.mesh,r.babylonScene);n.babylonNode=d,t=d}return null!==t&&(b(t,n),t.updateCache(!0),n.babylonNode=t),t},h=function(e,r,t,a){var o=e.gltf.nodes[r],i=null;if(a=!(e.importOnlyMeshes&&!a)||(-1!==e.importMeshesNames.indexOf(o.name)||0===e.importMeshesNames.length),a&&null!==(i=m(e,o))&&(i.id=n(r),i.parent=t),o.children)for(var s=0;s0&&void 0===l[0].uri&&(i=l[0]),t.bin){if(!i)return e.Tools.Error("Unexpected BIN chunk"),null;if(i.byteLength!=t.bin.byteLength)return e.Tools.Error("Binary buffer length from JSON does not match chunk length"),null;i.loadedBufferView=t.bin}return r.GLTFLoaderExtension.PostCreateRuntime(s),s},n})());p.Extensions={},r.GLTFLoader=p,e.GLTFFileLoader.GLTFLoaderV2=new p})(e.GLTF2||(e.GLTF2={}))})(BABYLON||(BABYLON={}));var BABYLON;!(function(e){!(function(r){var n=(function(){function n(){}return n.IsBase64=function(e){return!(e.length<5)&&"data:"===e.substr(0,5)},n.DecodeBase64=function(e){for(var r=atob(e.split(",")[1]),n=r.length,t=new Uint8Array(new ArrayBuffer(n)),a=0;ai.byteLength)throw new Error("Buffer access is out of range");var s=i.buffer;switch(t+=i.byteOffset,o){case r.EComponentType.BYTE:return new Int8Array(s,t,a);case r.EComponentType.UNSIGNED_BYTE:return new Uint8Array(s,t,a);case r.EComponentType.SHORT:return new Int16Array(s,t,a);case r.EComponentType.UNSIGNED_SHORT:return new Uint16Array(s,t,a);case r.EComponentType.UNSIGNED_INT:return new Uint32Array(s,t,a);default:return new Float32Array(s,t,a)}},n.GetBufferFromAccessor=function(e,r){var t=e.gltf.bufferViews[r.bufferView],a=r.byteOffset||0,o=r.count*n.GetByteStrideFromType(r);return n.GetBufferFromBufferView(e,t,a,o,r.componentType)},n.DecodeBufferToText=function(e){for(var r="",n=e.byteLength,t=0;t