UNPKG

babylonjs-loaders

Version:

Babylon.js Loaders module =====================

2 lines 21.4 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-loaders",["babylonjs"],e):"object"==typeof exports?exports["babylonjs-loaders"]=e(require("babylonjs")):t.LOADERS=e(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,(t=>(()=>{"use strict";var e={597:e=>{e.exports=t}},s={};function i(t){var r=s[t];if(void 0!==r)return r.exports;var o=s[t]={exports:{}};return e[t](o,o.exports,i),o.exports}i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};i.d(r,{default:()=>d});var o={};i.r(o),i.d(o,{MTLFileLoader:()=>l,OBJFileLoader:()=>p,SolidParser:()=>h});var n={};i.r(n),i.d(n,{MTLFileLoader:()=>l,OBJFileLoader:()=>p,SolidParser:()=>h});var a=i(597),l=function(){function t(){this.materials=[]}return t.prototype.parseMTL=function(e,s,i,r){if(!(s instanceof ArrayBuffer)){for(var o,n=s.split("\n"),l=/\s+/,h=null,p=0;p<n.length;p++){var _=n[p].trim();if(0!==_.length&&"#"!==_.charAt(0)){var u=_.indexOf(" "),d=u>=0?_.substring(0,u):_;d=d.toLowerCase();var m=u>=0?_.substring(u+1).trim():"";if("newmtl"===d)h&&this.materials.push(h),e._blockEntityCollection=!!r,(h=new a.StandardMaterial(m,e))._parentContainer=r,e._blockEntityCollection=!1;else if("kd"===d&&h)o=m.split(l,3).map(parseFloat),h.diffuseColor=a.Color3.FromArray(o);else if("ka"===d&&h)o=m.split(l,3).map(parseFloat),h.ambientColor=a.Color3.FromArray(o);else if("ks"===d&&h)o=m.split(l,3).map(parseFloat),h.specularColor=a.Color3.FromArray(o);else if("ke"===d&&h)o=m.split(l,3).map(parseFloat),h.emissiveColor=a.Color3.FromArray(o);else if("ns"===d&&h)h.specularPower=parseFloat(m);else if("d"===d&&h)h.alpha=parseFloat(m);else if("map_ka"===d&&h)h.ambientTexture=t._GetTexture(i,m,e);else if("map_kd"===d&&h)h.diffuseTexture=t._GetTexture(i,m,e);else if("map_ks"===d&&h)h.specularTexture=t._GetTexture(i,m,e);else if("map_ns"===d);else if("map_bump"===d&&h){var c=m.split(l),f=c.indexOf("-bm"),g=null;f>=0&&(g=c[f+1],c.splice(f,2)),h.bumpTexture=t._GetTexture(i,c.join(" "),e),h.bumpTexture&&null!==g&&(h.bumpTexture.level=parseFloat(g))}else"map_d"===d&&h&&(h.opacityTexture=t._GetTexture(i,m,e))}}h&&this.materials.push(h)}},t._GetTexture=function(e,s,i){if(!s)return null;var r=e;if("file:"===e){var o=s.lastIndexOf("\\");-1===o&&(o=s.lastIndexOf("/")),r+=o>-1?s.substring(o+1):s}else r+=s;return new a.Texture(r,i,!1,t.INVERT_TEXTURE_Y)},t.INVERT_TEXTURE_Y=!0,t}(),h=function(){function t(t,e,s){this._positions=[],this._normals=[],this._uvs=[],this._colors=[],this._extColors=[],this._meshesFromObj=[],this._indicesForBabylon=[],this._wrappedPositionForBabylon=[],this._wrappedUvsForBabylon=[],this._wrappedColorsForBabylon=[],this._wrappedNormalsForBabylon=[],this._tuplePosNorm=[],this._curPositionInIndices=0,this._hasMeshes=!1,this._unwrappedPositionsForBabylon=[],this._unwrappedColorsForBabylon=[],this._unwrappedNormalsForBabylon=[],this._unwrappedUVForBabylon=[],this._triangles=[],this._materialNameFromObj="",this._objMeshName="",this._increment=1,this._isFirstMaterial=!0,this._grayColor=new a.Color4(.5,.5,.5,1),this._hasLineData=!1,this._materialToUse=t,this._babylonMeshesArray=e,this._loadingOptions=s}return t.prototype._isInArray=function(t,e){t[e[0]]||(t[e[0]]={normals:[],idx:[]});var s=t[e[0]].normals.indexOf(e[1]);return-1===s?-1:t[e[0]].idx[s]},t.prototype._isInArrayUV=function(t,e){t[e[0]]||(t[e[0]]={normals:[],idx:[],uv:[]});var s=t[e[0]].normals.indexOf(e[1]);return 1!=s&&e[2]===t[e[0]].uv[s]?t[e[0]].idx[s]:-1},t.prototype._setData=function(t,e,s,i,r,o,n){var l;-1===(l=this._loadingOptions.optimizeWithUV?this._isInArrayUV(this._tuplePosNorm,[t,s,e]):this._isInArray(this._tuplePosNorm,[t,s]))?(this._indicesForBabylon.push(this._wrappedPositionForBabylon.length),this._wrappedPositionForBabylon.push(i),r=null!=r?r:new a.Vector2(0,0),this._wrappedUvsForBabylon.push(r),this._wrappedNormalsForBabylon.push(o),void 0!==n&&this._wrappedColorsForBabylon.push(n),this._tuplePosNorm[t].normals.push(s),this._tuplePosNorm[t].idx.push(this._curPositionInIndices++),this._loadingOptions.optimizeWithUV&&this._tuplePosNorm[t].uv.push(e)):this._indicesForBabylon.push(l)},t.prototype._unwrapData=function(){try{for(var t=0;t<this._wrappedPositionForBabylon.length;t++)this._unwrappedPositionsForBabylon.push(this._wrappedPositionForBabylon[t].x*this._handednessSign,this._wrappedPositionForBabylon[t].y,this._wrappedPositionForBabylon[t].z),this._unwrappedNormalsForBabylon.push(this._wrappedNormalsForBabylon[t].x*this._handednessSign,this._wrappedNormalsForBabylon[t].y,this._wrappedNormalsForBabylon[t].z),this._unwrappedUVForBabylon.push(this._wrappedUvsForBabylon[t].x,this._wrappedUvsForBabylon[t].y),this._loadingOptions.importVertexColors&&this._unwrappedColorsForBabylon.push(this._wrappedColorsForBabylon[t].r,this._wrappedColorsForBabylon[t].g,this._wrappedColorsForBabylon[t].b,this._wrappedColorsForBabylon[t].a);this._wrappedPositionForBabylon.length=0,this._wrappedNormalsForBabylon.length=0,this._wrappedUvsForBabylon.length=0,this._wrappedColorsForBabylon.length=0,this._tuplePosNorm.length=0,this._curPositionInIndices=0}catch(t){throw new Error("Unable to unwrap data while parsing OBJ data.")}},t.prototype._getTriangles=function(t,e){for(var s=e;s<t.length-1;s++)this._pushTriangle(t,s)},t.prototype._getColor=function(t){var e;return this._loadingOptions.importVertexColors?null!==(e=this._extColors[t])&&void 0!==e?e:this._colors[t]:void 0},t.prototype._setDataForCurrentFaceWithPattern1=function(t,e){this._getTriangles(t,e);for(var s=0;s<this._triangles.length;s++){var i=parseInt(this._triangles[s])-1;this._setData(i,0,0,this._positions[i],a.Vector2.Zero(),a.Vector3.Up(),this._getColor(i))}this._triangles.length=0},t.prototype._setDataForCurrentFaceWithPattern2=function(t,e){var s;this._getTriangles(t,e);for(var i=0;i<this._triangles.length;i++){var r=this._triangles[i].split("/"),o=parseInt(r[0])-1,n=parseInt(r[1])-1;this._setData(o,n,0,this._positions[o],null!==(s=this._uvs[n])&&void 0!==s?s:a.Vector2.Zero(),a.Vector3.Up(),this._getColor(o))}this._triangles.length=0},t.prototype._setDataForCurrentFaceWithPattern3=function(t,e){var s,i;this._getTriangles(t,e);for(var r=0;r<this._triangles.length;r++){var o=this._triangles[r].split("/"),n=parseInt(o[0])-1,l=parseInt(o[1])-1,h=parseInt(o[2])-1;this._setData(n,l,h,this._positions[n],null!==(s=this._uvs[l])&&void 0!==s?s:a.Vector2.Zero(),null!==(i=this._normals[h])&&void 0!==i?i:a.Vector3.Up())}this._triangles.length=0},t.prototype._setDataForCurrentFaceWithPattern4=function(t,e){this._getTriangles(t,e);for(var s=0;s<this._triangles.length;s++){var i=this._triangles[s].split("//"),r=parseInt(i[0])-1,o=parseInt(i[1])-1;this._setData(r,1,o,this._positions[r],a.Vector2.Zero(),this._normals[o],this._getColor(r))}this._triangles.length=0},t.prototype._setDataForCurrentFaceWithPattern5=function(t,e){this._getTriangles(t,e);for(var s=0;s<this._triangles.length;s++){var i=this._triangles[s].split("/"),r=this._positions.length+parseInt(i[0]),o=this._uvs.length+parseInt(i[1]),n=this._normals.length+parseInt(i[2]);this._setData(r,o,n,this._positions[r],this._uvs[o],this._normals[n],this._getColor(r))}this._triangles.length=0},t.prototype._addPreviousObjMesh=function(){this._meshesFromObj.length>0&&(this._handledMesh=this._meshesFromObj[this._meshesFromObj.length-1],this._unwrapData(),this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._handledMesh.indices=this._indicesForBabylon.slice(),this._handledMesh.positions=this._unwrappedPositionsForBabylon.slice(),this._handledMesh.normals=this._unwrappedNormalsForBabylon.slice(),this._handledMesh.uvs=this._unwrappedUVForBabylon.slice(),this._handledMesh.hasLines=this._hasLineData,this._loadingOptions.importVertexColors&&(this._handledMesh.colors=this._unwrappedColorsForBabylon.slice()),this._indicesForBabylon.length=0,this._unwrappedPositionsForBabylon.length=0,this._unwrappedColorsForBabylon.length=0,this._unwrappedNormalsForBabylon.length=0,this._unwrappedUVForBabylon.length=0,this._hasLineData=!1)},t.prototype._optimizeNormals=function(t){var e=t.getVerticesData(a.VertexBuffer.PositionKind),s=t.getVerticesData(a.VertexBuffer.NormalKind),i={};if(e&&s){for(var r=0;r<e.length/3;r++)(l=i[n=e[3*r+0]+"_"+e[3*r+1]+"_"+e[3*r+2]])||(l=[],i[n]=l),l.push(r);var o=new a.Vector3;for(var n in i){var l;if(!((l=i[n]).length<2)){var h=l[0];for(r=1;r<l.length;++r){var p=l[r];s[3*h+0]+=s[3*p+0],s[3*h+1]+=s[3*p+1],s[3*h+2]+=s[3*p+2]}for(o.copyFromFloats(s[3*h+0],s[3*h+1],s[3*h+2]),o.normalize(),r=0;r<l.length;++r)s[3*(p=l[r])+0]=o.x,s[3*p+1]=o.y,s[3*p+2]=o.z}}t.setVerticesData(a.VertexBuffer.NormalKind,s)}},t._IsLineElement=function(t){return t.startsWith("l")},t._IsObjectElement=function(t){return t.startsWith("o")},t._IsGroupElement=function(t){return t.startsWith("g")},t._GetZbrushMRGB=function(t,e){if(!t.startsWith("mrgb"))return null;if(t=t.replace("mrgb","").trim(),e)return[];var s=t.match(/[a-z0-9]/g);if(!s||s.length%8!=0)return[];for(var i=[],r=0;r<s.length/8;r++){var o=s[8*r+2]+s[8*r+3],n=s[8*r+4]+s[8*r+5],l=s[8*r+6]+s[8*r+7];i.push(new a.Color4(parseInt(o,16)/255,parseInt(n,16)/255,parseInt(l,16)/255,1))}return i},t.prototype.parse=function(e,s,i,r,o){var n,l,h=this;s=(s=s.replace(/#MRGB/g,"mrgb")).replace(/#.*$/gm,"").trim(),this._loadingOptions.useLegacyBehavior?(this._pushTriangle=function(t,e){return h._triangles.push(t[0],t[e],t[e+1])},this._handednessSign=1):i.useRightHandedSystem?(this._pushTriangle=function(t,e){return h._triangles.push(t[0],t[e+1],t[e])},this._handednessSign=1):(this._pushTriangle=function(t,e){return h._triangles.push(t[0],t[e],t[e+1])},this._handednessSign=-1);var p=s.split("\n"),_=[],u=[];_.push(u);for(var d=0;d<p.length;d++)if(0!==(g=p[d].trim().replace(/\s\s/g," ")).length&&"#"!==g.charAt(0))if((t._IsGroupElement(g)||t._IsObjectElement(g))&&(u=[],_.push(u)),t._IsLineElement(g))for(var m=g.split(" "),c=1;c<m.length-1;c++)u.push("l ".concat(m[c]," ").concat(m[c+1]));else u.push(g);var f=_.flat();for(d=0;d<f.length;d++){var g,b=void 0;if(0!==(g=f[d].trim().replace(/\s\s/g," ")).length&&"#"!==g.charAt(0))if(t.VertexPattern.test(g)){if(b=g.match(/[^ ]+/g),this._positions.push(new a.Vector3(parseFloat(b[1]),parseFloat(b[2]),parseFloat(b[3]))),this._loadingOptions.importVertexColors)if(b.length>=7){var F=parseFloat(b[4]),y=parseFloat(b[5]),v=parseFloat(b[6]);this._colors.push(new a.Color4(F>1?F/255:F,y>1?y/255:y,v>1?v/255:v,7===b.length||void 0===b[7]?1:parseFloat(b[7])))}else this._colors.push(this._grayColor)}else if(null!==(b=t.NormalPattern.exec(g)))this._normals.push(new a.Vector3(parseFloat(b[1]),parseFloat(b[2]),parseFloat(b[3])));else if(null!==(b=t.UVPattern.exec(g)))this._uvs.push(new a.Vector2(parseFloat(b[1])*this._loadingOptions.UVScaling.x,parseFloat(b[2])*this._loadingOptions.UVScaling.y));else if(null!==(b=t.FacePattern3.exec(g)))this._setDataForCurrentFaceWithPattern3(b[1].trim().split(" "),1);else if(null!==(b=t.FacePattern4.exec(g)))this._setDataForCurrentFaceWithPattern4(b[1].trim().split(" "),1);else if(null!==(b=t.FacePattern5.exec(g)))this._setDataForCurrentFaceWithPattern5(b[1].trim().split(" "),1);else if(null!==(b=t.FacePattern2.exec(g)))this._setDataForCurrentFaceWithPattern2(b[1].trim().split(" "),1);else if(null!==(b=t.FacePattern1.exec(g)))this._setDataForCurrentFaceWithPattern1(b[1].trim().split(" "),1);else if(null!==(b=t.LinePattern1.exec(g)))this._setDataForCurrentFaceWithPattern1(b[1].trim().split(" "),0),this._hasLineData=!0;else if(null!==(b=t.LinePattern2.exec(g)))this._setDataForCurrentFaceWithPattern2(b[1].trim().split(" "),0),this._hasLineData=!0;else if(b=t._GetZbrushMRGB(g,!this._loadingOptions.importVertexColors))b.forEach((function(t){h._extColors.push(t)}));else if(null!==(b=t.LinePattern3.exec(g)))this._setDataForCurrentFaceWithPattern3(b[1].trim().split(" "),0),this._hasLineData=!0;else if(t.GroupDescriptor.test(g)||t.ObjectDescriptor.test(g)){var O={name:g.substring(2).trim(),indices:null,positions:null,normals:null,uvs:null,colors:null,materialName:this._materialNameFromObj,isObject:t.ObjectDescriptor.test(g)};this._addPreviousObjMesh(),this._meshesFromObj.push(O),this._hasMeshes=!0,this._isFirstMaterial=!0,this._increment=1}else t.UseMtlDescriptor.test(g)?(this._materialNameFromObj=g.substring(7).trim(),this._isFirstMaterial&&this._hasMeshes||(this._addPreviousObjMesh(),O={name:(this._objMeshName||"mesh")+"_mm"+this._increment.toString(),indices:null,positions:null,normals:null,uvs:null,colors:null,materialName:this._materialNameFromObj,isObject:!1},this._increment++,this._meshesFromObj.push(O),this._hasMeshes=!0),this._hasMeshes&&this._isFirstMaterial&&(this._meshesFromObj[this._meshesFromObj.length-1].materialName=this._materialNameFromObj,this._isFirstMaterial=!1)):t.MtlLibGroupDescriptor.test(g)?o(g.substring(7).trim()):t.SmoothDescriptor.test(g)||a.Logger.Log("Unhandled expression at line : "+g)}if(this._hasMeshes&&(this._handledMesh=this._meshesFromObj[this._meshesFromObj.length-1],this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData(),this._handledMesh.indices=this._indicesForBabylon,this._handledMesh.positions=this._unwrappedPositionsForBabylon,this._handledMesh.normals=this._unwrappedNormalsForBabylon,this._handledMesh.uvs=this._unwrappedUVForBabylon,this._handledMesh.hasLines=this._hasLineData,this._loadingOptions.importVertexColors&&(this._handledMesh.colors=this._unwrappedColorsForBabylon)),!this._hasMeshes){var M=null;if(this._indicesForBabylon.length)this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData();else{for(var w=0,B=this._positions;w<B.length;w++){var C=B[w];this._unwrappedPositionsForBabylon.push(C.x,C.y,C.z)}if(this._normals.length)for(var P=0,T=this._normals;P<T.length;P++){var x=T[P];this._unwrappedNormalsForBabylon.push(x.x,x.y,x.z)}if(this._uvs.length)for(var L=0,I=this._uvs;L<I.length;L++){var N=I[L];this._unwrappedUVForBabylon.push(N.x,N.y)}if(this._extColors.length)for(var E=0,V=this._extColors;E<V.length;E++){var j=V[E];this._unwrappedColorsForBabylon.push(j.r,j.g,j.b,j.a)}else if(this._colors.length)for(var D=0,A=this._colors;D<A.length;D++)j=A[D],this._unwrappedColorsForBabylon.push(j.r,j.g,j.b,j.a);this._materialNameFromObj||((M=new a.StandardMaterial(a.Geometry.RandomId(),i)).pointsCloud=!0,this._materialNameFromObj=M.name,this._normals.length||(M.disableLighting=!0,M.emissiveColor=a.Color3.White()))}this._meshesFromObj.push({name:a.Geometry.RandomId(),indices:this._indicesForBabylon,positions:this._unwrappedPositionsForBabylon,colors:this._unwrappedColorsForBabylon,normals:this._unwrappedNormalsForBabylon,uvs:this._unwrappedUVForBabylon,materialName:this._materialNameFromObj,directMaterial:M,isObject:!0,hasLines:this._hasLineData})}for(var S=0;S<this._meshesFromObj.length;S++){if(e&&this._meshesFromObj[S].name)if(e instanceof Array){if(-1===e.indexOf(this._meshesFromObj[S].name))continue}else if(this._meshesFromObj[S].name!==e)continue;this._handledMesh=this._meshesFromObj[S],i._blockEntityCollection=!!r;var U=new a.Mesh(this._meshesFromObj[S].name,i);if(U._parentContainer=r,i._blockEntityCollection=!1,this._handledMesh._babylonMesh=U,!this._handledMesh.isObject)for(var R=S-1;R>=0;--R)if(this._meshesFromObj[R].isObject&&this._meshesFromObj[R]._babylonMesh){U.parent=this._meshesFromObj[R]._babylonMesh;break}if(this._materialToUse.push(this._meshesFromObj[S].materialName),this._handledMesh.hasLines&&(null!==(n=U._internalMetadata)&&void 0!==n||(U._internalMetadata={}),U._internalMetadata._isLine=!0),0!==(null===(l=this._handledMesh.positions)||void 0===l?void 0:l.length)){var G=new a.VertexData;if(G.uvs=this._handledMesh.uvs,G.indices=this._handledMesh.indices,G.positions=this._handledMesh.positions,this._loadingOptions.computeNormals){var W=new Array;a.VertexData.ComputeNormals(this._handledMesh.positions,this._handledMesh.indices,W),G.normals=W}else G.normals=this._handledMesh.normals;this._loadingOptions.importVertexColors&&(G.colors=this._handledMesh.colors),G.applyToMesh(U),this._loadingOptions.invertY&&(U.scaling.y*=-1),this._loadingOptions.optimizeNormals&&this._optimizeNormals(U),this._babylonMeshesArray.push(U),this._handledMesh.directMaterial&&(U.material=this._handledMesh.directMaterial)}else this._babylonMeshesArray.push(U)}},t.ObjectDescriptor=/^o/,t.GroupDescriptor=/^g/,t.MtlLibGroupDescriptor=/^mtllib /,t.UseMtlDescriptor=/^usemtl /,t.SmoothDescriptor=/^s /,t.VertexPattern=/^v(\s+[\d|.|+|\-|e|E]+){3,7}/,t.NormalPattern=/^vn(\s+[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)/,t.UVPattern=/^vt(\s+[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)/,t.FacePattern1=/^f\s+(([\d]{1,}[\s]?){3,})+/,t.FacePattern2=/^f\s+((([\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,t.FacePattern3=/^f\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,t.FacePattern4=/^f\s+((([\d]{1,}\/\/[\d]{1,}[\s]?){3,})+)/,t.FacePattern5=/^f\s+(((-[\d]{1,}\/-[\d]{1,}\/-[\d]{1,}[\s]?){3,})+)/,t.LinePattern1=/^l\s+(([\d]{1,}[\s]?){2,})+/,t.LinePattern2=/^l\s+((([\d]{1,}\/[\d]{1,}[\s]?){2,})+)/,t.LinePattern3=/^l\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){2,})+)/,t}(),p=function(){function t(e){this.name="obj",this.extensions=".obj",this._assetContainer=null,this._loadingOptions=e||t._DefaultLoadingOptions}return Object.defineProperty(t,"INVERT_TEXTURE_Y",{get:function(){return l.INVERT_TEXTURE_Y},set:function(t){l.INVERT_TEXTURE_Y=t},enumerable:!1,configurable:!0}),Object.defineProperty(t,"_DefaultLoadingOptions",{get:function(){return{computeNormals:t.COMPUTE_NORMALS,optimizeNormals:t.OPTIMIZE_NORMALS,importVertexColors:t.IMPORT_VERTEX_COLORS,invertY:t.INVERT_Y,invertTextureY:t.INVERT_TEXTURE_Y,UVScaling:t.UV_SCALING,materialLoadingFailsSilently:t.MATERIAL_LOADING_FAILS_SILENTLY,optimizeWithUV:t.OPTIMIZE_WITH_UV,skipMaterials:t.SKIP_MATERIALS,useLegacyBehavior:t.USE_LEGACY_BEHAVIOR}},enumerable:!1,configurable:!0}),t.prototype._loadMTL=function(t,e,s,i){var r=e+t;a.Tools.LoadFile(r,s,void 0,void 0,!1,(function(t,e){i(r,e)}))},t.prototype.createPlugin=function(){return new t(t._DefaultLoadingOptions)},t.prototype.canDirectLoad=function(){return!1},t.prototype.importMeshAsync=function(t,e,s,i){return this._parseSolid(t,e,s,i).then((function(t){return{meshes:t,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]}}))},t.prototype.loadAsync=function(t,e,s){return this.importMeshAsync(null,t,e,s).then((function(){}))},t.prototype.loadAssetContainerAsync=function(t,e,s){var i=this,r=new a.AssetContainer(t);return this._assetContainer=r,this.importMeshAsync(null,t,e,s).then((function(t){return t.meshes.forEach((function(t){return r.meshes.push(t)})),t.meshes.forEach((function(t){var e=t.material;e&&-1==r.materials.indexOf(e)&&(r.materials.push(e),e.getActiveTextures().forEach((function(t){-1==r.textures.indexOf(t)&&r.textures.push(t)})))})),i._assetContainer=null,r})).catch((function(t){throw i._assetContainer=null,t}))},t.prototype._parseSolid=function(t,e,s,i){var r=this,o="",n=new l,p=[],_=[];s=s.replace(/#.*$/gm,"").trim(),new h(p,_,this._loadingOptions).parse(t,s,e,this._assetContainer,(function(t){o=t}));var u=[];return""===o||this._loadingOptions.skipMaterials||u.push(new Promise((function(t,s){r._loadMTL(o,i,(function(l){try{n.parseMTL(e,l,i,r._assetContainer);for(var h=0;h<n.materials.length;h++){for(var u=0,d=[],m=void 0;(m=p.indexOf(n.materials[h].name,u))>-1;)d.push(m),u=m+1;if(-1===m&&0===d.length)n.materials[h].dispose();else for(var c=0;c<d.length;c++){var f=_[d[c]],g=n.materials[h];f.material=g,f.getTotalIndices()||(g.pointsCloud=!0)}}t()}catch(e){a.Tools.Warn("Error processing MTL file: '".concat(o,"'")),r._loadingOptions.materialLoadingFailsSilently?t():s(e)}}),(function(e,i){a.Tools.Warn("Error downloading MTL file: '".concat(o,"'")),r._loadingOptions.materialLoadingFailsSilently?t():s(i)}))}))),Promise.all(u).then((function(){var t=function(t){var e,s;return Boolean(null!==(s=null===(e=t._internalMetadata)||void 0===e?void 0:e._isLine)&&void 0!==s&&s)};return _.forEach((function(s){var i,r;if(t(s)){var o=null!==(i=s.material)&&void 0!==i?i:new a.StandardMaterial(s.name+"_line",e);o.getBindedMeshes().filter((function(e){return!t(e)})).length>0&&(o=null!==(r=o.clone(o.name+"_line"))&&void 0!==r?r:o),o.wireframe=!0,s.material=o,s._internalMetadata&&(s._internalMetadata._isLine=void 0)}})),_}))},t.OPTIMIZE_WITH_UV=!0,t.INVERT_Y=!1,t.IMPORT_VERTEX_COLORS=!1,t.COMPUTE_NORMALS=!1,t.OPTIMIZE_NORMALS=!1,t.UV_SCALING=new a.Vector2(1,1),t.SKIP_MATERIALS=!1,t.MATERIAL_LOADING_FAILS_SILENTLY=!0,t.USE_LEGACY_BEHAVIOR=!1,t}();(0,a.registerSceneLoaderPlugin)(new p);var _=void 0!==i.g?i.g:"undefined"!=typeof window?window:void 0;if(void 0!==_)for(var u in o)_.BABYLON[u]||(_.BABYLON[u]=o[u]);const d=n;return r.default})())); //# sourceMappingURL=babylon.objFileLoader.min.js.map