!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)}(window,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=13)}({0:function(t,r){t.exports=e},13:function(e,t,r){"use strict";r.r(t),function(e){var n=r(7);r.d(t,"MTLFileLoader",function(){return n.MTLFileLoader}),r.d(t,"OBJFileLoader",function(){return n.OBJFileLoader});var o=void 0!==e?e:"undefined"!=typeof window?window:void 0;if(void 0!==o)for(var s in n)o.BABYLON[s]=n[s]}.call(this,r(3))},3:function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},7:function(e,t,r){"use strict";r.r(t);var n=r(0),o=function(){function e(){this.materials=[]}return e.prototype.parseMTL=function(t,r,o){if(!(r instanceof ArrayBuffer)){for(var s,i=r.split("\n"),a=/\s+/,l=null,u=0;u=0?p.substring(0,f):p;c=c.toLowerCase();var d=f>=0?p.substring(f+1).trim():"";"newmtl"===c?(l&&this.materials.push(l),l=new n.StandardMaterial(d,t)):"kd"===c&&l?(s=d.split(a,3).map(parseFloat),l.diffuseColor=n.Color3.FromArray(s)):"ka"===c&&l?(s=d.split(a,3).map(parseFloat),l.ambientColor=n.Color3.FromArray(s)):"ks"===c&&l?(s=d.split(a,3).map(parseFloat),l.specularColor=n.Color3.FromArray(s)):"ke"===c&&l?(s=d.split(a,3).map(parseFloat),l.emissiveColor=n.Color3.FromArray(s)):"ns"===c&&l?l.specularPower=parseFloat(d):"d"===c&&l?l.alpha=parseFloat(d):"map_ka"===c&&l?l.ambientTexture=e._getTexture(o,d,t):"map_kd"===c&&l?l.diffuseTexture=e._getTexture(o,d,t):"map_ks"===c&&l?l.specularTexture=e._getTexture(o,d,t):"map_ns"===c||("map_bump"===c&&l?l.bumpTexture=e._getTexture(o,d,t):"map_d"===c&&l&&(l.opacityTexture=e._getTexture(o,d,t)))}}l&&this.materials.push(l)}},e._getTexture=function(e,t,r){if(!t)return null;var o=e;if("file:"===e){var s=t.lastIndexOf("\\");-1===s&&(s=t.lastIndexOf("/")),o+=s>-1?t.substr(s+1):t}else o+=t;return new n.Texture(o,r)},e}(),s=function(){function e(){this.name="obj",this.extensions=".obj",this.obj=/^o/,this.group=/^g/,this.mtllib=/^mtllib /,this.usemtl=/^usemtl /,this.smooth=/^s /,this.vertexPattern=/v( +[\d|\.|\+|\-|e|E]+){3,7}/,this.normalPattern=/vn( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/,this.uvPattern=/vt( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/,this.facePattern1=/f\s+(([\d]{1,}[\s]?){3,})+/,this.facePattern2=/f\s+((([\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,this.facePattern3=/f\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,this.facePattern4=/f\s+((([\d]{1,}\/\/[\d]{1,}[\s]?){3,})+)/,this.facePattern5=/f\s+(((-[\d]{1,}\/-[\d]{1,}\/-[\d]{1,}[\s]?){3,})+)/}return e.prototype._loadMTL=function(e,t,r){var o=n.Tools.BaseUrl+t+e;n.Tools.LoadFile(o,r,void 0,void 0,!1,function(){console.warn("Error - Unable to load "+o)})},e.prototype.importMeshAsync=function(e,t,r,n,o,s){return this._parseSolid(e,t,r,n).then(function(e){return{meshes:e,particleSystems:[],skeletons:[],animationGroups:[]}})},e.prototype.loadAsync=function(e,t,r,n,o){return this.importMeshAsync(null,e,t,r,n).then(function(){})},e.prototype.loadAssetContainerAsync=function(e,t,r,o,s){return this.importMeshAsync(null,e,t,r).then(function(t){var r=new n.AssetContainer(e);return t.meshes.forEach(function(e){return r.meshes.push(e)}),r.removeAllFromScene(),r})},e.prototype._parseSolid=function(t,r,s,i){for(var a,l=this,u=[],p=[],f=[],c=[],d=[],h=[],m=[],v=[],O=[],T=[],_=[],y=0,g=!1,x=[],b=[],P=[],R=[],E=[],I="",M="",L=new o,w=1,F=!0,C=new n.Color4(.5,.5,.5,1),S=function(t,r,n,o,s,i,a){var l;-1==(l=e.OPTIMIZE_WITH_UV?function(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[],uv:[]});var r=e[t[0]].normals.indexOf(t[1]);return 1!=r&&t[2]==e[t[0]].uv[r]?e[t[0]].idx[r]:-1}(_,[t,n,r]):function(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[]});var r=e[t[0]].normals.indexOf(t[1]);return-1===r?-1:e[t[0]].idx[r]}(_,[t,n]))?(h.push(m.length),m.push(o),v.push(s),T.push(i),void 0!==a&&O.push(a),_[t].normals.push(n),_[t].idx.push(y++),e.OPTIMIZE_WITH_UV&&_[t].uv.push(r)):h.push(l)},V=function(){for(var t=0;t0&&(a=d[d.length-1],V(),h.reverse(),a.indices=h.slice(),a.positions=x.slice(),a.normals=P.slice(),a.uvs=R.slice(),!0===e.IMPORT_VERTEX_COLORS&&(a.colors=b.slice()),h=[],x=[],b=[],P=[],R=[])},Z=s.split("\n"),Y=0;Y=7?c.push(new n.Color4(parseFloat(D[4]),parseFloat(D[5]),parseFloat(D[6]),7===D.length||void 0===D[7]?1:parseFloat(D[7]))):c.push(C));else if(null!==(D=this.normalPattern.exec(H)))p.push(new n.Vector3(parseFloat(D[1]),parseFloat(D[2]),parseFloat(D[3])));else if(null!==(D=this.uvPattern.exec(H)))f.push(new n.Vector2(parseFloat(D[1]),parseFloat(D[2])));else if(null!==(D=this.facePattern3.exec(H)))U(D[1].trim().split(" "),1);else if(null!==(D=this.facePattern4.exec(H)))X(D[1].trim().split(" "),1);else if(null!==(D=this.facePattern5.exec(H)))B(D[1].trim().split(" "),1);else if(null!==(D=this.facePattern2.exec(H)))N(D[1].trim().split(" "),1);else if(null!==(D=this.facePattern1.exec(H)))j(D[1].trim().split(" "),1);else if(this.group.test(H)||this.obj.test(H)){var J={name:H.substring(2).trim(),indices:void 0,positions:void 0,normals:void 0,uvs:void 0,colors:void 0,materialName:""};k(),d.push(J),g=!0,F=!0,w=1}else if(this.usemtl.test(H)){if(I=H.substring(7).trim(),!F){k();J={name:"_mm"+w.toString(),indices:void 0,positions:void 0,normals:void 0,uvs:void 0,colors:void 0,materialName:I};w++,d.push(J)}g&&F&&(d[d.length-1].materialName=I,F=!1)}else this.mtllib.test(H)?M=H.substring(7).trim():this.smooth.test(H)||console.log("Unhandled expression at line : "+H)}g&&(a=d[d.length-1],h.reverse(),V(),a.indices=h,a.positions=x,a.normals=P,a.uvs=R,!0===e.IMPORT_VERTEX_COLORS&&(a.colors=b)),g||(h.reverse(),V(),d.push({name:n.Geometry.RandomId(),indices:h,positions:x,colors:b,normals:P,uvs:R,materialName:I}));for(var W=[],q=new Array,z=0;z-1;)l.push(s),a=s+1;if(-1==s&&0==l.length)L.materials[o].dispose();else for(var u=0;u