babylonjs-serializers 9.0.0 → 9.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-serializers",["babylonjs"],n):"object"==typeof exports?exports["babylonjs-serializers"]=n(require("babylonjs")):t.SERIALIZERS=n(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,(t=>(()=>{"use strict";var n={597(n){n.exports=t}},e={};function o(t){var a=e[t];if(void 0!==a)return a.exports;var r=e[t]={exports:{}};return n[t](r,r.exports,o),r.exports}o.d=(t,n)=>{for(var e in n)o.o(n,e)&&!o.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};o.d(a,{default:()=>S});var r={};o.r(r),o.d(r,{USDZExportAsync:()=>T});var i={};o.r(i),o.d(i,{USDZExportAsync:()=>T});var c=function(){return c=Object.assign||function(t){for(var n,e=1,o=arguments.length;e<o;e++)for(var a in n=arguments[e])Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);return t},c.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var s=o(597),u=s.Matrix.Compose(new s.Vector3(-1,1,1),s.Quaternion.Identity(),s.Vector3.Zero());function l(t,n){if(!(t instanceof s.TransformNode))return!1;if(n){if(!t.getWorldMatrix().equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1}else if(!t.getWorldMatrix().multiplyToRef(u,s.TmpVectors.Matrix[0]).equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1;return!(t instanceof s.AbstractMesh&&t.geometry)}function p(t,n,e,o){void 0===e&&(e=3),void 0===o&&(o=!1);for(var a=[],r=0;r<t.length/e;r++){var i=t[r*e]*(o?-1:1),c=t[r*e+1],s=t[r*e+2];a.push("(".concat(i.toPrecision(n.precision),", ").concat(c.toPrecision(n.precision),", ").concat(s.toPrecision(n.precision),")"))}return a.join(", ")}function f(t,n){for(var e=[],o=0;o<t.length/2;o++){var a=t[2*o],r=t[2*o+1];e.push("(".concat(a.toPrecision(n.precision),", ").concat((1-r).toPrecision(n.precision),")"))}return e.join(", ")}function d(t,n,e,o){var a=function(t,n,e,o){var a=t.getVerticesData(s.VertexBuffer.PositionKind),r=t.getVerticesData(s.VertexBuffer.NormalKind);if(a&&r)return'\n\tdef Mesh "'.concat("Geometry",'"\n\t{\n uniform token orientation = "').concat(e,'"\n\t\tint[] faceVertexCounts = [').concat(function(t){var n,e=(null===(n=t.getIndices())||void 0===n?void 0:n.length)?t.getTotalIndices():t.getTotalVertices();return Array(e/3).fill(3).join(", ")}(t),"]\n\t\tint[] faceVertexIndices = [").concat(function(t){var n,e=t.getIndices(),o=null!==(n=null==e?void 0:e.length)&&void 0!==n?n:t.getTotalVertices(),a=[];if(null!==e)for(var r=0;r<o;r++)a.push(e[r]);else for(r=0;r<o;r++)a.push(r);return a.join(", ")}(t),"]\n\t\tnormal3f[] normals = [").concat(p(r,n,void 0,o),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)\n\t\tpoint3f[] points = [').concat(p(a,n,void 0,o),"]\n ").concat(function(t,n){for(var e="",o=0;o<4;o++){var a=o>0?o:"",r=t.getVerticesData(s.VertexBuffer.UVKind+(a?a+1:""));r&&(e+="\n\t\ttexCoord2f[] primvars:st".concat(a," = [").concat(f(r,n),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)'))}var i=t.getVerticesData(s.VertexBuffer.ColorKind);return i&&(e+="\n\tcolor3f[] primvars:displayColor = [".concat(p(i,n,i.length/t.getTotalVertices()),'] (\n\t\tinterpolation = "vertex"\n\t\t)')),e}(t,n),'\n\t\tuniform token subdivisionScheme = "none"\n\t}\n')}(t,n,e,o);return'\n def "Geometry"\n {\n '.concat(a,"\n }\n ")}function h(t){var n='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )';return n+=t,fflate.strToU8(n)}function m(t){var n=t.m;return"( ".concat(g(n,0),", ").concat(g(n,4),", ").concat(g(n,8),", ").concat(g(n,12)," )")}function g(t,n){return"(".concat(t[n+0],", ").concat(t[n+1],", ").concat(t[n+2],", ").concat(t[n+3],")")}function v(t,n){var e="Object_"+t.uniqueId,o=m(n);return'def Xform "'.concat(e,'" (\n\tprepend references = @./geometries/Geometry_').concat(t.geometry.uniqueId,'.usda@</Geometry>\n\tprepend apiSchemas = ["MaterialBindingAPI"]\n)\n{\n\tmatrix4d xformOp:transform = ').concat(o,'\n\tuniform token[] xformOpOrder = ["xformOp:transform"]\t\n\n rel material:binding = </Root/Materials/Material_').concat(t.material.uniqueId,">\n}\n\n")}function M(t){switch(t){case s.Constants.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case s.Constants.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case s.Constants.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function y(t){return"(".concat(t.x,", ").concat(t.y,")")}function x(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,")")}function b(t,n,e,o,a,r){var i=t.getInternalTexture().uniqueId+"_"+t.invertY;a[i]=t;var c=t.coordinatesIndex>0?"st"+t.coordinatesIndex:"st",u=new s.Vector2(t.uScale,t.vScale),l=new s.Vector2(t.uOffset,t.vOffset),p=t.wAng,f=Math.sin(p),d=Math.cos(p);return l.y=1-l.y-u.y,l.x+=f*u.x,l.y+=(1-d)*u.y,'\n def Shader "PrimvarReader_'.concat(e,'"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n float2 inputs:fallback = (0.0, 0.0)\n token inputs:varname = "').concat(c,'"\n float2 outputs:result\n }\n\n def Shader "Transform2d_').concat(e,'"\n {\n uniform token info:id = "UsdTransform2d"\n token inputs:in.connect = </Root/Materials/Material_').concat(n.uniqueId,"/PrimvarReader_").concat(e,".outputs:result>\n float inputs:rotation = ").concat((p*(180/Math.PI)).toFixed(r.precision),"\n float2 inputs:scale = ").concat(y(u),"\n float2 inputs:translation = ").concat(y(l),'\n float2 outputs:result\n }\n\n def Shader "Texture_').concat(t.uniqueId,"_").concat(e,'"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_').concat(i,".png@\n float2 inputs:st.connect = </Root/Materials/Material_").concat(n.uniqueId,"/Transform2d_").concat(e,".outputs:result>\n ").concat(o?"float4 inputs:scale = "+function(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", 1.0)")}(o):"",'\n token inputs:sourceColorSpace = "').concat(t.gammaSpace?"sRGB":"raw",'"\n token inputs:wrapS = "').concat(M(t.wrapU),'"\n token inputs:wrapT = "').concat(M(t.wrapV),'"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ').concat(n.needAlphaBlending()||n.needAlphaTesting()?"float outputs:a":"","\n }")}function _(t,n,e){var o="\t\t\t",a=[],r=[],i=function(t){var n,e,o={diffuseMap:null,diffuse:null,alphaCutOff:0,emissiveMap:null,emissive:null,normalMap:null,roughnessMap:null,roughnessChannel:"a",roughness:0,metalnessMap:null,metalnessChannel:"r",metalness:0,aoMap:null,aoMapChannel:"rgb",aoMapIntensity:0,alphaMap:null,ior:1,clearCoatEnabled:!1,clearCoat:0,clearCoatMap:null,clearCoatRoughness:0,clearCoatRoughnessMap:null};return t instanceof s.StandardMaterial?c(c({},o),{diffuseMap:t.diffuseTexture,diffuse:t.diffuseColor,alphaCutOff:t.alphaCutOff,emissiveMap:t.emissiveTexture,emissive:t.emissiveColor,roughness:1,alphaMap:t.opacityTexture}):t instanceof s.PBRBaseMaterial?c(c({},o),{diffuseMap:t._albedoTexture,diffuse:t._albedoColor,alphaCutOff:t._alphaCutOff,emissiveMap:t._emissiveTexture,emissive:t._emissiveColor,normalMap:t._bumpTexture,roughnessMap:t._metallicTexture,roughnessChannel:t._useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:null!==(n=t._roughness)&&void 0!==n?n:1,metalnessMap:t._metallicTexture,metalnessChannel:t._useMetallnessFromMetallicTextureBlue?"b":"r",metalness:null!==(e=t._metallic)&&void 0!==e?e:0,aoMap:t._ambientTexture,aoMapChannel:t._useAmbientInGrayScale?"r":"rgb",aoMapIntensity:t._ambientTextureStrength,alphaMap:t._opacityTexture,ior:t.subSurface.indexOfRefraction,clearCoatEnabled:t.clearCoat.isEnabled,clearCoat:t.clearCoat.intensity,clearCoatMap:t.clearCoat.texture,clearCoatRoughness:t.clearCoat.roughness,clearCoatRoughnessMap:t.clearCoat.useRoughnessFromMainTexture?t.clearCoat.texture:t.clearCoat.textureRoughness}):o}(t),u=i.diffuseMap,l=i.diffuse,p=i.alphaCutOff,f=i.emissiveMap,d=i.emissive,h=i.normalMap,m=i.roughnessMap,g=i.roughnessChannel,v=i.roughness,M=i.metalnessMap,y=i.metalnessChannel,_=i.metalness,C=i.aoMap,T=i.aoMapChannel,R=i.aoMapIntensity,I=i.alphaMap,S=i.ior,O=i.clearCoatEnabled,w=i.clearCoat,A=i.clearCoatMap,P=i.clearCoatRoughness,q=i.clearCoatRoughnessMap;return null!==u?(a.push("".concat(o,"color3f inputs:diffuseColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:rgb>")),t.needAlphaBlending()?a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")):t.needAlphaTesting()&&(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")),a.push("".concat(o,"float inputs:opacityThreshold = ").concat(p))),r.push(b(u,t,"diffuse",l,n,e))):a.push("".concat(o,"color3f inputs:diffuseColor = ").concat(x(l||s.Color3.White()))),null!==f?(a.push("".concat(o,"color3f inputs:emissiveColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(f.uniqueId,"_emissive.outputs:rgb>")),r.push(b(f,t,"emissive",d,n,e))):d&&d.toLuminance()>0&&a.push("".concat(o,"color3f inputs:emissiveColor = ").concat(x(d))),null!==h&&(a.push("".concat(o,"normal3f inputs:normal.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(h.uniqueId,"_normal.outputs:rgb>")),r.push(b(h,t,"normal",null,n,e))),null!==C&&(a.push("".concat(o,"float inputs:occlusion.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(C.uniqueId,"_occlusion.outputs:").concat(T,">")),r.push(b(C,t,"occlusion",new s.Color3(R,R,R),n,e))),null!==m?(a.push("".concat(o,"float inputs:roughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(m.uniqueId,"_roughness.outputs:").concat(g,">")),r.push(b(m,t,"roughness",new s.Color3(v,v,v),n,e))):a.push("".concat(o,"float inputs:roughness = ").concat(v)),null!==M?(a.push("".concat(o,"float inputs:metallic.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(M.uniqueId,"_metallic.outputs:").concat(y,">")),r.push(b(M,t,"metallic",new s.Color3(_,_,_),n,e))):a.push("".concat(o,"float inputs:metallic = ").concat(_)),null!==I?(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(I.uniqueId,"_opacity.outputs:r>")),a.push("".concat(o,"float inputs:opacityThreshold = 0.0001")),r.push(b(I,t,"opacity",null,n,e))):a.push("".concat(o,"float inputs:opacity = ").concat(t.alpha)),O&&(null!==A?(a.push("".concat(o,"float inputs:clearcoat.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(A.uniqueId,"_clearcoat.outputs:r>")),r.push(b(A,t,"clearcoat",new s.Color3(w,w,w),n,e))):a.push("".concat(o,"float inputs:clearcoat = ").concat(w)),null!==q?(a.push("".concat(o,"float inputs:clearcoatRoughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(q.uniqueId,"_clearcoatRoughness.outputs:g>")),r.push(b(q,t,"clearcoatRoughness",new s.Color3(P,P,P),n,e))):a.push("".concat(o,"float inputs:clearcoatRoughness = ").concat(P))),a.push("".concat(o,"float inputs:ior = ").concat(S)),'\n\tdef Material "Material_'.concat(t.uniqueId,'"\n\t{\n\t\tdef Shader "PreviewSurface"\n\t\t{\n\t\t\tuniform token info:id = "UsdPreviewSurface"\n').concat(a.join("\n"),"\n\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\ttoken outputs:surface\n\t\t}\n\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_").concat(t.uniqueId,"/PreviewSurface.outputs:surface>\n\n").concat(r.join("\n"),"\n\n\t}\n")}function C(t){var n,e;t.computeWorldMatrix(!0);for(var o=t.getWorldMatrix().clone(),a=t.getScene().useRightHandedSystem,r=null!==(e=null===(n=t.material)||void 0===n?void 0:n._getEffectiveOrientation(t))&&void 0!==e?e:t.sideOrientation,i=!a,c=t.parent;c;){if(l(c,a)&&null===c.parent){a||(o.multiplyToRef(c.getWorldMatrix().invert(),o),r=r===s.Material.ClockWiseSideOrientation?s.Material.CounterClockWiseSideOrientation:s.Material.ClockWiseSideOrientation),i=!1;break}c=c.parent}return o.determinant()<0&&s.Tools.Warn("Mesh ".concat(t.name," has a negative scale, which may look incorrect in destinations like QuickLook.")),{matrix:o,windingOrder:r===s.Material.ClockWiseSideOrientation?"leftHanded":"rightHanded",convertToRightHanded:i}}function T(t,n,e){return o=this,a=void 0,i=function(){var o,a,r,i,u,l,p,f,g,M,y,x,b,T,R,I,S,O,w,A,P,q,k,E,j,D,U,V,B,W,L,N;return function(t,n){var e,o,a,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(r=0)),r;)try{if(e=1,o&&(a=2&c[0]?o.return:c[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,c[1])).done)return a;switch(o=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,o=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(!((a=(a=r.trys).length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){r=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){r.label=c[1];break}if(6===c[0]&&r.label<a[1]){r.label=a[1],a=c;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(c);break}a[2]&&r.ops.pop(),r.trys.pop();continue}c=n.call(t,r)}catch(t){c=[6,t],o=0}finally{e=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}(this,(function(Z){switch(Z.label){case 0:return o=c({fflateUrl:"https://unpkg.com/fflate@0.8.2",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35},n),"undefined"!=typeof fflate?[3,2]:[4,s.Tools.LoadScriptAsync(o.fflateUrl)];case 1:Z.sent(),Z.label=2;case 2:for((a={})[o.modelFileName]=null,r='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )',r+=function(t){var n=!0===t.includeAnchoringProperties?'\n\t\ttoken preliminary:anchoring:type = "'.concat(t.anchoringType,'"\n\t\ttoken preliminary:planeAnchoring:alignment = "').concat(t.planeAnchoringAlignment,'"'):"";return'def Xform "Root"\n {\n def Scope "Scenes" (\n kind = "sceneLibrary"\n )\n {\n def Xform "Scene" (\n customData = {\n bool preliminary_collidesWithEnvironment = 0\n string sceneName = "Scene"\n }\n sceneName = "Scene"\n )\n {'.concat(n,"\n ")}(o),i={},u=0,l=t.meshes;u<l.length;u++)0!==(p=l[u]).getTotalVertices()&&(g=(f=p).geometry,(M=f.material)&&g&&(!e||e(f))&&(-1!==["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(M.getClassName())?(y="geometries/Geometry_"+g.uniqueId+".usda",x=C(f),b=x.matrix,T=x.windingOrder,R=x.convertToRightHanded,y in a||(I=d(g,o,T,R),a[y]=h(I)),M.uniqueId in i||(i[M.uniqueId]=M),r+=v(f,b)):s.Tools.Warn("USDZExportAsync does not support this material type: "+M.getClassName())));for(A in t.activeCamera&&o.exportCamera&&(r+=function(t,n){var e="Camera_"+t.uniqueId,o=m(s.Matrix.RotationY(Math.PI).multiply(t.getWorldMatrix()));if(t.mode===s.Constants.ORTHOGRAPHIC_CAMERA)return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat horizontalAperture = ").concat((10*(Math.abs(t.orthoLeft||1)+Math.abs(t.orthoRight||1))).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((10*(Math.abs(t.orthoTop||1)+Math.abs(t.orthoBottom||1))).toPrecision(n.precision),'\n\t\t\ttoken projection = "orthographic"\n\t\t}\n\t\n\t');var a=t.getEngine().getAspectRatio(t),r=n.cameraSensorWidth||35;return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat focalLength = ").concat((r/(2*Math.tan(.5*t.fov))).toPrecision(n.precision),'\n token projection = "perspective"\n\t\t\tfloat horizontalAperture = ').concat((r*a).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((r/a).toPrecision(n.precision)," \n\t\t}\n\t\n\t")}(t.activeCamera,o)),r+="\n }\n }",r+=function(t,n,e){var o=[];for(var a in t){var r=t[a];o.push(_(r,n,e))}return'\n def "Materials"\n{\n'.concat(o.join(""),"\n}\n\n")}(i,S={},o),r+="\n }",a[o.modelFileName]=fflate.strToU8(r),w=[],O=S)w.push(A);P=0,Z.label=3;case 3:return P<w.length?(A=w[P])in O?(k=S[q=A],E=k.getSize(),[4,(0,s.GetTextureDataAsync)(k)]):[3,6]:[3,7];case 4:return j=Z.sent(),[4,s.DumpTools.DumpDataAsync(E.width,E.height,j,"image/png",void 0,!1,!0)];case 5:D=Z.sent(),a["textures/Texture_".concat(q,".png")]=new Uint8Array(D).slice(),Z.label=6;case 6:return P++,[3,3];case 7:for(V in U=0,a)(B=a[V])&&(W=34+V.length,4!=(L=63&(U+=W))&&(N=new Uint8Array(64-L),a[V]=[B,{extra:{12345:N}}]),U=B.length);return[2,fflate.zipSync(a,{level:0})]}}))},new((r=void 0)||(r=Promise))((function(t,n){function e(t){try{s(i.next(t))}catch(t){n(t)}}function c(t){try{s(i.throw(t))}catch(t){n(t)}}function s(n){var o;n.done?t(n.value):(o=n.value,o instanceof r?o:new r((function(t){t(o)}))).then(e,c)}s((i=i.apply(o,a||[])).next())}));var o,a,r,i}var R=void 0!==o.g?o.g:"undefined"!=typeof window?window:void 0;if(void 0!==R)for(var I in r)R.BABYLON[I]=r[I];const S=i;return a.default})()));
1
+ !function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-serializers",["babylonjs"],n):"object"==typeof exports?exports["babylonjs-serializers"]=n(require("babylonjs")):t.SERIALIZERS=n(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,t=>(()=>{"use strict";var n={597(n){n.exports=t}},e={};function o(t){var a=e[t];if(void 0!==a)return a.exports;var r=e[t]={exports:{}};return n[t](r,r.exports,o),r.exports}o.d=(t,n)=>{for(var e in n)o.o(n,e)&&!o.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};o.d(a,{default:()=>S});var r={};o.r(r),o.d(r,{USDZExportAsync:()=>T});var i={};o.r(i),o.d(i,{USDZExportAsync:()=>T});var c=function(){return c=Object.assign||function(t){for(var n,e=1,o=arguments.length;e<o;e++)for(var a in n=arguments[e])Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);return t},c.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var s=o(597),u=s.Matrix.Compose(new s.Vector3(-1,1,1),s.Quaternion.Identity(),s.Vector3.Zero());function l(t,n){if(!(t instanceof s.TransformNode))return!1;if(n){if(!t.getWorldMatrix().equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1}else if(!t.getWorldMatrix().multiplyToRef(u,s.TmpVectors.Matrix[0]).equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1;return!(t instanceof s.AbstractMesh&&t.geometry)}function p(t,n,e,o){void 0===e&&(e=3),void 0===o&&(o=!1);for(var a=[],r=0;r<t.length/e;r++){var i=t[r*e]*(o?-1:1),c=t[r*e+1],s=t[r*e+2];a.push("(".concat(i.toPrecision(n.precision),", ").concat(c.toPrecision(n.precision),", ").concat(s.toPrecision(n.precision),")"))}return a.join(", ")}function f(t,n){for(var e=[],o=0;o<t.length/2;o++){var a=t[2*o],r=t[2*o+1];e.push("(".concat(a.toPrecision(n.precision),", ").concat((1-r).toPrecision(n.precision),")"))}return e.join(", ")}function d(t,n,e,o){var a=function(t,n,e,o){var a=t.getVerticesData(s.VertexBuffer.PositionKind),r=t.getVerticesData(s.VertexBuffer.NormalKind);if(a&&r)return'\n\tdef Mesh "'.concat("Geometry",'"\n\t{\n uniform token orientation = "').concat(e,'"\n\t\tint[] faceVertexCounts = [').concat(function(t){var n,e=(null===(n=t.getIndices())||void 0===n?void 0:n.length)?t.getTotalIndices():t.getTotalVertices();return Array(e/3).fill(3).join(", ")}(t),"]\n\t\tint[] faceVertexIndices = [").concat(function(t){var n,e=t.getIndices(),o=null!==(n=null==e?void 0:e.length)&&void 0!==n?n:t.getTotalVertices(),a=[];if(null!==e)for(var r=0;r<o;r++)a.push(e[r]);else for(r=0;r<o;r++)a.push(r);return a.join(", ")}(t),"]\n\t\tnormal3f[] normals = [").concat(p(r,n,void 0,o),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)\n\t\tpoint3f[] points = [').concat(p(a,n,void 0,o),"]\n ").concat(function(t,n){for(var e="",o=0;o<4;o++){var a=o>0?o:"",r=t.getVerticesData(s.VertexBuffer.UVKind+(a?a+1:""));r&&(e+="\n\t\ttexCoord2f[] primvars:st".concat(a," = [").concat(f(r,n),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)'))}var i=t.getVerticesData(s.VertexBuffer.ColorKind);return i&&(e+="\n\tcolor3f[] primvars:displayColor = [".concat(p(i,n,i.length/t.getTotalVertices()),'] (\n\t\tinterpolation = "vertex"\n\t\t)')),e}(t,n),'\n\t\tuniform token subdivisionScheme = "none"\n\t}\n')}(t,n,e,o);return'\n def "Geometry"\n {\n '.concat(a,"\n }\n ")}function h(t){var n='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )';return n+=t,fflate.strToU8(n)}function m(t){var n=t.m;return"( ".concat(g(n,0),", ").concat(g(n,4),", ").concat(g(n,8),", ").concat(g(n,12)," )")}function g(t,n){return"(".concat(t[n+0],", ").concat(t[n+1],", ").concat(t[n+2],", ").concat(t[n+3],")")}function v(t,n){var e="Object_"+t.uniqueId,o=m(n);return'def Xform "'.concat(e,'" (\n\tprepend references = @./geometries/Geometry_').concat(t.geometry.uniqueId,'.usda@</Geometry>\n\tprepend apiSchemas = ["MaterialBindingAPI"]\n)\n{\n\tmatrix4d xformOp:transform = ').concat(o,'\n\tuniform token[] xformOpOrder = ["xformOp:transform"]\t\n\n rel material:binding = </Root/Materials/Material_').concat(t.material.uniqueId,">\n}\n\n")}function M(t){switch(t){case s.Constants.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case s.Constants.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case s.Constants.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function y(t){return"(".concat(t.x,", ").concat(t.y,")")}function x(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,")")}function b(t,n,e,o,a,r){var i=t.getInternalTexture().uniqueId+"_"+t.invertY;a[i]=t;var c=t.coordinatesIndex>0?"st"+t.coordinatesIndex:"st",u=new s.Vector2(t.uScale,t.vScale),l=new s.Vector2(t.uOffset,t.vOffset),p=t.wAng,f=Math.sin(p),d=Math.cos(p);return l.y=1-l.y-u.y,l.x+=f*u.x,l.y+=(1-d)*u.y,'\n def Shader "PrimvarReader_'.concat(e,'"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n float2 inputs:fallback = (0.0, 0.0)\n token inputs:varname = "').concat(c,'"\n float2 outputs:result\n }\n\n def Shader "Transform2d_').concat(e,'"\n {\n uniform token info:id = "UsdTransform2d"\n token inputs:in.connect = </Root/Materials/Material_').concat(n.uniqueId,"/PrimvarReader_").concat(e,".outputs:result>\n float inputs:rotation = ").concat((p*(180/Math.PI)).toFixed(r.precision),"\n float2 inputs:scale = ").concat(y(u),"\n float2 inputs:translation = ").concat(y(l),'\n float2 outputs:result\n }\n\n def Shader "Texture_').concat(t.uniqueId,"_").concat(e,'"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_').concat(i,".png@\n float2 inputs:st.connect = </Root/Materials/Material_").concat(n.uniqueId,"/Transform2d_").concat(e,".outputs:result>\n ").concat(o?"float4 inputs:scale = "+function(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", 1.0)")}(o):"",'\n token inputs:sourceColorSpace = "').concat(t.gammaSpace?"sRGB":"raw",'"\n token inputs:wrapS = "').concat(M(t.wrapU),'"\n token inputs:wrapT = "').concat(M(t.wrapV),'"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ').concat(n.needAlphaBlending()||n.needAlphaTesting()?"float outputs:a":"","\n }")}function _(t,n,e){var o="\t\t\t",a=[],r=[],i=function(t){var n,e,o={diffuseMap:null,diffuse:null,alphaCutOff:0,emissiveMap:null,emissive:null,normalMap:null,roughnessMap:null,roughnessChannel:"a",roughness:0,metalnessMap:null,metalnessChannel:"r",metalness:0,aoMap:null,aoMapChannel:"rgb",aoMapIntensity:0,alphaMap:null,ior:1,clearCoatEnabled:!1,clearCoat:0,clearCoatMap:null,clearCoatRoughness:0,clearCoatRoughnessMap:null};return t instanceof s.StandardMaterial?c(c({},o),{diffuseMap:t.diffuseTexture,diffuse:t.diffuseColor,alphaCutOff:t.alphaCutOff,emissiveMap:t.emissiveTexture,emissive:t.emissiveColor,roughness:1,alphaMap:t.opacityTexture}):t instanceof s.PBRBaseMaterial?c(c({},o),{diffuseMap:t._albedoTexture,diffuse:t._albedoColor,alphaCutOff:t._alphaCutOff,emissiveMap:t._emissiveTexture,emissive:t._emissiveColor,normalMap:t._bumpTexture,roughnessMap:t._metallicTexture,roughnessChannel:t._useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:null!==(n=t._roughness)&&void 0!==n?n:1,metalnessMap:t._metallicTexture,metalnessChannel:t._useMetallnessFromMetallicTextureBlue?"b":"r",metalness:null!==(e=t._metallic)&&void 0!==e?e:0,aoMap:t._ambientTexture,aoMapChannel:t._useAmbientInGrayScale?"r":"rgb",aoMapIntensity:t._ambientTextureStrength,alphaMap:t._opacityTexture,ior:t.subSurface.indexOfRefraction,clearCoatEnabled:t.clearCoat.isEnabled,clearCoat:t.clearCoat.intensity,clearCoatMap:t.clearCoat.texture,clearCoatRoughness:t.clearCoat.roughness,clearCoatRoughnessMap:t.clearCoat.useRoughnessFromMainTexture?t.clearCoat.texture:t.clearCoat.textureRoughness}):o}(t),u=i.diffuseMap,l=i.diffuse,p=i.alphaCutOff,f=i.emissiveMap,d=i.emissive,h=i.normalMap,m=i.roughnessMap,g=i.roughnessChannel,v=i.roughness,M=i.metalnessMap,y=i.metalnessChannel,_=i.metalness,C=i.aoMap,T=i.aoMapChannel,R=i.aoMapIntensity,I=i.alphaMap,S=i.ior,O=i.clearCoatEnabled,w=i.clearCoat,A=i.clearCoatMap,P=i.clearCoatRoughness,q=i.clearCoatRoughnessMap;return null!==u?(a.push("".concat(o,"color3f inputs:diffuseColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:rgb>")),t.needAlphaBlending()?a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")):t.needAlphaTesting()&&(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")),a.push("".concat(o,"float inputs:opacityThreshold = ").concat(p))),r.push(b(u,t,"diffuse",l,n,e))):a.push("".concat(o,"color3f inputs:diffuseColor = ").concat(x(l||s.Color3.White()))),null!==f?(a.push("".concat(o,"color3f inputs:emissiveColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(f.uniqueId,"_emissive.outputs:rgb>")),r.push(b(f,t,"emissive",d,n,e))):d&&d.toLuminance()>0&&a.push("".concat(o,"color3f inputs:emissiveColor = ").concat(x(d))),null!==h&&(a.push("".concat(o,"normal3f inputs:normal.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(h.uniqueId,"_normal.outputs:rgb>")),r.push(b(h,t,"normal",null,n,e))),null!==C&&(a.push("".concat(o,"float inputs:occlusion.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(C.uniqueId,"_occlusion.outputs:").concat(T,">")),r.push(b(C,t,"occlusion",new s.Color3(R,R,R),n,e))),null!==m?(a.push("".concat(o,"float inputs:roughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(m.uniqueId,"_roughness.outputs:").concat(g,">")),r.push(b(m,t,"roughness",new s.Color3(v,v,v),n,e))):a.push("".concat(o,"float inputs:roughness = ").concat(v)),null!==M?(a.push("".concat(o,"float inputs:metallic.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(M.uniqueId,"_metallic.outputs:").concat(y,">")),r.push(b(M,t,"metallic",new s.Color3(_,_,_),n,e))):a.push("".concat(o,"float inputs:metallic = ").concat(_)),null!==I?(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(I.uniqueId,"_opacity.outputs:r>")),a.push("".concat(o,"float inputs:opacityThreshold = 0.0001")),r.push(b(I,t,"opacity",null,n,e))):a.push("".concat(o,"float inputs:opacity = ").concat(t.alpha)),O&&(null!==A?(a.push("".concat(o,"float inputs:clearcoat.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(A.uniqueId,"_clearcoat.outputs:r>")),r.push(b(A,t,"clearcoat",new s.Color3(w,w,w),n,e))):a.push("".concat(o,"float inputs:clearcoat = ").concat(w)),null!==q?(a.push("".concat(o,"float inputs:clearcoatRoughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(q.uniqueId,"_clearcoatRoughness.outputs:g>")),r.push(b(q,t,"clearcoatRoughness",new s.Color3(P,P,P),n,e))):a.push("".concat(o,"float inputs:clearcoatRoughness = ").concat(P))),a.push("".concat(o,"float inputs:ior = ").concat(S)),'\n\tdef Material "Material_'.concat(t.uniqueId,'"\n\t{\n\t\tdef Shader "PreviewSurface"\n\t\t{\n\t\t\tuniform token info:id = "UsdPreviewSurface"\n').concat(a.join("\n"),"\n\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\ttoken outputs:surface\n\t\t}\n\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_").concat(t.uniqueId,"/PreviewSurface.outputs:surface>\n\n").concat(r.join("\n"),"\n\n\t}\n")}function C(t){var n,e;t.computeWorldMatrix(!0);for(var o=t.getWorldMatrix().clone(),a=t.getScene().useRightHandedSystem,r=null!==(e=null===(n=t.material)||void 0===n?void 0:n._getEffectiveOrientation(t))&&void 0!==e?e:t.sideOrientation,i=!a,c=t.parent;c;){if(l(c,a)&&null===c.parent){a||(o.multiplyToRef(c.getWorldMatrix().invert(),o),r=r===s.Material.ClockWiseSideOrientation?s.Material.CounterClockWiseSideOrientation:s.Material.ClockWiseSideOrientation),i=!1;break}c=c.parent}return o.determinant()<0&&s.Tools.Warn("Mesh ".concat(t.name," has a negative scale, which may look incorrect in destinations like QuickLook.")),{matrix:o,windingOrder:r===s.Material.ClockWiseSideOrientation?"leftHanded":"rightHanded",convertToRightHanded:i}}function T(t,n,e){return o=this,a=void 0,i=function(){var o,a,r,i,u,l,p,f,g,M,y,x,b,T,R,I,S,O,w,A,P,q,k,E,j,D,U,V,B,W,L,N;return function(t,n){var e,o,a,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(r=0)),r;)try{if(e=1,o&&(a=2&c[0]?o.return:c[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,c[1])).done)return a;switch(o=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,o=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(!((a=(a=r.trys).length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){r=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){r.label=c[1];break}if(6===c[0]&&r.label<a[1]){r.label=a[1],a=c;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(c);break}a[2]&&r.ops.pop(),r.trys.pop();continue}c=n.call(t,r)}catch(t){c=[6,t],o=0}finally{e=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}(this,function(Z){switch(Z.label){case 0:return o=c({fflateUrl:"https://unpkg.com/fflate@0.8.2",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35},n),"undefined"!=typeof fflate?[3,2]:[4,s.Tools.LoadScriptAsync(o.fflateUrl)];case 1:Z.sent(),Z.label=2;case 2:for((a={})[o.modelFileName]=null,r='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )',r+=function(t){var n=!0===t.includeAnchoringProperties?'\n\t\ttoken preliminary:anchoring:type = "'.concat(t.anchoringType,'"\n\t\ttoken preliminary:planeAnchoring:alignment = "').concat(t.planeAnchoringAlignment,'"'):"";return'def Xform "Root"\n {\n def Scope "Scenes" (\n kind = "sceneLibrary"\n )\n {\n def Xform "Scene" (\n customData = {\n bool preliminary_collidesWithEnvironment = 0\n string sceneName = "Scene"\n }\n sceneName = "Scene"\n )\n {'.concat(n,"\n ")}(o),i={},u=0,l=t.meshes;u<l.length;u++)0!==(p=l[u]).getTotalVertices()&&(g=(f=p).geometry,(M=f.material)&&g&&(!e||e(f))&&(-1!==["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(M.getClassName())?(y="geometries/Geometry_"+g.uniqueId+".usda",x=C(f),b=x.matrix,T=x.windingOrder,R=x.convertToRightHanded,y in a||(I=d(g,o,T,R),a[y]=h(I)),M.uniqueId in i||(i[M.uniqueId]=M),r+=v(f,b)):s.Tools.Warn("USDZExportAsync does not support this material type: "+M.getClassName())));for(A in t.activeCamera&&o.exportCamera&&(r+=function(t,n){var e="Camera_"+t.uniqueId,o=m(s.Matrix.RotationY(Math.PI).multiply(t.getWorldMatrix()));if(t.mode===s.Constants.ORTHOGRAPHIC_CAMERA)return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat horizontalAperture = ").concat((10*(Math.abs(t.orthoLeft||1)+Math.abs(t.orthoRight||1))).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((10*(Math.abs(t.orthoTop||1)+Math.abs(t.orthoBottom||1))).toPrecision(n.precision),'\n\t\t\ttoken projection = "orthographic"\n\t\t}\n\t\n\t');var a=t.getEngine().getAspectRatio(t),r=n.cameraSensorWidth||35;return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat focalLength = ").concat((r/(2*Math.tan(.5*t.fov))).toPrecision(n.precision),'\n token projection = "perspective"\n\t\t\tfloat horizontalAperture = ').concat((r*a).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((r/a).toPrecision(n.precision)," \n\t\t}\n\t\n\t")}(t.activeCamera,o)),r+="\n }\n }",r+=function(t,n,e){var o=[];for(var a in t){var r=t[a];o.push(_(r,n,e))}return'\n def "Materials"\n{\n'.concat(o.join(""),"\n}\n\n")}(i,S={},o),r+="\n }",a[o.modelFileName]=fflate.strToU8(r),w=[],O=S)w.push(A);P=0,Z.label=3;case 3:return P<w.length?(A=w[P])in O?(k=S[q=A],E=k.getSize(),[4,(0,s.GetTextureDataAsync)(k)]):[3,6]:[3,7];case 4:return j=Z.sent(),[4,s.DumpTools.DumpDataAsync(E.width,E.height,j,"image/png",void 0,!1,!0)];case 5:D=Z.sent(),a["textures/Texture_".concat(q,".png")]=new Uint8Array(D).slice(),Z.label=6;case 6:return P++,[3,3];case 7:for(V in U=0,a)(B=a[V])&&(W=34+V.length,4!=(L=63&(U+=W))&&(N=new Uint8Array(64-L),a[V]=[B,{extra:{12345:N}}]),U=B.length);return[2,fflate.zipSync(a,{level:0})]}})},new((r=void 0)||(r=Promise))(function(t,n){function e(t){try{s(i.next(t))}catch(t){n(t)}}function c(t){try{s(i.throw(t))}catch(t){n(t)}}function s(n){var o;n.done?t(n.value):(o=n.value,o instanceof r?o:new r(function(t){t(o)})).then(e,c)}s((i=i.apply(o,a||[])).next())});var o,a,r,i}var R=void 0!==o.g?o.g:"undefined"!=typeof window?window:void 0;if(void 0!==R)for(var I in r)R.BABYLON[I]=r[I];const S=i;return a.default})());
2
2
  //# sourceMappingURL=babylon.usdzSerializer.min.js.map
@@ -1,2 +1,2 @@
1
- !function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-serializers",["babylonjs"],n):"object"==typeof exports?exports["babylonjs-serializers"]=n(require("babylonjs")):t.SERIALIZERS=n(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,(t=>(()=>{"use strict";var n={597(n){n.exports=t}},e={};function o(t){var a=e[t];if(void 0!==a)return a.exports;var r=e[t]={exports:{}};return n[t](r,r.exports,o),r.exports}o.d=(t,n)=>{for(var e in n)o.o(n,e)&&!o.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};o.d(a,{default:()=>S});var r={};o.r(r),o.d(r,{USDZExportAsync:()=>T});var i={};o.r(i),o.d(i,{USDZExportAsync:()=>T});var c=function(){return c=Object.assign||function(t){for(var n,e=1,o=arguments.length;e<o;e++)for(var a in n=arguments[e])Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);return t},c.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var s=o(597),u=s.Matrix.Compose(new s.Vector3(-1,1,1),s.Quaternion.Identity(),s.Vector3.Zero());function l(t,n){if(!(t instanceof s.TransformNode))return!1;if(n){if(!t.getWorldMatrix().equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1}else if(!t.getWorldMatrix().multiplyToRef(u,s.TmpVectors.Matrix[0]).equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1;return!(t instanceof s.AbstractMesh&&t.geometry)}function p(t,n,e,o){void 0===e&&(e=3),void 0===o&&(o=!1);for(var a=[],r=0;r<t.length/e;r++){var i=t[r*e]*(o?-1:1),c=t[r*e+1],s=t[r*e+2];a.push("(".concat(i.toPrecision(n.precision),", ").concat(c.toPrecision(n.precision),", ").concat(s.toPrecision(n.precision),")"))}return a.join(", ")}function f(t,n){for(var e=[],o=0;o<t.length/2;o++){var a=t[2*o],r=t[2*o+1];e.push("(".concat(a.toPrecision(n.precision),", ").concat((1-r).toPrecision(n.precision),")"))}return e.join(", ")}function d(t,n,e,o){var a=function(t,n,e,o){var a=t.getVerticesData(s.VertexBuffer.PositionKind),r=t.getVerticesData(s.VertexBuffer.NormalKind);if(a&&r)return'\n\tdef Mesh "'.concat("Geometry",'"\n\t{\n uniform token orientation = "').concat(e,'"\n\t\tint[] faceVertexCounts = [').concat(function(t){var n,e=(null===(n=t.getIndices())||void 0===n?void 0:n.length)?t.getTotalIndices():t.getTotalVertices();return Array(e/3).fill(3).join(", ")}(t),"]\n\t\tint[] faceVertexIndices = [").concat(function(t){var n,e=t.getIndices(),o=null!==(n=null==e?void 0:e.length)&&void 0!==n?n:t.getTotalVertices(),a=[];if(null!==e)for(var r=0;r<o;r++)a.push(e[r]);else for(r=0;r<o;r++)a.push(r);return a.join(", ")}(t),"]\n\t\tnormal3f[] normals = [").concat(p(r,n,void 0,o),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)\n\t\tpoint3f[] points = [').concat(p(a,n,void 0,o),"]\n ").concat(function(t,n){for(var e="",o=0;o<4;o++){var a=o>0?o:"",r=t.getVerticesData(s.VertexBuffer.UVKind+(a?a+1:""));r&&(e+="\n\t\ttexCoord2f[] primvars:st".concat(a," = [").concat(f(r,n),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)'))}var i=t.getVerticesData(s.VertexBuffer.ColorKind);return i&&(e+="\n\tcolor3f[] primvars:displayColor = [".concat(p(i,n,i.length/t.getTotalVertices()),'] (\n\t\tinterpolation = "vertex"\n\t\t)')),e}(t,n),'\n\t\tuniform token subdivisionScheme = "none"\n\t}\n')}(t,n,e,o);return'\n def "Geometry"\n {\n '.concat(a,"\n }\n ")}function h(t){var n='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )';return n+=t,fflate.strToU8(n)}function m(t){var n=t.m;return"( ".concat(g(n,0),", ").concat(g(n,4),", ").concat(g(n,8),", ").concat(g(n,12)," )")}function g(t,n){return"(".concat(t[n+0],", ").concat(t[n+1],", ").concat(t[n+2],", ").concat(t[n+3],")")}function v(t,n){var e="Object_"+t.uniqueId,o=m(n);return'def Xform "'.concat(e,'" (\n\tprepend references = @./geometries/Geometry_').concat(t.geometry.uniqueId,'.usda@</Geometry>\n\tprepend apiSchemas = ["MaterialBindingAPI"]\n)\n{\n\tmatrix4d xformOp:transform = ').concat(o,'\n\tuniform token[] xformOpOrder = ["xformOp:transform"]\t\n\n rel material:binding = </Root/Materials/Material_').concat(t.material.uniqueId,">\n}\n\n")}function M(t){switch(t){case s.Constants.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case s.Constants.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case s.Constants.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function y(t){return"(".concat(t.x,", ").concat(t.y,")")}function x(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,")")}function b(t,n,e,o,a,r){var i=t.getInternalTexture().uniqueId+"_"+t.invertY;a[i]=t;var c=t.coordinatesIndex>0?"st"+t.coordinatesIndex:"st",u=new s.Vector2(t.uScale,t.vScale),l=new s.Vector2(t.uOffset,t.vOffset),p=t.wAng,f=Math.sin(p),d=Math.cos(p);return l.y=1-l.y-u.y,l.x+=f*u.x,l.y+=(1-d)*u.y,'\n def Shader "PrimvarReader_'.concat(e,'"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n float2 inputs:fallback = (0.0, 0.0)\n token inputs:varname = "').concat(c,'"\n float2 outputs:result\n }\n\n def Shader "Transform2d_').concat(e,'"\n {\n uniform token info:id = "UsdTransform2d"\n token inputs:in.connect = </Root/Materials/Material_').concat(n.uniqueId,"/PrimvarReader_").concat(e,".outputs:result>\n float inputs:rotation = ").concat((p*(180/Math.PI)).toFixed(r.precision),"\n float2 inputs:scale = ").concat(y(u),"\n float2 inputs:translation = ").concat(y(l),'\n float2 outputs:result\n }\n\n def Shader "Texture_').concat(t.uniqueId,"_").concat(e,'"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_').concat(i,".png@\n float2 inputs:st.connect = </Root/Materials/Material_").concat(n.uniqueId,"/Transform2d_").concat(e,".outputs:result>\n ").concat(o?"float4 inputs:scale = "+function(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", 1.0)")}(o):"",'\n token inputs:sourceColorSpace = "').concat(t.gammaSpace?"sRGB":"raw",'"\n token inputs:wrapS = "').concat(M(t.wrapU),'"\n token inputs:wrapT = "').concat(M(t.wrapV),'"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ').concat(n.needAlphaBlending()||n.needAlphaTesting()?"float outputs:a":"","\n }")}function _(t,n,e){var o="\t\t\t",a=[],r=[],i=function(t){var n,e,o={diffuseMap:null,diffuse:null,alphaCutOff:0,emissiveMap:null,emissive:null,normalMap:null,roughnessMap:null,roughnessChannel:"a",roughness:0,metalnessMap:null,metalnessChannel:"r",metalness:0,aoMap:null,aoMapChannel:"rgb",aoMapIntensity:0,alphaMap:null,ior:1,clearCoatEnabled:!1,clearCoat:0,clearCoatMap:null,clearCoatRoughness:0,clearCoatRoughnessMap:null};return t instanceof s.StandardMaterial?c(c({},o),{diffuseMap:t.diffuseTexture,diffuse:t.diffuseColor,alphaCutOff:t.alphaCutOff,emissiveMap:t.emissiveTexture,emissive:t.emissiveColor,roughness:1,alphaMap:t.opacityTexture}):t instanceof s.PBRBaseMaterial?c(c({},o),{diffuseMap:t._albedoTexture,diffuse:t._albedoColor,alphaCutOff:t._alphaCutOff,emissiveMap:t._emissiveTexture,emissive:t._emissiveColor,normalMap:t._bumpTexture,roughnessMap:t._metallicTexture,roughnessChannel:t._useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:null!==(n=t._roughness)&&void 0!==n?n:1,metalnessMap:t._metallicTexture,metalnessChannel:t._useMetallnessFromMetallicTextureBlue?"b":"r",metalness:null!==(e=t._metallic)&&void 0!==e?e:0,aoMap:t._ambientTexture,aoMapChannel:t._useAmbientInGrayScale?"r":"rgb",aoMapIntensity:t._ambientTextureStrength,alphaMap:t._opacityTexture,ior:t.subSurface.indexOfRefraction,clearCoatEnabled:t.clearCoat.isEnabled,clearCoat:t.clearCoat.intensity,clearCoatMap:t.clearCoat.texture,clearCoatRoughness:t.clearCoat.roughness,clearCoatRoughnessMap:t.clearCoat.useRoughnessFromMainTexture?t.clearCoat.texture:t.clearCoat.textureRoughness}):o}(t),u=i.diffuseMap,l=i.diffuse,p=i.alphaCutOff,f=i.emissiveMap,d=i.emissive,h=i.normalMap,m=i.roughnessMap,g=i.roughnessChannel,v=i.roughness,M=i.metalnessMap,y=i.metalnessChannel,_=i.metalness,C=i.aoMap,T=i.aoMapChannel,R=i.aoMapIntensity,I=i.alphaMap,S=i.ior,O=i.clearCoatEnabled,w=i.clearCoat,A=i.clearCoatMap,P=i.clearCoatRoughness,q=i.clearCoatRoughnessMap;return null!==u?(a.push("".concat(o,"color3f inputs:diffuseColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:rgb>")),t.needAlphaBlending()?a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")):t.needAlphaTesting()&&(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")),a.push("".concat(o,"float inputs:opacityThreshold = ").concat(p))),r.push(b(u,t,"diffuse",l,n,e))):a.push("".concat(o,"color3f inputs:diffuseColor = ").concat(x(l||s.Color3.White()))),null!==f?(a.push("".concat(o,"color3f inputs:emissiveColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(f.uniqueId,"_emissive.outputs:rgb>")),r.push(b(f,t,"emissive",d,n,e))):d&&d.toLuminance()>0&&a.push("".concat(o,"color3f inputs:emissiveColor = ").concat(x(d))),null!==h&&(a.push("".concat(o,"normal3f inputs:normal.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(h.uniqueId,"_normal.outputs:rgb>")),r.push(b(h,t,"normal",null,n,e))),null!==C&&(a.push("".concat(o,"float inputs:occlusion.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(C.uniqueId,"_occlusion.outputs:").concat(T,">")),r.push(b(C,t,"occlusion",new s.Color3(R,R,R),n,e))),null!==m?(a.push("".concat(o,"float inputs:roughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(m.uniqueId,"_roughness.outputs:").concat(g,">")),r.push(b(m,t,"roughness",new s.Color3(v,v,v),n,e))):a.push("".concat(o,"float inputs:roughness = ").concat(v)),null!==M?(a.push("".concat(o,"float inputs:metallic.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(M.uniqueId,"_metallic.outputs:").concat(y,">")),r.push(b(M,t,"metallic",new s.Color3(_,_,_),n,e))):a.push("".concat(o,"float inputs:metallic = ").concat(_)),null!==I?(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(I.uniqueId,"_opacity.outputs:r>")),a.push("".concat(o,"float inputs:opacityThreshold = 0.0001")),r.push(b(I,t,"opacity",null,n,e))):a.push("".concat(o,"float inputs:opacity = ").concat(t.alpha)),O&&(null!==A?(a.push("".concat(o,"float inputs:clearcoat.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(A.uniqueId,"_clearcoat.outputs:r>")),r.push(b(A,t,"clearcoat",new s.Color3(w,w,w),n,e))):a.push("".concat(o,"float inputs:clearcoat = ").concat(w)),null!==q?(a.push("".concat(o,"float inputs:clearcoatRoughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(q.uniqueId,"_clearcoatRoughness.outputs:g>")),r.push(b(q,t,"clearcoatRoughness",new s.Color3(P,P,P),n,e))):a.push("".concat(o,"float inputs:clearcoatRoughness = ").concat(P))),a.push("".concat(o,"float inputs:ior = ").concat(S)),'\n\tdef Material "Material_'.concat(t.uniqueId,'"\n\t{\n\t\tdef Shader "PreviewSurface"\n\t\t{\n\t\t\tuniform token info:id = "UsdPreviewSurface"\n').concat(a.join("\n"),"\n\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\ttoken outputs:surface\n\t\t}\n\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_").concat(t.uniqueId,"/PreviewSurface.outputs:surface>\n\n").concat(r.join("\n"),"\n\n\t}\n")}function C(t){var n,e;t.computeWorldMatrix(!0);for(var o=t.getWorldMatrix().clone(),a=t.getScene().useRightHandedSystem,r=null!==(e=null===(n=t.material)||void 0===n?void 0:n._getEffectiveOrientation(t))&&void 0!==e?e:t.sideOrientation,i=!a,c=t.parent;c;){if(l(c,a)&&null===c.parent){a||(o.multiplyToRef(c.getWorldMatrix().invert(),o),r=r===s.Material.ClockWiseSideOrientation?s.Material.CounterClockWiseSideOrientation:s.Material.ClockWiseSideOrientation),i=!1;break}c=c.parent}return o.determinant()<0&&s.Tools.Warn("Mesh ".concat(t.name," has a negative scale, which may look incorrect in destinations like QuickLook.")),{matrix:o,windingOrder:r===s.Material.ClockWiseSideOrientation?"leftHanded":"rightHanded",convertToRightHanded:i}}function T(t,n,e){return o=this,a=void 0,i=function(){var o,a,r,i,u,l,p,f,g,M,y,x,b,T,R,I,S,O,w,A,P,q,k,E,j,D,U,V,B,W,L,N;return function(t,n){var e,o,a,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(r=0)),r;)try{if(e=1,o&&(a=2&c[0]?o.return:c[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,c[1])).done)return a;switch(o=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,o=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(!((a=(a=r.trys).length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){r=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){r.label=c[1];break}if(6===c[0]&&r.label<a[1]){r.label=a[1],a=c;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(c);break}a[2]&&r.ops.pop(),r.trys.pop();continue}c=n.call(t,r)}catch(t){c=[6,t],o=0}finally{e=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}(this,(function(Z){switch(Z.label){case 0:return o=c({fflateUrl:"https://unpkg.com/fflate@0.8.2",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35},n),"undefined"!=typeof fflate?[3,2]:[4,s.Tools.LoadScriptAsync(o.fflateUrl)];case 1:Z.sent(),Z.label=2;case 2:for((a={})[o.modelFileName]=null,r='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )',r+=function(t){var n=!0===t.includeAnchoringProperties?'\n\t\ttoken preliminary:anchoring:type = "'.concat(t.anchoringType,'"\n\t\ttoken preliminary:planeAnchoring:alignment = "').concat(t.planeAnchoringAlignment,'"'):"";return'def Xform "Root"\n {\n def Scope "Scenes" (\n kind = "sceneLibrary"\n )\n {\n def Xform "Scene" (\n customData = {\n bool preliminary_collidesWithEnvironment = 0\n string sceneName = "Scene"\n }\n sceneName = "Scene"\n )\n {'.concat(n,"\n ")}(o),i={},u=0,l=t.meshes;u<l.length;u++)0!==(p=l[u]).getTotalVertices()&&(g=(f=p).geometry,(M=f.material)&&g&&(!e||e(f))&&(-1!==["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(M.getClassName())?(y="geometries/Geometry_"+g.uniqueId+".usda",x=C(f),b=x.matrix,T=x.windingOrder,R=x.convertToRightHanded,y in a||(I=d(g,o,T,R),a[y]=h(I)),M.uniqueId in i||(i[M.uniqueId]=M),r+=v(f,b)):s.Tools.Warn("USDZExportAsync does not support this material type: "+M.getClassName())));for(A in t.activeCamera&&o.exportCamera&&(r+=function(t,n){var e="Camera_"+t.uniqueId,o=m(s.Matrix.RotationY(Math.PI).multiply(t.getWorldMatrix()));if(t.mode===s.Constants.ORTHOGRAPHIC_CAMERA)return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat horizontalAperture = ").concat((10*(Math.abs(t.orthoLeft||1)+Math.abs(t.orthoRight||1))).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((10*(Math.abs(t.orthoTop||1)+Math.abs(t.orthoBottom||1))).toPrecision(n.precision),'\n\t\t\ttoken projection = "orthographic"\n\t\t}\n\t\n\t');var a=t.getEngine().getAspectRatio(t),r=n.cameraSensorWidth||35;return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat focalLength = ").concat((r/(2*Math.tan(.5*t.fov))).toPrecision(n.precision),'\n token projection = "perspective"\n\t\t\tfloat horizontalAperture = ').concat((r*a).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((r/a).toPrecision(n.precision)," \n\t\t}\n\t\n\t")}(t.activeCamera,o)),r+="\n }\n }",r+=function(t,n,e){var o=[];for(var a in t){var r=t[a];o.push(_(r,n,e))}return'\n def "Materials"\n{\n'.concat(o.join(""),"\n}\n\n")}(i,S={},o),r+="\n }",a[o.modelFileName]=fflate.strToU8(r),w=[],O=S)w.push(A);P=0,Z.label=3;case 3:return P<w.length?(A=w[P])in O?(k=S[q=A],E=k.getSize(),[4,(0,s.GetTextureDataAsync)(k)]):[3,6]:[3,7];case 4:return j=Z.sent(),[4,s.DumpTools.DumpDataAsync(E.width,E.height,j,"image/png",void 0,!1,!0)];case 5:D=Z.sent(),a["textures/Texture_".concat(q,".png")]=new Uint8Array(D).slice(),Z.label=6;case 6:return P++,[3,3];case 7:for(V in U=0,a)(B=a[V])&&(W=34+V.length,4!=(L=63&(U+=W))&&(N=new Uint8Array(64-L),a[V]=[B,{extra:{12345:N}}]),U=B.length);return[2,fflate.zipSync(a,{level:0})]}}))},new((r=void 0)||(r=Promise))((function(t,n){function e(t){try{s(i.next(t))}catch(t){n(t)}}function c(t){try{s(i.throw(t))}catch(t){n(t)}}function s(n){var o;n.done?t(n.value):(o=n.value,o instanceof r?o:new r((function(t){t(o)}))).then(e,c)}s((i=i.apply(o,a||[])).next())}));var o,a,r,i}var R=void 0!==o.g?o.g:"undefined"!=typeof window?window:void 0;if(void 0!==R)for(var I in r)R.BABYLON[I]=r[I];const S=i;return a.default})()));
1
+ !function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-serializers",["babylonjs"],n):"object"==typeof exports?exports["babylonjs-serializers"]=n(require("babylonjs")):t.SERIALIZERS=n(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,t=>(()=>{"use strict";var n={597(n){n.exports=t}},e={};function o(t){var a=e[t];if(void 0!==a)return a.exports;var r=e[t]={exports:{}};return n[t](r,r.exports,o),r.exports}o.d=(t,n)=>{for(var e in n)o.o(n,e)&&!o.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};o.d(a,{default:()=>S});var r={};o.r(r),o.d(r,{USDZExportAsync:()=>T});var i={};o.r(i),o.d(i,{USDZExportAsync:()=>T});var c=function(){return c=Object.assign||function(t){for(var n,e=1,o=arguments.length;e<o;e++)for(var a in n=arguments[e])Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);return t},c.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var s=o(597),u=s.Matrix.Compose(new s.Vector3(-1,1,1),s.Quaternion.Identity(),s.Vector3.Zero());function l(t,n){if(!(t instanceof s.TransformNode))return!1;if(n){if(!t.getWorldMatrix().equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1}else if(!t.getWorldMatrix().multiplyToRef(u,s.TmpVectors.Matrix[0]).equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1;return!(t instanceof s.AbstractMesh&&t.geometry)}function p(t,n,e,o){void 0===e&&(e=3),void 0===o&&(o=!1);for(var a=[],r=0;r<t.length/e;r++){var i=t[r*e]*(o?-1:1),c=t[r*e+1],s=t[r*e+2];a.push("(".concat(i.toPrecision(n.precision),", ").concat(c.toPrecision(n.precision),", ").concat(s.toPrecision(n.precision),")"))}return a.join(", ")}function f(t,n){for(var e=[],o=0;o<t.length/2;o++){var a=t[2*o],r=t[2*o+1];e.push("(".concat(a.toPrecision(n.precision),", ").concat((1-r).toPrecision(n.precision),")"))}return e.join(", ")}function d(t,n,e,o){var a=function(t,n,e,o){var a=t.getVerticesData(s.VertexBuffer.PositionKind),r=t.getVerticesData(s.VertexBuffer.NormalKind);if(a&&r)return'\n\tdef Mesh "'.concat("Geometry",'"\n\t{\n uniform token orientation = "').concat(e,'"\n\t\tint[] faceVertexCounts = [').concat(function(t){var n,e=(null===(n=t.getIndices())||void 0===n?void 0:n.length)?t.getTotalIndices():t.getTotalVertices();return Array(e/3).fill(3).join(", ")}(t),"]\n\t\tint[] faceVertexIndices = [").concat(function(t){var n,e=t.getIndices(),o=null!==(n=null==e?void 0:e.length)&&void 0!==n?n:t.getTotalVertices(),a=[];if(null!==e)for(var r=0;r<o;r++)a.push(e[r]);else for(r=0;r<o;r++)a.push(r);return a.join(", ")}(t),"]\n\t\tnormal3f[] normals = [").concat(p(r,n,void 0,o),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)\n\t\tpoint3f[] points = [').concat(p(a,n,void 0,o),"]\n ").concat(function(t,n){for(var e="",o=0;o<4;o++){var a=o>0?o:"",r=t.getVerticesData(s.VertexBuffer.UVKind+(a?a+1:""));r&&(e+="\n\t\ttexCoord2f[] primvars:st".concat(a," = [").concat(f(r,n),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)'))}var i=t.getVerticesData(s.VertexBuffer.ColorKind);return i&&(e+="\n\tcolor3f[] primvars:displayColor = [".concat(p(i,n,i.length/t.getTotalVertices()),'] (\n\t\tinterpolation = "vertex"\n\t\t)')),e}(t,n),'\n\t\tuniform token subdivisionScheme = "none"\n\t}\n')}(t,n,e,o);return'\n def "Geometry"\n {\n '.concat(a,"\n }\n ")}function h(t){var n='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )';return n+=t,fflate.strToU8(n)}function m(t){var n=t.m;return"( ".concat(g(n,0),", ").concat(g(n,4),", ").concat(g(n,8),", ").concat(g(n,12)," )")}function g(t,n){return"(".concat(t[n+0],", ").concat(t[n+1],", ").concat(t[n+2],", ").concat(t[n+3],")")}function v(t,n){var e="Object_"+t.uniqueId,o=m(n);return'def Xform "'.concat(e,'" (\n\tprepend references = @./geometries/Geometry_').concat(t.geometry.uniqueId,'.usda@</Geometry>\n\tprepend apiSchemas = ["MaterialBindingAPI"]\n)\n{\n\tmatrix4d xformOp:transform = ').concat(o,'\n\tuniform token[] xformOpOrder = ["xformOp:transform"]\t\n\n rel material:binding = </Root/Materials/Material_').concat(t.material.uniqueId,">\n}\n\n")}function M(t){switch(t){case s.Constants.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case s.Constants.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case s.Constants.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function y(t){return"(".concat(t.x,", ").concat(t.y,")")}function x(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,")")}function b(t,n,e,o,a,r){var i=t.getInternalTexture().uniqueId+"_"+t.invertY;a[i]=t;var c=t.coordinatesIndex>0?"st"+t.coordinatesIndex:"st",u=new s.Vector2(t.uScale,t.vScale),l=new s.Vector2(t.uOffset,t.vOffset),p=t.wAng,f=Math.sin(p),d=Math.cos(p);return l.y=1-l.y-u.y,l.x+=f*u.x,l.y+=(1-d)*u.y,'\n def Shader "PrimvarReader_'.concat(e,'"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n float2 inputs:fallback = (0.0, 0.0)\n token inputs:varname = "').concat(c,'"\n float2 outputs:result\n }\n\n def Shader "Transform2d_').concat(e,'"\n {\n uniform token info:id = "UsdTransform2d"\n token inputs:in.connect = </Root/Materials/Material_').concat(n.uniqueId,"/PrimvarReader_").concat(e,".outputs:result>\n float inputs:rotation = ").concat((p*(180/Math.PI)).toFixed(r.precision),"\n float2 inputs:scale = ").concat(y(u),"\n float2 inputs:translation = ").concat(y(l),'\n float2 outputs:result\n }\n\n def Shader "Texture_').concat(t.uniqueId,"_").concat(e,'"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_').concat(i,".png@\n float2 inputs:st.connect = </Root/Materials/Material_").concat(n.uniqueId,"/Transform2d_").concat(e,".outputs:result>\n ").concat(o?"float4 inputs:scale = "+function(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", 1.0)")}(o):"",'\n token inputs:sourceColorSpace = "').concat(t.gammaSpace?"sRGB":"raw",'"\n token inputs:wrapS = "').concat(M(t.wrapU),'"\n token inputs:wrapT = "').concat(M(t.wrapV),'"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ').concat(n.needAlphaBlending()||n.needAlphaTesting()?"float outputs:a":"","\n }")}function _(t,n,e){var o="\t\t\t",a=[],r=[],i=function(t){var n,e,o={diffuseMap:null,diffuse:null,alphaCutOff:0,emissiveMap:null,emissive:null,normalMap:null,roughnessMap:null,roughnessChannel:"a",roughness:0,metalnessMap:null,metalnessChannel:"r",metalness:0,aoMap:null,aoMapChannel:"rgb",aoMapIntensity:0,alphaMap:null,ior:1,clearCoatEnabled:!1,clearCoat:0,clearCoatMap:null,clearCoatRoughness:0,clearCoatRoughnessMap:null};return t instanceof s.StandardMaterial?c(c({},o),{diffuseMap:t.diffuseTexture,diffuse:t.diffuseColor,alphaCutOff:t.alphaCutOff,emissiveMap:t.emissiveTexture,emissive:t.emissiveColor,roughness:1,alphaMap:t.opacityTexture}):t instanceof s.PBRBaseMaterial?c(c({},o),{diffuseMap:t._albedoTexture,diffuse:t._albedoColor,alphaCutOff:t._alphaCutOff,emissiveMap:t._emissiveTexture,emissive:t._emissiveColor,normalMap:t._bumpTexture,roughnessMap:t._metallicTexture,roughnessChannel:t._useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:null!==(n=t._roughness)&&void 0!==n?n:1,metalnessMap:t._metallicTexture,metalnessChannel:t._useMetallnessFromMetallicTextureBlue?"b":"r",metalness:null!==(e=t._metallic)&&void 0!==e?e:0,aoMap:t._ambientTexture,aoMapChannel:t._useAmbientInGrayScale?"r":"rgb",aoMapIntensity:t._ambientTextureStrength,alphaMap:t._opacityTexture,ior:t.subSurface.indexOfRefraction,clearCoatEnabled:t.clearCoat.isEnabled,clearCoat:t.clearCoat.intensity,clearCoatMap:t.clearCoat.texture,clearCoatRoughness:t.clearCoat.roughness,clearCoatRoughnessMap:t.clearCoat.useRoughnessFromMainTexture?t.clearCoat.texture:t.clearCoat.textureRoughness}):o}(t),u=i.diffuseMap,l=i.diffuse,p=i.alphaCutOff,f=i.emissiveMap,d=i.emissive,h=i.normalMap,m=i.roughnessMap,g=i.roughnessChannel,v=i.roughness,M=i.metalnessMap,y=i.metalnessChannel,_=i.metalness,C=i.aoMap,T=i.aoMapChannel,R=i.aoMapIntensity,I=i.alphaMap,S=i.ior,O=i.clearCoatEnabled,w=i.clearCoat,A=i.clearCoatMap,P=i.clearCoatRoughness,q=i.clearCoatRoughnessMap;return null!==u?(a.push("".concat(o,"color3f inputs:diffuseColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:rgb>")),t.needAlphaBlending()?a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")):t.needAlphaTesting()&&(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")),a.push("".concat(o,"float inputs:opacityThreshold = ").concat(p))),r.push(b(u,t,"diffuse",l,n,e))):a.push("".concat(o,"color3f inputs:diffuseColor = ").concat(x(l||s.Color3.White()))),null!==f?(a.push("".concat(o,"color3f inputs:emissiveColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(f.uniqueId,"_emissive.outputs:rgb>")),r.push(b(f,t,"emissive",d,n,e))):d&&d.toLuminance()>0&&a.push("".concat(o,"color3f inputs:emissiveColor = ").concat(x(d))),null!==h&&(a.push("".concat(o,"normal3f inputs:normal.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(h.uniqueId,"_normal.outputs:rgb>")),r.push(b(h,t,"normal",null,n,e))),null!==C&&(a.push("".concat(o,"float inputs:occlusion.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(C.uniqueId,"_occlusion.outputs:").concat(T,">")),r.push(b(C,t,"occlusion",new s.Color3(R,R,R),n,e))),null!==m?(a.push("".concat(o,"float inputs:roughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(m.uniqueId,"_roughness.outputs:").concat(g,">")),r.push(b(m,t,"roughness",new s.Color3(v,v,v),n,e))):a.push("".concat(o,"float inputs:roughness = ").concat(v)),null!==M?(a.push("".concat(o,"float inputs:metallic.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(M.uniqueId,"_metallic.outputs:").concat(y,">")),r.push(b(M,t,"metallic",new s.Color3(_,_,_),n,e))):a.push("".concat(o,"float inputs:metallic = ").concat(_)),null!==I?(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(I.uniqueId,"_opacity.outputs:r>")),a.push("".concat(o,"float inputs:opacityThreshold = 0.0001")),r.push(b(I,t,"opacity",null,n,e))):a.push("".concat(o,"float inputs:opacity = ").concat(t.alpha)),O&&(null!==A?(a.push("".concat(o,"float inputs:clearcoat.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(A.uniqueId,"_clearcoat.outputs:r>")),r.push(b(A,t,"clearcoat",new s.Color3(w,w,w),n,e))):a.push("".concat(o,"float inputs:clearcoat = ").concat(w)),null!==q?(a.push("".concat(o,"float inputs:clearcoatRoughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(q.uniqueId,"_clearcoatRoughness.outputs:g>")),r.push(b(q,t,"clearcoatRoughness",new s.Color3(P,P,P),n,e))):a.push("".concat(o,"float inputs:clearcoatRoughness = ").concat(P))),a.push("".concat(o,"float inputs:ior = ").concat(S)),'\n\tdef Material "Material_'.concat(t.uniqueId,'"\n\t{\n\t\tdef Shader "PreviewSurface"\n\t\t{\n\t\t\tuniform token info:id = "UsdPreviewSurface"\n').concat(a.join("\n"),"\n\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\ttoken outputs:surface\n\t\t}\n\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_").concat(t.uniqueId,"/PreviewSurface.outputs:surface>\n\n").concat(r.join("\n"),"\n\n\t}\n")}function C(t){var n,e;t.computeWorldMatrix(!0);for(var o=t.getWorldMatrix().clone(),a=t.getScene().useRightHandedSystem,r=null!==(e=null===(n=t.material)||void 0===n?void 0:n._getEffectiveOrientation(t))&&void 0!==e?e:t.sideOrientation,i=!a,c=t.parent;c;){if(l(c,a)&&null===c.parent){a||(o.multiplyToRef(c.getWorldMatrix().invert(),o),r=r===s.Material.ClockWiseSideOrientation?s.Material.CounterClockWiseSideOrientation:s.Material.ClockWiseSideOrientation),i=!1;break}c=c.parent}return o.determinant()<0&&s.Tools.Warn("Mesh ".concat(t.name," has a negative scale, which may look incorrect in destinations like QuickLook.")),{matrix:o,windingOrder:r===s.Material.ClockWiseSideOrientation?"leftHanded":"rightHanded",convertToRightHanded:i}}function T(t,n,e){return o=this,a=void 0,i=function(){var o,a,r,i,u,l,p,f,g,M,y,x,b,T,R,I,S,O,w,A,P,q,k,E,j,D,U,V,B,W,L,N;return function(t,n){var e,o,a,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(r=0)),r;)try{if(e=1,o&&(a=2&c[0]?o.return:c[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,c[1])).done)return a;switch(o=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,o=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(!((a=(a=r.trys).length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){r=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){r.label=c[1];break}if(6===c[0]&&r.label<a[1]){r.label=a[1],a=c;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(c);break}a[2]&&r.ops.pop(),r.trys.pop();continue}c=n.call(t,r)}catch(t){c=[6,t],o=0}finally{e=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}(this,function(Z){switch(Z.label){case 0:return o=c({fflateUrl:"https://unpkg.com/fflate@0.8.2",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35},n),"undefined"!=typeof fflate?[3,2]:[4,s.Tools.LoadScriptAsync(o.fflateUrl)];case 1:Z.sent(),Z.label=2;case 2:for((a={})[o.modelFileName]=null,r='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )',r+=function(t){var n=!0===t.includeAnchoringProperties?'\n\t\ttoken preliminary:anchoring:type = "'.concat(t.anchoringType,'"\n\t\ttoken preliminary:planeAnchoring:alignment = "').concat(t.planeAnchoringAlignment,'"'):"";return'def Xform "Root"\n {\n def Scope "Scenes" (\n kind = "sceneLibrary"\n )\n {\n def Xform "Scene" (\n customData = {\n bool preliminary_collidesWithEnvironment = 0\n string sceneName = "Scene"\n }\n sceneName = "Scene"\n )\n {'.concat(n,"\n ")}(o),i={},u=0,l=t.meshes;u<l.length;u++)0!==(p=l[u]).getTotalVertices()&&(g=(f=p).geometry,(M=f.material)&&g&&(!e||e(f))&&(-1!==["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(M.getClassName())?(y="geometries/Geometry_"+g.uniqueId+".usda",x=C(f),b=x.matrix,T=x.windingOrder,R=x.convertToRightHanded,y in a||(I=d(g,o,T,R),a[y]=h(I)),M.uniqueId in i||(i[M.uniqueId]=M),r+=v(f,b)):s.Tools.Warn("USDZExportAsync does not support this material type: "+M.getClassName())));for(A in t.activeCamera&&o.exportCamera&&(r+=function(t,n){var e="Camera_"+t.uniqueId,o=m(s.Matrix.RotationY(Math.PI).multiply(t.getWorldMatrix()));if(t.mode===s.Constants.ORTHOGRAPHIC_CAMERA)return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat horizontalAperture = ").concat((10*(Math.abs(t.orthoLeft||1)+Math.abs(t.orthoRight||1))).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((10*(Math.abs(t.orthoTop||1)+Math.abs(t.orthoBottom||1))).toPrecision(n.precision),'\n\t\t\ttoken projection = "orthographic"\n\t\t}\n\t\n\t');var a=t.getEngine().getAspectRatio(t),r=n.cameraSensorWidth||35;return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat focalLength = ").concat((r/(2*Math.tan(.5*t.fov))).toPrecision(n.precision),'\n token projection = "perspective"\n\t\t\tfloat horizontalAperture = ').concat((r*a).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((r/a).toPrecision(n.precision)," \n\t\t}\n\t\n\t")}(t.activeCamera,o)),r+="\n }\n }",r+=function(t,n,e){var o=[];for(var a in t){var r=t[a];o.push(_(r,n,e))}return'\n def "Materials"\n{\n'.concat(o.join(""),"\n}\n\n")}(i,S={},o),r+="\n }",a[o.modelFileName]=fflate.strToU8(r),w=[],O=S)w.push(A);P=0,Z.label=3;case 3:return P<w.length?(A=w[P])in O?(k=S[q=A],E=k.getSize(),[4,(0,s.GetTextureDataAsync)(k)]):[3,6]:[3,7];case 4:return j=Z.sent(),[4,s.DumpTools.DumpDataAsync(E.width,E.height,j,"image/png",void 0,!1,!0)];case 5:D=Z.sent(),a["textures/Texture_".concat(q,".png")]=new Uint8Array(D).slice(),Z.label=6;case 6:return P++,[3,3];case 7:for(V in U=0,a)(B=a[V])&&(W=34+V.length,4!=(L=63&(U+=W))&&(N=new Uint8Array(64-L),a[V]=[B,{extra:{12345:N}}]),U=B.length);return[2,fflate.zipSync(a,{level:0})]}})},new((r=void 0)||(r=Promise))(function(t,n){function e(t){try{s(i.next(t))}catch(t){n(t)}}function c(t){try{s(i.throw(t))}catch(t){n(t)}}function s(n){var o;n.done?t(n.value):(o=n.value,o instanceof r?o:new r(function(t){t(o)})).then(e,c)}s((i=i.apply(o,a||[])).next())});var o,a,r,i}var R=void 0!==o.g?o.g:"undefined"!=typeof window?window:void 0;if(void 0!==R)for(var I in r)R.BABYLON[I]=r[I];const S=i;return a.default})());
2
2
  //# sourceMappingURL=babylon.usdzSerializer.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"babylon.usdzSerializer.min.js","mappings":"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","sources":["webpack://SERIALIZERS/webpack/universalModuleDefinition","webpack://SERIALIZERS/external umd {\"root\":\"BABYLON\",\"commonjs\":\"babylonjs\",\"commonjs2\":\"babylonjs\",\"amd\":\"babylonjs\"}","webpack://SERIALIZERS/webpack/bootstrap","webpack://SERIALIZERS/webpack/runtime/define property getters","webpack://SERIALIZERS/webpack/runtime/global","webpack://SERIALIZERS/webpack/runtime/hasOwnProperty shorthand","webpack://SERIALIZERS/webpack/runtime/make namespace object","webpack://SERIALIZERS/../../../../node_modules/tslib/tslib.es6.mjs","webpack://SERIALIZERS/../../../dev/serializers/src/exportUtils.ts","webpack://SERIALIZERS/../../../dev/serializers/src/USDZ/usdzExporter.ts","webpack://SERIALIZERS/../../../lts/serializers/src/legacy/legacy-usdzSerializer.ts","webpack://SERIALIZERS/./src/USDZ.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"babylonjs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"babylonjs-serializers\", [\"babylonjs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"babylonjs-serializers\"] = factory(require(\"babylonjs\"));\n\telse\n\t\troot[\"SERIALIZERS\"] = factory(root[\"BABYLON\"]);\n})((typeof self !== \"undefined\" ? self : typeof global !== \"undefined\" ? global : this), (__WEBPACK_EXTERNAL_MODULE__597__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__597__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { Matrix, Quaternion, TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\nimport { Epsilon } from \"core/Maths/math.constants\";\r\nimport { TransformNode } from \"core/Meshes/transformNode\";\r\nimport { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { Node } from \"core/node\";\r\n\r\n/**\r\n * Matrix that converts handedness on the X-axis. Used to convert from LH to RH and vice versa.\r\n * @internal\r\n */\r\nexport const ConvertHandednessMatrix = Matrix.Compose(new Vector3(-1, 1, 1), Quaternion.Identity(), Vector3.Zero());\r\n\r\n/**\r\n * Checks if a node is a \"noop\" transform node, usually inserted by the glTF loader to correct handedness.\r\n * @internal\r\n */\r\nexport function IsNoopNode(node: Node, useRightHandedSystem: boolean): boolean {\r\n if (!(node instanceof TransformNode)) {\r\n return false;\r\n }\r\n\r\n // Transform\r\n if (useRightHandedSystem) {\r\n const matrix = node.getWorldMatrix();\r\n if (!matrix.equalsWithEpsilon(Matrix.IdentityReadOnly, Epsilon)) {\r\n return false;\r\n }\r\n } else {\r\n const matrix = node.getWorldMatrix().multiplyToRef(ConvertHandednessMatrix, TmpVectors.Matrix[0]);\r\n if (!matrix.equalsWithEpsilon(Matrix.IdentityReadOnly, Epsilon)) {\r\n return false;\r\n }\r\n }\r\n\r\n // Geometry\r\n if (node instanceof AbstractMesh && node.geometry) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport type { Camera } from \"core/Cameras/camera\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { Material } from \"core/Materials/material\";\r\nimport { PBRBaseMaterial } from \"core/Materials/PBR/pbrBaseMaterial\";\r\nimport { StandardMaterial } from \"core/Materials/standardMaterial\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport type { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Color3 } from \"core/Maths/math.color\";\r\nimport { Matrix, Vector2 } from \"core/Maths/math.vector\";\r\nimport type { Geometry } from \"core/Meshes/geometry\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { DumpTools } from \"core/Misc/dumpTools\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport type { Scene } from \"core/scene\";\r\nimport type { FloatArray, Nullable } from \"core/types\";\r\nimport { IsNoopNode } from \"../exportUtils\";\r\nimport { GetTextureDataAsync } from \"core/Misc/textureTools\";\r\n\r\n/**\r\n * Ported from https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/USDZExporter.js\r\n * Thanks a lot to the three.js team for their amazing work!\r\n */\r\n\r\n// FFlate access\r\ndeclare const fflate: any;\r\n\r\n/**\r\n * Options for the USDZ export\r\n */\r\nexport interface IUSDZExportOptions {\r\n /**\r\n * URL to load the fflate library from\r\n */\r\n fflateUrl?: string;\r\n /**\r\n * Include anchoring properties in the USDZ file\r\n */\r\n includeAnchoringProperties?: boolean;\r\n /**\r\n * Anchoring type (plane by default)\r\n */\r\n anchoringType?: string;\r\n /**\r\n * Plane anchoring alignment (horizontal by default)\r\n */\r\n planeAnchoringAlignment?: string;\r\n /**\r\n * Model file name (model.usda by default)\r\n */\r\n modelFileName?: string;\r\n /**\r\n * Precision to use for number (5 by default)\r\n */\r\n precision?: number;\r\n /**\r\n * Export the camera (false by default)\r\n */\r\n exportCamera?: boolean;\r\n /**\r\n * Camera sensor width (35 by default)\r\n */\r\n cameraSensorWidth?: number;\r\n}\r\n\r\nfunction BuildHeader() {\r\n return `#usda 1.0\r\n (\r\n customLayerData = {\r\n string creator = \"Babylon.js USDZExportAsync\"\r\n }\r\n defaultPrim = \"Root\"\r\n metersPerUnit = 1\r\n upAxis = \"Y\"\r\n )`;\r\n}\r\n\r\nfunction BuildRootAndSceneStart(options: IUSDZExportOptions) {\r\n const alignment =\r\n options.includeAnchoringProperties === true\r\n ? `\r\n\t\ttoken preliminary:anchoring:type = \"${options.anchoringType}\"\r\n\t\ttoken preliminary:planeAnchoring:alignment = \"${options.planeAnchoringAlignment}\"`\r\n : \"\";\r\n return `def Xform \"Root\"\r\n {\r\n def Scope \"Scenes\" (\r\n kind = \"sceneLibrary\"\r\n )\r\n {\r\n def Xform \"Scene\" (\r\n customData = {\r\n bool preliminary_collidesWithEnvironment = 0\r\n string sceneName = \"Scene\"\r\n }\r\n sceneName = \"Scene\"\r\n )\r\n {${alignment}\r\n `;\r\n}\r\n\r\nfunction BuildSceneEnd() {\r\n return `\r\n }\r\n }`;\r\n}\r\n\r\nfunction BuildRootEnd() {\r\n return `\r\n }`;\r\n}\r\n\r\nfunction BuildMeshVertexCount(geometry: Geometry) {\r\n const count = geometry.getIndices()?.length ? geometry.getTotalIndices() : geometry.getTotalVertices();\r\n\r\n return Array(count / 3)\r\n .fill(3)\r\n .join(\", \");\r\n}\r\n\r\nfunction BuildMeshVertexIndices(geometry: Geometry) {\r\n const indices = geometry.getIndices();\r\n const count = indices?.length ?? geometry.getTotalVertices();\r\n\r\n const array: number[] = [];\r\n if (indices !== null) {\r\n for (let i = 0; i < count; i++) {\r\n array.push(indices[i]);\r\n }\r\n } else {\r\n for (let i = 0; i < count; i++) {\r\n array.push(i);\r\n }\r\n }\r\n\r\n return array.join(\", \");\r\n}\r\n\r\nfunction BuildVector3Array(attribute: FloatArray, options: IUSDZExportOptions, stride = 3, convertToRightHanded = false) {\r\n const array: string[] = [];\r\n\r\n for (let i = 0; i < attribute.length / stride; i++) {\r\n const x = attribute[i * stride] * (convertToRightHanded ? -1 : 1);\r\n const y = attribute[i * stride + 1];\r\n const z = attribute[i * stride + 2];\r\n\r\n array.push(`(${x.toPrecision(options.precision)}, ${y.toPrecision(options.precision)}, ${z.toPrecision(options.precision)})`);\r\n }\r\n\r\n return array.join(\", \");\r\n}\r\n\r\nfunction BuildVector2Array(attribute: FloatArray, options: IUSDZExportOptions) {\r\n const array: string[] = [];\r\n\r\n for (let i = 0; i < attribute.length / 2; i++) {\r\n const x = attribute[i * 2];\r\n const y = attribute[i * 2 + 1];\r\n\r\n array.push(`(${x.toPrecision(options.precision)}, ${(1 - y).toPrecision(options.precision)})`);\r\n }\r\n\r\n return array.join(\", \");\r\n}\r\n\r\nfunction BuildAdditionalAttributes(geometry: Geometry, options: IUSDZExportOptions) {\r\n let string = \"\";\r\n\r\n for (let i = 0; i < 4; i++) {\r\n const id = i > 0 ? i : \"\";\r\n const uvAttribute = geometry.getVerticesData(VertexBuffer.UVKind + (id ? id + 1 : \"\")); // UV names go like \"uv\", \"uv2\", \"uv3\", etc.\r\n\r\n if (uvAttribute) {\r\n string += `\r\n\t\ttexCoord2f[] primvars:st${id} = [${BuildVector2Array(uvAttribute, options)}] (\r\n\t\t\tinterpolation = \"vertex\"\r\n\t\t)`;\r\n }\r\n }\r\n\r\n // vertex colors\r\n\r\n const colorAttribute = geometry.getVerticesData(VertexBuffer.ColorKind);\r\n\r\n if (colorAttribute) {\r\n string += `\r\n\tcolor3f[] primvars:displayColor = [${BuildVector3Array(colorAttribute, options, colorAttribute.length / geometry.getTotalVertices())}] (\r\n\t\tinterpolation = \"vertex\"\r\n\t\t)`;\r\n }\r\n\r\n return string;\r\n}\r\n\r\nfunction BuildMesh(geometry: Geometry, options: IUSDZExportOptions, windingOrder: string, convertToRightHanded: boolean) {\r\n const name = \"Geometry\";\r\n const position = geometry.getVerticesData(VertexBuffer.PositionKind);\r\n const normal = geometry.getVerticesData(VertexBuffer.NormalKind);\r\n\r\n if (!position || !normal) {\r\n return;\r\n }\r\n\r\n return `\r\n\tdef Mesh \"${name}\"\r\n\t{\r\n uniform token orientation = \"${windingOrder}\"\r\n\t\tint[] faceVertexCounts = [${BuildMeshVertexCount(geometry)}]\r\n\t\tint[] faceVertexIndices = [${BuildMeshVertexIndices(geometry)}]\r\n\t\tnormal3f[] normals = [${BuildVector3Array(normal, options, undefined, convertToRightHanded)}] (\r\n\t\t\tinterpolation = \"vertex\"\r\n\t\t)\r\n\t\tpoint3f[] points = [${BuildVector3Array(position, options, undefined, convertToRightHanded)}]\r\n ${BuildAdditionalAttributes(geometry, options)}\r\n\t\tuniform token subdivisionScheme = \"none\"\r\n\t}\r\n`;\r\n}\r\n\r\nfunction BuildMeshObject(geometry: Geometry, options: IUSDZExportOptions, windingOrder: string, convertToRightHanded: boolean) {\r\n const meshObject = BuildMesh(geometry, options, windingOrder, convertToRightHanded);\r\n return `\r\n def \"Geometry\"\r\n {\r\n ${meshObject}\r\n }\r\n `;\r\n}\r\n\r\nfunction BuildUSDFileAsString(dataToInsert: string) {\r\n let output = BuildHeader();\r\n output += dataToInsert;\r\n return fflate.strToU8(output);\r\n}\r\n\r\nfunction BuildMatrix(matrix: Matrix) {\r\n const array = matrix.m as number[];\r\n\r\n return `( ${BuildMatrixRow(array, 0)}, ${BuildMatrixRow(array, 4)}, ${BuildMatrixRow(array, 8)}, ${BuildMatrixRow(array, 12)} )`;\r\n}\r\n\r\nfunction BuildMatrixRow(array: number[], offset: number) {\r\n return `(${array[offset + 0]}, ${array[offset + 1]}, ${array[offset + 2]}, ${array[offset + 3]})`;\r\n}\r\n\r\nfunction BuildXform(mesh: Mesh, matrix: Matrix) {\r\n const name = \"Object_\" + mesh.uniqueId;\r\n const transform = BuildMatrix(matrix);\r\n\r\n return `def Xform \"${name}\" (\r\n\tprepend references = @./geometries/Geometry_${mesh.geometry!.uniqueId}.usda@</Geometry>\r\n\tprepend apiSchemas = [\"MaterialBindingAPI\"]\r\n)\r\n{\r\n\tmatrix4d xformOp:transform = ${transform}\r\n\tuniform token[] xformOpOrder = [\"xformOp:transform\"]\t\r\n\r\n rel material:binding = </Root/Materials/Material_${mesh.material!.uniqueId}>\r\n}\r\n\r\n`;\r\n}\r\n\r\nfunction BuildMaterials(materials: { [key: string]: Material }, textureToExports: { [key: string]: BaseTexture }, options: IUSDZExportOptions) {\r\n const array: string[] = [];\r\n\r\n for (const uuid in materials) {\r\n const material = materials[uuid];\r\n\r\n array.push(BuildMaterial(material, textureToExports, options));\r\n }\r\n\r\n return `\r\n def \"Materials\"\r\n{\r\n${array.join(\"\")}\r\n}\r\n\r\n`;\r\n}\r\n\r\nfunction BuildWrapping(wrapping: number) {\r\n switch (wrapping) {\r\n case Constants.TEXTURE_CLAMP_ADDRESSMODE:\r\n return \"clamp\";\r\n case Constants.TEXTURE_MIRROR_ADDRESSMODE:\r\n return \"mirror\";\r\n case Constants.TEXTURE_WRAP_ADDRESSMODE:\r\n default:\r\n return \"repeat\";\r\n }\r\n}\r\n\r\nfunction BuildColor4(color: Color3) {\r\n return `(${color.r}, ${color.g}, ${color.b}, 1.0)`;\r\n}\r\n\r\nfunction BuildVector2(vector: Vector2) {\r\n return `(${vector.x}, ${vector.y})`;\r\n}\r\n\r\nfunction BuildColor(color: Color3) {\r\n return `(${color.r}, ${color.g}, ${color.b})`;\r\n}\r\n\r\nfunction BuildTexture(\r\n texture: Texture,\r\n material: Material,\r\n mapType: string,\r\n color: Nullable<Color3>,\r\n textureToExports: { [key: string]: BaseTexture },\r\n options: IUSDZExportOptions\r\n) {\r\n const id = texture.getInternalTexture()!.uniqueId + \"_\" + texture.invertY;\r\n\r\n textureToExports[id] = texture;\r\n\r\n const uv = texture.coordinatesIndex > 0 ? \"st\" + texture.coordinatesIndex : \"st\";\r\n const repeat = new Vector2(texture.uScale, texture.vScale);\r\n const offset = new Vector2(texture.uOffset, texture.vOffset);\r\n const rotation = texture.wAng;\r\n\r\n // rotation is around the wrong point. after rotation we need to shift offset again so that we're rotating around the right spot\r\n const xRotationOffset = Math.sin(rotation);\r\n const yRotationOffset = Math.cos(rotation);\r\n\r\n // texture coordinates start in the opposite corner, need to correct\r\n offset.y = 1 - offset.y - repeat.y;\r\n\r\n offset.x += xRotationOffset * repeat.x;\r\n offset.y += (1 - yRotationOffset) * repeat.y;\r\n\r\n return `\r\n def Shader \"PrimvarReader_${mapType}\"\r\n {\r\n uniform token info:id = \"UsdPrimvarReader_float2\"\r\n float2 inputs:fallback = (0.0, 0.0)\r\n token inputs:varname = \"${uv}\"\r\n float2 outputs:result\r\n }\r\n\r\n def Shader \"Transform2d_${mapType}\"\r\n {\r\n uniform token info:id = \"UsdTransform2d\"\r\n token inputs:in.connect = </Root/Materials/Material_${material.uniqueId}/PrimvarReader_${mapType}.outputs:result>\r\n float inputs:rotation = ${(rotation * (180 / Math.PI)).toFixed(options.precision)}\r\n float2 inputs:scale = ${BuildVector2(repeat)}\r\n float2 inputs:translation = ${BuildVector2(offset)}\r\n float2 outputs:result\r\n }\r\n\r\n def Shader \"Texture_${texture.uniqueId}_${mapType}\"\r\n {\r\n uniform token info:id = \"UsdUVTexture\"\r\n asset inputs:file = @textures/Texture_${id}.png@\r\n float2 inputs:st.connect = </Root/Materials/Material_${material.uniqueId}/Transform2d_${mapType}.outputs:result>\r\n ${color ? \"float4 inputs:scale = \" + BuildColor4(color) : \"\"}\r\n token inputs:sourceColorSpace = \"${texture.gammaSpace ? \"sRGB\" : \"raw\"}\"\r\n token inputs:wrapS = \"${BuildWrapping(texture.wrapU)}\"\r\n token inputs:wrapT = \"${BuildWrapping(texture.wrapV)}\"\r\n float outputs:r\r\n float outputs:g\r\n float outputs:b\r\n float3 outputs:rgb\r\n ${material.needAlphaBlending() || material.needAlphaTesting() ? \"float outputs:a\" : \"\"}\r\n }`;\r\n}\r\n\r\nfunction ExtractTextureInformations(material: Material) {\r\n const defaults = {\r\n diffuseMap: null,\r\n diffuse: null,\r\n alphaCutOff: 0,\r\n emissiveMap: null,\r\n emissive: null,\r\n normalMap: null,\r\n roughnessMap: null,\r\n roughnessChannel: \"a\",\r\n roughness: 0,\r\n metalnessMap: null,\r\n metalnessChannel: \"r\",\r\n metalness: 0,\r\n aoMap: null,\r\n aoMapChannel: \"rgb\",\r\n aoMapIntensity: 0,\r\n alphaMap: null,\r\n ior: 1,\r\n clearCoatEnabled: false,\r\n clearCoat: 0,\r\n clearCoatMap: null,\r\n clearCoatRoughness: 0,\r\n clearCoatRoughnessMap: null,\r\n };\r\n\r\n if (material instanceof StandardMaterial) {\r\n return {\r\n ...defaults,\r\n diffuseMap: material.diffuseTexture,\r\n diffuse: material.diffuseColor,\r\n alphaCutOff: material.alphaCutOff,\r\n emissiveMap: material.emissiveTexture,\r\n emissive: material.emissiveColor,\r\n roughness: 1,\r\n alphaMap: material.opacityTexture,\r\n };\r\n }\r\n if (material instanceof PBRBaseMaterial) {\r\n return {\r\n ...defaults,\r\n diffuseMap: material._albedoTexture,\r\n diffuse: material._albedoColor,\r\n alphaCutOff: material._alphaCutOff,\r\n emissiveMap: material._emissiveTexture,\r\n emissive: material._emissiveColor,\r\n normalMap: material._bumpTexture,\r\n roughnessMap: material._metallicTexture,\r\n roughnessChannel: material._useRoughnessFromMetallicTextureAlpha ? \"a\" : \"g\",\r\n roughness: material._roughness ?? 1,\r\n metalnessMap: material._metallicTexture,\r\n metalnessChannel: material._useMetallnessFromMetallicTextureBlue ? \"b\" : \"r\",\r\n metalness: material._metallic ?? 0,\r\n aoMap: material._ambientTexture,\r\n aoMapChannel: material._useAmbientInGrayScale ? \"r\" : \"rgb\",\r\n aoMapIntensity: material._ambientTextureStrength,\r\n alphaMap: material._opacityTexture,\r\n ior: material.subSurface.indexOfRefraction,\r\n clearCoatEnabled: material.clearCoat.isEnabled,\r\n clearCoat: material.clearCoat.intensity,\r\n clearCoatMap: material.clearCoat.texture,\r\n clearCoatRoughness: material.clearCoat.roughness,\r\n clearCoatRoughnessMap: material.clearCoat.useRoughnessFromMainTexture ? material.clearCoat.texture : material.clearCoat.textureRoughness,\r\n };\r\n }\r\n return defaults;\r\n}\r\n\r\nfunction BuildMaterial(material: Material, textureToExports: { [key: string]: BaseTexture }, options: IUSDZExportOptions) {\r\n // https://graphics.pixar.com/usd/docs/UsdPreviewSurface-Proposal.html\r\n\r\n const pad = \"\t\t\t\";\r\n const inputs = [];\r\n const samplers = [];\r\n\r\n const {\r\n diffuseMap,\r\n diffuse,\r\n alphaCutOff,\r\n emissiveMap,\r\n emissive,\r\n normalMap,\r\n roughnessMap,\r\n roughnessChannel,\r\n roughness,\r\n metalnessMap,\r\n metalnessChannel,\r\n metalness,\r\n aoMap,\r\n aoMapChannel,\r\n aoMapIntensity,\r\n alphaMap,\r\n ior,\r\n clearCoatEnabled,\r\n clearCoat,\r\n clearCoatMap,\r\n clearCoatRoughness,\r\n clearCoatRoughnessMap,\r\n } = ExtractTextureInformations(material);\r\n\r\n if (diffuseMap !== null) {\r\n inputs.push(`${pad}color3f inputs:diffuseColor.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${diffuseMap.uniqueId}_diffuse.outputs:rgb>`);\r\n\r\n if (material.needAlphaBlending()) {\r\n inputs.push(`${pad}float inputs:opacity.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${diffuseMap.uniqueId}_diffuse.outputs:a>`);\r\n } else if (material.needAlphaTesting()) {\r\n inputs.push(`${pad}float inputs:opacity.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${diffuseMap.uniqueId}_diffuse.outputs:a>`);\r\n inputs.push(`${pad}float inputs:opacityThreshold = ${alphaCutOff}`);\r\n }\r\n\r\n samplers.push(BuildTexture(diffuseMap as Texture, material, \"diffuse\", diffuse, textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}color3f inputs:diffuseColor = ${BuildColor(diffuse || Color3.White())}`);\r\n }\r\n\r\n if (emissiveMap !== null) {\r\n inputs.push(`${pad}color3f inputs:emissiveColor.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${emissiveMap.uniqueId}_emissive.outputs:rgb>`);\r\n\r\n samplers.push(BuildTexture(emissiveMap as Texture, material, \"emissive\", emissive, textureToExports, options));\r\n } else if (emissive && emissive.toLuminance() > 0) {\r\n inputs.push(`${pad}color3f inputs:emissiveColor = ${BuildColor(emissive)}`);\r\n }\r\n\r\n if (normalMap !== null) {\r\n inputs.push(`${pad}normal3f inputs:normal.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${normalMap.uniqueId}_normal.outputs:rgb>`);\r\n\r\n samplers.push(BuildTexture(normalMap as Texture, material, \"normal\", null, textureToExports, options));\r\n }\r\n\r\n if (aoMap !== null) {\r\n inputs.push(`${pad}float inputs:occlusion.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${aoMap.uniqueId}_occlusion.outputs:${aoMapChannel}>`);\r\n\r\n samplers.push(BuildTexture(aoMap as Texture, material, \"occlusion\", new Color3(aoMapIntensity, aoMapIntensity, aoMapIntensity), textureToExports, options));\r\n }\r\n\r\n if (roughnessMap !== null) {\r\n inputs.push(\r\n `${pad}float inputs:roughness.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${roughnessMap.uniqueId}_roughness.outputs:${roughnessChannel}>`\r\n );\r\n\r\n samplers.push(BuildTexture(roughnessMap as Texture, material, \"roughness\", new Color3(roughness, roughness, roughness), textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}float inputs:roughness = ${roughness}`);\r\n }\r\n\r\n if (metalnessMap !== null) {\r\n inputs.push(`${pad}float inputs:metallic.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${metalnessMap.uniqueId}_metallic.outputs:${metalnessChannel}>`);\r\n\r\n samplers.push(BuildTexture(metalnessMap as Texture, material, \"metallic\", new Color3(metalness, metalness, metalness), textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}float inputs:metallic = ${metalness}`);\r\n }\r\n\r\n if (alphaMap !== null) {\r\n inputs.push(`${pad}float inputs:opacity.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${alphaMap.uniqueId}_opacity.outputs:r>`);\r\n inputs.push(`${pad}float inputs:opacityThreshold = 0.0001`);\r\n\r\n samplers.push(BuildTexture(alphaMap as Texture, material, \"opacity\", null, textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}float inputs:opacity = ${material.alpha}`);\r\n }\r\n\r\n if (clearCoatEnabled) {\r\n if (clearCoatMap !== null) {\r\n inputs.push(`${pad}float inputs:clearcoat.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${clearCoatMap.uniqueId}_clearcoat.outputs:r>`);\r\n samplers.push(BuildTexture(clearCoatMap as Texture, material, \"clearcoat\", new Color3(clearCoat, clearCoat, clearCoat), textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}float inputs:clearcoat = ${clearCoat}`);\r\n }\r\n\r\n if (clearCoatRoughnessMap !== null) {\r\n inputs.push(\r\n `${pad}float inputs:clearcoatRoughness.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${clearCoatRoughnessMap.uniqueId}_clearcoatRoughness.outputs:g>`\r\n );\r\n samplers.push(\r\n BuildTexture(\r\n clearCoatRoughnessMap as Texture,\r\n material,\r\n \"clearcoatRoughness\",\r\n new Color3(clearCoatRoughness, clearCoatRoughness, clearCoatRoughness),\r\n textureToExports,\r\n options\r\n )\r\n );\r\n } else {\r\n inputs.push(`${pad}float inputs:clearcoatRoughness = ${clearCoatRoughness}`);\r\n }\r\n }\r\n\r\n inputs.push(`${pad}float inputs:ior = ${ior}`);\r\n\r\n return `\r\n\tdef Material \"Material_${material.uniqueId}\"\r\n\t{\r\n\t\tdef Shader \"PreviewSurface\"\r\n\t\t{\r\n\t\t\tuniform token info:id = \"UsdPreviewSurface\"\r\n${inputs.join(\"\\n\")}\r\n\t\t\tint inputs:useSpecularWorkflow = 0\r\n\t\t\ttoken outputs:surface\r\n\t\t}\r\n\r\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_${material.uniqueId}/PreviewSurface.outputs:surface>\r\n\r\n${samplers.join(\"\\n\")}\r\n\r\n\t}\r\n`;\r\n}\r\n\r\nfunction BuildCamera(camera: Camera, options: IUSDZExportOptions) {\r\n const name = \"Camera_\" + camera.uniqueId;\r\n const matrix = Matrix.RotationY(Math.PI).multiply(camera.getWorldMatrix()); // work towards positive z\r\n\r\n const transform = BuildMatrix(matrix);\r\n\r\n if (camera.mode === Constants.ORTHOGRAPHIC_CAMERA) {\r\n return `def Camera \"${name}\"\r\n\t\t{\r\n\t\t\tmatrix4d xformOp:transform = ${transform}\r\n\t\t\tuniform token[] xformOpOrder = [\"xformOp:transform\"]\r\n\r\n\t\t\tfloat2 clippingRange = (${camera.minZ.toPrecision(options.precision)}, ${camera.maxZ.toPrecision(options.precision)})\r\n\t\t\tfloat horizontalAperture = ${((Math.abs(camera.orthoLeft || 1) + Math.abs(camera.orthoRight || 1)) * 10).toPrecision(options.precision)}\r\n\t\t\tfloat verticalAperture = ${((Math.abs(camera.orthoTop || 1) + Math.abs(camera.orthoBottom || 1)) * 10).toPrecision(options.precision)}\r\n\t\t\ttoken projection = \"orthographic\"\r\n\t\t}\r\n\t\r\n\t`;\r\n } else {\r\n const aspect = camera.getEngine().getAspectRatio(camera);\r\n const sensorwidth = options.cameraSensorWidth || 35;\r\n\r\n return `def Camera \"${name}\"\r\n\t\t{\r\n\t\t\tmatrix4d xformOp:transform = ${transform}\r\n\t\t\tuniform token[] xformOpOrder = [\"xformOp:transform\"]\r\n\r\n\t\t\tfloat2 clippingRange = (${camera.minZ.toPrecision(options.precision)}, ${camera.maxZ.toPrecision(options.precision)})\r\n\t\t\tfloat focalLength = ${(sensorwidth / (2 * Math.tan(camera.fov * 0.5))).toPrecision(options.precision)}\r\n token projection = \"perspective\"\r\n\t\t\tfloat horizontalAperture = ${(sensorwidth * aspect).toPrecision(options.precision)}\r\n\t\t\tfloat verticalAperture = ${(sensorwidth / aspect).toPrecision(options.precision)} \r\n\t\t}\r\n\t\r\n\t`;\r\n }\r\n}\r\n\r\nfunction ExtractMeshInformations(mesh: Mesh) {\r\n mesh.computeWorldMatrix(true);\r\n const matrix = mesh.getWorldMatrix().clone();\r\n const sceneIsRightHanded = mesh.getScene().useRightHandedSystem;\r\n let sideOrientation = mesh.material?._getEffectiveOrientation(mesh) ?? mesh.sideOrientation;\r\n let convertToRightHanded = !sceneIsRightHanded;\r\n\r\n // Search for a root conversion node from the glTF loader in the mesh's ancestors.\r\n let current = mesh.parent;\r\n while (current) {\r\n if (IsNoopNode(current, sceneIsRightHanded) && current.parent === null) {\r\n if (!sceneIsRightHanded) {\r\n // If it's a RH->LH node, cancel out its inversion effect on the mesh's matrix and winding order.\r\n matrix.multiplyToRef(current.getWorldMatrix().invert(), matrix);\r\n sideOrientation = sideOrientation === Material.ClockWiseSideOrientation ? Material.CounterClockWiseSideOrientation : Material.ClockWiseSideOrientation;\r\n }\r\n convertToRightHanded = false;\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n\r\n if (matrix.determinant() < 0) {\r\n // RealityKit doesn't seem to automatically flip faces of a mesh with negative scale, like other engines do (including us).\r\n Tools.Warn(`Mesh ${mesh.name} has a negative scale, which may look incorrect in destinations like QuickLook.`);\r\n }\r\n\r\n return {\r\n matrix,\r\n windingOrder: sideOrientation === Material.ClockWiseSideOrientation ? \"leftHanded\" : \"rightHanded\",\r\n convertToRightHanded,\r\n };\r\n}\r\n\r\n/**\r\n *\r\n * @param scene scene to export\r\n * @param options options to configure the export\r\n * @param meshPredicate predicate to filter the meshes to export\r\n * @returns a uint8 array containing the USDZ file\r\n * @see [Simple sphere](https://playground.babylonjs.com/#H2G5XW#6)\r\n * @see [Red sphere](https://playground.babylonjs.com/#H2G5XW#7)\r\n * @see [Boombox](https://playground.babylonjs.com/#5N3RWK#5)\r\n */\r\nexport async function USDZExportAsync(scene: Scene, options: Partial<IUSDZExportOptions>, meshPredicate?: (m: Mesh) => boolean): Promise<Uint8Array> {\r\n const localOptions = {\r\n fflateUrl: \"https://unpkg.com/fflate@0.8.2\",\r\n includeAnchoringProperties: true,\r\n anchoringType: \"plane\",\r\n planeAnchoringAlignment: \"horizontal\",\r\n modelFileName: \"model.usda\",\r\n precision: 5,\r\n exportCamera: false,\r\n cameraSensorWidth: 35,\r\n ...options,\r\n };\r\n\r\n // Get the fflate library\r\n if (typeof fflate === \"undefined\") {\r\n await Tools.LoadScriptAsync(localOptions.fflateUrl);\r\n }\r\n\r\n // Start the export\r\n const files: { [key: string]: any } = {};\r\n\r\n // model file should be first in USDZ archive so we init it here\r\n files[localOptions.modelFileName] = null;\r\n\r\n let output = BuildHeader();\r\n output += BuildRootAndSceneStart(localOptions);\r\n\r\n const materialToExports: { [key: string]: Material } = {};\r\n\r\n // Meshes\r\n for (const abstractMesh of scene.meshes) {\r\n if (abstractMesh.getTotalVertices() === 0) {\r\n continue;\r\n }\r\n const mesh = abstractMesh as Mesh;\r\n const geometry = mesh.geometry;\r\n const material = mesh.material;\r\n\r\n if (!material || !geometry || (meshPredicate && !meshPredicate(mesh))) {\r\n continue;\r\n }\r\n\r\n const supportedMaterials = [\"StandardMaterial\", \"PBRMaterial\", \"PBRMetallicRoughnessMaterial\"];\r\n\r\n if (supportedMaterials.indexOf(material.getClassName()) !== -1) {\r\n const geometryFileName = \"geometries/Geometry_\" + geometry.uniqueId + \".usda\";\r\n const { matrix, windingOrder, convertToRightHanded } = ExtractMeshInformations(mesh);\r\n\r\n if (!(geometryFileName in files)) {\r\n const meshObject = BuildMeshObject(geometry, localOptions, windingOrder, convertToRightHanded);\r\n files[geometryFileName] = BuildUSDFileAsString(meshObject);\r\n }\r\n\r\n if (!(material.uniqueId in materialToExports)) {\r\n materialToExports[material.uniqueId] = material;\r\n }\r\n\r\n output += BuildXform(mesh, matrix);\r\n } else {\r\n Tools.Warn(\"USDZExportAsync does not support this material type: \" + material.getClassName());\r\n }\r\n }\r\n\r\n // Camera\r\n if (scene.activeCamera && localOptions.exportCamera) {\r\n output += BuildCamera(scene.activeCamera, localOptions);\r\n }\r\n\r\n // Close scene\r\n output += BuildSceneEnd();\r\n\r\n // Materials\r\n const textureToExports: { [key: string]: BaseTexture } = {};\r\n output += BuildMaterials(materialToExports, textureToExports, localOptions);\r\n\r\n // Close root\r\n output += BuildRootEnd();\r\n\r\n // Compress\r\n files[localOptions.modelFileName] = fflate.strToU8(output);\r\n\r\n // Textures\r\n for (const id in textureToExports) {\r\n const texture = textureToExports[id];\r\n\r\n const size = texture.getSize();\r\n // eslint-disable-next-line no-await-in-loop\r\n const textureData = await GetTextureDataAsync(texture);\r\n\r\n // eslint-disable-next-line no-await-in-loop\r\n const fileContent = await DumpTools.DumpDataAsync(size.width, size.height, textureData, \"image/png\", undefined, false, true);\r\n\r\n files[`textures/Texture_${id}.png`] = new Uint8Array(fileContent as ArrayBuffer).slice(); // This is to avoid getting a link and not a copy\r\n }\r\n\r\n // 64 byte alignment\r\n // https://github.com/101arrowz/fflate/issues/39#issuecomment-777263109\r\n\r\n let offset = 0;\r\n\r\n for (const filename in files) {\r\n const file = files[filename];\r\n if (!file) {\r\n continue;\r\n }\r\n const headerSize = 34 + filename.length;\r\n\r\n offset += headerSize;\r\n\r\n const offsetMod64 = offset & 63;\r\n\r\n if (offsetMod64 !== 4) {\r\n const padLength = 64 - offsetMod64;\r\n const padding = new Uint8Array(padLength);\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n files[filename] = [file, { extra: { 12345: padding } }];\r\n }\r\n\r\n offset = file.length;\r\n }\r\n\r\n return fflate.zipSync(files, { level: 0 });\r\n}\r\n","/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nimport * as Serializers from \"serializers/USDZ/index\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nconst globalObject = typeof global !== \"undefined\" ? global : typeof window !== \"undefined\" ? window : undefined;\r\nif (typeof globalObject !== \"undefined\") {\r\n for (const serializer in Serializers) {\r\n (<any>globalObject).BABYLON[serializer] = (<any>Serializers)[serializer];\r\n }\r\n}\r\n\r\nexport * from \"serializers/USDZ/index\";\r\n","import * as serializers from \"@lts/serializers/legacy/legacy-usdzSerializer\";\nexport { serializers };\nexport default serializers;\n"],"names":["root","factory","exports","module","require","define","amd","self","global","this","__WEBPACK_EXTERNAL_MODULE__597__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","__assign","assign","t","s","i","n","arguments","length","p","apply","create","SuppressedError","ConvertHandednessMatrix","Matrix","Compose","Vector3","Quaternion","Identity","Zero","IsNoopNode","node","useRightHandedSystem","TransformNode","getWorldMatrix","equalsWithEpsilon","IdentityReadOnly","Epsilon","multiplyToRef","TmpVectors","AbstractMesh","geometry","BuildVector3Array","attribute","options","stride","convertToRightHanded","array","x","y","z","push","toPrecision","precision","join","BuildVector2Array","BuildMeshObject","windingOrder","meshObject","position","getVerticesData","VertexBuffer","PositionKind","normal","NormalKind","count","getIndices","getTotalIndices","getTotalVertices","Array","fill","BuildMeshVertexCount","indices","BuildMeshVertexIndices","string","id","uvAttribute","UVKind","colorAttribute","ColorKind","BuildAdditionalAttributes","BuildMesh","BuildUSDFileAsString","dataToInsert","output","fflate","strToU8","BuildMatrix","matrix","m","BuildMatrixRow","offset","BuildXform","mesh","name","uniqueId","transform","material","BuildWrapping","wrapping","Constants","TEXTURE_CLAMP_ADDRESSMODE","TEXTURE_MIRROR_ADDRESSMODE","TEXTURE_WRAP_ADDRESSMODE","BuildVector2","vector","BuildColor","color","b","BuildTexture","texture","mapType","textureToExports","getInternalTexture","invertY","uv","coordinatesIndex","repeat","Vector2","uScale","vScale","uOffset","vOffset","rotation","wAng","xRotationOffset","Math","sin","yRotationOffset","cos","PI","toFixed","BuildColor4","gammaSpace","wrapU","wrapV","needAlphaBlending","needAlphaTesting","BuildMaterial","pad","inputs","samplers","defaults","diffuseMap","diffuse","alphaCutOff","emissiveMap","emissive","normalMap","roughnessMap","roughnessChannel","roughness","metalnessMap","metalnessChannel","metalness","aoMap","aoMapChannel","aoMapIntensity","alphaMap","ior","clearCoatEnabled","clearCoat","clearCoatMap","clearCoatRoughness","clearCoatRoughnessMap","StandardMaterial","diffuseTexture","diffuseColor","emissiveTexture","emissiveColor","opacityTexture","PBRBaseMaterial","_albedoTexture","_albedoColor","_alphaCutOff","_emissiveTexture","_emissiveColor","_bumpTexture","_metallicTexture","_useRoughnessFromMetallicTextureAlpha","_roughness","_useMetallnessFromMetallicTextureBlue","_metallic","_ambientTexture","_useAmbientInGrayScale","_ambientTextureStrength","_opacityTexture","subSurface","indexOfRefraction","isEnabled","intensity","useRoughnessFromMainTexture","textureRoughness","ExtractTextureInformations","Color3","White","toLuminance","alpha","ExtractMeshInformations","computeWorldMatrix","clone","sceneIsRightHanded","getScene","sideOrientation","_getEffectiveOrientation","current","parent","invert","Material","ClockWiseSideOrientation","CounterClockWiseSideOrientation","determinant","Tools","Warn","USDZExportAsync","scene","meshPredicate","thisArg","_arguments","generator","body","f","_","label","sent","trys","ops","Iterator","next","verb","iterator","v","op","TypeError","done","pop","step","localOptions","fflateUrl","includeAnchoringProperties","anchoringType","planeAnchoringAlignment","modelFileName","exportCamera","cameraSensorWidth","LoadScriptAsync","files","alignment","BuildRootAndSceneStart","materialToExports","meshes","abstractMesh","indexOf","getClassName","geometryFileName","activeCamera","camera","RotationY","multiply","mode","ORTHOGRAPHIC_CAMERA","minZ","maxZ","abs","orthoLeft","orthoRight","orthoTop","orthoBottom","aspect","getEngine","getAspectRatio","sensorwidth","tan","fov","BuildCamera","materials","uuid","BuildMaterials","size","getSize","GetTextureDataAsync","textureData","DumpTools","DumpDataAsync","width","height","fileContent","Uint8Array","slice","filename","file","headerSize","offsetMod64","padding","extra","zipSync","level","P","Promise","resolve","reject","fulfilled","rejected","result","then","globalObject","serializer","BABYLON"],"sourceRoot":""}
1
+ {"version":3,"file":"babylon.usdzSerializer.min.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,cACR,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,wBAAyB,CAAC,aAAcJ,GACrB,iBAAZC,QACdA,QAAQ,yBAA2BD,EAAQG,QAAQ,cAEnDJ,EAAkB,YAAIC,EAAQD,EAAc,QAC7C,CATD,CASoB,oBAATO,KAAuBA,KAAyB,oBAAXC,OAAyBA,OAASC,KAAQC,G,iCCT1FP,EAAOD,QAAUQ,C,GCCbC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaZ,QAGrB,IAAIC,EAASQ,EAAyBE,GAAY,CAGjDX,QAAS,CAAC,GAOX,OAHAc,EAAoBH,GAAUV,EAAQA,EAAOD,QAASU,GAG/CT,EAAOD,OACf,CCrBAU,EAAoBK,EAAI,CAACf,EAASgB,KACjC,IAAI,IAAIC,KAAOD,EACXN,EAAoBQ,EAAEF,EAAYC,KAASP,EAAoBQ,EAAElB,EAASiB,IAC5EE,OAAOC,eAAepB,EAASiB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,MCJ3EP,EAAoBa,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOjB,MAAQ,IAAIkB,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAXC,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBjB,EAAoBQ,EAAI,CAACU,EAAKC,IAAUV,OAAOW,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFnB,EAAoBuB,EAAKjC,IACH,oBAAXkC,QAA0BA,OAAOC,aAC1ChB,OAAOC,eAAepB,EAASkC,OAAOC,YAAa,CAAEC,MAAO,WAE7DjB,OAAOC,eAAepB,EAAS,aAAc,CAAEoC,OAAO,K,8HC0BhD,IAAIC,EAAW,WAQpB,OAPAA,EAAWlB,OAAOmB,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOtB,OAAOW,UAAUC,eAAeC,KAAKQ,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,CACX,EACOF,EAASS,MAAMvC,KAAMoC,UAC9B,EAgH6BxB,OAAO4B,OA2GX5B,OAAO4B,OAoEkB,mBAApBC,iBAAiCA,gB,aC7TlDC,EAA0B,EAAAC,OAAOC,QAAQ,IAAI,EAAAC,SAAS,EAAG,EAAG,GAAI,EAAAC,WAAWC,WAAY,EAAAF,QAAQG,QAMrG,SAASC,EAAWC,EAAYC,GACnC,KAAMD,aAAgB,EAAAE,eAClB,OAAO,EAIX,GAAID,GAEA,IADeD,EAAKG,iBACRC,kBAAkB,EAAAX,OAAOY,iBAAkB,EAAAC,SACnD,OAAO,OAIX,IADeN,EAAKG,iBAAiBI,cAAcf,EAAyB,EAAAgB,WAAWf,OAAO,IAClFW,kBAAkB,EAAAX,OAAOY,iBAAkB,EAAAC,SACnD,OAAO,EAKf,QAAIN,aAAgB,EAAAS,cAAgBT,EAAKU,SAK7C,CCmGA,SAASC,EAAkBC,EAAuBC,EAA6BC,EAAYC,QAAZ,IAAAD,IAAAA,EAAA,QAAY,IAAAC,IAAAA,GAAA,GAGvF,IAFA,IAAMC,EAAkB,GAEfhC,EAAI,EAAGA,EAAI4B,EAAUzB,OAAS2B,EAAQ9B,IAAK,CAChD,IAAMiC,EAAIL,EAAU5B,EAAI8B,IAAWC,GAAwB,EAAI,GACzDG,EAAIN,EAAU5B,EAAI8B,EAAS,GAC3BK,EAAIP,EAAU5B,EAAI8B,EAAS,GAEjCE,EAAMI,KAAK,WAAIH,EAAEI,YAAYR,EAAQS,WAAU,aAAKJ,EAAEG,YAAYR,EAAQS,WAAU,aAAKH,EAAEE,YAAYR,EAAQS,WAAU,KAC7H,CAEA,OAAON,EAAMO,KAAK,KACtB,CAEA,SAASC,EAAkBZ,EAAuBC,GAG9C,IAFA,IAAMG,EAAkB,GAEfhC,EAAI,EAAGA,EAAI4B,EAAUzB,OAAS,EAAGH,IAAK,CAC3C,IAAMiC,EAAIL,EAAc,EAAJ5B,GACdkC,EAAIN,EAAc,EAAJ5B,EAAQ,GAE5BgC,EAAMI,KAAK,WAAIH,EAAEI,YAAYR,EAAQS,WAAU,cAAM,EAAIJ,GAAGG,YAAYR,EAAQS,WAAU,KAC9F,CAEA,OAAON,EAAMO,KAAK,KACtB,CAwDA,SAASE,EAAgBf,EAAoBG,EAA6Ba,EAAsBX,GAC5F,IAAMY,EA1BV,SAAmBjB,EAAoBG,EAA6Ba,EAAsBX,GACtF,IACMa,EAAWlB,EAASmB,gBAAgB,EAAAC,aAAaC,cACjDC,EAAStB,EAASmB,gBAAgB,EAAAC,aAAaG,YAErD,GAAKL,GAAaI,EAIlB,MAAO,wBARM,WASA,wDAEsBN,EAAY,4CA9FnD,SAA8BhB,G,MACpBwB,GAA6B,QAArB,EAAAxB,EAASyB,oBAAY,eAAEhD,QAASuB,EAAS0B,kBAAoB1B,EAAS2B,mBAEpF,OAAOC,MAAMJ,EAAQ,GAChBK,KAAK,GACLhB,KAAK,KACd,CAyF8BiB,CAAqB9B,GAAS,6CAvF5D,SAAgCA,G,MACtB+B,EAAU/B,EAASyB,aACnBD,EAAuB,QAAf,EAAAO,aAAO,EAAPA,EAAStD,cAAM,QAAIuB,EAAS2B,mBAEpCrB,EAAkB,GACxB,GAAgB,OAAZyB,EACA,IAAK,IAAIzD,EAAI,EAAGA,EAAIkD,EAAOlD,IACvBgC,EAAMI,KAAKqB,EAAQzD,SAGvB,IAASA,EAAI,EAAGA,EAAIkD,EAAOlD,IACvBgC,EAAMI,KAAKpC,GAInB,OAAOgC,EAAMO,KAAK,KACtB,CAwE+BmB,CAAuBhC,GAAS,wCACrCC,EAAkBqB,EAAQnB,OAASzD,EAAW2D,GAAqB,+EAGrEJ,EAAkBiB,EAAUf,OAASzD,EAAW2D,GAAqB,sBA/C7F,SAAmCL,EAAoBG,GAGnD,IAFA,IAAI8B,EAAS,GAEJ3D,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAM4D,EAAK5D,EAAI,EAAIA,EAAI,GACjB6D,EAAcnC,EAASmB,gBAAgB,EAAAC,aAAagB,QAAUF,EAAKA,EAAK,EAAI,KAE9EC,IACAF,GAAU,wCACMC,EAAE,eAAOpB,EAAkBqB,EAAahC,GAAQ,8CAIxE,CAIA,IAAMkC,EAAiBrC,EAASmB,gBAAgB,EAAAC,aAAakB,WAS7D,OAPID,IACAJ,GAAU,iDACoBhC,EAAkBoC,EAAgBlC,EAASkC,EAAe5D,OAASuB,EAAS2B,oBAAmB,6CAK1HM,CACX,CAqBUM,CAA0BvC,EAAUG,GAAQ,wDAItD,CAGuBqC,CAAUxC,EAAUG,EAASa,EAAcX,GAC9D,MAAO,uDAGDY,EAAU,wBAGpB,CAEA,SAASwB,EAAqBC,GAC1B,IAAIC,EApKG,4MAsKP,OADAA,GAAUD,EACHE,OAAOC,QAAQF,EAC1B,CAEA,SAASG,EAAYC,GACjB,IAAMzC,EAAQyC,EAAOC,EAErB,MAAO,YAAKC,EAAe3C,EAAO,GAAE,aAAK2C,EAAe3C,EAAO,GAAE,aAAK2C,EAAe3C,EAAO,GAAE,aAAK2C,EAAe3C,EAAO,IAAG,KAChI,CAEA,SAAS2C,EAAe3C,EAAiB4C,GACrC,MAAO,WAAI5C,EAAM4C,EAAS,GAAE,aAAK5C,EAAM4C,EAAS,GAAE,aAAK5C,EAAM4C,EAAS,GAAE,aAAK5C,EAAM4C,EAAS,GAAE,IAClG,CAEA,SAASC,EAAWC,EAAYL,GAC5B,IAAMM,EAAO,UAAYD,EAAKE,SACxBC,EAAYT,EAAYC,GAE9B,MAAO,qBAAcM,EAAI,8DACkBD,EAAKpD,SAAUsD,SAAQ,kHAItCC,EAAS,8HAGcH,EAAKI,SAAUF,SAAQ,WAI9E,CAoBA,SAASG,EAAcC,GACnB,OAAQA,GACJ,KAAK,EAAAC,UAAUC,0BACX,MAAO,QACX,KAAK,EAAAD,UAAUE,2BACX,MAAO,SACX,KAAK,EAAAF,UAAUG,yBACf,QACI,MAAO,SAEnB,CAMA,SAASC,EAAaC,GAClB,MAAO,WAAIA,EAAOzD,EAAC,aAAKyD,EAAOxD,EAAC,IACpC,CAEA,SAASyD,EAAWC,GAChB,MAAO,WAAIA,EAAMpG,EAAC,aAAKoG,EAAM9G,EAAC,aAAK8G,EAAMC,EAAC,IAC9C,CAEA,SAASC,EACLC,EACAb,EACAc,EACAJ,EACAK,EACApE,GAEA,IAAM+B,EAAKmC,EAAQG,qBAAsBlB,SAAW,IAAMe,EAAQI,QAElEF,EAAiBrC,GAAMmC,EAEvB,IAAMK,EAAKL,EAAQM,iBAAmB,EAAI,KAAON,EAAQM,iBAAmB,KACtEC,EAAS,IAAI,EAAAC,QAAQR,EAAQS,OAAQT,EAAQU,QAC7C7B,EAAS,IAAI,EAAA2B,QAAQR,EAAQW,QAASX,EAAQY,SAC9CC,EAAWb,EAAQc,KAGnBC,EAAkBC,KAAKC,IAAIJ,GAC3BK,EAAkBF,KAAKG,IAAIN,GAQjC,OALAhC,EAAO1C,EAAI,EAAI0C,EAAO1C,EAAIoE,EAAOpE,EAEjC0C,EAAO3C,GAAK6E,EAAkBR,EAAOrE,EACrC2C,EAAO1C,IAAM,EAAI+E,GAAmBX,EAAOpE,EAEpC,0CACqB8D,EAAO,6JAILI,EAAE,kFAINJ,EAAO,mIAGyBd,EAASF,SAAQ,0BAAkBgB,EAAO,8DACrEY,GAAY,IAAMG,KAAKI,KAAKC,QAAQvF,EAAQS,WAAU,2CACzDmD,EAAaa,GAAO,iDACdb,EAAab,GAAO,6EAIhCmB,EAAQf,SAAQ,YAAIgB,EAAO,mHAGLpC,EAAE,+EACasB,EAASF,SAAQ,wBAAgBgB,EAAO,qCAC7FJ,EAAQ,yBA/DlB,SAAqBA,GACjB,MAAO,WAAIA,EAAMpG,EAAC,aAAKoG,EAAM9G,EAAC,aAAK8G,EAAMC,EAAC,SAC9C,CA6D6CwB,CAAYzB,GAAS,GAAE,sDACzBG,EAAQuB,WAAa,OAAS,MAAK,4CAC9CnC,EAAcY,EAAQwB,OAAM,4CAC5BpC,EAAcY,EAAQyB,OAAM,6HAKlDtC,EAASuC,qBAAuBvC,EAASwC,mBAAqB,kBAAoB,GAAE,UAE9F,CAsEA,SAASC,EAAczC,EAAoBe,EAAkDpE,GAGzF,IAAM+F,EAAM,SACNC,EAAS,GACTC,EAAW,GAEX,EA3EV,SAAoC5C,G,QAC1B6C,EAAW,CACbC,WAAY,KACZC,QAAS,KACTC,YAAa,EACbC,YAAa,KACbC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,iBAAkB,IAClBC,UAAW,EACXC,aAAc,KACdC,iBAAkB,IAClBC,UAAW,EACXC,MAAO,KACPC,aAAc,MACdC,eAAgB,EAChBC,SAAU,KACVC,IAAK,EACLC,kBAAkB,EAClBC,UAAW,EACXC,aAAc,KACdC,mBAAoB,EACpBC,sBAAuB,MAG3B,OAAInE,aAAoB,EAAAoE,iBACb,OACAvB,GAAQ,CACXC,WAAY9C,EAASqE,eACrBtB,QAAS/C,EAASsE,aAClBtB,YAAahD,EAASgD,YACtBC,YAAajD,EAASuE,gBACtBrB,SAAUlD,EAASwE,cACnBlB,UAAW,EACXO,SAAU7D,EAASyE,iBAGvBzE,aAAoB,EAAA0E,gBACb,OACA7B,GAAQ,CACXC,WAAY9C,EAAS2E,eACrB5B,QAAS/C,EAAS4E,aAClB5B,YAAahD,EAAS6E,aACtB5B,YAAajD,EAAS8E,iBACtB5B,SAAUlD,EAAS+E,eACnB5B,UAAWnD,EAASgF,aACpB5B,aAAcpD,EAASiF,iBACvB5B,iBAAkBrD,EAASkF,sCAAwC,IAAM,IACzE5B,UAA8B,QAAnB,EAAAtD,EAASmF,kBAAU,QAAI,EAClC5B,aAAcvD,EAASiF,iBACvBzB,iBAAkBxD,EAASoF,sCAAwC,IAAM,IACzE3B,UAA6B,QAAlB,EAAAzD,EAASqF,iBAAS,QAAI,EACjC3B,MAAO1D,EAASsF,gBAChB3B,aAAc3D,EAASuF,uBAAyB,IAAM,MACtD3B,eAAgB5D,EAASwF,wBACzB3B,SAAU7D,EAASyF,gBACnB3B,IAAK9D,EAAS0F,WAAWC,kBACzB5B,iBAAkB/D,EAASgE,UAAU4B,UACrC5B,UAAWhE,EAASgE,UAAU6B,UAC9B5B,aAAcjE,EAASgE,UAAUnD,QACjCqD,mBAAoBlE,EAASgE,UAAUV,UACvCa,sBAAuBnE,EAASgE,UAAU8B,4BAA8B9F,EAASgE,UAAUnD,QAAUb,EAASgE,UAAU+B,mBAGzHlD,CACX,CAgCQmD,CAA2BhG,GAtB3B8C,EAAU,aACVC,EAAO,UACPC,EAAW,cACXC,EAAW,cACXC,EAAQ,WACRC,EAAS,YACTC,EAAY,eACZC,EAAgB,mBAChBC,EAAS,YACTC,EAAY,eACZC,EAAgB,mBAChBC,EAAS,YACTC,EAAK,QACLC,EAAY,eACZC,EAAc,iBACdC,EAAQ,WACRC,EAAG,MACHC,EAAgB,mBAChBC,EAAS,YACTC,EAAY,eACZC,EAAkB,qBAClBC,EAAqB,wBA8FzB,OA3FmB,OAAfrB,GACAH,EAAOzF,KAAK,UAAGwF,EAAG,2EAAmE1C,EAASF,SAAQ,oBAAYgD,EAAWhD,SAAQ,0BAEjIE,EAASuC,oBACTI,EAAOzF,KAAK,UAAGwF,EAAG,oEAA4D1C,EAASF,SAAQ,oBAAYgD,EAAWhD,SAAQ,wBACvHE,EAASwC,qBAChBG,EAAOzF,KAAK,UAAGwF,EAAG,oEAA4D1C,EAASF,SAAQ,oBAAYgD,EAAWhD,SAAQ,wBAC9H6C,EAAOzF,KAAK,UAAGwF,EAAG,2CAAmCM,KAGzDJ,EAAS1F,KAAK0D,EAAakC,EAAuB9C,EAAU,UAAW+C,EAAShC,EAAkBpE,KAElGgG,EAAOzF,KAAK,UAAGwF,EAAG,yCAAiCjC,EAAWsC,GAAW,EAAAkD,OAAOC,WAGhE,OAAhBjD,GACAN,EAAOzF,KAAK,UAAGwF,EAAG,4EAAoE1C,EAASF,SAAQ,oBAAYmD,EAAYnD,SAAQ,2BAEvI8C,EAAS1F,KAAK0D,EAAaqC,EAAwBjD,EAAU,WAAYkD,EAAUnC,EAAkBpE,KAC9FuG,GAAYA,EAASiD,cAAgB,GAC5CxD,EAAOzF,KAAK,UAAGwF,EAAG,0CAAkCjC,EAAWyC,KAGjD,OAAdC,IACAR,EAAOzF,KAAK,UAAGwF,EAAG,sEAA8D1C,EAASF,SAAQ,oBAAYqD,EAAUrD,SAAQ,yBAE/H8C,EAAS1F,KAAK0D,EAAauC,EAAsBnD,EAAU,SAAU,KAAMe,EAAkBpE,KAGnF,OAAV+G,IACAf,EAAOzF,KAAK,UAAGwF,EAAG,sEAA8D1C,EAASF,SAAQ,oBAAY4D,EAAM5D,SAAQ,8BAAsB6D,EAAY,MAE7Jf,EAAS1F,KAAK0D,EAAa8C,EAAkB1D,EAAU,YAAa,IAAI,EAAAiG,OAAOrC,EAAgBA,EAAgBA,GAAiB7C,EAAkBpE,KAGjI,OAAjByG,GACAT,EAAOzF,KACH,UAAGwF,EAAG,sEAA8D1C,EAASF,SAAQ,oBAAYsD,EAAatD,SAAQ,8BAAsBuD,EAAgB,MAGhKT,EAAS1F,KAAK0D,EAAawC,EAAyBpD,EAAU,YAAa,IAAI,EAAAiG,OAAO3C,EAAWA,EAAWA,GAAYvC,EAAkBpE,KAE1IgG,EAAOzF,KAAK,UAAGwF,EAAG,oCAA4BY,IAG7B,OAAjBC,GACAZ,EAAOzF,KAAK,UAAGwF,EAAG,qEAA6D1C,EAASF,SAAQ,oBAAYyD,EAAazD,SAAQ,6BAAqB0D,EAAgB,MAEtKZ,EAAS1F,KAAK0D,EAAa2C,EAAyBvD,EAAU,WAAY,IAAI,EAAAiG,OAAOxC,EAAWA,EAAWA,GAAY1C,EAAkBpE,KAEzIgG,EAAOzF,KAAK,UAAGwF,EAAG,mCAA2Be,IAGhC,OAAbI,GACAlB,EAAOzF,KAAK,UAAGwF,EAAG,oEAA4D1C,EAASF,SAAQ,oBAAY+D,EAAS/D,SAAQ,wBAC5H6C,EAAOzF,KAAK,UAAGwF,EAAG,2CAElBE,EAAS1F,KAAK0D,EAAaiD,EAAqB7D,EAAU,UAAW,KAAMe,EAAkBpE,KAE7FgG,EAAOzF,KAAK,UAAGwF,EAAG,kCAA0B1C,EAASoG,QAGrDrC,IACqB,OAAjBE,GACAtB,EAAOzF,KAAK,UAAGwF,EAAG,sEAA8D1C,EAASF,SAAQ,oBAAYmE,EAAanE,SAAQ,0BAClI8C,EAAS1F,KAAK0D,EAAaqD,EAAyBjE,EAAU,YAAa,IAAI,EAAAiG,OAAOjC,EAAWA,EAAWA,GAAYjD,EAAkBpE,KAE1IgG,EAAOzF,KAAK,UAAGwF,EAAG,oCAA4BsB,IAGpB,OAA1BG,GACAxB,EAAOzF,KACH,UAAGwF,EAAG,+EAAuE1C,EAASF,SAAQ,oBAAYqE,EAAsBrE,SAAQ,mCAE5I8C,EAAS1F,KACL0D,EACIuD,EACAnE,EACA,qBACA,IAAI,EAAAiG,OAAO/B,EAAoBA,EAAoBA,GACnDnD,EACApE,KAIRgG,EAAOzF,KAAK,UAAGwF,EAAG,6CAAqCwB,KAI/DvB,EAAOzF,KAAK,UAAGwF,EAAG,8BAAsBoB,IAEjC,qCACe9D,EAASF,SAAQ,8GAKzC6C,EAAOtF,KAAK,MAAK,2JAK2C2C,EAASF,SAAQ,+CAE7E8C,EAASvF,KAAK,MAAK,YAIrB,CAyCA,SAASgJ,EAAwBzG,G,QAC7BA,EAAK0G,oBAAmB,GAQxB,IAPA,IAAM/G,EAASK,EAAK3D,iBAAiBsK,QAC/BC,EAAqB5G,EAAK6G,WAAW1K,qBACvC2K,EAA+D,QAA7C,EAAa,QAAb,EAAA9G,EAAKI,gBAAQ,eAAE2G,yBAAyB/G,UAAK,QAAIA,EAAK8G,gBACxE7J,GAAwB2J,EAGxBI,EAAUhH,EAAKiH,OACZD,GAAS,CACZ,GAAI/K,EAAW+K,EAASJ,IAA0C,OAAnBI,EAAQC,OAAiB,CAC/DL,IAEDjH,EAAOlD,cAAcuK,EAAQ3K,iBAAiB6K,SAAUvH,GACxDmH,EAAkBA,IAAoB,EAAAK,SAASC,yBAA2B,EAAAD,SAASE,gCAAkC,EAAAF,SAASC,0BAElInK,GAAuB,EACvB,KACJ,CACA+J,EAAUA,EAAQC,MACtB,CAOA,OALItH,EAAO2H,cAAgB,GAEvB,EAAAC,MAAMC,KAAK,eAAQxH,EAAKC,KAAI,oFAGzB,CACHN,OAAM,EACN/B,aAAckJ,IAAoB,EAAAK,SAASC,yBAA2B,aAAe,cACrFnK,qBAAoB,EAE5B,CAYO,SAAewK,EAAgBC,EAAc3K,EAAsC4K,G,OFpiBhEC,E,KAASC,O,EAAeC,E,sFAU3C,SAAqBF,EAASG,GACnC,IAAsGC,EAAG5K,EAAGpC,EAAxGiN,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPnN,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGoN,KAAM,GAAIC,IAAK,IAAerO,EAAIJ,OAAO4B,QAA4B,mBAAb8M,SAA0BA,SAAW1O,QAAQW,WACtL,OAAOP,EAAEuO,KAAOC,EAAK,GAAIxO,EAAS,MAAIwO,EAAK,GAAIxO,EAAU,OAAIwO,EAAK,GAAsB,mBAAX7N,SAA0BX,EAAEW,OAAO8N,UAAY,WAAa,OAAOzP,IAAM,GAAIgB,EAC1J,SAASwO,EAAKrN,GAAK,OAAO,SAAUuN,GAAK,OACzC,SAAcC,GACV,GAAIX,EAAG,MAAM,IAAIY,UAAU,mCAC3B,KAAO5O,IAAMA,EAAI,EAAG2O,EAAG,KAAOV,EAAI,IAAKA,OACnC,GAAID,EAAI,EAAG5K,IAAMpC,EAAY,EAAR2N,EAAG,GAASvL,EAAU,OAAIuL,EAAG,GAAKvL,EAAS,SAAOpC,EAAIoC,EAAU,SAAMpC,EAAEP,KAAK2C,GAAI,GAAKA,EAAEmL,SAAWvN,EAAIA,EAAEP,KAAK2C,EAAGuL,EAAG,KAAKE,KAAM,OAAO7N,EAE3J,OADIoC,EAAI,EAAGpC,IAAG2N,EAAK,CAAS,EAARA,EAAG,GAAQ3N,EAAEH,QACzB8N,EAAG,IACP,KAAK,EAAG,KAAK,EAAG3N,EAAI2N,EAAI,MACxB,KAAK,EAAc,OAAXV,EAAEC,QAAgB,CAAErN,MAAO8N,EAAG,GAAIE,MAAM,GAChD,KAAK,EAAGZ,EAAEC,QAAS9K,EAAIuL,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKV,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,MAAkB9N,GAAZA,EAAIiN,EAAEG,MAAY/M,OAAS,GAAKL,EAAEA,EAAEK,OAAS,KAAkB,IAAVsN,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEV,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVU,EAAG,MAAc3N,GAAM2N,EAAG,GAAK3N,EAAE,IAAM2N,EAAG,GAAK3N,EAAE,IAAM,CAAEiN,EAAEC,MAAQS,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYV,EAAEC,MAAQlN,EAAE,GAAI,CAAEiN,EAAEC,MAAQlN,EAAE,GAAIA,EAAI2N,EAAI,KAAO,CACpE,GAAI3N,GAAKiN,EAAEC,MAAQlN,EAAE,GAAI,CAAEiN,EAAEC,MAAQlN,EAAE,GAAIiN,EAAEI,IAAI/K,KAAKqL,GAAK,KAAO,CAC9D3N,EAAE,IAAIiN,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBH,EAAKZ,EAAKtN,KAAKmN,EAASK,EAC5B,CAAE,MAAO9N,GAAKwO,EAAK,CAAC,EAAGxO,GAAIiD,EAAI,CAAG,CAAE,QAAU4K,EAAIhN,EAAI,CAAG,CACzD,GAAY,EAAR2N,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE9N,MAAO8N,EAAG,GAAKA,EAAG,QAAU,EAAGE,MAAM,EAC9E,CAtBgDE,CAAK,CAAC5N,EAAGuN,GAAK,CAAG,CAuBnE,C,gDEigBUM,EAAe,GACjBC,UAAW,iCACXC,4BAA4B,EAC5BC,cAAe,QACfC,wBAAyB,aACzBC,cAAe,aACf7L,UAAW,EACX8L,cAAc,EACdC,kBAAmB,IAChBxM,GAIe,oBAAXyC,OAAP,MACA,GAAM,EAAA+H,MAAMiC,gBAAgBR,EAAaC,Y,OAAzC,S,iBAeJ,KAXMQ,EAAgC,CAAC,GAGjCT,EAAaK,eAAiB,KAEhC9J,EA3mBG,4MA4mBPA,GAjmBJ,SAAgCxC,GAC5B,IAAM2M,GACqC,IAAvC3M,EAAQmM,2BACF,oDAC0BnM,EAAQoM,cAAa,gEACXpM,EAAQqM,wBAAuB,KACnE,GACV,MAAO,iYAaIM,EAAS,iBAExB,CA2kBcC,CAAuBX,GAE3BY,EAAiD,CAAC,EAGnD,EAAL,EAA2B,EAAAlC,EAAMmC,OAAN,eACiB,KADjCC,EAAY,MACFvL,qBAIX3B,GADAoD,EAAO8J,GACSlN,UAChBwD,EAAWJ,EAAKI,WAEJxD,KAAa+K,GAAkBA,EAAc3H,OAMF,IAFlC,CAAC,mBAAoB,cAAe,gCAExC+J,QAAQ3J,EAAS4J,iBAC9BC,EAAmB,uBAAyBrN,EAASsD,SAAW,QAChE,EAAiDuG,EAAwBzG,GAAvEL,EAAM,SAAE/B,EAAY,eAAEX,EAAoB,uBAE5CgN,KAAoBR,IAChB5L,EAAaF,EAAgBf,EAAUoM,EAAcpL,EAAcX,GACzEwM,EAAMQ,GAAoB5K,EAAqBxB,IAG7CuC,EAASF,YAAY0J,IACvBA,EAAkBxJ,EAASF,UAAYE,GAG3Cb,GAAUQ,EAAWC,EAAML,IAE3B,EAAA4H,MAAMC,KAAK,wDAA0DpH,EAAS4J,kB,SAKlFtC,EAAMwC,cAAgBlB,EAAaM,eACnC/J,GApJR,SAAqB4K,EAAgBpN,GACjC,IAAMkD,EAAO,UAAYkK,EAAOjK,SAG1BC,EAAYT,EAFH,EAAA/D,OAAOyO,UAAUnI,KAAKI,IAAIgI,SAASF,EAAO9N,mBAIzD,GAAI8N,EAAOG,OAAS,EAAA/J,UAAUgK,oBAC1B,MAAO,sBAAetK,EAAI,wDAEAE,EAAS,yGAGdgK,EAAOK,KAAKjN,YAAYR,EAAQS,WAAU,aAAK2M,EAAOM,KAAKlN,YAAYR,EAAQS,WAAU,gDACd,IAAtEyE,KAAKyI,IAAIP,EAAOQ,WAAa,GAAK1I,KAAKyI,IAAIP,EAAOS,YAAc,KAAUrN,YAAYR,EAAQS,WAAU,6CACpC,IAAtEyE,KAAKyI,IAAIP,EAAOU,UAAY,GAAK5I,KAAKyI,IAAIP,EAAOW,aAAe,KAAUvN,YAAYR,EAAQS,WAAU,4DAMhI,IAAMuN,EAASZ,EAAOa,YAAYC,eAAed,GAC3Ce,EAAcnO,EAAQwM,mBAAqB,GAEjD,MAAO,sBAAetJ,EAAI,wDAEAE,EAAS,yGAGdgK,EAAOK,KAAKjN,YAAYR,EAAQS,WAAU,aAAK2M,EAAOM,KAAKlN,YAAYR,EAAQS,WAAU,yCAC5F0N,GAAe,EAAIjJ,KAAKkJ,IAAiB,GAAbhB,EAAOiB,OAAa7N,YAAYR,EAAQS,WAAU,6FAEvE0N,EAAcH,GAAQxN,YAAYR,EAAQS,WAAU,6CACtD0N,EAAcH,GAAQxN,YAAYR,EAAQS,WAAU,8BAKnF,CA+GkB6N,CAAY3D,EAAMwC,aAAclB,IAI9CzJ,GApnBO,6BAwnBPA,GAvdJ,SAAwB+L,EAAwCnK,EAAkDpE,GAC9G,IAAMG,EAAkB,GAExB,IAAK,IAAMqO,KAAQD,EAAW,CAC1B,IAAMlL,EAAWkL,EAAUC,GAE3BrO,EAAMI,KAAKuF,EAAczC,EAAUe,EAAkBpE,GACzD,CAEA,MAAO,oCAGTG,EAAMO,KAAK,IAAG,UAIhB,CAucc+N,CAAe5B,EADnBzI,EAAmD,CAAC,EACI6H,GAG9DzJ,GArnBO,UAwnBPkK,EAAMT,EAAaK,eAAiB7J,OAAOC,QAAQF,G,OAGlC4B,E,+DACPF,EAAUE,E,KAEVsK,EAAOxK,EAAQyK,UAED,IAAM,IAAAC,qBAAoB1K,K,mBAG1B,OAHd2K,EAAc,SAGA,GAAM,EAAAC,UAAUC,cAAcL,EAAKM,MAAON,EAAKO,OAAQJ,EAAa,iBAAatS,GAAW,GAAO,I,OAAjH2S,EAAc,SAEpBxC,EAAM,2BAAoB3K,EAAE,SAAU,IAAIoN,WAAWD,GAA4BE,Q,yCAQrF,IAAWC,KAFPtM,EAAS,EAEU2J,GACb4C,EAAO5C,EAAM2C,MAIbE,EAAa,GAAKF,EAAS/Q,OAMb,IAFdkR,EAAuB,IAF7BzM,GAAUwM,MAMAE,EAAU,IAAIN,WADF,GAAKK,GAIvB9C,EAAM2C,GAAY,CAACC,EAAM,CAAEI,MAAO,CAAE,MAAOD,MAG/C1M,EAASuM,EAAKhR,QAGlB,MAAO,CAAP,EAAOmE,OAAOkN,QAAQjD,EAAO,CAAEkD,MAAO,K,IF5pBjC,KAFsCC,O,KAE3BA,EAAIC,UAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUnS,GAAS,IAAMkO,EAAKjB,EAAUS,KAAK1N,GAAS,CAAE,MAAOV,GAAK4S,EAAO5S,EAAI,CAAE,CAC1F,SAAS8S,EAASpS,GAAS,IAAMkO,EAAKjB,EAAiB,MAAEjN,GAAS,CAAE,MAAOV,GAAK4S,EAAO5S,EAAI,CAAE,CAC7F,SAAS4O,EAAKmE,GAJlB,IAAerS,EAIaqS,EAAOrE,KAAOiE,EAAQI,EAAOrS,QAJ1CA,EAIyDqS,EAAOrS,MAJhDA,aAAiB+R,EAAI/R,EAAQ,IAAI+R,EAAE,SAAUE,GAAWA,EAAQjS,EAAQ,IAIjBsS,KAAKH,EAAWC,EAAW,CAC7GlE,GAAMjB,EAAYA,EAAUvM,MAAMqM,EAASC,GAAc,KAAKU,OAClE,GAPK,IAAmBX,EAASC,EAAY+E,EAAG9E,C,CG3GlD,IAAMsF,OAAiC,IAAX,EAAApT,EAAyB,EAAAA,EAA2B,oBAAXI,OAAyBA,YAASd,EACvG,QAA4B,IAAjB8T,EACP,IAAK,IAAMC,KAAc,EACfD,EAAcE,QAAQD,GAAoB,EAAaA,GCRrE,U","sources":["webpack://SERIALIZERS/webpack/universalModuleDefinition","webpack://SERIALIZERS/external umd {\"root\":\"BABYLON\",\"commonjs\":\"babylonjs\",\"commonjs2\":\"babylonjs\",\"amd\":\"babylonjs\"}","webpack://SERIALIZERS/webpack/bootstrap","webpack://SERIALIZERS/webpack/runtime/define property getters","webpack://SERIALIZERS/webpack/runtime/global","webpack://SERIALIZERS/webpack/runtime/hasOwnProperty shorthand","webpack://SERIALIZERS/webpack/runtime/make namespace object","webpack://SERIALIZERS/../../../../node_modules/tslib/tslib.es6.mjs","webpack://SERIALIZERS/../../../dev/serializers/src/exportUtils.ts","webpack://SERIALIZERS/../../../dev/serializers/src/USDZ/usdzExporter.ts","webpack://SERIALIZERS/../../../dev/serializers/src/legacy/legacy-usdzSerializer.ts","webpack://SERIALIZERS/./src/USDZ.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"babylonjs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"babylonjs-serializers\", [\"babylonjs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"babylonjs-serializers\"] = factory(require(\"babylonjs\"));\n\telse\n\t\troot[\"SERIALIZERS\"] = factory(root[\"BABYLON\"]);\n})((typeof self !== \"undefined\" ? self : typeof global !== \"undefined\" ? global : this), (__WEBPACK_EXTERNAL_MODULE__597__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__597__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { Matrix, Quaternion, TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\nimport { Epsilon } from \"core/Maths/math.constants\";\r\nimport { TransformNode } from \"core/Meshes/transformNode\";\r\nimport { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport { type Node } from \"core/node\";\r\n\r\n/**\r\n * Matrix that converts handedness on the X-axis. Used to convert from LH to RH and vice versa.\r\n * @internal\r\n */\r\nexport const ConvertHandednessMatrix = Matrix.Compose(new Vector3(-1, 1, 1), Quaternion.Identity(), Vector3.Zero());\r\n\r\n/**\r\n * Checks if a node is a \"noop\" transform node, usually inserted by the glTF loader to correct handedness.\r\n * @internal\r\n */\r\nexport function IsNoopNode(node: Node, useRightHandedSystem: boolean): boolean {\r\n if (!(node instanceof TransformNode)) {\r\n return false;\r\n }\r\n\r\n // Transform\r\n if (useRightHandedSystem) {\r\n const matrix = node.getWorldMatrix();\r\n if (!matrix.equalsWithEpsilon(Matrix.IdentityReadOnly, Epsilon)) {\r\n return false;\r\n }\r\n } else {\r\n const matrix = node.getWorldMatrix().multiplyToRef(ConvertHandednessMatrix, TmpVectors.Matrix[0]);\r\n if (!matrix.equalsWithEpsilon(Matrix.IdentityReadOnly, Epsilon)) {\r\n return false;\r\n }\r\n }\r\n\r\n // Geometry\r\n if (node instanceof AbstractMesh && node.geometry) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport { type Camera } from \"core/Cameras/camera\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { Material } from \"core/Materials/material\";\r\nimport { PBRBaseMaterial } from \"core/Materials/PBR/pbrBaseMaterial\";\r\nimport { StandardMaterial } from \"core/Materials/standardMaterial\";\r\nimport { type BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport { type Texture } from \"core/Materials/Textures/texture\";\r\nimport { Color3 } from \"core/Maths/math.color\";\r\nimport { Matrix, Vector2 } from \"core/Maths/math.vector\";\r\nimport { type Geometry } from \"core/Meshes/geometry\";\r\nimport { type Mesh } from \"core/Meshes/mesh\";\r\nimport { DumpTools } from \"core/Misc/dumpTools\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport { type Scene } from \"core/scene\";\r\nimport { type FloatArray, type Nullable } from \"core/types\";\r\nimport { IsNoopNode } from \"../exportUtils\";\r\nimport { GetTextureDataAsync } from \"core/Misc/textureTools\";\r\n\r\n/**\r\n * Ported from https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/USDZExporter.js\r\n * Thanks a lot to the three.js team for their amazing work!\r\n */\r\n\r\n// FFlate access\r\ndeclare const fflate: any;\r\n\r\n/**\r\n * Options for the USDZ export\r\n */\r\nexport interface IUSDZExportOptions {\r\n /**\r\n * URL to load the fflate library from\r\n */\r\n fflateUrl?: string;\r\n /**\r\n * Include anchoring properties in the USDZ file\r\n */\r\n includeAnchoringProperties?: boolean;\r\n /**\r\n * Anchoring type (plane by default)\r\n */\r\n anchoringType?: string;\r\n /**\r\n * Plane anchoring alignment (horizontal by default)\r\n */\r\n planeAnchoringAlignment?: string;\r\n /**\r\n * Model file name (model.usda by default)\r\n */\r\n modelFileName?: string;\r\n /**\r\n * Precision to use for number (5 by default)\r\n */\r\n precision?: number;\r\n /**\r\n * Export the camera (false by default)\r\n */\r\n exportCamera?: boolean;\r\n /**\r\n * Camera sensor width (35 by default)\r\n */\r\n cameraSensorWidth?: number;\r\n}\r\n\r\nfunction BuildHeader() {\r\n return `#usda 1.0\r\n (\r\n customLayerData = {\r\n string creator = \"Babylon.js USDZExportAsync\"\r\n }\r\n defaultPrim = \"Root\"\r\n metersPerUnit = 1\r\n upAxis = \"Y\"\r\n )`;\r\n}\r\n\r\nfunction BuildRootAndSceneStart(options: IUSDZExportOptions) {\r\n const alignment =\r\n options.includeAnchoringProperties === true\r\n ? `\r\n\t\ttoken preliminary:anchoring:type = \"${options.anchoringType}\"\r\n\t\ttoken preliminary:planeAnchoring:alignment = \"${options.planeAnchoringAlignment}\"`\r\n : \"\";\r\n return `def Xform \"Root\"\r\n {\r\n def Scope \"Scenes\" (\r\n kind = \"sceneLibrary\"\r\n )\r\n {\r\n def Xform \"Scene\" (\r\n customData = {\r\n bool preliminary_collidesWithEnvironment = 0\r\n string sceneName = \"Scene\"\r\n }\r\n sceneName = \"Scene\"\r\n )\r\n {${alignment}\r\n `;\r\n}\r\n\r\nfunction BuildSceneEnd() {\r\n return `\r\n }\r\n }`;\r\n}\r\n\r\nfunction BuildRootEnd() {\r\n return `\r\n }`;\r\n}\r\n\r\nfunction BuildMeshVertexCount(geometry: Geometry) {\r\n const count = geometry.getIndices()?.length ? geometry.getTotalIndices() : geometry.getTotalVertices();\r\n\r\n return Array(count / 3)\r\n .fill(3)\r\n .join(\", \");\r\n}\r\n\r\nfunction BuildMeshVertexIndices(geometry: Geometry) {\r\n const indices = geometry.getIndices();\r\n const count = indices?.length ?? geometry.getTotalVertices();\r\n\r\n const array: number[] = [];\r\n if (indices !== null) {\r\n for (let i = 0; i < count; i++) {\r\n array.push(indices[i]);\r\n }\r\n } else {\r\n for (let i = 0; i < count; i++) {\r\n array.push(i);\r\n }\r\n }\r\n\r\n return array.join(\", \");\r\n}\r\n\r\nfunction BuildVector3Array(attribute: FloatArray, options: IUSDZExportOptions, stride = 3, convertToRightHanded = false) {\r\n const array: string[] = [];\r\n\r\n for (let i = 0; i < attribute.length / stride; i++) {\r\n const x = attribute[i * stride] * (convertToRightHanded ? -1 : 1);\r\n const y = attribute[i * stride + 1];\r\n const z = attribute[i * stride + 2];\r\n\r\n array.push(`(${x.toPrecision(options.precision)}, ${y.toPrecision(options.precision)}, ${z.toPrecision(options.precision)})`);\r\n }\r\n\r\n return array.join(\", \");\r\n}\r\n\r\nfunction BuildVector2Array(attribute: FloatArray, options: IUSDZExportOptions) {\r\n const array: string[] = [];\r\n\r\n for (let i = 0; i < attribute.length / 2; i++) {\r\n const x = attribute[i * 2];\r\n const y = attribute[i * 2 + 1];\r\n\r\n array.push(`(${x.toPrecision(options.precision)}, ${(1 - y).toPrecision(options.precision)})`);\r\n }\r\n\r\n return array.join(\", \");\r\n}\r\n\r\nfunction BuildAdditionalAttributes(geometry: Geometry, options: IUSDZExportOptions) {\r\n let string = \"\";\r\n\r\n for (let i = 0; i < 4; i++) {\r\n const id = i > 0 ? i : \"\";\r\n const uvAttribute = geometry.getVerticesData(VertexBuffer.UVKind + (id ? id + 1 : \"\")); // UV names go like \"uv\", \"uv2\", \"uv3\", etc.\r\n\r\n if (uvAttribute) {\r\n string += `\r\n\t\ttexCoord2f[] primvars:st${id} = [${BuildVector2Array(uvAttribute, options)}] (\r\n\t\t\tinterpolation = \"vertex\"\r\n\t\t)`;\r\n }\r\n }\r\n\r\n // vertex colors\r\n\r\n const colorAttribute = geometry.getVerticesData(VertexBuffer.ColorKind);\r\n\r\n if (colorAttribute) {\r\n string += `\r\n\tcolor3f[] primvars:displayColor = [${BuildVector3Array(colorAttribute, options, colorAttribute.length / geometry.getTotalVertices())}] (\r\n\t\tinterpolation = \"vertex\"\r\n\t\t)`;\r\n }\r\n\r\n return string;\r\n}\r\n\r\nfunction BuildMesh(geometry: Geometry, options: IUSDZExportOptions, windingOrder: string, convertToRightHanded: boolean) {\r\n const name = \"Geometry\";\r\n const position = geometry.getVerticesData(VertexBuffer.PositionKind);\r\n const normal = geometry.getVerticesData(VertexBuffer.NormalKind);\r\n\r\n if (!position || !normal) {\r\n return;\r\n }\r\n\r\n return `\r\n\tdef Mesh \"${name}\"\r\n\t{\r\n uniform token orientation = \"${windingOrder}\"\r\n\t\tint[] faceVertexCounts = [${BuildMeshVertexCount(geometry)}]\r\n\t\tint[] faceVertexIndices = [${BuildMeshVertexIndices(geometry)}]\r\n\t\tnormal3f[] normals = [${BuildVector3Array(normal, options, undefined, convertToRightHanded)}] (\r\n\t\t\tinterpolation = \"vertex\"\r\n\t\t)\r\n\t\tpoint3f[] points = [${BuildVector3Array(position, options, undefined, convertToRightHanded)}]\r\n ${BuildAdditionalAttributes(geometry, options)}\r\n\t\tuniform token subdivisionScheme = \"none\"\r\n\t}\r\n`;\r\n}\r\n\r\nfunction BuildMeshObject(geometry: Geometry, options: IUSDZExportOptions, windingOrder: string, convertToRightHanded: boolean) {\r\n const meshObject = BuildMesh(geometry, options, windingOrder, convertToRightHanded);\r\n return `\r\n def \"Geometry\"\r\n {\r\n ${meshObject}\r\n }\r\n `;\r\n}\r\n\r\nfunction BuildUSDFileAsString(dataToInsert: string) {\r\n let output = BuildHeader();\r\n output += dataToInsert;\r\n return fflate.strToU8(output);\r\n}\r\n\r\nfunction BuildMatrix(matrix: Matrix) {\r\n const array = matrix.m as number[];\r\n\r\n return `( ${BuildMatrixRow(array, 0)}, ${BuildMatrixRow(array, 4)}, ${BuildMatrixRow(array, 8)}, ${BuildMatrixRow(array, 12)} )`;\r\n}\r\n\r\nfunction BuildMatrixRow(array: number[], offset: number) {\r\n return `(${array[offset + 0]}, ${array[offset + 1]}, ${array[offset + 2]}, ${array[offset + 3]})`;\r\n}\r\n\r\nfunction BuildXform(mesh: Mesh, matrix: Matrix) {\r\n const name = \"Object_\" + mesh.uniqueId;\r\n const transform = BuildMatrix(matrix);\r\n\r\n return `def Xform \"${name}\" (\r\n\tprepend references = @./geometries/Geometry_${mesh.geometry!.uniqueId}.usda@</Geometry>\r\n\tprepend apiSchemas = [\"MaterialBindingAPI\"]\r\n)\r\n{\r\n\tmatrix4d xformOp:transform = ${transform}\r\n\tuniform token[] xformOpOrder = [\"xformOp:transform\"]\t\r\n\r\n rel material:binding = </Root/Materials/Material_${mesh.material!.uniqueId}>\r\n}\r\n\r\n`;\r\n}\r\n\r\nfunction BuildMaterials(materials: { [key: string]: Material }, textureToExports: { [key: string]: BaseTexture }, options: IUSDZExportOptions) {\r\n const array: string[] = [];\r\n\r\n for (const uuid in materials) {\r\n const material = materials[uuid];\r\n\r\n array.push(BuildMaterial(material, textureToExports, options));\r\n }\r\n\r\n return `\r\n def \"Materials\"\r\n{\r\n${array.join(\"\")}\r\n}\r\n\r\n`;\r\n}\r\n\r\nfunction BuildWrapping(wrapping: number) {\r\n switch (wrapping) {\r\n case Constants.TEXTURE_CLAMP_ADDRESSMODE:\r\n return \"clamp\";\r\n case Constants.TEXTURE_MIRROR_ADDRESSMODE:\r\n return \"mirror\";\r\n case Constants.TEXTURE_WRAP_ADDRESSMODE:\r\n default:\r\n return \"repeat\";\r\n }\r\n}\r\n\r\nfunction BuildColor4(color: Color3) {\r\n return `(${color.r}, ${color.g}, ${color.b}, 1.0)`;\r\n}\r\n\r\nfunction BuildVector2(vector: Vector2) {\r\n return `(${vector.x}, ${vector.y})`;\r\n}\r\n\r\nfunction BuildColor(color: Color3) {\r\n return `(${color.r}, ${color.g}, ${color.b})`;\r\n}\r\n\r\nfunction BuildTexture(\r\n texture: Texture,\r\n material: Material,\r\n mapType: string,\r\n color: Nullable<Color3>,\r\n textureToExports: { [key: string]: BaseTexture },\r\n options: IUSDZExportOptions\r\n) {\r\n const id = texture.getInternalTexture()!.uniqueId + \"_\" + texture.invertY;\r\n\r\n textureToExports[id] = texture;\r\n\r\n const uv = texture.coordinatesIndex > 0 ? \"st\" + texture.coordinatesIndex : \"st\";\r\n const repeat = new Vector2(texture.uScale, texture.vScale);\r\n const offset = new Vector2(texture.uOffset, texture.vOffset);\r\n const rotation = texture.wAng;\r\n\r\n // rotation is around the wrong point. after rotation we need to shift offset again so that we're rotating around the right spot\r\n const xRotationOffset = Math.sin(rotation);\r\n const yRotationOffset = Math.cos(rotation);\r\n\r\n // texture coordinates start in the opposite corner, need to correct\r\n offset.y = 1 - offset.y - repeat.y;\r\n\r\n offset.x += xRotationOffset * repeat.x;\r\n offset.y += (1 - yRotationOffset) * repeat.y;\r\n\r\n return `\r\n def Shader \"PrimvarReader_${mapType}\"\r\n {\r\n uniform token info:id = \"UsdPrimvarReader_float2\"\r\n float2 inputs:fallback = (0.0, 0.0)\r\n token inputs:varname = \"${uv}\"\r\n float2 outputs:result\r\n }\r\n\r\n def Shader \"Transform2d_${mapType}\"\r\n {\r\n uniform token info:id = \"UsdTransform2d\"\r\n token inputs:in.connect = </Root/Materials/Material_${material.uniqueId}/PrimvarReader_${mapType}.outputs:result>\r\n float inputs:rotation = ${(rotation * (180 / Math.PI)).toFixed(options.precision)}\r\n float2 inputs:scale = ${BuildVector2(repeat)}\r\n float2 inputs:translation = ${BuildVector2(offset)}\r\n float2 outputs:result\r\n }\r\n\r\n def Shader \"Texture_${texture.uniqueId}_${mapType}\"\r\n {\r\n uniform token info:id = \"UsdUVTexture\"\r\n asset inputs:file = @textures/Texture_${id}.png@\r\n float2 inputs:st.connect = </Root/Materials/Material_${material.uniqueId}/Transform2d_${mapType}.outputs:result>\r\n ${color ? \"float4 inputs:scale = \" + BuildColor4(color) : \"\"}\r\n token inputs:sourceColorSpace = \"${texture.gammaSpace ? \"sRGB\" : \"raw\"}\"\r\n token inputs:wrapS = \"${BuildWrapping(texture.wrapU)}\"\r\n token inputs:wrapT = \"${BuildWrapping(texture.wrapV)}\"\r\n float outputs:r\r\n float outputs:g\r\n float outputs:b\r\n float3 outputs:rgb\r\n ${material.needAlphaBlending() || material.needAlphaTesting() ? \"float outputs:a\" : \"\"}\r\n }`;\r\n}\r\n\r\nfunction ExtractTextureInformations(material: Material) {\r\n const defaults = {\r\n diffuseMap: null,\r\n diffuse: null,\r\n alphaCutOff: 0,\r\n emissiveMap: null,\r\n emissive: null,\r\n normalMap: null,\r\n roughnessMap: null,\r\n roughnessChannel: \"a\",\r\n roughness: 0,\r\n metalnessMap: null,\r\n metalnessChannel: \"r\",\r\n metalness: 0,\r\n aoMap: null,\r\n aoMapChannel: \"rgb\",\r\n aoMapIntensity: 0,\r\n alphaMap: null,\r\n ior: 1,\r\n clearCoatEnabled: false,\r\n clearCoat: 0,\r\n clearCoatMap: null,\r\n clearCoatRoughness: 0,\r\n clearCoatRoughnessMap: null,\r\n };\r\n\r\n if (material instanceof StandardMaterial) {\r\n return {\r\n ...defaults,\r\n diffuseMap: material.diffuseTexture,\r\n diffuse: material.diffuseColor,\r\n alphaCutOff: material.alphaCutOff,\r\n emissiveMap: material.emissiveTexture,\r\n emissive: material.emissiveColor,\r\n roughness: 1,\r\n alphaMap: material.opacityTexture,\r\n };\r\n }\r\n if (material instanceof PBRBaseMaterial) {\r\n return {\r\n ...defaults,\r\n diffuseMap: material._albedoTexture,\r\n diffuse: material._albedoColor,\r\n alphaCutOff: material._alphaCutOff,\r\n emissiveMap: material._emissiveTexture,\r\n emissive: material._emissiveColor,\r\n normalMap: material._bumpTexture,\r\n roughnessMap: material._metallicTexture,\r\n roughnessChannel: material._useRoughnessFromMetallicTextureAlpha ? \"a\" : \"g\",\r\n roughness: material._roughness ?? 1,\r\n metalnessMap: material._metallicTexture,\r\n metalnessChannel: material._useMetallnessFromMetallicTextureBlue ? \"b\" : \"r\",\r\n metalness: material._metallic ?? 0,\r\n aoMap: material._ambientTexture,\r\n aoMapChannel: material._useAmbientInGrayScale ? \"r\" : \"rgb\",\r\n aoMapIntensity: material._ambientTextureStrength,\r\n alphaMap: material._opacityTexture,\r\n ior: material.subSurface.indexOfRefraction,\r\n clearCoatEnabled: material.clearCoat.isEnabled,\r\n clearCoat: material.clearCoat.intensity,\r\n clearCoatMap: material.clearCoat.texture,\r\n clearCoatRoughness: material.clearCoat.roughness,\r\n clearCoatRoughnessMap: material.clearCoat.useRoughnessFromMainTexture ? material.clearCoat.texture : material.clearCoat.textureRoughness,\r\n };\r\n }\r\n return defaults;\r\n}\r\n\r\nfunction BuildMaterial(material: Material, textureToExports: { [key: string]: BaseTexture }, options: IUSDZExportOptions) {\r\n // https://graphics.pixar.com/usd/docs/UsdPreviewSurface-Proposal.html\r\n\r\n const pad = \"\t\t\t\";\r\n const inputs = [];\r\n const samplers = [];\r\n\r\n const {\r\n diffuseMap,\r\n diffuse,\r\n alphaCutOff,\r\n emissiveMap,\r\n emissive,\r\n normalMap,\r\n roughnessMap,\r\n roughnessChannel,\r\n roughness,\r\n metalnessMap,\r\n metalnessChannel,\r\n metalness,\r\n aoMap,\r\n aoMapChannel,\r\n aoMapIntensity,\r\n alphaMap,\r\n ior,\r\n clearCoatEnabled,\r\n clearCoat,\r\n clearCoatMap,\r\n clearCoatRoughness,\r\n clearCoatRoughnessMap,\r\n } = ExtractTextureInformations(material);\r\n\r\n if (diffuseMap !== null) {\r\n inputs.push(`${pad}color3f inputs:diffuseColor.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${diffuseMap.uniqueId}_diffuse.outputs:rgb>`);\r\n\r\n if (material.needAlphaBlending()) {\r\n inputs.push(`${pad}float inputs:opacity.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${diffuseMap.uniqueId}_diffuse.outputs:a>`);\r\n } else if (material.needAlphaTesting()) {\r\n inputs.push(`${pad}float inputs:opacity.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${diffuseMap.uniqueId}_diffuse.outputs:a>`);\r\n inputs.push(`${pad}float inputs:opacityThreshold = ${alphaCutOff}`);\r\n }\r\n\r\n samplers.push(BuildTexture(diffuseMap as Texture, material, \"diffuse\", diffuse, textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}color3f inputs:diffuseColor = ${BuildColor(diffuse || Color3.White())}`);\r\n }\r\n\r\n if (emissiveMap !== null) {\r\n inputs.push(`${pad}color3f inputs:emissiveColor.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${emissiveMap.uniqueId}_emissive.outputs:rgb>`);\r\n\r\n samplers.push(BuildTexture(emissiveMap as Texture, material, \"emissive\", emissive, textureToExports, options));\r\n } else if (emissive && emissive.toLuminance() > 0) {\r\n inputs.push(`${pad}color3f inputs:emissiveColor = ${BuildColor(emissive)}`);\r\n }\r\n\r\n if (normalMap !== null) {\r\n inputs.push(`${pad}normal3f inputs:normal.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${normalMap.uniqueId}_normal.outputs:rgb>`);\r\n\r\n samplers.push(BuildTexture(normalMap as Texture, material, \"normal\", null, textureToExports, options));\r\n }\r\n\r\n if (aoMap !== null) {\r\n inputs.push(`${pad}float inputs:occlusion.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${aoMap.uniqueId}_occlusion.outputs:${aoMapChannel}>`);\r\n\r\n samplers.push(BuildTexture(aoMap as Texture, material, \"occlusion\", new Color3(aoMapIntensity, aoMapIntensity, aoMapIntensity), textureToExports, options));\r\n }\r\n\r\n if (roughnessMap !== null) {\r\n inputs.push(\r\n `${pad}float inputs:roughness.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${roughnessMap.uniqueId}_roughness.outputs:${roughnessChannel}>`\r\n );\r\n\r\n samplers.push(BuildTexture(roughnessMap as Texture, material, \"roughness\", new Color3(roughness, roughness, roughness), textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}float inputs:roughness = ${roughness}`);\r\n }\r\n\r\n if (metalnessMap !== null) {\r\n inputs.push(`${pad}float inputs:metallic.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${metalnessMap.uniqueId}_metallic.outputs:${metalnessChannel}>`);\r\n\r\n samplers.push(BuildTexture(metalnessMap as Texture, material, \"metallic\", new Color3(metalness, metalness, metalness), textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}float inputs:metallic = ${metalness}`);\r\n }\r\n\r\n if (alphaMap !== null) {\r\n inputs.push(`${pad}float inputs:opacity.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${alphaMap.uniqueId}_opacity.outputs:r>`);\r\n inputs.push(`${pad}float inputs:opacityThreshold = 0.0001`);\r\n\r\n samplers.push(BuildTexture(alphaMap as Texture, material, \"opacity\", null, textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}float inputs:opacity = ${material.alpha}`);\r\n }\r\n\r\n if (clearCoatEnabled) {\r\n if (clearCoatMap !== null) {\r\n inputs.push(`${pad}float inputs:clearcoat.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${clearCoatMap.uniqueId}_clearcoat.outputs:r>`);\r\n samplers.push(BuildTexture(clearCoatMap as Texture, material, \"clearcoat\", new Color3(clearCoat, clearCoat, clearCoat), textureToExports, options));\r\n } else {\r\n inputs.push(`${pad}float inputs:clearcoat = ${clearCoat}`);\r\n }\r\n\r\n if (clearCoatRoughnessMap !== null) {\r\n inputs.push(\r\n `${pad}float inputs:clearcoatRoughness.connect = </Root/Materials/Material_${material.uniqueId}/Texture_${clearCoatRoughnessMap.uniqueId}_clearcoatRoughness.outputs:g>`\r\n );\r\n samplers.push(\r\n BuildTexture(\r\n clearCoatRoughnessMap as Texture,\r\n material,\r\n \"clearcoatRoughness\",\r\n new Color3(clearCoatRoughness, clearCoatRoughness, clearCoatRoughness),\r\n textureToExports,\r\n options\r\n )\r\n );\r\n } else {\r\n inputs.push(`${pad}float inputs:clearcoatRoughness = ${clearCoatRoughness}`);\r\n }\r\n }\r\n\r\n inputs.push(`${pad}float inputs:ior = ${ior}`);\r\n\r\n return `\r\n\tdef Material \"Material_${material.uniqueId}\"\r\n\t{\r\n\t\tdef Shader \"PreviewSurface\"\r\n\t\t{\r\n\t\t\tuniform token info:id = \"UsdPreviewSurface\"\r\n${inputs.join(\"\\n\")}\r\n\t\t\tint inputs:useSpecularWorkflow = 0\r\n\t\t\ttoken outputs:surface\r\n\t\t}\r\n\r\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_${material.uniqueId}/PreviewSurface.outputs:surface>\r\n\r\n${samplers.join(\"\\n\")}\r\n\r\n\t}\r\n`;\r\n}\r\n\r\nfunction BuildCamera(camera: Camera, options: IUSDZExportOptions) {\r\n const name = \"Camera_\" + camera.uniqueId;\r\n const matrix = Matrix.RotationY(Math.PI).multiply(camera.getWorldMatrix()); // work towards positive z\r\n\r\n const transform = BuildMatrix(matrix);\r\n\r\n if (camera.mode === Constants.ORTHOGRAPHIC_CAMERA) {\r\n return `def Camera \"${name}\"\r\n\t\t{\r\n\t\t\tmatrix4d xformOp:transform = ${transform}\r\n\t\t\tuniform token[] xformOpOrder = [\"xformOp:transform\"]\r\n\r\n\t\t\tfloat2 clippingRange = (${camera.minZ.toPrecision(options.precision)}, ${camera.maxZ.toPrecision(options.precision)})\r\n\t\t\tfloat horizontalAperture = ${((Math.abs(camera.orthoLeft || 1) + Math.abs(camera.orthoRight || 1)) * 10).toPrecision(options.precision)}\r\n\t\t\tfloat verticalAperture = ${((Math.abs(camera.orthoTop || 1) + Math.abs(camera.orthoBottom || 1)) * 10).toPrecision(options.precision)}\r\n\t\t\ttoken projection = \"orthographic\"\r\n\t\t}\r\n\t\r\n\t`;\r\n } else {\r\n const aspect = camera.getEngine().getAspectRatio(camera);\r\n const sensorwidth = options.cameraSensorWidth || 35;\r\n\r\n return `def Camera \"${name}\"\r\n\t\t{\r\n\t\t\tmatrix4d xformOp:transform = ${transform}\r\n\t\t\tuniform token[] xformOpOrder = [\"xformOp:transform\"]\r\n\r\n\t\t\tfloat2 clippingRange = (${camera.minZ.toPrecision(options.precision)}, ${camera.maxZ.toPrecision(options.precision)})\r\n\t\t\tfloat focalLength = ${(sensorwidth / (2 * Math.tan(camera.fov * 0.5))).toPrecision(options.precision)}\r\n token projection = \"perspective\"\r\n\t\t\tfloat horizontalAperture = ${(sensorwidth * aspect).toPrecision(options.precision)}\r\n\t\t\tfloat verticalAperture = ${(sensorwidth / aspect).toPrecision(options.precision)} \r\n\t\t}\r\n\t\r\n\t`;\r\n }\r\n}\r\n\r\nfunction ExtractMeshInformations(mesh: Mesh) {\r\n mesh.computeWorldMatrix(true);\r\n const matrix = mesh.getWorldMatrix().clone();\r\n const sceneIsRightHanded = mesh.getScene().useRightHandedSystem;\r\n let sideOrientation = mesh.material?._getEffectiveOrientation(mesh) ?? mesh.sideOrientation;\r\n let convertToRightHanded = !sceneIsRightHanded;\r\n\r\n // Search for a root conversion node from the glTF loader in the mesh's ancestors.\r\n let current = mesh.parent;\r\n while (current) {\r\n if (IsNoopNode(current, sceneIsRightHanded) && current.parent === null) {\r\n if (!sceneIsRightHanded) {\r\n // If it's a RH->LH node, cancel out its inversion effect on the mesh's matrix and winding order.\r\n matrix.multiplyToRef(current.getWorldMatrix().invert(), matrix);\r\n sideOrientation = sideOrientation === Material.ClockWiseSideOrientation ? Material.CounterClockWiseSideOrientation : Material.ClockWiseSideOrientation;\r\n }\r\n convertToRightHanded = false;\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n\r\n if (matrix.determinant() < 0) {\r\n // RealityKit doesn't seem to automatically flip faces of a mesh with negative scale, like other engines do (including us).\r\n Tools.Warn(`Mesh ${mesh.name} has a negative scale, which may look incorrect in destinations like QuickLook.`);\r\n }\r\n\r\n return {\r\n matrix,\r\n windingOrder: sideOrientation === Material.ClockWiseSideOrientation ? \"leftHanded\" : \"rightHanded\",\r\n convertToRightHanded,\r\n };\r\n}\r\n\r\n/**\r\n *\r\n * @param scene scene to export\r\n * @param options options to configure the export\r\n * @param meshPredicate predicate to filter the meshes to export\r\n * @returns a uint8 array containing the USDZ file\r\n * @see [Simple sphere](https://playground.babylonjs.com/#H2G5XW#6)\r\n * @see [Red sphere](https://playground.babylonjs.com/#H2G5XW#7)\r\n * @see [Boombox](https://playground.babylonjs.com/#5N3RWK#5)\r\n */\r\nexport async function USDZExportAsync(scene: Scene, options: Partial<IUSDZExportOptions>, meshPredicate?: (m: Mesh) => boolean): Promise<Uint8Array> {\r\n const localOptions = {\r\n fflateUrl: \"https://unpkg.com/fflate@0.8.2\",\r\n includeAnchoringProperties: true,\r\n anchoringType: \"plane\",\r\n planeAnchoringAlignment: \"horizontal\",\r\n modelFileName: \"model.usda\",\r\n precision: 5,\r\n exportCamera: false,\r\n cameraSensorWidth: 35,\r\n ...options,\r\n };\r\n\r\n // Get the fflate library\r\n if (typeof fflate === \"undefined\") {\r\n await Tools.LoadScriptAsync(localOptions.fflateUrl);\r\n }\r\n\r\n // Start the export\r\n const files: { [key: string]: any } = {};\r\n\r\n // model file should be first in USDZ archive so we init it here\r\n files[localOptions.modelFileName] = null;\r\n\r\n let output = BuildHeader();\r\n output += BuildRootAndSceneStart(localOptions);\r\n\r\n const materialToExports: { [key: string]: Material } = {};\r\n\r\n // Meshes\r\n for (const abstractMesh of scene.meshes) {\r\n if (abstractMesh.getTotalVertices() === 0) {\r\n continue;\r\n }\r\n const mesh = abstractMesh as Mesh;\r\n const geometry = mesh.geometry;\r\n const material = mesh.material;\r\n\r\n if (!material || !geometry || (meshPredicate && !meshPredicate(mesh))) {\r\n continue;\r\n }\r\n\r\n const supportedMaterials = [\"StandardMaterial\", \"PBRMaterial\", \"PBRMetallicRoughnessMaterial\"];\r\n\r\n if (supportedMaterials.indexOf(material.getClassName()) !== -1) {\r\n const geometryFileName = \"geometries/Geometry_\" + geometry.uniqueId + \".usda\";\r\n const { matrix, windingOrder, convertToRightHanded } = ExtractMeshInformations(mesh);\r\n\r\n if (!(geometryFileName in files)) {\r\n const meshObject = BuildMeshObject(geometry, localOptions, windingOrder, convertToRightHanded);\r\n files[geometryFileName] = BuildUSDFileAsString(meshObject);\r\n }\r\n\r\n if (!(material.uniqueId in materialToExports)) {\r\n materialToExports[material.uniqueId] = material;\r\n }\r\n\r\n output += BuildXform(mesh, matrix);\r\n } else {\r\n Tools.Warn(\"USDZExportAsync does not support this material type: \" + material.getClassName());\r\n }\r\n }\r\n\r\n // Camera\r\n if (scene.activeCamera && localOptions.exportCamera) {\r\n output += BuildCamera(scene.activeCamera, localOptions);\r\n }\r\n\r\n // Close scene\r\n output += BuildSceneEnd();\r\n\r\n // Materials\r\n const textureToExports: { [key: string]: BaseTexture } = {};\r\n output += BuildMaterials(materialToExports, textureToExports, localOptions);\r\n\r\n // Close root\r\n output += BuildRootEnd();\r\n\r\n // Compress\r\n files[localOptions.modelFileName] = fflate.strToU8(output);\r\n\r\n // Textures\r\n for (const id in textureToExports) {\r\n const texture = textureToExports[id];\r\n\r\n const size = texture.getSize();\r\n // eslint-disable-next-line no-await-in-loop\r\n const textureData = await GetTextureDataAsync(texture);\r\n\r\n // eslint-disable-next-line no-await-in-loop\r\n const fileContent = await DumpTools.DumpDataAsync(size.width, size.height, textureData, \"image/png\", undefined, false, true);\r\n\r\n files[`textures/Texture_${id}.png`] = new Uint8Array(fileContent as ArrayBuffer).slice(); // This is to avoid getting a link and not a copy\r\n }\r\n\r\n // 64 byte alignment\r\n // https://github.com/101arrowz/fflate/issues/39#issuecomment-777263109\r\n\r\n let offset = 0;\r\n\r\n for (const filename in files) {\r\n const file = files[filename];\r\n if (!file) {\r\n continue;\r\n }\r\n const headerSize = 34 + filename.length;\r\n\r\n offset += headerSize;\r\n\r\n const offsetMod64 = offset & 63;\r\n\r\n if (offsetMod64 !== 4) {\r\n const padLength = 64 - offsetMod64;\r\n const padding = new Uint8Array(padLength);\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n files[filename] = [file, { extra: { 12345: padding } }];\r\n }\r\n\r\n offset = file.length;\r\n }\r\n\r\n return fflate.zipSync(files, { level: 0 });\r\n}\r\n","/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nimport * as Serializers from \"serializers/USDZ/index\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nconst GlobalObject = typeof global !== \"undefined\" ? global : typeof window !== \"undefined\" ? window : undefined;\r\nif (typeof GlobalObject !== \"undefined\") {\r\n for (const serializer in Serializers) {\r\n (<any>GlobalObject).BABYLON[serializer] = (<any>Serializers)[serializer];\r\n }\r\n}\r\n\r\nexport * from \"serializers/USDZ/index\";\r\n","import * as serializers from \"serializers/legacy/legacy-usdzSerializer\";\nexport { serializers };\nexport default serializers;\n"],"names":["root","factory","exports","module","require","define","amd","self","global","this","__WEBPACK_EXTERNAL_MODULE__597__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","__assign","assign","t","s","i","n","arguments","length","p","apply","create","SuppressedError","ConvertHandednessMatrix","Matrix","Compose","Vector3","Quaternion","Identity","Zero","IsNoopNode","node","useRightHandedSystem","TransformNode","getWorldMatrix","equalsWithEpsilon","IdentityReadOnly","Epsilon","multiplyToRef","TmpVectors","AbstractMesh","geometry","BuildVector3Array","attribute","options","stride","convertToRightHanded","array","x","y","z","push","toPrecision","precision","join","BuildVector2Array","BuildMeshObject","windingOrder","meshObject","position","getVerticesData","VertexBuffer","PositionKind","normal","NormalKind","count","getIndices","getTotalIndices","getTotalVertices","Array","fill","BuildMeshVertexCount","indices","BuildMeshVertexIndices","string","id","uvAttribute","UVKind","colorAttribute","ColorKind","BuildAdditionalAttributes","BuildMesh","BuildUSDFileAsString","dataToInsert","output","fflate","strToU8","BuildMatrix","matrix","m","BuildMatrixRow","offset","BuildXform","mesh","name","uniqueId","transform","material","BuildWrapping","wrapping","Constants","TEXTURE_CLAMP_ADDRESSMODE","TEXTURE_MIRROR_ADDRESSMODE","TEXTURE_WRAP_ADDRESSMODE","BuildVector2","vector","BuildColor","color","b","BuildTexture","texture","mapType","textureToExports","getInternalTexture","invertY","uv","coordinatesIndex","repeat","Vector2","uScale","vScale","uOffset","vOffset","rotation","wAng","xRotationOffset","Math","sin","yRotationOffset","cos","PI","toFixed","BuildColor4","gammaSpace","wrapU","wrapV","needAlphaBlending","needAlphaTesting","BuildMaterial","pad","inputs","samplers","defaults","diffuseMap","diffuse","alphaCutOff","emissiveMap","emissive","normalMap","roughnessMap","roughnessChannel","roughness","metalnessMap","metalnessChannel","metalness","aoMap","aoMapChannel","aoMapIntensity","alphaMap","ior","clearCoatEnabled","clearCoat","clearCoatMap","clearCoatRoughness","clearCoatRoughnessMap","StandardMaterial","diffuseTexture","diffuseColor","emissiveTexture","emissiveColor","opacityTexture","PBRBaseMaterial","_albedoTexture","_albedoColor","_alphaCutOff","_emissiveTexture","_emissiveColor","_bumpTexture","_metallicTexture","_useRoughnessFromMetallicTextureAlpha","_roughness","_useMetallnessFromMetallicTextureBlue","_metallic","_ambientTexture","_useAmbientInGrayScale","_ambientTextureStrength","_opacityTexture","subSurface","indexOfRefraction","isEnabled","intensity","useRoughnessFromMainTexture","textureRoughness","ExtractTextureInformations","Color3","White","toLuminance","alpha","ExtractMeshInformations","computeWorldMatrix","clone","sceneIsRightHanded","getScene","sideOrientation","_getEffectiveOrientation","current","parent","invert","Material","ClockWiseSideOrientation","CounterClockWiseSideOrientation","determinant","Tools","Warn","USDZExportAsync","scene","meshPredicate","thisArg","_arguments","generator","body","f","_","label","sent","trys","ops","Iterator","next","verb","iterator","v","op","TypeError","done","pop","step","localOptions","fflateUrl","includeAnchoringProperties","anchoringType","planeAnchoringAlignment","modelFileName","exportCamera","cameraSensorWidth","LoadScriptAsync","files","alignment","BuildRootAndSceneStart","materialToExports","meshes","abstractMesh","indexOf","getClassName","geometryFileName","activeCamera","camera","RotationY","multiply","mode","ORTHOGRAPHIC_CAMERA","minZ","maxZ","abs","orthoLeft","orthoRight","orthoTop","orthoBottom","aspect","getEngine","getAspectRatio","sensorwidth","tan","fov","BuildCamera","materials","uuid","BuildMaterials","size","getSize","GetTextureDataAsync","textureData","DumpTools","DumpDataAsync","width","height","fileContent","Uint8Array","slice","filename","file","headerSize","offsetMod64","padding","extra","zipSync","level","P","Promise","resolve","reject","fulfilled","rejected","result","then","GlobalObject","serializer","BABYLON"],"sourceRoot":""}