12 |
- var BABYLON;!(function(e){var n;!(function(e){e[e.AUTO=0]="AUTO",e[e.PASS_THROUGH=1]="PASS_THROUGH",e[e.FORCE_RIGHT_HANDED=2]="FORCE_RIGHT_HANDED"})(n=e.GLTFLoaderCoordinateSystemMode||(e.GLTFLoaderCoordinateSystemMode={}));var t=(function(){function e(){this.coordinateSystemMode=n.AUTO,this.name="gltf",this.extensions={".gltf":{isBinary:!1},".glb":{isBinary:!0}}}return e.prototype.importMeshAsync=function(n,t,r,i,o,a,s){var u=e._parse(r,s);if(u){var l=this._getLoader(u,s);l&&l.importMeshAsync(n,t,u,i,o,a,s)}},e.prototype.loadAsync=function(n,t,r,i,o,a){var s=e._parse(t,a);if(s){var u=this._getLoader(s,a);if(u)return u.loadAsync(n,s,r,i,o,a)}},e.prototype.canDirectLoad=function(e){return-1!==e.indexOf("scene")&&-1!==e.indexOf("node")},e._parse=function(n,t){if(n instanceof ArrayBuffer)return e._parseBinary(n,t);try{return{json:JSON.parse(n),bin:null}}catch(e){return t(e.message),null}},e.prototype._getLoader=function(n,t){var r={major:2,minor:0},i=n.json.asset||{},o=e._parseVersion(i.version);if(!o)return t("Invalid version: "+i.version),null;if(void 0!==i.minVersion){var a=e._parseVersion(i.minVersion);if(!a)return t("Invalid minimum version: "+i.minVersion),null;if(e._compareVersion(a,r)>0)return t("Incompatible minimum version: "+i.minVersion),null}var s={1:e.CreateGLTFLoaderV1,2:e.CreateGLTFLoaderV2},u=s[o.major];return u?u(this):(t("Unsupported version: "+i.version),null)},e._parseBinary=function(n,t){var i={Magic:1179937895},o=new r(n),a=o.readUint32();if(a!==i.Magic)return t("Unexpected magic: "+a),null;var s=o.readUint32();switch(s){case 1:return e._parseV1(o,t);case 2:return e._parseV2(o,t)}return t("Unsupported version: "+s),null},e._parseV1=function(n,t){var r={JSON:0},i=n.readUint32();if(i!=n.getLength())return t("Length in header does not match actual data length: "+i+" != "+n.getLength()),null;var o,a=n.readUint32(),s=n.readUint32();switch(s){case r.JSON:o=JSON.parse(e._decodeBufferToText(n.readUint8Array(a)));break;default:return t("Unexpected content format: "+s),null}var u=n.getLength()-n.getPosition();return{json:o,bin:n.readUint8Array(u)}},e._parseV2=function(n,t){var r={JSON:1313821514,BIN:5130562},i=n.readUint32();if(i!==n.getLength())return t("Length in header does not match actual data length: "+i+" != "+n.getLength()),null;var o=n.readUint32(),a=n.readUint32();if(a!==r.JSON)return t("First chunk format is not JSON"),null;for(var s=JSON.parse(e._decodeBufferToText(n.readUint8Array(o))),u=null;n.getPosition()<n.getLength();)switch(o=n.readUint32(),a=n.readUint32()){case r.JSON:return t("Unexpected JSON chunk"),null;case r.BIN:u=n.readUint8Array(o);break;default:n.skipBytes(o)}return{json:s,bin:u}},e._parseVersion=function(e){if(!e)return null;var n=e.split(".");if(2!=n.length)return null;var t=+n[0];if(isNaN(t))return null;var r=+n[1];return isNaN(r)?null:{major:t,minor:r}},e._compareVersion=function(e,n){return e.major>n.major?1:e.major<n.major?-1:e.minor>n.minor?1:e.minor<n.minor?-1:0},e._decodeBufferToText=function(e){for(var n="",t=e.byteLength,r=0;r<t;++r)n+=String.fromCharCode(e[r]);return n},e.HomogeneousCoordinates=!1,e.IncrementalLoading=!0,e})();e.GLTFFileLoader=t;var r=(function(){function e(e){this._arrayBuffer=e,this._dataView=new DataView(e),this._byteOffset=0}return e.prototype.getPosition=function(){return this._byteOffset},e.prototype.getLength=function(){return this._arrayBuffer.byteLength},e.prototype.readUint32=function(){var e=this._dataView.getUint32(this._byteOffset,!0);return this._byteOffset+=4,e},e.prototype.readUint8Array=function(e){var n=new Uint8Array(this._arrayBuffer,this._byteOffset,e);return this._byteOffset+=e,n},e.prototype.skipBytes=function(e){this._byteOffset+=e},e})();e.SceneLoader&&e.SceneLoader.RegisterPlugin(new t)})(BABYLON||(BABYLON={}));var BABYLON;!(function(e){!(function(e){!(function(e){e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.FLOAT=5126]="FLOAT"})(e.EComponentType||(e.EComponentType={}));!(function(e){e[e.FRAGMENT=35632]="FRAGMENT",e[e.VERTEX=35633]="VERTEX"})(e.EShaderType||(e.EShaderType={}));!(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"})(e.EParameterType||(e.EParameterType={}));!(function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.REPEAT=10497]="REPEAT"})(e.ETextureWrapMode||(e.ETextureWrapMode={}));!(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"})(e.ETextureFilterType||(e.ETextureFilterType={}));!(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.ETextureFormat||(e.ETextureFormat={}));!(function(e){e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK"})(e.ECullingType||(e.ECullingType={}));!(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"})(e.EBlendingFunction||(e.EBlendingFunction={}))})(e.GLTF1||(e.GLTF1={}))})(BABYLON||(BABYLON={}));var BABYLON;!(function(e){!(function(n){var t;!(function(e){e[e.IDENTIFIER=1]="IDENTIFIER",e[e.UNKNOWN=2]="UNKNOWN",e[e.END_OF_INPUT=3]="END_OF_INPUT"})(t||(t={}));var r=(function(){function e(e){this._pos=0,this.isLetterOrDigitPattern=/^[a-zA-Z0-9]+$/,this._toParse=e,this._maxPos=e.length}return e.prototype.getNextToken=function(){if(this.isEnd())return t.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=t.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=t.IDENTIFIER,this.currentIdentifier=this.currentString;!this.isEnd()&&(this.isLetterOrDigitPattern.test(this.currentString=this.peek())||"_"===this.currentString);)this.currentIdentifier+=this.currentString,this.forward();return this.currentToken},e.prototype.peek=function(){return this._toParse[this._pos]},e.prototype.read=function(){return this._toParse[this._pos++]},e.prototype.forward=function(){this._pos++},e.prototype.isEnd=function(){return this._pos>=this._maxPos},e})(),i=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],o=["world","view","projection","worldView","worldViewProjection","mBones"],a=["translation","rotation","scale"],s=["position","rotationQuaternion","scaling"],u=function(e,n){for(var t in e){var r=e[t];n.buffers[t]=r,n.buffersCount++}},l=function(e,n){for(var t in e){var r=e[t];n.shaders[t]=r,n.shaderscount++}},f=function(e,n,t){for(var r in e){var i=e[r];t[n][r]=i}},c=function(e){if(e)for(var n=0;n<e.length/2;n++)e[2*n+1]=1-e[2*n+1]},d=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(-1!==e.semantic.indexOf("TEXCOORD_")){var n=Number(e.semantic.split("_")[1]);return"uv"+(0===n?"":n+1)}},m=function(t){for(var r in t.animations)for(var i=t.animations[r],o=null,u=0;u<i.channels.length;u++){var l=i.channels[u],f=i.samplers[l.sampler];if(f){var c=null,d=null;i.parameters?(c=i.parameters[f.input],d=i.parameters[f.output]):(c=f.input,d=f.output);var m=n.GLTFUtils.GetBufferFromAccessor(t,t.accessors[c]),E=n.GLTFUtils.GetBufferFromAccessor(t,t.accessors[d]),T=l.target.id,A=t.scene.getNodeByID(T);if(null===A&&(A=t.scene.getNodeByName(T)),null!==A){var p=A instanceof e.Bone,h=l.target.path,y=a.indexOf(h);-1!==y&&(h=s[y]);var L=e.Animation.ANIMATIONTYPE_MATRIX;p||("rotationQuaternion"===h?(L=e.Animation.ANIMATIONTYPE_QUATERNION,A.rotationQuaternion=new e.Quaternion):L=e.Animation.ANIMATIONTYPE_VECTOR3);var _=null,N=[],O=0,g=!1;p&&o&&o.getKeys().length===m.length&&(_=o,g=!0),g||(_=new e.Animation(r,p?"_matrix":h,1,L,e.Animation.ANIMATIONLOOPMODE_CYCLE));for(var v=0;v<m.length;v++){var S=null;if("rotationQuaternion"===h?(S=e.Quaternion.FromArray([E[O],E[O+1],E[O+2],E[O+3]]),O+=4):(S=e.Vector3.FromArray([E[O],E[O+1],E[O+2]]),O+=3),p){var F=A,M=e.Vector3.Zero(),x=new e.Quaternion,B=e.Vector3.Zero(),R=F.getBaseMatrix();g&&(R=o.getKeys()[v].value),R.decompose(B,x,M),"position"===h?M=S:"rotationQuaternion"===h?x=S:B=S,S=e.Matrix.Compose(B,x,M)}g?o.getKeys()[v].value=S:N.push({frame:m[v],value:S})}g||(_.setKeys(N),A.animations.push(_)),o=_,t.scene.stopAnimation(A),t.scene.beginAnimation(A,0,m[m.length-1],!0,1)}else e.Tools.Warn("Creating animation named "+r+". But cannot find node named "+T+" to attach to")}}},E=function(n){var t=null;if(n.translation||n.rotation||n.scale){var r=e.Vector3.FromArray(n.scale||[1,1,1]),i=e.Quaternion.FromArray(n.rotation||[0,0,0,1]),o=e.Vector3.FromArray(n.translation||[0,0,0]);t=e.Matrix.Compose(r,i,o)}else t=e.Matrix.FromArray(n.matrix);return t},T=function(n,t,r,i){for(var o=0;o<i.bones.length;o++)if(i.bones[o].name===r)return i.bones[o];var a=n.nodes;for(var s in a){var u=a[s];if(u.jointName)for(var l=u.children,o=0;o<l.length;o++){var f=n.nodes[l[o]];if(f.jointName&&f.jointName===r){var c=E(u),d=new e.Bone(u.name,i,T(n,t,u.jointName,i),c);return d.id=s,d}}}return null},A=function(e,n){for(var t=0;t<e.length;t++)for(var r=e[t],i=0;i<r.node.children.length;i++){var o=r.node.children[i];if(o===n)return r.bone}return null},p=function(e,n){var t=e.nodes,r=t[n];if(r)return{node:r,id:n};for(var i in t)if(r=t[i],r.jointName===n)return{node:r,id:i};return null},h=function(e,n){for(var t=0;t<e.jointNames.length;t++)if(e.jointNames[t]===n)return!0;return!1},y=function(n,t,r,i){for(var o in n.nodes){var a=n.nodes[o],s=o;if(a.jointName&&!h(r,a.jointName)){var u=E(a),l=new e.Bone(a.name,t,null,u);l.id=s,i.push({bone:l,node:a,id:s})}}for(var f=0;f<i.length;f++)for(var c=i[f],d=c.node.children,m=0;m<d.length;m++){for(var T=null,A=0;A<i.length;A++)if(i[A].id===d[m]){T=i[A];break}T&&(T.bone._parent=c.bone,c.bone.children.push(T.bone))}},L=function(t,r,i,o,a){if(o||(o=new e.Skeleton(r.name,"",t.scene)),!r.babylonSkeleton)return o;var s=t.accessors[r.inverseBindMatrices],u=(n.GLTFUtils.GetBufferFromAccessor(t,s),e.Matrix.FromArray(r.bindShapeMatrix),[]),l=[];y(t,o,r,u),o.bones=[];for(var f=0;f<r.jointNames.length;f++){var c=p(t,r.jointNames[f]),d=c.node;if(d){var a=c.id,m=t.scene.getBoneByID(a);if(m)o.bones.push(m);else{for(var h=!1,L=null,_=0;_<f;_++){var N=p(t,r.jointNames[_]).node;if(N){var O=N.children;if(O){h=!1;for(var g=0;g<O.length;g++)if(O[g]===a){L=T(t,r,r.jointNames[_],o),h=!0;break}if(h)break}}else e.Tools.Warn("Joint named "+r.jointNames[_]+" does not exist when looking for parent")}var v=E(d);!L&&u.length>0&&(L=A(u,a))&&-1===l.indexOf(L)&&l.push(L);new e.Bone(d.jointName,o,L,v).id=a}}else e.Tools.Warn("Joint named "+r.jointNames[f]+" does not exist")}var S=o.bones;o.bones=[];for(var f=0;f<r.jointNames.length;f++){var c=p(t,r.jointNames[f]);if(c)for(var _=0;_<S.length;_++)if(S[_].id===c.id){o.bones.push(S[_]);break}}o.prepare();for(var f=0;f<l.length;f++)o.bones.push(l[f]);return o},_=function(t,r,i,o,a){if(a||(a=new e.Mesh(r.name,t.scene),a.id=o),!r.babylonNode)return a;var s=new e.MultiMaterial("multimat"+o,t.scene);a.material||(a.material=s);for(var u=new e.VertexData,l=new e.Geometry(o,t.scene,u,!1,a),f=[],d=[],m=[],E=[],T=0;T<i.length;T++){var A=i[T],p=t.meshes[A];if(p)for(var h=0;h<p.primitives.length;h++){var y=new e.VertexData,L=p.primitives[h];L.mode;var _=L.attributes,N=null,O=null;for(var g in _)if(N=t.accessors[_[g]],O=n.GLTFUtils.GetBufferFromAccessor(t,N),"NORMAL"===g)y.normals=new Float32Array(O.length),y.normals.set(O);else if("POSITION"===g){if(e.GLTFFileLoader.HomogeneousCoordinates){y.positions=new Float32Array(O.length-O.length/4);for(var v=0;v<O.length;v+=4)y.positions[v]=O[v],y.positions[v+1]=O[v+1],y.positions[v+2]=O[v+2]}else y.positions=new Float32Array(O.length),y.positions.set(O);d.push(y.positions.length)}else if(-1!==g.indexOf("TEXCOORD_")){var S=Number(g.split("_")[1]),F=e.VertexBuffer.UVKind+(0===S?"":S+1),M=new Float32Array(O.length);M.set(O),c(M),y.set(M,F)}else"JOINT"===g?(y.matricesIndices=new Float32Array(O.length),y.matricesIndices.set(O)):"WEIGHT"===g?(y.matricesWeights=new Float32Array(O.length),y.matricesWeights.set(O)):"COLOR"===g&&(y.colors=new Float32Array(O.length),y.colors.set(O));if(N=t.accessors[L.indices])O=n.GLTFUtils.GetBufferFromAccessor(t,N),y.indices=new Int32Array(O.length),y.indices.set(O),E.push(y.indices.length);else{for(var x=[],v=0;v<y.positions.length/3;v++)x.push(v);y.indices=new Int32Array(x),E.push(y.indices.length)}u.merge(y),y=void 0;var B=t.scene.getMaterialByID(L.material);s.subMaterials.push(null===B?n.GLTFUtils.GetDefaultMaterial(t.scene):B),f.push(0===f.length?0:f[f.length-1]+d[d.length-2]),m.push(0===m.length?0:m[m.length-1]+E[E.length-2])}}l.setAllVerticesData(u,!1),a.computeWorldMatrix(!0),a.subMeshes=[];for(var R=0,T=0;T<i.length;T++){var A=i[T],p=t.meshes[A];if(p)for(var h=0;h<p.primitives.length;h++){p.primitives[h].mode;new e.SubMesh(R,f[R],d[R],m[R],E[R],a,a,!0);R++}}return a},N=function(e,n,t,r){e.position&&(e.position=n),(e.rotationQuaternion||e.rotation)&&(e.rotationQuaternion=t),e.scaling&&(e.scaling=r)},O=function(n,t,r){if(t.matrix){var i=new e.Vector3(0,0,0),o=new e.Quaternion,a=new e.Vector3(0,0,0);e.Matrix.FromArray(t.matrix).decompose(a,o,i),N(n,i,o,a)}else N(n,e.Vector3.FromArray(t.translation),e.Quaternion.FromArray(t.rotation),e.Vector3.FromArray(t.scale));n.computeWorldMatrix(!0)},g=function(n,t,r,i){var o=null;if(n.importOnlyMeshes&&(t.skin||t.meshes)&&n.importMeshesNames.length>0&&-1===n.importMeshesNames.indexOf(t.name))return null;if(t.skin){if(t.meshes){var a=n.skins[t.skin],s=_(n,t,t.meshes,r,t.babylonNode);s.skeleton=n.scene.getLastSkeletonByID(t.skin),null===s.skeleton&&(s.skeleton=L(n,a,0,a.babylonSkeleton,t.skin),a.babylonSkeleton||(a.babylonSkeleton=s.skeleton)),o=s}}else if(t.meshes){var s=_(n,t,t.mesh?[t.mesh]:t.meshes,r,t.babylonNode);o=s}else if(!t.light||t.babylonNode||n.importOnlyMeshes){if(t.camera&&!t.babylonNode&&!n.importOnlyMeshes){var u=n.cameras[t.camera];if(u)if("orthographic"===u.type){var l=(u[u.type],new e.FreeCamera(t.camera,e.Vector3.Zero(),n.scene));l.name=t.name,l.mode=e.Camera.ORTHOGRAPHIC_CAMERA,l.attachControl(n.scene.getEngine().getRenderingCanvas()),o=l}else if("perspective"===u.type){var f=u[u.type],c=new e.FreeCamera(t.camera,e.Vector3.Zero(),n.scene);c.name=t.name,c.attachControl(n.scene.getEngine().getRenderingCanvas()),f.aspectRatio||(f.aspectRatio=n.scene.getEngine().getRenderWidth()/n.scene.getEngine().getRenderHeight()),f.znear&&f.zfar&&(c.maxZ=f.zfar,c.minZ=f.znear),o=c}}}else{var d=n.lights[t.light];if(d)if("ambient"===d.type){var m=d[d.type],E=new e.HemisphericLight(t.light,e.Vector3.Zero(),n.scene);E.name=t.name,m.color&&(E.diffuse=e.Color3.FromArray(m.color)),o=E}else if("directional"===d.type){var T=d[d.type],A=new e.DirectionalLight(t.light,e.Vector3.Zero(),n.scene);A.name=t.name,T.color&&(A.diffuse=e.Color3.FromArray(T.color)),o=A}else if("point"===d.type){var p=d[d.type],h=new e.PointLight(t.light,e.Vector3.Zero(),n.scene);h.name=t.name,p.color&&(h.diffuse=e.Color3.FromArray(p.color)),o=h}else if("spot"===d.type){var y=d[d.type],g=new e.SpotLight(t.light,e.Vector3.Zero(),e.Vector3.Zero(),0,0,n.scene);g.name=t.name,y.color&&(g.diffuse=e.Color3.FromArray(y.color)),y.fallOfAngle&&(g.angle=y.fallOfAngle),y.fallOffExponent&&(g.exponent=y.fallOffExponent),o=g}}if(!t.jointName){if(t.babylonNode)return t.babylonNode;if(null===o){var v=new e.Mesh(t.name,n.scene);t.babylonNode=v,o=v}}if(null!==o){if(t.matrix&&o instanceof e.Mesh)O(o,t);else{var S=t.translation||[0,0,0],F=t.rotation||[0,0,0,1],M=t.scale||[1,1,1];N(o,e.Vector3.FromArray(S),e.Quaternion.FromArray(F),e.Vector3.FromArray(M))}o.updateCache(!0),t.babylonNode=o}return o},v=function(e,n,t,r){var i=e.nodes[n],o=null;if(r=!(e.importOnlyMeshes&&!r)||(-1!==e.importMeshesNames.indexOf(i.name)||0===e.importMeshesNames.length),!i.jointName&&r&&null!==(o=g(e,i,n))&&(o.id=n,o.parent=t),i.children)for(var a=0;a<i.children.length;a++)v(e,i.children[a],o,r)},S=function(e){var n=e.currentScene;if(n)for(var t=0;t<n.nodes.length;t++)v(e,n.nodes[t],null);else for(var r in e.scenes){n=e.scenes[r];for(var t=0;t<n.nodes.length;t++)v(e,n.nodes[t],null)}m(e);for(var t=0;t<e.scene.skeletons.length;t++){var i=e.scene.skeletons[t];e.scene.beginAnimation(i,0,Number.MAX_VALUE,!0,1)}},F=function(e,t,r,i,o,a,s){var u=a.values||o.parameters;for(var l in r){var f=r[l],c=f.type;if(c===n.EParameterType.FLOAT_MAT2||c===n.EParameterType.FLOAT_MAT3||c===n.EParameterType.FLOAT_MAT4)if(!f.semantic||f.source||f.node){if(f.semantic&&(f.source||f.node)){var d=t.scene.getNodeByName(f.source||f.node);if(null===d&&(d=t.scene.getNodeByID(f.source||f.node)),null===d)continue;n.GLTFUtils.SetMatrix(t.scene,d,f,l,i.getEffect())}}else n.GLTFUtils.SetMatrix(t.scene,e,f,l,i.getEffect());else{var m=u[o.uniforms[l]];if(!m)continue;if(c===n.EParameterType.SAMPLER_2D){var E=t.textures[a.values?m:f.value].babylonTexture;if(null===E||void 0===E)continue;i.getEffect().setTexture(l,E)}else n.GLTFUtils.SetUniform(i.getEffect(),l,m,c)}}s(i)},M=function(e,t,r,i,o){var a=i.values||r.parameters,s=r.uniforms;for(var u in o){var l=o[u],f=l.type,c=a[s[u]];if(void 0===c&&(c=l.value),c){var d=function(e){return function(n){l.value&&(t.setTexture(e,n),delete o[e])}};f===n.EParameterType.SAMPLER_2D?n.GLTFLoaderExtension.LoadTextureAsync(e,i.values?c:l.value,d(u),(function(){return d(null)})):l.value&&n.GLTFUtils.SetUniform(t,u,i.values?c:l.value,f)&&delete o[u]}}},x=function(e,n,t){return function(r,i){n.dispose(!0),t("Cannot compile program named "+e.name+". Error: "+i+". Default material will be applied")}},B=function(e,n,t,r,i,o){return function(a){M(e,n,t,r,i),n.onBind=function(a){F(a,e,i,n,t,r,o)}}},R=function(e,n,t){for(var r in n.uniforms){var a=n.uniforms[r],s=n.parameters[a];if(e.currentIdentifier===r&&s.semantic&&!s.source&&!s.node){var u=i.indexOf(s.semantic);if(-1!==u)return delete t[r],o[u]}}return e.currentIdentifier},I=function(e){for(var t in e.materials)n.GLTFLoaderExtension.LoadMaterialAsync(e,t,(function(e){}),(function(){}))},b=(function(){function a(){}return a.CreateRuntime=function(e,n,t){var r={extensions:{},accessors:{},buffers:{},bufferViews:{},meshes:{},lights:{},cameras:{},nodes:{},images:{},textures:{},shaders:{},programs:{},samplers:{},techniques:{},materials:{},animations:{},skins:{},extensionsUsed:[],scenes:{},buffersCount:0,shaderscount:0,scene:n,rootUrl:t,loadedBufferCount:0,loadedBufferViews:{},loadedShaderCount:0,importOnlyMeshes:!1,dummyNodes:[]};return e.extensions&&f(e.extensions,"extensions",r),e.extensionsUsed&&f(e.extensionsUsed,"extensionsUsed",r),e.buffers&&u(e.buffers,r),e.bufferViews&&f(e.bufferViews,"bufferViews",r),e.accessors&&f(e.accessors,"accessors",r),e.meshes&&f(e.meshes,"meshes",r),e.lights&&f(e.lights,"lights",r),e.cameras&&f(e.cameras,"cameras",r),e.nodes&&f(e.nodes,"nodes",r),e.images&&f(e.images,"images",r),e.textures&&f(e.textures,"textures",r),e.shaders&&l(e.shaders,r),e.programs&&f(e.programs,"programs",r),e.samplers&&f(e.samplers,"samplers",r),e.techniques&&f(e.techniques,"techniques",r),e.materials&&f(e.materials,"materials",r),e.animations&&f(e.animations,"animations",r),e.skins&&f(e.skins,"skins",r),e.scenes&&(r.scenes=e.scenes),e.scene&&e.scenes&&(r.currentScene=e.scenes[e.scene]),r},a.LoadBufferAsync=function(t,r,i,o,a){var s=t.buffers[r];n.GLTFUtils.IsBase64(s.uri)?setTimeout((function(){return i(new Uint8Array(n.GLTFUtils.DecodeBase64(s.uri)))})):e.Tools.LoadFile(t.rootUrl+s.uri,(function(e){return i(new Uint8Array(e))}),a,null,!0,(function(e){o(e.status+" "+e.statusText)}))},a.LoadTextureBufferAsync=function(t,r,i,o){var a=t.textures[r];if(!a||!a.source)return void o(null);if(a.babylonTexture)return void i(null);var s=t.images[a.source];n.GLTFUtils.IsBase64(s.uri)?setTimeout((function(){return i(new Uint8Array(n.GLTFUtils.DecodeBase64(s.uri)))})):e.Tools.LoadFile(t.rootUrl+s.uri,(function(e){return i(new Uint8Array(e))}),null,null,!0,(function(e){o(e.status+" "+e.statusText)}))},a.CreateTextureAsync=function(t,r,i,o,a){var s=t.textures[r];if(s.babylonTexture)return void o(s.babylonTexture);var u=t.samplers[s.sampler],l=u.minFilter===n.ETextureFilterType.NEAREST_MIPMAP_NEAREST||u.minFilter===n.ETextureFilterType.NEAREST_MIPMAP_LINEAR||u.minFilter===n.ETextureFilterType.LINEAR_MIPMAP_NEAREST||u.minFilter===n.ETextureFilterType.LINEAR_MIPMAP_LINEAR,f=e.Texture.BILINEAR_SAMPLINGMODE,c=new Blob([i]),d=URL.createObjectURL(c),m=function(){return URL.revokeObjectURL(d)},E=new e.Texture(d,t.scene,!l,!0,f,m,m);E.wrapU=n.GLTFUtils.GetWrapMode(u.wrapS),E.wrapV=n.GLTFUtils.GetWrapMode(u.wrapT),E.name=r,s.babylonTexture=E,o(E)},a.LoadShaderStringAsync=function(t,r,i,o){var a=t.shaders[r];if(n.GLTFUtils.IsBase64(a.uri)){i(atob(a.uri.split(",")[1]))}else e.Tools.LoadFile(t.rootUrl+a.uri,i,null,null,!1,(function(e){o(e.status+" "+e.statusText)}))},a.LoadMaterialAsync=function(a,s,u,l){var f=a.materials[s],c=a.techniques[f.technique];if(!c){var m=new e.StandardMaterial(s,a.scene);return m.diffuseColor=new e.Color3(.5,.5,.5),m.sideOrientation=e.Material.CounterClockWiseSideOrientation,void u(m)}var E=a.programs[c.program],T=c.states,A=e.Effect.ShadersStore[E.vertexShader+"VertexShader"],p=e.Effect.ShadersStore[E.fragmentShader+"PixelShader"],h="",y="",L=new r(A),_=new r(p),N={},O=[],g=[],v=[];for(var S in c.uniforms){var F=c.uniforms[S],M=c.parameters[F];if(N[S]=M,!M.semantic||M.node||M.source)M.type===n.EParameterType.SAMPLER_2D?v.push(S):O.push(S);else{var I=i.indexOf(M.semantic);-1!==I?(O.push(o[I]),delete N[S]):O.push(S)}}for(var b in c.attributes){var C=c.attributes[b],P=c.parameters[C];P.semantic&&g.push(d(P))}for(;!L.isEnd()&&L.getNextToken();){var w=L.currentToken;if(w===t.IDENTIFIER){var V=!1;for(var b in c.attributes){var C=c.attributes[b],P=c.parameters[C];if(L.currentIdentifier===b&&P.semantic){h+=d(P),V=!0;break}}V||(h+=R(L,c,N))}else h+=L.currentString}for(;!_.isEnd()&&_.getNextToken();){var w=_.currentToken;w===t.IDENTIFIER?y+=R(_,c,N):y+=_.currentString}var G={vertex:E.vertexShader+s,fragment:E.fragmentShader+s},U={attributes:g,uniforms:O,samplers:v,needAlphaBlending:T&&T.enable&&-1!==T.enable.indexOf(3042)};e.Effect.ShadersStore[E.vertexShader+s+"VertexShader"]=h,e.Effect.ShadersStore[E.fragmentShader+s+"PixelShader"]=y;var D=new e.ShaderMaterial(s,a.scene,G,U);if(D.onError=x(E,D,l),D.onCompiled=B(a,D,c,f,N,u),D.sideOrientation=e.Material.CounterClockWiseSideOrientation,T&&T.functions){var k=T.functions;k.cullFace&&k.cullFace[0]!==n.ECullingType.BACK&&(D.backFaceCulling=!1);var H=k.blendFuncSeparate;H&&(H[0]===n.EBlendingFunction.SRC_ALPHA&&H[1]===n.EBlendingFunction.ONE_MINUS_SRC_ALPHA&&H[2]===n.EBlendingFunction.ONE&&H[3]===n.EBlendingFunction.ONE?D.alphaMode=e.Engine.ALPHA_COMBINE:H[0]===n.EBlendingFunction.ONE&&H[1]===n.EBlendingFunction.ONE&&H[2]===n.EBlendingFunction.ZERO&&H[3]===n.EBlendingFunction.ONE?D.alphaMode=e.Engine.ALPHA_ONEONE:H[0]===n.EBlendingFunction.SRC_ALPHA&&H[1]===n.EBlendingFunction.ONE&&H[2]===n.EBlendingFunction.ZERO&&H[3]===n.EBlendingFunction.ONE?D.alphaMode=e.Engine.ALPHA_ADD:H[0]===n.EBlendingFunction.ZERO&&H[1]===n.EBlendingFunction.ONE_MINUS_SRC_COLOR&&H[2]===n.EBlendingFunction.ONE&&H[3]===n.EBlendingFunction.ONE?D.alphaMode=e.Engine.ALPHA_SUBTRACT:H[0]===n.EBlendingFunction.DST_COLOR&&H[1]===n.EBlendingFunction.ZERO&&H[2]===n.EBlendingFunction.ONE&&H[3]===n.EBlendingFunction.ONE?D.alphaMode=e.Engine.ALPHA_MULTIPLY:H[0]===n.EBlendingFunction.SRC_ALPHA&&H[1]===n.EBlendingFunction.ONE_MINUS_SRC_COLOR&&H[2]===n.EBlendingFunction.ONE&&H[3]===n.EBlendingFunction.ONE&&(D.alphaMode=e.Engine.ALPHA_MAXIMIZED))}},a})();n.GLTFLoaderBase=b;var C=(function(){function t(){}return t.RegisterExtension=function(n){if(t.Extensions[n.name])return void e.Tools.Error('Tool with the same name "'+n.name+'" already exists');t.Extensions[n.name]=n},t.prototype.importMeshAsync=function(t,r,i,o,a,s,u){var l=this;r.useRightHandedSystem=!0;n.GLTFLoaderExtension.LoadRuntimeAsync(r,i,o,(function(n){n.importOnlyMeshes=!0,""===t?n.importMeshesNames=[]:"string"==typeof t?n.importMeshesNames=[t]:!t||t instanceof Array?(n.importMeshesNames=[],e.Tools.Warn("Argument meshesNames must be of type string or string[]")):n.importMeshesNames=[t],l._createNodes(n);var r=[],i=[];for(var o in n.nodes){var u=n.nodes[o];u.babylonNode instanceof e.AbstractMesh&&r.push(u.babylonNode)}for(var f in n.skins){var c=n.skins[f];c.babylonSkeleton instanceof e.Skeleton&&i.push(c.babylonSkeleton)}l._loadBuffersAsync(n,(function(){l._loadShadersAsync(n,(function(){I(n),S(n),!e.GLTFFileLoader.IncrementalLoading&&a&&a(r,null,i)}))}),s),e.GLTFFileLoader.IncrementalLoading&&a&&a(r,null,i)}),u);return!0},t.prototype.loadAsync=function(t,r,i,o,a,s){var u=this;t.useRightHandedSystem=!0,n.GLTFLoaderExtension.LoadRuntimeAsync(t,r,i,(function(t){n.GLTFLoaderExtension.LoadRuntimeExtensionsAsync(t,(function(){u._createNodes(t),u._loadBuffersAsync(t,(function(){u._loadShadersAsync(t,(function(){I(t),S(t),e.GLTFFileLoader.IncrementalLoading||o()}))})),e.GLTFFileLoader.IncrementalLoading&&o()}),s)}),s)},t.prototype._loadShadersAsync=function(t,r){var i=!1,o=function(i,o){n.GLTFLoaderExtension.LoadShaderStringAsync(t,i,(function(a){t.loadedShaderCount++,a&&(e.Effect.ShadersStore[i+(o.type===n.EShaderType.VERTEX?"VertexShader":"PixelShader")]=a),t.loadedShaderCount===t.shaderscount&&r()}),(function(){e.Tools.Error("Error when loading shader program named "+i+" located at "+o.uri)}))};for(var a in t.shaders){i=!0;var s=t.shaders[a];s?o.bind(this,a,s)():e.Tools.Error("No shader named: "+a)}i||r()},t.prototype._loadBuffersAsync=function(t,r,i){var o=!1,a=function(i,o){n.GLTFLoaderExtension.LoadBufferAsync(t,i,(function(n){t.loadedBufferCount++,n&&(n.byteLength!=t.buffers[i].byteLength&&e.Tools.Error("Buffer named "+i+" is length "+n.byteLength+". Expected: "+o.byteLength),t.loadedBufferViews[i]=n),t.loadedBufferCount===t.buffersCount&&r()}),(function(){e.Tools.Error("Error when loading buffer named "+i+" located at "+o.uri)}))};for(var s in t.buffers){o=!0;var u=t.buffers[s];u?a.bind(this,s,u)():e.Tools.Error("No buffer named: "+s)}o||r()},t.prototype._createNodes=function(e){var n=e.currentScene;if(n)for(var t=0;t<n.nodes.length;t++)v(e,n.nodes[t],null);else for(var r in e.scenes){n=e.scenes[r];for(var t=0;t<n.nodes.length;t++)v(e,n.nodes[t],null)}},t.Extensions={},t})();n.GLTFLoader=C,e.GLTFFileLoader.CreateGLTFLoaderV1=function(){return new C}})(e.GLTF1||(e.GLTF1={}))})(BABYLON||(BABYLON={}));var BABYLON;!(function(e){!(function(n){var t=(function(){function t(){}return t.SetMatrix=function(t,r,i,o,a){var s=null;switch("MODEL"===i.semantic?s=r.getWorldMatrix():"PROJECTION"===i.semantic?s=t.getProjectionMatrix():"VIEW"===i.semantic?s=t.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===i.semantic?s=e.Matrix.Transpose(r.getWorldMatrix().multiply(t.getViewMatrix()).invert()):"MODELVIEW"===i.semantic?s=r.getWorldMatrix().multiply(t.getViewMatrix()):"MODELVIEWPROJECTION"===i.semantic?s=r.getWorldMatrix().multiply(t.getTransformMatrix()):"MODELINVERSE"===i.semantic?s=r.getWorldMatrix().invert():"VIEWINVERSE"===i.semantic?s=t.getViewMatrix().invert():"PROJECTIONINVERSE"===i.semantic?s=t.getProjectionMatrix().invert():"MODELVIEWINVERSE"===i.semantic?s=r.getWorldMatrix().multiply(t.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===i.semantic?s=r.getWorldMatrix().multiply(t.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===i.semantic&&(s=e.Matrix.Transpose(r.getWorldMatrix().invert())),i.type){case n.EParameterType.FLOAT_MAT2:a.setMatrix2x2(o,e.Matrix.GetAsMatrix2x2(s));break;case n.EParameterType.FLOAT_MAT3:a.setMatrix3x3(o,e.Matrix.GetAsMatrix3x3(s));break;case n.EParameterType.FLOAT_MAT4:a.setMatrix(o,s)}},t.SetUniform=function(t,r,i,o){switch(o){case n.EParameterType.FLOAT:return t.setFloat(r,i),!0;case n.EParameterType.FLOAT_VEC2:return t.setVector2(r,e.Vector2.FromArray(i)),!0;case n.EParameterType.FLOAT_VEC3:return t.setVector3(r,e.Vector3.FromArray(i)),!0;case n.EParameterType.FLOAT_VEC4:return t.setVector4(r,e.Vector4.FromArray(i)),!0;default:return!1}},t.IsBase64=function(e){return!(e.length<5)&&"data:"===e.substr(0,5)},t.DecodeBase64=function(e){for(var n=atob(e.split(",")[1]),t=n.length,r=new Uint8Array(new ArrayBuffer(t)),i=0;i<t;i++)r[i]=n.charCodeAt(i);return r.buffer},t.GetWrapMode=function(t){switch(t){case n.ETextureWrapMode.CLAMP_TO_EDGE:return e.Texture.CLAMP_ADDRESSMODE;case n.ETextureWrapMode.MIRRORED_REPEAT:return e.Texture.MIRROR_ADDRESSMODE;case n.ETextureWrapMode.REPEAT:default:return e.Texture.WRAP_ADDRESSMODE}},t.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}},t.GetTextureFilterMode=function(t){switch(t){case n.ETextureFilterType.LINEAR:case n.ETextureFilterType.LINEAR_MIPMAP_NEAREST:case n.ETextureFilterType.LINEAR_MIPMAP_LINEAR:return e.Texture.TRILINEAR_SAMPLINGMODE;case n.ETextureFilterType.NEAREST:case n.ETextureFilterType.NEAREST_MIPMAP_NEAREST:return e.Texture.NEAREST_SAMPLINGMODE;default:return e.Texture.BILINEAR_SAMPLINGMODE}},t.GetBufferFromBufferView=function(e,t,r,i,o){var r=t.byteOffset+r,a=e.loadedBufferViews[t.buffer];if(r+i>a.byteLength)throw new Error("Buffer access is out of range");var s=a.buffer;switch(r+=a.byteOffset,o){case n.EComponentType.BYTE:return new Int8Array(s,r,i);case n.EComponentType.UNSIGNED_BYTE:return new Uint8Array(s,r,i);case n.EComponentType.SHORT:return new Int16Array(s,r,i);case n.EComponentType.UNSIGNED_SHORT:return new Uint16Array(s,r,i);default:return new Float32Array(s,r,i)}},t.GetBufferFromAccessor=function(e,n){var r=e.bufferViews[n.bufferView],i=n.count*t.GetByteStrideFromType(n);return t.GetBufferFromBufferView(e,r,n.byteOffset,i,n.componentType)},t.DecodeBufferToText=function(e){for(var n="",t=e.byteLength,r=0;r<t;++r)n+=String.fromCharCode(e[r]);return n},t.GetDefaultMaterial=function(n){if(!t._DefaultMaterial){e.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"),e.Effect.ShadersStore.GLTFDefaultMaterialPixelShader=["precision highp float;","","uniform vec4 u_emission;","","void main(void)","{"," gl_FragColor = u_emission;","}"].join("\n");var r={vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},i={attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:[],needAlphaBlending:!1};t._DefaultMaterial=new e.ShaderMaterial("GLTFDefaultMaterial",n,r,i),
- t._DefaultMaterial.setColor4("u_emission",new e.Color4(.5,.5,.5,1))}return t._DefaultMaterial},t._DefaultMaterial=null,t})();n.GLTFUtils=t})(e.GLTF1||(e.GLTF1={}))})(BABYLON||(BABYLON={}));var BABYLON;!(function(e){!(function(e){var n=(function(){function n(e){this._name=e}return Object.defineProperty(n.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),n.prototype.loadRuntimeAsync=function(e,n,t,r,i){return!1},n.prototype.loadRuntimeExtensionsAsync=function(e,n,t){return!1},n.prototype.loadBufferAsync=function(e,n,t,r,i){return!1},n.prototype.loadTextureBufferAsync=function(e,n,t,r){return!1},n.prototype.createTextureAsync=function(e,n,t,r,i){return!1},n.prototype.loadShaderStringAsync=function(e,n,t,r){return!1},n.prototype.loadMaterialAsync=function(e,n,t,r){return!1},n.LoadRuntimeAsync=function(t,r,i,o,a){n.ApplyExtensions((function(e){return e.loadRuntimeAsync(t,r,i,o,a)}),(function(){setTimeout((function(){o(e.GLTFLoaderBase.CreateRuntime(r.json,t,i))}))}))},n.LoadRuntimeExtensionsAsync=function(e,t,r){n.ApplyExtensions((function(n){return n.loadRuntimeExtensionsAsync(e,t,r)}),(function(){setTimeout((function(){t()}))}))},n.LoadBufferAsync=function(t,r,i,o,a){n.ApplyExtensions((function(e){return e.loadBufferAsync(t,r,i,o,a)}),(function(){e.GLTFLoaderBase.LoadBufferAsync(t,r,i,o,a)}))},n.LoadTextureAsync=function(e,t,r,i){n.LoadTextureBufferAsync(e,t,(function(o){return n.CreateTextureAsync(e,t,o,r,i)}),i)},n.LoadShaderStringAsync=function(t,r,i,o){n.ApplyExtensions((function(e){return e.loadShaderStringAsync(t,r,i,o)}),(function(){e.GLTFLoaderBase.LoadShaderStringAsync(t,r,i,o)}))},n.LoadMaterialAsync=function(t,r,i,o){n.ApplyExtensions((function(e){return e.loadMaterialAsync(t,r,i,o)}),(function(){e.GLTFLoaderBase.LoadMaterialAsync(t,r,i,o)}))},n.LoadTextureBufferAsync=function(t,r,i,o){n.ApplyExtensions((function(e){return e.loadTextureBufferAsync(t,r,i,o)}),(function(){e.GLTFLoaderBase.LoadTextureBufferAsync(t,r,i,o)}))},n.CreateTextureAsync=function(t,r,i,o,a){n.ApplyExtensions((function(e){return e.createTextureAsync(t,r,i,o,a)}),(function(){e.GLTFLoaderBase.CreateTextureAsync(t,r,i,o,a)}))},n.ApplyExtensions=function(n,t){for(var r in e.GLTFLoader.Extensions){if(n(e.GLTFLoader.Extensions[r]))return}t()},n})();e.GLTFLoaderExtension=n})(e.GLTF1||(e.GLTF1={}))})(BABYLON||(BABYLON={}));var __extends=this&&this.__extends||(function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function r(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}})(),BABYLON;!(function(e){!(function(e){var n;!(function(e){e[e.JSON=0]="JSON"})(n||(n={}));var t=(function(n){function t(){return n.call(this,"KHR_binary_glTF")||this}return __extends(t,n),t.prototype.loadRuntimeAsync=function(n,t,r,i,o){var a=t.json.extensionsUsed;return!(!a||-1===a.indexOf(this.name))&&(this._bin=t.bin,i(e.GLTFLoaderBase.CreateRuntime(t.json,n,r)),!0)},t.prototype.loadBufferAsync=function(e,n,t,r){return-1!==e.extensionsUsed.indexOf(this.name)&&("binary_glTF"===n&&(t(this._bin),!0))},t.prototype.loadTextureBufferAsync=function(n,t,r,i){var o=n.textures[t],a=n.images[o.source];if(!(a.extensions&&this.name in a.extensions))return!1;var s=a.extensions[this.name],u=n.bufferViews[s.bufferView];return r(e.GLTFUtils.GetBufferFromBufferView(n,u,0,u.byteLength,e.EComponentType.UNSIGNED_BYTE)),!0},t.prototype.loadShaderStringAsync=function(n,t,r,i){var o=n.shaders[t];if(!(o.extensions&&this.name in o.extensions))return!1;var a=o.extensions[this.name],s=n.bufferViews[a.bufferView],u=e.GLTFUtils.GetBufferFromBufferView(n,s,0,s.byteLength,e.EComponentType.UNSIGNED_BYTE);return setTimeout((function(){var n=e.GLTFUtils.DecodeBufferToText(u);r(n)})),!0},t})(e.GLTFLoaderExtension);e.GLTFBinaryExtension=t;!(function(){function e(e){this._arrayBuffer=e,this._dataView=new DataView(e),this._byteOffset=0}e.prototype.getUint32=function(){var e=this._dataView.getUint32(this._byteOffset,!0);return this._byteOffset+=4,e},e.prototype.getUint8Array=function(e){e||(e=this._arrayBuffer.byteLength-this._byteOffset);var n=new Uint8Array(this._arrayBuffer,this._byteOffset,e);return this._byteOffset+=e,n}})();e.GLTFLoader.RegisterExtension(new t)})(e.GLTF1||(e.GLTF1={}))})(BABYLON||(BABYLON={}));var __extends=this&&this.__extends||(function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function r(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}})(),BABYLON;!(function(e){!(function(n){var t=(function(t){function r(){return t.call(this,"KHR_materials_common")||this}return __extends(r,t),r.prototype.loadRuntimeExtensionsAsync=function(n,t,r){if(!n.extensions)return!1;var i=n.extensions[this.name];if(!i)return!1;var o=i.lights;if(o)for(var a in o){var s=o[a];switch(s.type){case"ambient":var u=new e.HemisphericLight(s.name,new e.Vector3(0,1,0),n.scene),l=s.ambient;u.diffuse=e.Color3.FromArray(l.color||[1,1,1]);break;case"point":var f=new e.PointLight(s.name,new e.Vector3(10,10,10),n.scene),c=s.point;f.diffuse=e.Color3.FromArray(c.color||[1,1,1]);break;case"directional":var d=new e.DirectionalLight(s.name,new e.Vector3(0,-1,0),n.scene),m=s.directional;d.diffuse=e.Color3.FromArray(m.color||[1,1,1]);break;case"spot":var E=s.spot,T=new e.SpotLight(s.name,new e.Vector3(0,10,0),new e.Vector3(0,-1,0),s.spot.fallOffAngle||Math.PI,s.spot.fallOffExponent||0,n.scene);T.diffuse=e.Color3.FromArray(E.color||[1,1,1]);break;default:e.Tools.Warn('GLTF Material Common extension: light type "'+s.type+"” not supported")}}return!1},r.prototype.loadMaterialAsync=function(n,t,r,i){var o=n.materials[t];if(!o||!o.extensions)return!1;var a=o.extensions[this.name];if(!a)return!1;var s=new e.StandardMaterial(t,n.scene);return s.sideOrientation=e.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(n,a.values.ambient,s,"ambientTexture",i):s.ambientColor=e.Color3.FromArray(a.values.ambient||[0,0,0]),"string"==typeof a.values.diffuse?this._loadTexture(n,a.values.diffuse,s,"diffuseTexture",i):s.diffuseColor=e.Color3.FromArray(a.values.diffuse||[0,0,0]),"string"==typeof a.values.emission?this._loadTexture(n,a.values.emission,s,"emissiveTexture",i):s.emissiveColor=e.Color3.FromArray(a.values.emission||[0,0,0]),"string"==typeof a.values.specular?this._loadTexture(n,a.values.specular,s,"specularTexture",i):s.specularColor=e.Color3.FromArray(a.values.specular||[0,0,0]),!0},r.prototype._loadTexture=function(e,t,r,i,o){n.GLTFLoaderBase.LoadTextureBufferAsync(e,t,(function(a){n.GLTFLoaderBase.CreateTextureAsync(e,t,a,(function(e){return r[i]=e}),o)}),o)},r})(n.GLTFLoaderExtension);n.GLTFMaterialsCommonExtension=t,n.GLTFLoader.RegisterExtension(new t)})(e.GLTF1||(e.GLTF1={}))})(BABYLON||(BABYLON={}));
|