var BABYLON;!(function(e){var t=(function(){function t(){}return t.GLTF=function(t,r,a){var i=r.replace(/\.[^\/.]+$/,""),n=new e.GLTF2._Exporter(t,a);if(t.isReady)return n._generateGLTF(i);throw new Error("glTF Serializer: Scene is not ready!")},t.GLB=function(t,r,a){var i=r.replace(/\.[^\/.]+$/,""),n=new e.GLTF2._Exporter(t,a);if(t.isReady)return n._generateGLB(i);throw new Error("glTF Serializer: Scene is not ready!")},t})();e.GLTF2Export=t})(BABYLON||(BABYLON={}));var BABYLON;!(function(e){!(function(t){var r=(function(){function r(e,t){this.asset={generator:"BabylonJS",version:"2.0"},this.babylonScene=e,this.bufferViews=new Array,this.accessors=new Array,this.meshes=new Array,this.scenes=new Array,this.nodes=new Array,this.images=new Array,this.materials=new Array,this.textures=new Array,this.imageData={},void 0!==t&&(this.options=t);var r=0;r=this.createScene(this.babylonScene,r,null),this.totalByteLength=r}return r.prototype.createBufferView=function(e,t,r,a,i){var n={buffer:e,byteLength:r};return t>0&&(n.byteOffset=t),i&&(n.name=i),a&&(n.byteStride=a),n},r.prototype.createAccessor=function(e,t,r,a,i,n,s,o){var l={name:t,bufferView:e,componentType:a,count:i,type:r};return s&&(l.min=s),o&&(l.max=o),n&&(l.byteOffset=n),l},r.prototype.calculateMinMax=function(e,t,r,a,i){var n=[1/0,1/0,1/0],s=[-1/0,-1/0,-1/0],o=t+r;if(r>0)for(var l=t;ls[h]&&(s[h]=c),++u}return{min:n,max:s}},r.prototype.writeAttributeData=function(t,r,a,i,n,s,o){var l=n,u=r.length/a,f=0;switch(t){case e.VertexBuffer.PositionKind:case e.VertexBuffer.NormalKind:for(var h=0;h0&&(i.buffers=[a]),this.nodes&&0!==this.nodes.length&&(i.nodes=this.nodes),this.meshes&&0!==this.meshes.length&&(i.meshes=this.meshes),this.scenes&&0!==this.scenes.length&&(i.scenes=this.scenes,i.scene=0),this.bufferViews&&0!==this.bufferViews.length&&(i.bufferViews=this.bufferViews),this.accessors&&0!==this.accessors.length&&(i.accessors=this.accessors),this.materials&&0!==this.materials.length&&(i.materials=this.materials),this.textures&&0!==this.textures.length&&(i.textures=this.textures),this.images&&0!==this.images.length)if(e){i.images=[];for(var n=this.images.length,s=this.totalByteLength,o=0;o-1)if(l=s.getVertexBuffer(t),u=l.getOffset(),f=l.getData(),h=l.getStrideSize(),n&&f)o=this.writeAttributeData(t,f,h,u,a,n,i),a+=o;else{var c=null;switch(t){case e.VertexBuffer.PositionKind:o=4*f.length,c="Position - "+s.name;break;case e.VertexBuffer.NormalKind:o=4*f.length,c="Normal - "+s.name;break;case e.VertexBuffer.TangentKind:o=4*f.length,c="Tangent - "+s.name;break;case e.VertexBuffer.ColorKind:o=4*f.length,c="Color - "+s.name;break;case e.VertexBuffer.UVKind:o=4*f.length,c="TexCoord 0 - "+s.name;break;case e.VertexBuffer.UV2Kind:o=4*f.length,c="TexCoord 1 - "+s.name;break;default:e.Tools.Warn("Unsupported VertexBuffer kind: "+t)}if(null!==c){var g=this.createBufferView(0,a,o,4*h,c);a+=o,this.bufferViews.push(g)}}}return o},r.prototype.setPrimitiveAttributes=function(t,r,a,i,n){var s=null;r instanceof e.Mesh?s=r:r instanceof e.InstancedMesh&&(s=r.sourceMesh);var o=null,l=null,u=null,f=null,h=null,c=null;if(null!==s&&(s.isVerticesDataPresent(e.VertexBuffer.PositionKind)&&(a+=this.createBufferViewKind(e.VertexBuffer.PositionKind,r,a,i,n),o=this.bufferViews.length-1),s.isVerticesDataPresent(e.VertexBuffer.NormalKind)&&(a+=this.createBufferViewKind(e.VertexBuffer.NormalKind,r,a,i,n),l=this.bufferViews.length-1),s.isVerticesDataPresent(e.VertexBuffer.ColorKind)&&(a+=this.createBufferViewKind(e.VertexBuffer.ColorKind,r,a,i,n),u=this.bufferViews.length-1),s.isVerticesDataPresent(e.VertexBuffer.TangentKind)&&(a+=this.createBufferViewKind(e.VertexBuffer.TangentKind,r,a,i,n),u=this.bufferViews.length-1),s.isVerticesDataPresent(e.VertexBuffer.UVKind)&&(a+=this.createBufferViewKind(e.VertexBuffer.UVKind,r,a,i,n),f=this.bufferViews.length-1),s.isVerticesDataPresent(e.VertexBuffer.UV2Kind)&&(a+=this.createBufferViewKind(e.VertexBuffer.UV2Kind,r,a,i,n),h=this.bufferViews.length-1),s.getTotalIndices()>0)){var g=s.getIndices();if(n){for(var d=g.length,p=a,m=0;m0){var i=e.meshes,n={nodes:new Array};null==a&&t._GLTFMaterial.ConvertMaterialsToGLTF(e.materials,"image/jpeg",this.images,this.textures,this.materials,this.imageData,!0);for(var s=0;s