UNPKG

babylonjs-loaders

Version:

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

2 lines 21.7 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 r(t){var i=s[t];if(void 0!==i)return i.exports;var o=s[t]={exports:{}};return e[t](o,o.exports,r),o.exports}r.d=(t,e)=>{for(var s in e)r.o(e,s)&&!r.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};r.d(i,{default:()=>c});var o={};r.r(o),r.d(o,{MTLFileLoader:()=>l,OBJFileLoader:()=>_,SolidParser:()=>h});var n={};r.r(n),r.d(n,{MTLFileLoader:()=>l,OBJFileLoader:()=>_,SolidParser:()=>h});var a=r(597),l=function(){function t(){this.materials=[]}return t.prototype.parseMTL=function(e,s,r,i){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 c=u>=0?_.substring(u+1).trim():"";if("newmtl"===d)h&&this.materials.push(h),e._blockEntityCollection=!!i,(h=new a.StandardMaterial(c,e))._parentContainer=i,e._blockEntityCollection=!1;else if("kd"===d&&h)o=c.split(l,3).map(parseFloat),h.diffuseColor=a.Color3.FromArray(o);else if("ka"===d&&h)o=c.split(l,3).map(parseFloat),h.ambientColor=a.Color3.FromArray(o);else if("ks"===d&&h)o=c.split(l,3).map(parseFloat),h.specularColor=a.Color3.FromArray(o);else if("ke"===d&&h)o=c.split(l,3).map(parseFloat),h.emissiveColor=a.Color3.FromArray(o);else if("ns"===d&&h)h.specularPower=parseFloat(c);else if("d"===d&&h)h.alpha=parseFloat(c);else if("map_ka"===d&&h)h.ambientTexture=t._GetTexture(r,c,e);else if("map_kd"===d&&h)h.diffuseTexture=t._GetTexture(r,c,e);else if("map_ks"===d&&h)h.specularTexture=t._GetTexture(r,c,e);else if("map_ns"===d);else if("map_bump"===d&&h){var m=c.split(l),f=m.indexOf("-bm"),g=null;f>=0&&(g=m[f+1],m.splice(f,2)),h.bumpTexture=t._GetTexture(r,m.join(" "),e),h.bumpTexture&&null!==g&&(h.bumpTexture.level=parseFloat(g))}else"map_d"===d&&h&&(h.opacityTexture=t._GetTexture(r,c,e))}}h&&this.materials.push(h)}},t._GetTexture=function(e,s,r){if(!s)return null;var i=e;if("file:"===e){var o=s.lastIndexOf("\\");-1===o&&(o=s.lastIndexOf("/")),i+=o>-1?s.substring(o+1):s}else i+=s;return new a.Texture(i,r,!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,r,i,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(r),i=null!=i?i:new a.Vector2(0,0),this._wrappedUvsForBabylon.push(i),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 r=parseInt(this._triangles[s])-1;this._setData(r,0,0,this._positions[r],a.Vector2.Zero(),a.Vector3.Up(),this._getColor(r))}this._triangles.length=0},t.prototype._setDataForCurrentFaceWithPattern2=function(t,e){var s;this._getTriangles(t,e);for(var r=0;r<this._triangles.length;r++){var i=this._triangles[r].split("/"),o=parseInt(i[0])-1,n=parseInt(i[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,r;this._getTriangles(t,e);for(var i=0;i<this._triangles.length;i++){var o=this._triangles[i].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!==(r=this._normals[h])&&void 0!==r?r: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 r=this._triangles[s].split("//"),i=parseInt(r[0])-1,o=parseInt(r[1])-1;this._setData(i,1,o,this._positions[i],a.Vector2.Zero(),this._normals[o],this._getColor(i))}this._triangles.length=0},t.prototype._setDataForCurrentFaceWithPattern5=function(t,e){this._getTriangles(t,e);for(var s=0;s<this._triangles.length;s++){var r=this._triangles[s].split("/"),i=this._positions.length+parseInt(r[0]),o=this._uvs.length+parseInt(r[1]),n=this._normals.length+parseInt(r[2]);this._setData(i,o,n,this._positions[i],this._uvs[o],this._normals[n],this._getColor(i))}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),r={};if(e&&s){for(var i=0;i<e.length/3;i++)(l=r[n=e[3*i+0]+"_"+e[3*i+1]+"_"+e[3*i+2]])||(l=[],r[n]=l),l.push(i);var o=new a.Vector3;for(var n in r){var l;if(!((l=r[n]).length<2)){var h=l[0];for(i=1;i<l.length;++i){var p=l[i];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(),i=0;i<l.length;++i)s[3*(p=l[i])+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 r=[],i=0;i<s.length/8;i++){var o=s[8*i+2]+s[8*i+3],n=s[8*i+4]+s[8*i+5],l=s[8*i+6]+s[8*i+7];r.push(new a.Color4(parseInt(o,16)/255,parseInt(n,16)/255,parseInt(l,16)/255,1))}return r},t.prototype.parse=function(e,s,r,i,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):r.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 c=g.split(" "),m=1;m<c.length-1;m++)u.push("l ".concat(c[m]," ").concat(c[m+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 y=parseFloat(b[4]),F=parseFloat(b[5]),v=parseFloat(b[6]);this._colors.push(new a.Color4(y>1?y/255:y,F>1?F/255:F,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))for(var O=0,M=b;O<M.length;O++){var w=M[O];this._extColors.push(w)}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 B={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(B),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(),B={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(B),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 P=null;if(this._indicesForBabylon.length)this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData();else{for(var C=0,T=this._positions;C<T.length;C++){var x=T[C];this._unwrappedPositionsForBabylon.push(x.x,x.y,x.z)}if(this._normals.length)for(var L=0,I=this._normals;L<I.length;L++){var j=I[L];this._unwrappedNormalsForBabylon.push(j.x,j.y,j.z)}if(this._uvs.length)for(var E=0,N=this._uvs;E<N.length;E++){var V=N[E];this._unwrappedUVForBabylon.push(V.x,V.y)}if(this._extColors.length)for(var A=0,D=this._extColors;A<D.length;A++){var S=D[A];this._unwrappedColorsForBabylon.push(S.r,S.g,S.b,S.a)}else if(this._colors.length)for(var U=0,R=this._colors;U<R.length;U++)S=R[U],this._unwrappedColorsForBabylon.push(S.r,S.g,S.b,S.a);this._materialNameFromObj||((P=new a.StandardMaterial(a.Geometry.RandomId(),r)).pointsCloud=!0,this._materialNameFromObj=P.name,this._normals.length||(P.disableLighting=!0,P.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:P,isObject:!0,hasLines:this._hasLineData})}for(var G=0;G<this._meshesFromObj.length;G++){if(e&&this._meshesFromObj[G].name)if(e instanceof Array){if(-1===e.indexOf(this._meshesFromObj[G].name))continue}else if(this._meshesFromObj[G].name!==e)continue;this._handledMesh=this._meshesFromObj[G],r._blockEntityCollection=!!i;var W=new a.Mesh(this._meshesFromObj[G].name,r);if(W._parentContainer=i,r._blockEntityCollection=!1,this._handledMesh._babylonMesh=W,!this._handledMesh.isObject)for(var Y=G-1;Y>=0;--Y)if(this._meshesFromObj[Y].isObject&&this._meshesFromObj[Y]._babylonMesh){W.parent=this._meshesFromObj[Y]._babylonMesh;break}if(this._materialToUse.push(this._meshesFromObj[G].materialName),this._handledMesh.hasLines&&(null!==(n=W._internalMetadata)&&void 0!==n||(W._internalMetadata={}),W._internalMetadata._isLine=!0),0!==(null===(l=this._handledMesh.positions)||void 0===l?void 0:l.length)){var k=new a.VertexData;if(k.uvs=this._handledMesh.uvs,k.indices=this._handledMesh.indices,k.positions=this._handledMesh.positions,this._loadingOptions.computeNormals){var z=new Array;a.VertexData.ComputeNormals(this._handledMesh.positions,this._handledMesh.indices,z),k.normals=z}else k.normals=this._handledMesh.normals;this._loadingOptions.importVertexColors&&(k.colors=this._handledMesh.colors),k.applyToMesh(W),this._loadingOptions.invertY&&(W.scaling.y*=-1),this._loadingOptions.optimizeNormals&&this._optimizeNormals(W),this._babylonMeshesArray.push(W),this._handledMesh.directMaterial&&(W.material=this._handledMesh.directMaterial)}else this._babylonMeshesArray.push(W)}},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(){return p=Object.assign||function(t){for(var e,s=1,r=arguments.length;s<r;s++)for(var i in e=arguments[s])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},p.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var _=function(){function t(e){this.name="obj",this.extensions=".obj",this._assetContainer=null,this._loadingOptions=p(p({},t._DefaultLoadingOptions),null!=e?e:{})}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,r){var i=e+t;a.Tools.LoadFile(i,s,void 0,void 0,!1,(function(t,e){r(i,e)}))},t.prototype.createPlugin=function(e){return new t(e.obj)},t.prototype.canDirectLoad=function(){return!1},t.prototype.importMeshAsync=function(t,e,s,r){return this._parseSolidAsync(t,e,s,r).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 r=this,i=new a.AssetContainer(t);return this._assetContainer=i,this.importMeshAsync(null,t,e,s).then((function(t){return t.meshes.forEach((function(t){return i.meshes.push(t)})),t.meshes.forEach((function(t){var e=t.material;e&&-1==i.materials.indexOf(e)&&(i.materials.push(e),e.getActiveTextures().forEach((function(t){-1==i.textures.indexOf(t)&&i.textures.push(t)})))})),r._assetContainer=null,i})).catch((function(t){throw r._assetContainer=null,t}))},t.prototype._parseSolidAsync=function(t,e,s,r){var i=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){i._loadMTL(o,r,(function(l){try{n.parseMTL(e,l,r,i._assetContainer);for(var h=0;h<n.materials.length;h++){for(var u=0,d=[],c=void 0;(c=p.indexOf(n.materials[h].name,u))>-1;)d.push(c),u=c+1;if(-1===c&&0===d.length)n.materials[h].dispose();else for(var m=0;m<d.length;m++){var f=_[d[m]],g=n.materials[h];f.material=g,f.getTotalIndices()||(g.pointsCloud=!0)}}t()}catch(e){a.Tools.Warn("Error processing MTL file: '".concat(o,"'")),i._loadingOptions.materialLoadingFailsSilently?t():s(e)}}),(function(e,r){a.Tools.Warn("Error downloading MTL file: '".concat(o,"'")),i._loadingOptions.materialLoadingFailsSilently?t():s(r)}))}))),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 r,i;if(t(s)){var o=null!==(r=s.material)&&void 0!==r?r:new a.StandardMaterial(s.name+"_line",e);o.getBindedMeshes().filter((function(e){return!t(e)})).length>0&&(o=null!==(i=o.clone(o.name+"_line"))&&void 0!==i?i: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 _);var u=void 0!==r.g?r.g:"undefined"!=typeof window?window:void 0;if(void 0!==u)for(var d in o)u.BABYLON[d]||(u.BABYLON[d]=o[d]);const c=n;return i.default})())); //# sourceMappingURL=babylon.objFileLoader.min.js.map