@loaders.gl/obj 3.0.13 → 3.0.14

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 +1 @@
1
- {"version":3,"sources":["../../../src/lib/parse-obj.js"],"names":["OBJECT_RE","MATERIAL_RE","MATERIAL_USE_RE","MeshMaterial","constructor","index","name","mtllib","smooth","groupStart","groupEnd","groupCount","inherited","clone","MeshObject","geometry","vertices","normals","colors","uvs","materials","fromDeclaration","startMaterial","libraries","previous","_finalize","splice","material","length","Array","isArray","undefined","push","currentMaterial","end","lastMultiMaterial","mi","ParserState","objects","object","materialLibraries","startObject","previousMaterial","declared","finalize","parseVertexIndex","value","len","parseInt","parseNormalIndex","parseUVIndex","addVertex","a","b","c","src","dst","addVertexPoint","addVertexLine","addNormal","addColor","addUV","addUVLine","addFace","ua","ub","uc","na","nb","nc","vLen","ia","ib","ic","uvLen","nLen","addPointGeometry","type","vertex","addLineGeometry","uv","text","state","indexOf","replace","lines","split","line","lineFirstChar","lineLength","result","trimLeft","i","l","trim","charAt","data","parseFloat","lineData","substr","vertexData","faceVertices","j","jl","vertexParts","v1","v2","v3","lineParts","substring","lineVertices","lineUVs","li","llen","parts","pointData","exec","test","toLowerCase","Error","meshes","mesh","header","vertexCount","attributes","mode","POSITION","Float32Array","size","NORMAL","COLOR_0","TEXCOORD_0","sourceMaterial","_material","flatShading"],"mappings":"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","sourcesContent":["// OBJ Loader, adapted from THREE.js (MIT license)\n//\n// Attributions per original THREE.js source file:\n//\n// @author mrdoob / http://mrdoob.com/\n\n// @ts-nocheck\n\n// o object_name | g group_name\nconst OBJECT_RE = /^[og]\\s*(.+)?/;\n// mtllib file_reference\nconst MATERIAL_RE = /^mtllib /;\n// usemtl material_name\nconst MATERIAL_USE_RE = /^usemtl /;\n\nclass MeshMaterial {\n constructor({index, name = '', mtllib, smooth, groupStart}) {\n this.index = index;\n this.name = name;\n this.mtllib = mtllib;\n this.smooth = smooth;\n this.groupStart = groupStart;\n this.groupEnd = -1;\n this.groupCount = -1;\n this.inherited = false;\n }\n\n clone(index = this.index) {\n return new MeshMaterial({\n index,\n name: this.name,\n mtllib: this.mtllib,\n smooth: this.smooth,\n groupStart: 0\n });\n }\n}\n\nclass MeshObject {\n constructor(name = '') {\n this.name = name;\n\n this.geometry = {\n vertices: [],\n normals: [],\n colors: [],\n uvs: []\n };\n\n this.materials = [];\n this.smooth = true;\n\n this.fromDeclaration = null;\n }\n\n startMaterial(name, libraries) {\n const previous = this._finalize(false);\n\n // New usemtl declaration overwrites an inherited material, except if faces were declared\n // after the material, then it must be preserved for proper MultiMaterial continuation.\n if (previous && (previous.inherited || previous.groupCount <= 0)) {\n this.materials.splice(previous.index, 1);\n }\n\n const material = new MeshMaterial({\n index: this.materials.length,\n name,\n mtllib:\n Array.isArray(libraries) && libraries.length > 0 ? libraries[libraries.length - 1] : '',\n smooth: previous !== undefined ? previous.smooth : this.smooth,\n groupStart: previous !== undefined ? previous.groupEnd : 0\n });\n\n this.materials.push(material);\n\n return material;\n }\n\n currentMaterial() {\n if (this.materials.length > 0) {\n return this.materials[this.materials.length - 1];\n }\n\n return undefined;\n }\n\n _finalize(end) {\n const lastMultiMaterial = this.currentMaterial();\n if (lastMultiMaterial && lastMultiMaterial.groupEnd === -1) {\n lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;\n lastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;\n lastMultiMaterial.inherited = false;\n }\n\n // Ignore objects tail materials if no face declarations followed them before a new o/g started.\n if (end && this.materials.length > 1) {\n for (let mi = this.materials.length - 1; mi >= 0; mi--) {\n if (this.materials[mi].groupCount <= 0) {\n this.materials.splice(mi, 1);\n }\n }\n }\n\n // Guarantee at least one empty material, this makes the creation later more straight forward.\n if (end && this.materials.length === 0) {\n this.materials.push({\n name: '',\n smooth: this.smooth\n });\n }\n\n return lastMultiMaterial;\n }\n}\n\nclass ParserState {\n constructor() {\n this.objects = [];\n this.object = null;\n\n this.vertices = [];\n this.normals = [];\n this.colors = [];\n this.uvs = [];\n\n this.materialLibraries = [];\n\n this.startObject('', false);\n }\n\n startObject(name, fromDeclaration = true) {\n // If the current object (initial from reset) is not from a g/o declaration in the parsed\n // file. We need to use it for the first parsed g/o to keep things in sync.\n if (this.object && !this.object.fromDeclaration) {\n this.object.name = name;\n this.object.fromDeclaration = fromDeclaration;\n return;\n }\n\n const previousMaterial =\n this.object && typeof this.object.currentMaterial === 'function'\n ? this.object.currentMaterial()\n : undefined;\n\n if (this.object && typeof this.object._finalize === 'function') {\n this.object._finalize(true);\n }\n\n this.object = new MeshObject(name);\n this.object.fromDeclaration = fromDeclaration;\n\n // Inherit previous objects material.\n // Spec tells us that a declared material must be set to all objects until a new material is declared.\n // If a usemtl declaration is encountered while this new object is being parsed, it will\n // overwrite the inherited material. Exception being that there was already face declarations\n // to the inherited material, then it will be preserved for proper MultiMaterial continuation.\n if (previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function') {\n const declared = previousMaterial.clone(0);\n declared.inherited = true;\n this.object.materials.push(declared);\n }\n\n this.objects.push(this.object);\n }\n\n finalize() {\n if (this.object && typeof this.object._finalize === 'function') {\n this.object._finalize(true);\n }\n }\n\n parseVertexIndex(value, len) {\n const index = parseInt(value);\n return (index >= 0 ? index - 1 : index + len / 3) * 3;\n }\n\n parseNormalIndex(value, len) {\n const index = parseInt(value);\n return (index >= 0 ? index - 1 : index + len / 3) * 3;\n }\n\n parseUVIndex(value, len) {\n const index = parseInt(value);\n return (index >= 0 ? index - 1 : index + len / 2) * 2;\n }\n\n addVertex(a, b, c) {\n const src = this.vertices;\n const dst = this.object.geometry.vertices;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\n }\n\n addVertexPoint(a) {\n const src = this.vertices;\n const dst = this.object.geometry.vertices;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n }\n\n addVertexLine(a) {\n const src = this.vertices;\n const dst = this.object.geometry.vertices;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n }\n\n addNormal(a, b, c) {\n const src = this.normals;\n const dst = this.object.geometry.normals;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\n }\n\n addColor(a, b, c) {\n const src = this.colors;\n const dst = this.object.geometry.colors;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\n }\n\n addUV(a, b, c) {\n const src = this.uvs;\n const dst = this.object.geometry.uvs;\n\n dst.push(src[a + 0], src[a + 1]);\n dst.push(src[b + 0], src[b + 1]);\n dst.push(src[c + 0], src[c + 1]);\n }\n\n addUVLine(a) {\n const src = this.uvs;\n const dst = this.object.geometry.uvs;\n\n dst.push(src[a + 0], src[a + 1]);\n }\n\n // eslint-disable-next-line max-params\n addFace(a, b, c, ua, ub, uc, na, nb, nc) {\n const vLen = this.vertices.length;\n\n let ia = this.parseVertexIndex(a, vLen);\n let ib = this.parseVertexIndex(b, vLen);\n let ic = this.parseVertexIndex(c, vLen);\n\n this.addVertex(ia, ib, ic);\n\n if (ua !== undefined && ua !== '') {\n const uvLen = this.uvs.length;\n ia = this.parseUVIndex(ua, uvLen);\n ib = this.parseUVIndex(ub, uvLen);\n ic = this.parseUVIndex(uc, uvLen);\n this.addUV(ia, ib, ic);\n }\n\n if (na !== undefined && na !== '') {\n // Normals are many times the same. If so, skip function call and parseInt.\n const nLen = this.normals.length;\n ia = this.parseNormalIndex(na, nLen);\n\n ib = na === nb ? ia : this.parseNormalIndex(nb, nLen);\n ic = na === nc ? ia : this.parseNormalIndex(nc, nLen);\n\n this.addNormal(ia, ib, ic);\n }\n\n if (this.colors.length > 0) {\n this.addColor(ia, ib, ic);\n }\n }\n\n addPointGeometry(vertices) {\n this.object.geometry.type = 'Points';\n\n const vLen = this.vertices.length;\n\n for (const vertex of vertices) {\n this.addVertexPoint(this.parseVertexIndex(vertex, vLen));\n }\n }\n\n addLineGeometry(vertices, uvs) {\n this.object.geometry.type = 'Line';\n\n const vLen = this.vertices.length;\n const uvLen = this.uvs.length;\n\n for (const vertex of vertices) {\n this.addVertexLine(this.parseVertexIndex(vertex, vLen));\n }\n\n for (const uv of uvs) {\n this.addUVLine(this.parseUVIndex(uv, uvLen));\n }\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nexport default (text) => {\n const state = new ParserState();\n\n if (text.indexOf('\\r\\n') !== -1) {\n // This is faster than String.split with regex that splits on both\n text = text.replace(/\\r\\n/g, '\\n');\n }\n\n if (text.indexOf('\\\\\\n') !== -1) {\n // join lines separated by a line continuation character (\\)\n text = text.replace(/\\\\\\n/g, '');\n }\n\n const lines = text.split('\\n');\n let line = '';\n let lineFirstChar = '';\n let lineLength = 0;\n let result = [];\n\n // Faster to just trim left side of the line. Use if available.\n const trimLeft = typeof ''.trimLeft === 'function';\n\n /* eslint-disable no-continue, max-depth */\n for (let i = 0, l = lines.length; i < l; i++) {\n line = lines[i];\n line = trimLeft ? line.trimLeft() : line.trim();\n lineLength = line.length;\n\n if (lineLength === 0) continue;\n\n lineFirstChar = line.charAt(0);\n\n // @todo invoke passed in handler if any\n if (lineFirstChar === '#') continue;\n\n if (lineFirstChar === 'v') {\n const data = line.split(/\\s+/);\n\n switch (data[0]) {\n case 'v':\n state.vertices.push(parseFloat(data[1]), parseFloat(data[2]), parseFloat(data[3]));\n if (data.length === 8) {\n state.colors.push(parseFloat(data[4]), parseFloat(data[5]), parseFloat(data[6]));\n }\n break;\n case 'vn':\n state.normals.push(parseFloat(data[1]), parseFloat(data[2]), parseFloat(data[3]));\n break;\n case 'vt':\n state.uvs.push(parseFloat(data[1]), parseFloat(data[2]));\n break;\n default:\n }\n } else if (lineFirstChar === 'f') {\n const lineData = line.substr(1).trim();\n const vertexData = lineData.split(/\\s+/);\n const faceVertices = [];\n\n // Parse the face vertex data into an easy to work with format\n\n for (let j = 0, jl = vertexData.length; j < jl; j++) {\n const vertex = vertexData[j];\n\n if (vertex.length > 0) {\n const vertexParts = vertex.split('/');\n faceVertices.push(vertexParts);\n }\n }\n\n // Draw an edge between the first vertex and all subsequent vertices to form an n-gon\n\n const v1 = faceVertices[0];\n\n for (let j = 1, jl = faceVertices.length - 1; j < jl; j++) {\n const v2 = faceVertices[j];\n const v3 = faceVertices[j + 1];\n\n state.addFace(v1[0], v2[0], v3[0], v1[1], v2[1], v3[1], v1[2], v2[2], v3[2]);\n }\n } else if (lineFirstChar === 'l') {\n const lineParts = line.substring(1).trim().split(' ');\n let lineVertices;\n const lineUVs = [];\n\n if (line.indexOf('/') === -1) {\n lineVertices = lineParts;\n } else {\n lineVertices = [];\n for (let li = 0, llen = lineParts.length; li < llen; li++) {\n const parts = lineParts[li].split('/');\n\n if (parts[0] !== '') lineVertices.push(parts[0]);\n if (parts[1] !== '') lineUVs.push(parts[1]);\n }\n }\n state.addLineGeometry(lineVertices, lineUVs);\n } else if (lineFirstChar === 'p') {\n const lineData = line.substr(1).trim();\n const pointData = lineData.split(' ');\n\n state.addPointGeometry(pointData);\n } else if ((result = OBJECT_RE.exec(line)) !== null) {\n // o object_name\n // or\n // g group_name\n\n // WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869\n // var name = result[ 0 ].substr( 1 ).trim();\n const name = (' ' + result[0].substr(1).trim()).substr(1); // eslint-disable-line\n\n state.startObject(name);\n } else if (MATERIAL_USE_RE.test(line)) {\n // material\n\n state.object.startMaterial(line.substring(7).trim(), state.materialLibraries);\n } else if (MATERIAL_RE.test(line)) {\n // mtl file\n\n state.materialLibraries.push(line.substring(7).trim());\n } else if (lineFirstChar === 's') {\n result = line.split(' ');\n\n // smooth shading\n\n // @todo Handle files that have varying smooth values for a set of faces inside one geometry,\n // but does not define a usemtl for each face set.\n // This should be detected and a dummy material created (later MultiMaterial and geometry groups).\n // This requires some care to not create extra material on each smooth value for \"normal\" obj files.\n // where explicit usemtl defines geometry groups.\n // Example asset: examples/models/obj/cerberus/Cerberus.obj\n\n /*\n * http://paulbourke.net/dataformats/obj/\n * or\n * http://www.cs.utah.edu/~boulos/cs3505/obj_spec.pdf\n *\n * From chapter \"Grouping\" Syntax explanation \"s group_number\":\n * \"group_number is the smoothing group number. To turn off smoothing groups, use a value of 0 or off.\n * Polygonal elements use group numbers to put elements in different smoothing groups. For free-form\n * surfaces, smoothing groups are either turned on or off; there is no difference between values greater\n * than 0.\"\n */\n if (result.length > 1) {\n const value = result[1].trim().toLowerCase();\n state.object.smooth = value !== '0' && value !== 'off';\n } else {\n // ZBrush can produce \"s\" lines #11707\n state.object.smooth = true;\n }\n const material = state.object.currentMaterial();\n if (material) material.smooth = state.object.smooth;\n } else {\n // Handle null terminated files without exception\n if (line === '\\0') continue;\n\n throw new Error(`Unexpected line: \"${line}\"`);\n }\n }\n\n state.finalize();\n\n const meshes = [];\n const materials = [];\n\n for (const object of state.objects) {\n const {geometry} = object;\n\n // Skip o/g line declarations that did not follow with any faces\n if (geometry.vertices.length === 0) continue;\n\n const mesh = {\n header: {\n vertexCount: geometry.vertices.length / 3\n },\n attributes: {}\n };\n\n switch (geometry.type) {\n case 'Points':\n mesh.mode = 0; // GL.POINTS\n break;\n case 'Line':\n mesh.mode = 1; // GL.LINES\n break;\n default:\n mesh.mode = 4; // GL.TRIANGLES\n break;\n }\n\n mesh.attributes.POSITION = {value: new Float32Array(geometry.vertices), size: 3};\n\n if (geometry.normals.length > 0) {\n mesh.attributes.NORMAL = {value: new Float32Array(geometry.normals), size: 3};\n }\n\n if (geometry.colors.length > 0) {\n mesh.attributes.COLOR_0 = {value: new Float32Array(geometry.colors), size: 3};\n }\n\n if (geometry.uvs.length > 0) {\n mesh.attributes.TEXCOORD_0 = {value: new Float32Array(geometry.uvs), size: 2};\n }\n\n // Create materials\n mesh.materials = [];\n for (const sourceMaterial of object.materials) {\n // TODO - support full spec\n const _material = {\n name: sourceMaterial.name,\n flatShading: !sourceMaterial.smooth\n };\n mesh.materials.push(_material);\n materials.push(_material);\n }\n\n mesh.name = object.name;\n meshes.push(mesh);\n }\n\n return {meshes, materials};\n};\n"],"file":"parse-obj.js"}
1
+ {"version":3,"sources":["../../../src/lib/parse-obj.js"],"names":["OBJECT_RE","MATERIAL_RE","MATERIAL_USE_RE","MeshMaterial","index","name","mtllib","smooth","groupStart","groupEnd","groupCount","inherited","MeshObject","geometry","vertices","normals","colors","uvs","materials","fromDeclaration","libraries","previous","_finalize","splice","material","length","Array","isArray","undefined","push","end","lastMultiMaterial","currentMaterial","mi","ParserState","objects","object","materialLibraries","startObject","previousMaterial","clone","declared","value","len","parseInt","a","b","c","src","dst","ua","ub","uc","na","nb","nc","vLen","ia","parseVertexIndex","ib","ic","addVertex","uvLen","parseUVIndex","addUV","nLen","parseNormalIndex","addNormal","addColor","type","vertex","addVertexPoint","addVertexLine","uv","addUVLine","text","state","indexOf","replace","lines","split","line","lineFirstChar","lineLength","result","trimLeft","i","l","trim","charAt","data","parseFloat","lineData","substr","vertexData","faceVertices","j","jl","vertexParts","v1","v2","v3","addFace","lineParts","substring","lineVertices","lineUVs","li","llen","parts","addLineGeometry","pointData","addPointGeometry","exec","test","startMaterial","toLowerCase","Error","finalize","meshes","mesh","header","vertexCount","attributes","mode","POSITION","Float32Array","size","NORMAL","COLOR_0","TEXCOORD_0","sourceMaterial","_material","flatShading"],"mappings":"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","sourcesContent":["// OBJ Loader, adapted from THREE.js (MIT license)\n//\n// Attributions per original THREE.js source file:\n//\n// @author mrdoob / http://mrdoob.com/\n\n// @ts-nocheck\n\n// o object_name | g group_name\nconst OBJECT_RE = /^[og]\\s*(.+)?/;\n// mtllib file_reference\nconst MATERIAL_RE = /^mtllib /;\n// usemtl material_name\nconst MATERIAL_USE_RE = /^usemtl /;\n\nclass MeshMaterial {\n constructor({index, name = '', mtllib, smooth, groupStart}) {\n this.index = index;\n this.name = name;\n this.mtllib = mtllib;\n this.smooth = smooth;\n this.groupStart = groupStart;\n this.groupEnd = -1;\n this.groupCount = -1;\n this.inherited = false;\n }\n\n clone(index = this.index) {\n return new MeshMaterial({\n index,\n name: this.name,\n mtllib: this.mtllib,\n smooth: this.smooth,\n groupStart: 0\n });\n }\n}\n\nclass MeshObject {\n constructor(name = '') {\n this.name = name;\n\n this.geometry = {\n vertices: [],\n normals: [],\n colors: [],\n uvs: []\n };\n\n this.materials = [];\n this.smooth = true;\n\n this.fromDeclaration = null;\n }\n\n startMaterial(name, libraries) {\n const previous = this._finalize(false);\n\n // New usemtl declaration overwrites an inherited material, except if faces were declared\n // after the material, then it must be preserved for proper MultiMaterial continuation.\n if (previous && (previous.inherited || previous.groupCount <= 0)) {\n this.materials.splice(previous.index, 1);\n }\n\n const material = new MeshMaterial({\n index: this.materials.length,\n name,\n mtllib:\n Array.isArray(libraries) && libraries.length > 0 ? libraries[libraries.length - 1] : '',\n smooth: previous !== undefined ? previous.smooth : this.smooth,\n groupStart: previous !== undefined ? previous.groupEnd : 0\n });\n\n this.materials.push(material);\n\n return material;\n }\n\n currentMaterial() {\n if (this.materials.length > 0) {\n return this.materials[this.materials.length - 1];\n }\n\n return undefined;\n }\n\n _finalize(end) {\n const lastMultiMaterial = this.currentMaterial();\n if (lastMultiMaterial && lastMultiMaterial.groupEnd === -1) {\n lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;\n lastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;\n lastMultiMaterial.inherited = false;\n }\n\n // Ignore objects tail materials if no face declarations followed them before a new o/g started.\n if (end && this.materials.length > 1) {\n for (let mi = this.materials.length - 1; mi >= 0; mi--) {\n if (this.materials[mi].groupCount <= 0) {\n this.materials.splice(mi, 1);\n }\n }\n }\n\n // Guarantee at least one empty material, this makes the creation later more straight forward.\n if (end && this.materials.length === 0) {\n this.materials.push({\n name: '',\n smooth: this.smooth\n });\n }\n\n return lastMultiMaterial;\n }\n}\n\nclass ParserState {\n constructor() {\n this.objects = [];\n this.object = null;\n\n this.vertices = [];\n this.normals = [];\n this.colors = [];\n this.uvs = [];\n\n this.materialLibraries = [];\n\n this.startObject('', false);\n }\n\n startObject(name, fromDeclaration = true) {\n // If the current object (initial from reset) is not from a g/o declaration in the parsed\n // file. We need to use it for the first parsed g/o to keep things in sync.\n if (this.object && !this.object.fromDeclaration) {\n this.object.name = name;\n this.object.fromDeclaration = fromDeclaration;\n return;\n }\n\n const previousMaterial =\n this.object && typeof this.object.currentMaterial === 'function'\n ? this.object.currentMaterial()\n : undefined;\n\n if (this.object && typeof this.object._finalize === 'function') {\n this.object._finalize(true);\n }\n\n this.object = new MeshObject(name);\n this.object.fromDeclaration = fromDeclaration;\n\n // Inherit previous objects material.\n // Spec tells us that a declared material must be set to all objects until a new material is declared.\n // If a usemtl declaration is encountered while this new object is being parsed, it will\n // overwrite the inherited material. Exception being that there was already face declarations\n // to the inherited material, then it will be preserved for proper MultiMaterial continuation.\n if (previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function') {\n const declared = previousMaterial.clone(0);\n declared.inherited = true;\n this.object.materials.push(declared);\n }\n\n this.objects.push(this.object);\n }\n\n finalize() {\n if (this.object && typeof this.object._finalize === 'function') {\n this.object._finalize(true);\n }\n }\n\n parseVertexIndex(value, len) {\n const index = parseInt(value);\n return (index >= 0 ? index - 1 : index + len / 3) * 3;\n }\n\n parseNormalIndex(value, len) {\n const index = parseInt(value);\n return (index >= 0 ? index - 1 : index + len / 3) * 3;\n }\n\n parseUVIndex(value, len) {\n const index = parseInt(value);\n return (index >= 0 ? index - 1 : index + len / 2) * 2;\n }\n\n addVertex(a, b, c) {\n const src = this.vertices;\n const dst = this.object.geometry.vertices;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\n }\n\n addVertexPoint(a) {\n const src = this.vertices;\n const dst = this.object.geometry.vertices;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n }\n\n addVertexLine(a) {\n const src = this.vertices;\n const dst = this.object.geometry.vertices;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n }\n\n addNormal(a, b, c) {\n const src = this.normals;\n const dst = this.object.geometry.normals;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\n }\n\n addColor(a, b, c) {\n const src = this.colors;\n const dst = this.object.geometry.colors;\n\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\n }\n\n addUV(a, b, c) {\n const src = this.uvs;\n const dst = this.object.geometry.uvs;\n\n dst.push(src[a + 0], src[a + 1]);\n dst.push(src[b + 0], src[b + 1]);\n dst.push(src[c + 0], src[c + 1]);\n }\n\n addUVLine(a) {\n const src = this.uvs;\n const dst = this.object.geometry.uvs;\n\n dst.push(src[a + 0], src[a + 1]);\n }\n\n // eslint-disable-next-line max-params\n addFace(a, b, c, ua, ub, uc, na, nb, nc) {\n const vLen = this.vertices.length;\n\n let ia = this.parseVertexIndex(a, vLen);\n let ib = this.parseVertexIndex(b, vLen);\n let ic = this.parseVertexIndex(c, vLen);\n\n this.addVertex(ia, ib, ic);\n\n if (ua !== undefined && ua !== '') {\n const uvLen = this.uvs.length;\n ia = this.parseUVIndex(ua, uvLen);\n ib = this.parseUVIndex(ub, uvLen);\n ic = this.parseUVIndex(uc, uvLen);\n this.addUV(ia, ib, ic);\n }\n\n if (na !== undefined && na !== '') {\n // Normals are many times the same. If so, skip function call and parseInt.\n const nLen = this.normals.length;\n ia = this.parseNormalIndex(na, nLen);\n\n ib = na === nb ? ia : this.parseNormalIndex(nb, nLen);\n ic = na === nc ? ia : this.parseNormalIndex(nc, nLen);\n\n this.addNormal(ia, ib, ic);\n }\n\n if (this.colors.length > 0) {\n this.addColor(ia, ib, ic);\n }\n }\n\n addPointGeometry(vertices) {\n this.object.geometry.type = 'Points';\n\n const vLen = this.vertices.length;\n\n for (const vertex of vertices) {\n this.addVertexPoint(this.parseVertexIndex(vertex, vLen));\n }\n }\n\n addLineGeometry(vertices, uvs) {\n this.object.geometry.type = 'Line';\n\n const vLen = this.vertices.length;\n const uvLen = this.uvs.length;\n\n for (const vertex of vertices) {\n this.addVertexLine(this.parseVertexIndex(vertex, vLen));\n }\n\n for (const uv of uvs) {\n this.addUVLine(this.parseUVIndex(uv, uvLen));\n }\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nexport default (text) => {\n const state = new ParserState();\n\n if (text.indexOf('\\r\\n') !== -1) {\n // This is faster than String.split with regex that splits on both\n text = text.replace(/\\r\\n/g, '\\n');\n }\n\n if (text.indexOf('\\\\\\n') !== -1) {\n // join lines separated by a line continuation character (\\)\n text = text.replace(/\\\\\\n/g, '');\n }\n\n const lines = text.split('\\n');\n let line = '';\n let lineFirstChar = '';\n let lineLength = 0;\n let result = [];\n\n // Faster to just trim left side of the line. Use if available.\n const trimLeft = typeof ''.trimLeft === 'function';\n\n /* eslint-disable no-continue, max-depth */\n for (let i = 0, l = lines.length; i < l; i++) {\n line = lines[i];\n line = trimLeft ? line.trimLeft() : line.trim();\n lineLength = line.length;\n\n if (lineLength === 0) continue;\n\n lineFirstChar = line.charAt(0);\n\n // @todo invoke passed in handler if any\n if (lineFirstChar === '#') continue;\n\n if (lineFirstChar === 'v') {\n const data = line.split(/\\s+/);\n\n switch (data[0]) {\n case 'v':\n state.vertices.push(parseFloat(data[1]), parseFloat(data[2]), parseFloat(data[3]));\n if (data.length === 8) {\n state.colors.push(parseFloat(data[4]), parseFloat(data[5]), parseFloat(data[6]));\n }\n break;\n case 'vn':\n state.normals.push(parseFloat(data[1]), parseFloat(data[2]), parseFloat(data[3]));\n break;\n case 'vt':\n state.uvs.push(parseFloat(data[1]), parseFloat(data[2]));\n break;\n default:\n }\n } else if (lineFirstChar === 'f') {\n const lineData = line.substr(1).trim();\n const vertexData = lineData.split(/\\s+/);\n const faceVertices = [];\n\n // Parse the face vertex data into an easy to work with format\n\n for (let j = 0, jl = vertexData.length; j < jl; j++) {\n const vertex = vertexData[j];\n\n if (vertex.length > 0) {\n const vertexParts = vertex.split('/');\n faceVertices.push(vertexParts);\n }\n }\n\n // Draw an edge between the first vertex and all subsequent vertices to form an n-gon\n\n const v1 = faceVertices[0];\n\n for (let j = 1, jl = faceVertices.length - 1; j < jl; j++) {\n const v2 = faceVertices[j];\n const v3 = faceVertices[j + 1];\n\n state.addFace(v1[0], v2[0], v3[0], v1[1], v2[1], v3[1], v1[2], v2[2], v3[2]);\n }\n } else if (lineFirstChar === 'l') {\n const lineParts = line.substring(1).trim().split(' ');\n let lineVertices;\n const lineUVs = [];\n\n if (line.indexOf('/') === -1) {\n lineVertices = lineParts;\n } else {\n lineVertices = [];\n for (let li = 0, llen = lineParts.length; li < llen; li++) {\n const parts = lineParts[li].split('/');\n\n if (parts[0] !== '') lineVertices.push(parts[0]);\n if (parts[1] !== '') lineUVs.push(parts[1]);\n }\n }\n state.addLineGeometry(lineVertices, lineUVs);\n } else if (lineFirstChar === 'p') {\n const lineData = line.substr(1).trim();\n const pointData = lineData.split(' ');\n\n state.addPointGeometry(pointData);\n } else if ((result = OBJECT_RE.exec(line)) !== null) {\n // o object_name\n // or\n // g group_name\n\n // WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869\n // var name = result[ 0 ].substr( 1 ).trim();\n const name = (' ' + result[0].substr(1).trim()).substr(1); // eslint-disable-line\n\n state.startObject(name);\n } else if (MATERIAL_USE_RE.test(line)) {\n // material\n\n state.object.startMaterial(line.substring(7).trim(), state.materialLibraries);\n } else if (MATERIAL_RE.test(line)) {\n // mtl file\n\n state.materialLibraries.push(line.substring(7).trim());\n } else if (lineFirstChar === 's') {\n result = line.split(' ');\n\n // smooth shading\n\n // @todo Handle files that have varying smooth values for a set of faces inside one geometry,\n // but does not define a usemtl for each face set.\n // This should be detected and a dummy material created (later MultiMaterial and geometry groups).\n // This requires some care to not create extra material on each smooth value for \"normal\" obj files.\n // where explicit usemtl defines geometry groups.\n // Example asset: examples/models/obj/cerberus/Cerberus.obj\n\n /*\n * http://paulbourke.net/dataformats/obj/\n * or\n * http://www.cs.utah.edu/~boulos/cs3505/obj_spec.pdf\n *\n * From chapter \"Grouping\" Syntax explanation \"s group_number\":\n * \"group_number is the smoothing group number. To turn off smoothing groups, use a value of 0 or off.\n * Polygonal elements use group numbers to put elements in different smoothing groups. For free-form\n * surfaces, smoothing groups are either turned on or off; there is no difference between values greater\n * than 0.\"\n */\n if (result.length > 1) {\n const value = result[1].trim().toLowerCase();\n state.object.smooth = value !== '0' && value !== 'off';\n } else {\n // ZBrush can produce \"s\" lines #11707\n state.object.smooth = true;\n }\n const material = state.object.currentMaterial();\n if (material) material.smooth = state.object.smooth;\n } else {\n // Handle null terminated files without exception\n if (line === '\\0') continue;\n\n throw new Error(`Unexpected line: \"${line}\"`);\n }\n }\n\n state.finalize();\n\n const meshes = [];\n const materials = [];\n\n for (const object of state.objects) {\n const {geometry} = object;\n\n // Skip o/g line declarations that did not follow with any faces\n if (geometry.vertices.length === 0) continue;\n\n const mesh = {\n header: {\n vertexCount: geometry.vertices.length / 3\n },\n attributes: {}\n };\n\n switch (geometry.type) {\n case 'Points':\n mesh.mode = 0; // GL.POINTS\n break;\n case 'Line':\n mesh.mode = 1; // GL.LINES\n break;\n default:\n mesh.mode = 4; // GL.TRIANGLES\n break;\n }\n\n mesh.attributes.POSITION = {value: new Float32Array(geometry.vertices), size: 3};\n\n if (geometry.normals.length > 0) {\n mesh.attributes.NORMAL = {value: new Float32Array(geometry.normals), size: 3};\n }\n\n if (geometry.colors.length > 0) {\n mesh.attributes.COLOR_0 = {value: new Float32Array(geometry.colors), size: 3};\n }\n\n if (geometry.uvs.length > 0) {\n mesh.attributes.TEXCOORD_0 = {value: new Float32Array(geometry.uvs), size: 2};\n }\n\n // Create materials\n mesh.materials = [];\n for (const sourceMaterial of object.materials) {\n // TODO - support full spec\n const _material = {\n name: sourceMaterial.name,\n flatShading: !sourceMaterial.smooth\n };\n mesh.materials.push(_material);\n materials.push(_material);\n }\n\n mesh.name = object.name;\n meshes.push(mesh);\n }\n\n return {meshes, materials};\n};\n"],"file":"parse-obj.js"}
@@ -7,10 +7,11 @@ exports.makeSchemaFromAttributes = makeSchemaFromAttributes;
7
7
 
8
8
  var _schema = require("@loaders.gl/schema");
9
9
 
10
- function makeSchemaFromAttributes(attributes, metadata = {}) {
11
- let metadataMap;
10
+ function makeSchemaFromAttributes(attributes) {
11
+ var metadata = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
+ var metadataMap;
12
13
 
13
- for (const key in metadata) {
14
+ for (var key in metadata) {
14
15
  metadataMap = metadataMap || new Map();
15
16
 
16
17
  if (key !== 'value') {
@@ -18,11 +19,11 @@ function makeSchemaFromAttributes(attributes, metadata = {}) {
18
19
  }
19
20
  }
20
21
 
21
- const fields = [];
22
+ var fields = [];
22
23
 
23
- for (const attributeName in attributes) {
24
- const attribute = attributes[attributeName];
25
- const field = getArrowFieldFromAttribute(attributeName, attribute);
24
+ for (var attributeName in attributes) {
25
+ var attribute = attributes[attributeName];
26
+ var field = getArrowFieldFromAttribute(attributeName, attribute);
26
27
  fields.push(field);
27
28
  }
28
29
 
@@ -30,16 +31,16 @@ function makeSchemaFromAttributes(attributes, metadata = {}) {
30
31
  }
31
32
 
32
33
  function getArrowFieldFromAttribute(attributeName, attribute) {
33
- const metadataMap = new Map();
34
+ var metadataMap = new Map();
34
35
 
35
- for (const key in attribute) {
36
+ for (var key in attribute) {
36
37
  if (key !== 'value') {
37
38
  metadataMap.set(key, JSON.stringify(attribute[key]));
38
39
  }
39
40
  }
40
41
 
41
- const type = (0, _schema.getArrowTypeFromTypedArray)(attribute.value);
42
- const isSingleValue = !('size' in attribute) || attribute.size === 1;
42
+ var type = (0, _schema.getArrowTypeFromTypedArray)(attribute.value);
43
+ var isSingleValue = !('size' in attribute) || attribute.size === 1;
43
44
  return isSingleValue ? new _schema.Field(attributeName, type, false, metadataMap) : new _schema.Field(attributeName, new _schema.FixedSizeList(attribute.size, new _schema.Field('value', type)), false, metadataMap);
44
45
  }
45
46
  //# sourceMappingURL=schema-attribute-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/schema-attribute-utils.js"],"names":["makeSchemaFromAttributes","attributes","metadata","metadataMap","key","Map","set","JSON","stringify","fields","attributeName","attribute","field","getArrowFieldFromAttribute","push","Schema","type","value","isSingleValue","size","Field","FixedSizeList"],"mappings":";;;;;;;AAAA;;AAEO,SAASA,wBAAT,CAAkCC,UAAlC,EAA8CC,QAAQ,GAAG,EAAzD,EAA6D;AAClE,MAAIC,WAAJ;;AACA,OAAK,MAAMC,GAAX,IAAkBF,QAAlB,EAA4B;AAC1BC,IAAAA,WAAW,GAAGA,WAAW,IAAI,IAAIE,GAAJ,EAA7B;;AACA,QAAID,GAAG,KAAK,OAAZ,EAAqB;AACnBD,MAAAA,WAAW,CAACG,GAAZ,CAAgBF,GAAhB,EAAqBG,IAAI,CAACC,SAAL,CAAeN,QAAQ,CAACE,GAAD,CAAvB,CAArB;AACD;AACF;;AAED,QAAMK,MAAM,GAAG,EAAf;;AACA,OAAK,MAAMC,aAAX,IAA4BT,UAA5B,EAAwC;AACtC,UAAMU,SAAS,GAAGV,UAAU,CAACS,aAAD,CAA5B;AACA,UAAME,KAAK,GAAGC,0BAA0B,CAACH,aAAD,EAAgBC,SAAhB,CAAxC;AACAF,IAAAA,MAAM,CAACK,IAAP,CAAYF,KAAZ;AACD;;AACD,SAAO,IAAIG,cAAJ,CAAWN,MAAX,EAAmBN,WAAnB,CAAP;AACD;;AAED,SAASU,0BAAT,CAAoCH,aAApC,EAAmDC,SAAnD,EAA8D;AAC5D,QAAMR,WAAW,GAAG,IAAIE,GAAJ,EAApB;;AACA,OAAK,MAAMD,GAAX,IAAkBO,SAAlB,EAA6B;AAC3B,QAAIP,GAAG,KAAK,OAAZ,EAAqB;AACnBD,MAAAA,WAAW,CAACG,GAAZ,CAAgBF,GAAhB,EAAqBG,IAAI,CAACC,SAAL,CAAeG,SAAS,CAACP,GAAD,CAAxB,CAArB;AACD;AACF;;AAED,QAAMY,IAAI,GAAG,wCAA2BL,SAAS,CAACM,KAArC,CAAb;AACA,QAAMC,aAAa,GAAG,EAAE,UAAUP,SAAZ,KAA0BA,SAAS,CAACQ,IAAV,KAAmB,CAAnE;AACA,SAAOD,aAAa,GAChB,IAAIE,aAAJ,CAAUV,aAAV,EAAyBM,IAAzB,EAA+B,KAA/B,EAAsCb,WAAtC,CADgB,GAEhB,IAAIiB,aAAJ,CACEV,aADF,EAEE,IAAIW,qBAAJ,CAAkBV,SAAS,CAACQ,IAA5B,EAAkC,IAAIC,aAAJ,CAAU,OAAV,EAAmBJ,IAAnB,CAAlC,CAFF,EAGE,KAHF,EAIEb,WAJF,CAFJ;AAQD","sourcesContent":["import {Schema, Field, FixedSizeList, getArrowTypeFromTypedArray} from '@loaders.gl/schema';\n\nexport function makeSchemaFromAttributes(attributes, metadata = {}) {\n let metadataMap;\n for (const key in metadata) {\n metadataMap = metadataMap || new Map();\n if (key !== 'value') {\n metadataMap.set(key, JSON.stringify(metadata[key]));\n }\n }\n\n const fields = [];\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const field = getArrowFieldFromAttribute(attributeName, attribute);\n fields.push(field);\n }\n return new Schema(fields, metadataMap);\n}\n\nfunction getArrowFieldFromAttribute(attributeName, attribute) {\n const metadataMap = new Map();\n for (const key in attribute) {\n if (key !== 'value') {\n metadataMap.set(key, JSON.stringify(attribute[key]));\n }\n }\n\n const type = getArrowTypeFromTypedArray(attribute.value);\n const isSingleValue = !('size' in attribute) || attribute.size === 1;\n return isSingleValue\n ? new Field(attributeName, type, false, metadataMap)\n : new Field(\n attributeName,\n new FixedSizeList(attribute.size, new Field('value', type)),\n false,\n metadataMap\n );\n}\n"],"file":"schema-attribute-utils.js"}
1
+ {"version":3,"sources":["../../../src/lib/schema-attribute-utils.js"],"names":["makeSchemaFromAttributes","attributes","metadata","metadataMap","key","Map","set","JSON","stringify","fields","attributeName","attribute","field","getArrowFieldFromAttribute","push","Schema","type","value","isSingleValue","size","Field","FixedSizeList"],"mappings":";;;;;;;AAAA;;AAEO,SAASA,wBAAT,CAAkCC,UAAlC,EAA6D;AAAA,MAAfC,QAAe,uEAAJ,EAAI;AAClE,MAAIC,WAAJ;;AACA,OAAK,IAAMC,GAAX,IAAkBF,QAAlB,EAA4B;AAC1BC,IAAAA,WAAW,GAAGA,WAAW,IAAI,IAAIE,GAAJ,EAA7B;;AACA,QAAID,GAAG,KAAK,OAAZ,EAAqB;AACnBD,MAAAA,WAAW,CAACG,GAAZ,CAAgBF,GAAhB,EAAqBG,IAAI,CAACC,SAAL,CAAeN,QAAQ,CAACE,GAAD,CAAvB,CAArB;AACD;AACF;;AAED,MAAMK,MAAM,GAAG,EAAf;;AACA,OAAK,IAAMC,aAAX,IAA4BT,UAA5B,EAAwC;AACtC,QAAMU,SAAS,GAAGV,UAAU,CAACS,aAAD,CAA5B;AACA,QAAME,KAAK,GAAGC,0BAA0B,CAACH,aAAD,EAAgBC,SAAhB,CAAxC;AACAF,IAAAA,MAAM,CAACK,IAAP,CAAYF,KAAZ;AACD;;AACD,SAAO,IAAIG,cAAJ,CAAWN,MAAX,EAAmBN,WAAnB,CAAP;AACD;;AAED,SAASU,0BAAT,CAAoCH,aAApC,EAAmDC,SAAnD,EAA8D;AAC5D,MAAMR,WAAW,GAAG,IAAIE,GAAJ,EAApB;;AACA,OAAK,IAAMD,GAAX,IAAkBO,SAAlB,EAA6B;AAC3B,QAAIP,GAAG,KAAK,OAAZ,EAAqB;AACnBD,MAAAA,WAAW,CAACG,GAAZ,CAAgBF,GAAhB,EAAqBG,IAAI,CAACC,SAAL,CAAeG,SAAS,CAACP,GAAD,CAAxB,CAArB;AACD;AACF;;AAED,MAAMY,IAAI,GAAG,wCAA2BL,SAAS,CAACM,KAArC,CAAb;AACA,MAAMC,aAAa,GAAG,EAAE,UAAUP,SAAZ,KAA0BA,SAAS,CAACQ,IAAV,KAAmB,CAAnE;AACA,SAAOD,aAAa,GAChB,IAAIE,aAAJ,CAAUV,aAAV,EAAyBM,IAAzB,EAA+B,KAA/B,EAAsCb,WAAtC,CADgB,GAEhB,IAAIiB,aAAJ,CACEV,aADF,EAEE,IAAIW,qBAAJ,CAAkBV,SAAS,CAACQ,IAA5B,EAAkC,IAAIC,aAAJ,CAAU,OAAV,EAAmBJ,IAAnB,CAAlC,CAFF,EAGE,KAHF,EAIEb,WAJF,CAFJ;AAQD","sourcesContent":["import {Schema, Field, FixedSizeList, getArrowTypeFromTypedArray} from '@loaders.gl/schema';\n\nexport function makeSchemaFromAttributes(attributes, metadata = {}) {\n let metadataMap;\n for (const key in metadata) {\n metadataMap = metadataMap || new Map();\n if (key !== 'value') {\n metadataMap.set(key, JSON.stringify(metadata[key]));\n }\n }\n\n const fields = [];\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const field = getArrowFieldFromAttribute(attributeName, attribute);\n fields.push(field);\n }\n return new Schema(fields, metadataMap);\n}\n\nfunction getArrowFieldFromAttribute(attributeName, attribute) {\n const metadataMap = new Map();\n for (const key in attribute) {\n if (key !== 'value') {\n metadataMap.set(key, JSON.stringify(attribute[key]));\n }\n }\n\n const type = getArrowTypeFromTypedArray(attribute.value);\n const isSingleValue = !('size' in attribute) || attribute.size === 1;\n return isSingleValue\n ? new Field(attributeName, type, false, metadataMap)\n : new Field(\n attributeName,\n new FixedSizeList(attribute.size, new Field('value', type)),\n false,\n metadataMap\n );\n}\n"],"file":"schema-attribute-utils.js"}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports._typecheckOBJLoader = exports.OBJLoader = void 0;
7
- const VERSION = typeof "3.0.13" !== 'undefined' ? "3.0.13" : 'latest';
8
- const OBJLoader = {
7
+ var VERSION = typeof "3.0.14" !== 'undefined' ? "3.0.14" : 'latest';
8
+ var OBJLoader = {
9
9
  name: 'OBJ',
10
10
  id: 'obj',
11
11
  module: 'obj',
@@ -24,6 +24,6 @@ function testOBJFile(text) {
24
24
  return text[0] === 'v';
25
25
  }
26
26
 
27
- const _typecheckOBJLoader = OBJLoader;
27
+ var _typecheckOBJLoader = OBJLoader;
28
28
  exports._typecheckOBJLoader = _typecheckOBJLoader;
29
29
  //# sourceMappingURL=obj-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/obj-loader.ts"],"names":["VERSION","OBJLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testOBJFile","options","obj","text","_typecheckOBJLoader"],"mappings":";;;;;;AAIA,MAAMA,OAAO,GAAG,oBAAuB,WAAvB,cAAmD,QAAnE;AAKO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,KADiB;AAEvBC,EAAAA,EAAE,EAAE,KAFmB;AAGvBC,EAAAA,MAAM,EAAE,KAHe;AAIvBC,EAAAA,OAAO,EAAEL,OAJc;AAKvBM,EAAAA,MAAM,EAAE,IALe;AAMvBC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANW;AAOvBC,EAAAA,SAAS,EAAE,CAAC,YAAD,CAPY;AAQvBC,EAAAA,QAAQ,EAAEC,WARa;AASvBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AATc,CAAlB;;;AAcP,SAASF,WAAT,CAAqBG,IAArB,EAA2B;AAEzB,SAAOA,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAnB;AACD;;AAEM,MAAMC,mBAA2B,GAAGb,SAApC","sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Worker loader for the OBJ geometry format\n */\nexport const OBJLoader = {\n name: 'OBJ',\n id: 'obj',\n module: 'obj',\n version: VERSION,\n worker: true,\n extensions: ['obj'],\n mimeTypes: ['text/plain'],\n testText: testOBJFile,\n options: {\n obj: {}\n }\n};\n\nfunction testOBJFile(text) {\n // TODO - There could be comment line first\n return text[0] === 'v';\n}\n\nexport const _typecheckOBJLoader: Loader = OBJLoader;\n"],"file":"obj-loader.js"}
1
+ {"version":3,"sources":["../../src/obj-loader.ts"],"names":["VERSION","OBJLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testOBJFile","options","obj","text","_typecheckOBJLoader"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,oBAAuB,WAAvB,cAAmD,QAAnE;AAKO,IAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,KADiB;AAEvBC,EAAAA,EAAE,EAAE,KAFmB;AAGvBC,EAAAA,MAAM,EAAE,KAHe;AAIvBC,EAAAA,OAAO,EAAEL,OAJc;AAKvBM,EAAAA,MAAM,EAAE,IALe;AAMvBC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANW;AAOvBC,EAAAA,SAAS,EAAE,CAAC,YAAD,CAPY;AAQvBC,EAAAA,QAAQ,EAAEC,WARa;AASvBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AATc,CAAlB;;;AAcP,SAASF,WAAT,CAAqBG,IAArB,EAA2B;AAEzB,SAAOA,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAnB;AACD;;AAEM,IAAMC,mBAA2B,GAAGb,SAApC","sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Worker loader for the OBJ geometry format\n */\nexport const OBJLoader = {\n name: 'OBJ',\n id: 'obj',\n module: 'obj',\n version: VERSION,\n worker: true,\n extensions: ['obj'],\n mimeTypes: ['text/plain'],\n testText: testOBJFile,\n options: {\n obj: {}\n }\n};\n\nfunction testOBJFile(text) {\n // TODO - There could be comment line first\n return text[0] === 'v';\n}\n\nexport const _typecheckOBJLoader: Loader = OBJLoader;\n"],"file":"obj-loader.js"}
@@ -1,4 +1,4 @@
1
- const VERSION = typeof "3.0.13" !== 'undefined' ? "3.0.13" : 'latest';
1
+ const VERSION = typeof "3.0.14" !== 'undefined' ? "3.0.14" : 'latest';
2
2
  export const OBJLoader = {
3
3
  name: 'OBJ',
4
4
  id: 'obj',
@@ -1,2 +1,2 @@
1
- !function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=19)}([function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(18);t.exports=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&n(t,e)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}t.exports=function(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){t.exports=r(13)},function(t,e){function r(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}t.exports=function(t){return function(){var e=this,n=arguments;return new Promise((function(o,i){var a=t.apply(e,n);function s(t){r(a,o,i,s,u,"next",t)}function u(t){r(a,o,i,s,u,"throw",t)}s(void 0)}))}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(t.exports=r=function(t){return typeof t},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=r=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.default=t.exports,t.exports.__esModule=!0),r(e)}t.exports=r,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(14),o=r(15),i=r(16),a=r(17);t.exports=function(t){return n(t)||o(t)||i(t)||a()},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(e){return t.exports=r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},t.exports.default=t.exports,t.exports.__esModule=!0,r(e)}t.exports=r,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(7).default,o=r(4);t.exports=function(t,e){return!e||"object"!==n(e)&&"function"!=typeof e?o(t):e},t.exports.default=t.exports,t.exports.__esModule=!0},,function(t,e,r){var n=function(t){"use strict";var e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function u(t,e,r,n){var o=e&&e.prototype instanceof f?e:f,i=Object.create(o.prototype),a=new S(n||[]);return i._invoke=function(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return I()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var s=x(a,r);if(s){if(s===l)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=c(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===l)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(t,r,a),i}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var l={};function f(){}function p(){}function h(){}var d={};d[o]=function(){return this};var v=Object.getPrototypeOf,y=v&&v(v(j([])));y&&y!==e&&r.call(y,o)&&(d=y);var m=h.prototype=f.prototype=Object.create(d);function g(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var n;this._invoke=function(o,i){function a(){return new e((function(n,a){!function n(o,i,a,s){var u=c(t[o],t,i);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(f).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,s)}))}s(u.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function x(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function w(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(w,this),this.reset(!0)}function j(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:I}}function I(){return{value:void 0,done:!0}}return p.prototype=m.constructor=h,h.constructor=p,p.displayName=s(h,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,s(t,a,"GeneratorFunction")),t.prototype=Object.create(m),t},t.awrap=function(t){return{__await:t}},g(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new b(u(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},g(m),s(m,a,"Generator"),m[o]=function(){return this},m.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=j,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(s&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,l):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:j(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}(t.exports);try{regeneratorRuntime=n}catch(t){Function("r","regeneratorRuntime = r")(n)}},function(t,e,r){var n=r(10);t.exports=function(t){if(Array.isArray(t))return n(t)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(10);t.exports=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(e,n){return t.exports=r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},t.exports.default=t.exports,t.exports.__esModule=!0,r(e,n)}t.exports=r,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){"use strict";r.r(e);var n=r(2),o=r.n(n),i=r(6),a=r.n(i),s=r(5),u=r.n(s),c=r(0),l=r.n(c),f=r(3),p=r.n(f),h=r(7),d=r.n(h);function v(t){return!!t&&(t instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&t instanceof MessagePort||("undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas)))}var y=new Map,m=function(){function t(){l()(this,t)}return p()(t,null,[{key:"onmessage",set:function(t){self.onmessage=function(e){if(g(e)){var r=e.data,n=r.type,o=r.payload;t(n,o)}}}},{key:"addEventListener",value:function(t){var e=y.get(t);e||(e=function(e){if(g(e)){var r=e.data,n=r.type,o=r.payload;t(n,o)}}),self.addEventListener("message",e)}},{key:"removeEventListener",value:function(t){var e=y.get(t);y.delete(t),self.removeEventListener("message",e)}},{key:"postMessage",value:function(t,e){if(self){var r={source:"loaders.gl",type:t,payload:e},n=function t(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,o=n||new Set;if(e){if(v(e))o.add(e);else if(v(e.buffer))o.add(e.buffer);else if(ArrayBuffer.isView(e));else if(r&&"object"===d()(e))for(var i in e)t(e[i],r,o)}else;return void 0===n?Array.from(o):[]}(e);self.postMessage(r,n)}}}]),t}();function g(t){var e=t.type,r=t.data;return"message"===e&&r&&"string"==typeof r.source&&r.source.startsWith("loaders.gl")}function b(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function x(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?b(Object(r),!0).forEach((function(e){o()(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var w=0;function O(t,e){return new Promise((function(r,n){var o=w++;m.addEventListener((function t(e,i){if(i.id===o)switch(e){case"done":m.removeEventListener(t),r(i.result);break;case"error":m.removeEventListener(t),n(i.error)}}));var i={id:o,input:t,options:e};m.postMessage("process",i)}))}function S(t){return j.apply(this,arguments)}function j(){return(j=a()(u.a.mark((function t(e){var r,n,o,i,a,s,c;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.loader,n=e.arrayBuffer,o=e.options,i=e.context,!r.parseSync&&!r.parse){t.next=6;break}a=n,s=r.parseSync||r.parse,t.next=13;break;case 6:if(!r.parseTextSync){t.next=12;break}c=new TextDecoder,a=c.decode(n),s=r.parseTextSync,t.next=13;break;case 12:throw new Error("Could not load data with ".concat(r.name," loader"));case 13:return o=x(x({},o),{},{modules:r&&r.options&&r.options.modules||{},worker:!1}),t.next=16,s(a,x({},o),i,r);case 16:return t.abrupt("return",t.sent);case 17:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function I(t){for(var e=1/0,r=1/0,n=1/0,o=-1/0,i=-1/0,a=-1/0,s=t.POSITION?t.POSITION.value:[],u=s&&s.length,c=0;c<u;c+=3){var l=s[c],f=s[c+1],p=s[c+2];e=l<e?l:e,r=f<r?f:r,n=p<n?p:n,o=l>o?l:o,i=f>i?f:i,a=p>a?p:a}return[[e,r,n],[o,i,a]]}function k(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return _(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function _(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var M=/^[og]\s*(.+)?/,T=/^mtllib /,L=/^usemtl /,A=function(){function t(e){var r=e.index,n=e.name,o=void 0===n?"":n,i=e.mtllib,a=e.smooth,s=e.groupStart;l()(this,t),this.index=r,this.name=o,this.mtllib=i,this.smooth=a,this.groupStart=s,this.groupEnd=-1,this.groupCount=-1,this.inherited=!1}return p()(t,[{key:"clone",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.index;return new t({index:e,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0})}}]),t}(),E=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";l()(this,t),this.name=e,this.geometry={vertices:[],normals:[],colors:[],uvs:[]},this.materials=[],this.smooth=!0,this.fromDeclaration=null}return p()(t,[{key:"startMaterial",value:function(t,e){var r=this._finalize(!1);r&&(r.inherited||r.groupCount<=0)&&this.materials.splice(r.index,1);var n=new A({index:this.materials.length,name:t,mtllib:Array.isArray(e)&&e.length>0?e[e.length-1]:"",smooth:void 0!==r?r.smooth:this.smooth,groupStart:void 0!==r?r.groupEnd:0});return this.materials.push(n),n}},{key:"currentMaterial",value:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]}},{key:"_finalize",value:function(t){var e=this.currentMaterial();if(e&&-1===e.groupEnd&&(e.groupEnd=this.geometry.vertices.length/3,e.groupCount=e.groupEnd-e.groupStart,e.inherited=!1),t&&this.materials.length>1)for(var r=this.materials.length-1;r>=0;r--)this.materials[r].groupCount<=0&&this.materials.splice(r,1);return t&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),e}}]),t}(),F=function(){function t(){l()(this,t),this.objects=[],this.object=null,this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.materialLibraries=[],this.startObject("",!1)}return p()(t,[{key:"startObject",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.object&&!this.object.fromDeclaration)return this.object.name=t,void(this.object.fromDeclaration=e);var r=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object=new E(t),this.object.fromDeclaration=e,r&&r.name&&"function"==typeof r.clone){var n=r.clone(0);n.inherited=!0,this.object.materials.push(n)}this.objects.push(this.object)}},{key:"finalize",value:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)}},{key:"parseVertexIndex",value:function(t,e){var r=parseInt(t);return 3*(r>=0?r-1:r+e/3)}},{key:"parseNormalIndex",value:function(t,e){var r=parseInt(t);return 3*(r>=0?r-1:r+e/3)}},{key:"parseUVIndex",value:function(t,e){var r=parseInt(t);return 2*(r>=0?r-1:r+e/2)}},{key:"addVertex",value:function(t,e,r){var n=this.vertices,o=this.object.geometry.vertices;o.push(n[t+0],n[t+1],n[t+2]),o.push(n[e+0],n[e+1],n[e+2]),o.push(n[r+0],n[r+1],n[r+2])}},{key:"addVertexPoint",value:function(t){var e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])}},{key:"addVertexLine",value:function(t){var e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])}},{key:"addNormal",value:function(t,e,r){var n=this.normals,o=this.object.geometry.normals;o.push(n[t+0],n[t+1],n[t+2]),o.push(n[e+0],n[e+1],n[e+2]),o.push(n[r+0],n[r+1],n[r+2])}},{key:"addColor",value:function(t,e,r){var n=this.colors,o=this.object.geometry.colors;o.push(n[t+0],n[t+1],n[t+2]),o.push(n[e+0],n[e+1],n[e+2]),o.push(n[r+0],n[r+1],n[r+2])}},{key:"addUV",value:function(t,e,r){var n=this.uvs,o=this.object.geometry.uvs;o.push(n[t+0],n[t+1]),o.push(n[e+0],n[e+1]),o.push(n[r+0],n[r+1])}},{key:"addUVLine",value:function(t){var e=this.uvs;this.object.geometry.uvs.push(e[t+0],e[t+1])}},{key:"addFace",value:function(t,e,r,n,o,i,a,s,u){var c=this.vertices.length,l=this.parseVertexIndex(t,c),f=this.parseVertexIndex(e,c),p=this.parseVertexIndex(r,c);if(this.addVertex(l,f,p),void 0!==n&&""!==n){var h=this.uvs.length;l=this.parseUVIndex(n,h),f=this.parseUVIndex(o,h),p=this.parseUVIndex(i,h),this.addUV(l,f,p)}if(void 0!==a&&""!==a){var d=this.normals.length;l=this.parseNormalIndex(a,d),f=a===s?l:this.parseNormalIndex(s,d),p=a===u?l:this.parseNormalIndex(u,d),this.addNormal(l,f,p)}this.colors.length>0&&this.addColor(l,f,p)}},{key:"addPointGeometry",value:function(t){this.object.geometry.type="Points";var e,r=this.vertices.length,n=k(t);try{for(n.s();!(e=n.n()).done;){var o=e.value;this.addVertexPoint(this.parseVertexIndex(o,r))}}catch(t){n.e(t)}finally{n.f()}}},{key:"addLineGeometry",value:function(t,e){this.object.geometry.type="Line";var r,n=this.vertices.length,o=this.uvs.length,i=k(t);try{for(i.s();!(r=i.n()).done;){var a=r.value;this.addVertexLine(this.parseVertexIndex(a,n))}}catch(t){i.e(t)}finally{i.f()}var s,u=k(e);try{for(u.s();!(s=u.n()).done;){var c=s.value;this.addUVLine(this.parseUVIndex(c,o))}}catch(t){u.e(t)}finally{u.f()}}}]),t}(),P=r(8),D=r.n(P);function N(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return U(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return U(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function U(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var z=function(){function t(e,r){l()(this,t),o()(this,"fields",void 0),o()(this,"metadata",void 0),function(t,e){if(!t)throw new Error(e||"loader assertion failed.")}(Array.isArray(e)),function(t){var e,r={},n=N(t);try{for(n.s();!(e=n.n()).done;){var o=e.value;r[o.name]&&console.warn("Schema: duplicated field name",o.name,o),r[o.name]=!0}}catch(t){n.e(t)}finally{n.f()}}(e),this.fields=e,this.metadata=r||new Map}return p()(t,[{key:"compareTo",value:function(t){if(this.metadata!==t.metadata)return!1;if(this.fields.length!==t.fields.length)return!1;for(var e=0;e<this.fields.length;++e)if(!this.fields[e].compareTo(t.fields[e]))return!1;return!0}},{key:"select",value:function(){for(var e=Object.create(null),r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];for(var i=0,a=n;i<a.length;i++){var s=a[i];e[s]=!0}var u=this.fields.filter((function(t){return e[t.name]}));return new t(u,this.metadata)}},{key:"selectAt",value:function(){for(var e=this,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];var i=n.map((function(t){return e.fields[t]})).filter(Boolean);return new t(i,this.metadata)}},{key:"assign",value:function(e){var r,n=this.metadata;if(e instanceof t){var o=e;r=o.fields,n=B(B(new Map,this.metadata),o.metadata)}else r=e;var i,a=Object.create(null),s=N(this.fields);try{for(s.s();!(i=s.n()).done;){var u=i.value;a[u.name]=u}}catch(t){s.e(t)}finally{s.f()}var c,l=N(r);try{for(l.s();!(c=l.n()).done;){var f=c.value;a[f.name]=f}}catch(t){l.e(t)}finally{l.f()}return new t(Object.values(a),n)}}]),t}();function B(t,e){return new Map([].concat(D()(t||new Map),D()(e||new Map)))}var C,V,R,G,W=r(4),Y=r.n(W),$=r(1),J=r.n($),X=r(11),q=r.n(X),H=r(9),K=r.n(H);function Q(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=K()(t);if(e){var o=K()(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return q()(this,r)}}!function(t){t[t.NONE=0]="NONE",t[t.Null=1]="Null",t[t.Int=2]="Int",t[t.Float=3]="Float",t[t.Binary=4]="Binary",t[t.Utf8=5]="Utf8",t[t.Bool=6]="Bool",t[t.Decimal=7]="Decimal",t[t.Date=8]="Date",t[t.Time=9]="Time",t[t.Timestamp=10]="Timestamp",t[t.Interval=11]="Interval",t[t.List=12]="List",t[t.Struct=13]="Struct",t[t.Union=14]="Union",t[t.FixedSizeBinary=15]="FixedSizeBinary",t[t.FixedSizeList=16]="FixedSizeList",t[t.Map=17]="Map",t[t.Dictionary=-1]="Dictionary",t[t.Int8=-2]="Int8",t[t.Int16=-3]="Int16",t[t.Int32=-4]="Int32",t[t.Int64=-5]="Int64",t[t.Uint8=-6]="Uint8",t[t.Uint16=-7]="Uint16",t[t.Uint32=-8]="Uint32",t[t.Uint64=-9]="Uint64",t[t.Float16=-10]="Float16",t[t.Float32=-11]="Float32",t[t.Float64=-12]="Float64",t[t.DateDay=-13]="DateDay",t[t.DateMillisecond=-14]="DateMillisecond",t[t.TimestampSecond=-15]="TimestampSecond",t[t.TimestampMillisecond=-16]="TimestampMillisecond",t[t.TimestampMicrosecond=-17]="TimestampMicrosecond",t[t.TimestampNanosecond=-18]="TimestampNanosecond",t[t.TimeSecond=-19]="TimeSecond",t[t.TimeMillisecond=-20]="TimeMillisecond",t[t.TimeMicrosecond=-21]="TimeMicrosecond",t[t.TimeNanosecond=-22]="TimeNanosecond",t[t.DenseUnion=-23]="DenseUnion",t[t.SparseUnion=-24]="SparseUnion",t[t.IntervalDayTime=-25]="IntervalDayTime",t[t.IntervalYearMonth=-26]="IntervalYearMonth"}(C||(C={}));var Z=function(){function t(){l()(this,t)}return p()(t,[{key:"typeId",get:function(){return C.NONE}},{key:"compareTo",value:function(t){return this===t}}],[{key:"isNull",value:function(t){return t&&t.typeId===C.Null}},{key:"isInt",value:function(t){return t&&t.typeId===C.Int}},{key:"isFloat",value:function(t){return t&&t.typeId===C.Float}},{key:"isBinary",value:function(t){return t&&t.typeId===C.Binary}},{key:"isUtf8",value:function(t){return t&&t.typeId===C.Utf8}},{key:"isBool",value:function(t){return t&&t.typeId===C.Bool}},{key:"isDecimal",value:function(t){return t&&t.typeId===C.Decimal}},{key:"isDate",value:function(t){return t&&t.typeId===C.Date}},{key:"isTime",value:function(t){return t&&t.typeId===C.Time}},{key:"isTimestamp",value:function(t){return t&&t.typeId===C.Timestamp}},{key:"isInterval",value:function(t){return t&&t.typeId===C.Interval}},{key:"isList",value:function(t){return t&&t.typeId===C.List}},{key:"isStruct",value:function(t){return t&&t.typeId===C.Struct}},{key:"isUnion",value:function(t){return t&&t.typeId===C.Union}},{key:"isFixedSizeBinary",value:function(t){return t&&t.typeId===C.FixedSizeBinary}},{key:"isFixedSizeList",value:function(t){return t&&t.typeId===C.FixedSizeList}},{key:"isMap",value:function(t){return t&&t.typeId===C.Map}},{key:"isDictionary",value:function(t){return t&&t.typeId===C.Dictionary}}]),t}();V=Symbol.toStringTag;var tt=function(t){J()(r,t);var e=Q(r);function r(t,n){var i;return l()(this,r),i=e.call(this),o()(Y()(i),"isSigned",void 0),o()(Y()(i),"bitWidth",void 0),i.isSigned=t,i.bitWidth=n,i}return p()(r,[{key:"typeId",get:function(){return C.Int}},{key:V,get:function(){return"Int"}},{key:"toString",value:function(){return"".concat(this.isSigned?"I":"Ui","nt").concat(this.bitWidth)}}]),r}(Z),et=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!0,8)}return r}(tt),rt=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!0,16)}return r}(tt),nt=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!0,32)}return r}(tt),ot=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!1,8)}return r}(tt),it=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!1,16)}return r}(tt),at=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!1,32)}return r}(tt),st=32,ut=64;R=Symbol.toStringTag;var ct=function(t){J()(r,t);var e=Q(r);function r(t){var n;return l()(this,r),n=e.call(this),o()(Y()(n),"precision",void 0),n.precision=t,n}return p()(r,[{key:"typeId",get:function(){return C.Float}},{key:R,get:function(){return"Float"}},{key:"toString",value:function(){return"Float".concat(this.precision)}}]),r}(Z),lt=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,st)}return r}(ct),ft=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,ut)}return r}(ct);Symbol.toStringTag;Symbol.toStringTag;Symbol.toStringTag;Symbol.toStringTag;G=Symbol.toStringTag;var pt=function(t){J()(r,t);var e=Q(r);function r(t,n){var i;return l()(this,r),i=e.call(this),o()(Y()(i),"listSize",void 0),o()(Y()(i),"children",void 0),i.listSize=t,i.children=[n],i}return p()(r,[{key:"typeId",get:function(){return C.FixedSizeList}},{key:"valueType",get:function(){return this.children[0].type}},{key:"valueField",get:function(){return this.children[0]}},{key:G,get:function(){return"FixedSizeList"}},{key:"toString",value:function(){return"FixedSizeList[".concat(this.listSize,"]<").concat(this.valueType,">")}}]),r}(Z);var ht=function(){function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Map;l()(this,t),o()(this,"name",void 0),o()(this,"type",void 0),o()(this,"nullable",void 0),o()(this,"metadata",void 0),this.name=e,this.type=r,this.nullable=n,this.metadata=i}return p()(t,[{key:"typeId",get:function(){return this.type&&this.type.typeId}},{key:"clone",value:function(){return new t(this.name,this.type,this.nullable,this.metadata)}},{key:"compareTo",value:function(t){return this.name===t.name&&this.type===t.type&&this.nullable===t.nullable&&this.metadata===t.metadata}},{key:"toString",value:function(){return"".concat(this.type).concat(this.nullable?", nullable":"").concat(this.metadata?", metadata: ".concat(this.metadata):"")}}]),t}();function dt(t,e){var r=new Map;for(var n in e)"value"!==n&&r.set(n,JSON.stringify(e[n]));var o=function(t){switch(t.constructor){case Int8Array:return new et;case Uint8Array:return new ot;case Int16Array:return new rt;case Uint16Array:return new it;case Int32Array:return new nt;case Uint32Array:return new at;case Float32Array:return new lt;case Float64Array:return new ft;default:throw new Error("array type not supported")}}(e.value),i=!("size"in e)||1===e.size;return new ht(t,i?o:new pt(e.size,new ht("value",o)),!1,r)}function vt(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return yt(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return yt(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function yt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function mt(t,e){var r=function(t){var e=new F;-1!==t.indexOf("\r\n")&&(t=t.replace(/\r\n/g,"\n")),-1!==t.indexOf("\\\n")&&(t=t.replace(/\\\n/g,""));for(var r=t.split("\n"),n="",o="",i=[],a="function"==typeof"".trimLeft,s=0,u=r.length;s<u;s++)if(n=r[s],0!==(n=a?n.trimLeft():n.trim()).length&&"#"!==(o=n.charAt(0)))if("v"===o){var c=n.split(/\s+/);switch(c[0]){case"v":e.vertices.push(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3])),8===c.length&&e.colors.push(parseFloat(c[4]),parseFloat(c[5]),parseFloat(c[6]));break;case"vn":e.normals.push(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3]));break;case"vt":e.uvs.push(parseFloat(c[1]),parseFloat(c[2]))}}else if("f"===o){for(var l=n.substr(1).trim().split(/\s+/),f=[],p=0,h=l.length;p<h;p++){var d=l[p];if(d.length>0){var v=d.split("/");f.push(v)}}for(var y=f[0],m=1,g=f.length-1;m<g;m++){var b=f[m],x=f[m+1];e.addFace(y[0],b[0],x[0],y[1],b[1],x[1],y[2],b[2],x[2])}}else if("l"===o){var w=n.substring(1).trim().split(" "),O=void 0,S=[];if(-1===n.indexOf("/"))O=w;else{O=[];for(var j=0,I=w.length;j<I;j++){var _=w[j].split("/");""!==_[0]&&O.push(_[0]),""!==_[1]&&S.push(_[1])}}e.addLineGeometry(O,S)}else if("p"===o){var A=n.substr(1).trim().split(" ");e.addPointGeometry(A)}else if(null!==(i=M.exec(n))){var E=(" "+i[0].substr(1).trim()).substr(1);e.startObject(E)}else if(L.test(n))e.object.startMaterial(n.substring(7).trim(),e.materialLibraries);else if(T.test(n))e.materialLibraries.push(n.substring(7).trim());else{if("s"!==o){if("\0"===n)continue;throw new Error('Unexpected line: "'.concat(n,'"'))}if((i=n.split(" ")).length>1){var P=i[1].trim().toLowerCase();e.object.smooth="0"!==P&&"off"!==P}else e.object.smooth=!0;var D=e.object.currentMaterial();D&&(D.smooth=e.object.smooth)}e.finalize();var N,U=[],z=[],B=k(e.objects);try{for(B.s();!(N=B.n()).done;){var C=N.value,V=C.geometry;if(0!==V.vertices.length){var R={header:{vertexCount:V.vertices.length/3},attributes:{}};switch(V.type){case"Points":R.mode=0;break;case"Line":R.mode=1;break;default:R.mode=4}R.attributes.POSITION={value:new Float32Array(V.vertices),size:3},V.normals.length>0&&(R.attributes.NORMAL={value:new Float32Array(V.normals),size:3}),V.colors.length>0&&(R.attributes.COLOR_0={value:new Float32Array(V.colors),size:3}),V.uvs.length>0&&(R.attributes.TEXCOORD_0={value:new Float32Array(V.uvs),size:2}),R.materials=[];var G,W=k(C.materials);try{for(W.s();!(G=W.n()).done;){var Y=G.value,$={name:Y.name,flatShading:!Y.smooth};R.materials.push($),z.push($)}}catch(t){W.e(t)}finally{W.f()}R.name=C.name,U.push(R)}}}catch(t){B.e(t)}finally{B.f()}return{meshes:U,materials:z}}(t).meshes,n=r.reduce((function(t,e){return t+e.header.vertexCount}),0),o=function(t,e){var r,n,o,i,a=new Float32Array(3*e),s=0,u=vt(t);try{for(u.s();!(i=u.n()).done;){var c=i.value.attributes,l=c.POSITION,f=c.NORMAL,p=c.COLOR_0,h=c.TEXCOORD_0;a.set(l.value,3*s),f&&(r=r||new Float32Array(3*e)).set(f.value,3*s),p&&(n=n||new Float32Array(3*e)).set(p.value,3*s),h&&(o=o||new Float32Array(2*e)).set(h.value,2*s),s+=l.value.length/3}}catch(t){u.e(t)}finally{u.f()}var d={};d.POSITION={value:a,size:3},r&&(d.NORMAL={value:r,size:3});n&&(d.COLOR_0={value:n,size:3});o&&(d.TEXCOORD_0={value:o,size:2});return d}(r,n),i={vertexCount:n,boundingBox:I(o)};return{loaderData:{header:{}},schema:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var n in r)e=e||new Map,"value"!==n&&e.set(n,JSON.stringify(r[n]));var o=[];for(var i in t){var a=t[i],s=dt(i,a);o.push(s)}return new z(o,e)}(o,{mode:4,boundingBox:i.boundingBox}),header:i,mode:4,attributes:o}}var gt={name:"OBJ",id:"obj",module:"obj",version:"3.0.13",worker:!0,extensions:["obj"],mimeTypes:["text/plain"],testText:function(t){return"v"===t[0]},options:{obj:{}}};function bt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function xt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?bt(Object(r),!0).forEach((function(e){o()(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):bt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var wt,Ot,St=xt(xt({},gt),{},{parse:(wt=a()(u.a.mark((function t(e,r){return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",mt((new TextDecoder).decode(e)));case 1:case"end":return t.stop()}}),t)}))),function(t,e){return wt.apply(this,arguments)}),parseTextSync:mt});Ot=St,"undefined"!=typeof self&&(m.onmessage=function(){var t=a()(u.a.mark((function t(e,r){var n,o,i,a,s;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.t0=e,t.next="process"===t.t0?3:16;break;case 3:return t.prev=3,n=r.input,o=r.options,i=void 0===o?{}:o,t.next=7,S({loader:Ot,arrayBuffer:n,options:i,context:{parse:O}});case 7:a=t.sent,m.postMessage("done",{result:a}),t.next=15;break;case 11:t.prev=11,t.t1=t.catch(3),s=t.t1 instanceof Error?t.t1.message:"",m.postMessage("error",{error:s});case 15:return t.abrupt("break",16);case 16:case"end":return t.stop()}}),t,null,[[3,11]])})));return function(e,r){return t.apply(this,arguments)}}())}]);
1
+ !function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=19)}([function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(18);t.exports=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&n(t,e)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}t.exports=function(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){t.exports=r(13)},function(t,e){function r(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}t.exports=function(t){return function(){var e=this,n=arguments;return new Promise((function(o,i){var a=t.apply(e,n);function s(t){r(a,o,i,s,u,"next",t)}function u(t){r(a,o,i,s,u,"throw",t)}s(void 0)}))}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(t.exports=r=function(t){return typeof t},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=r=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.default=t.exports,t.exports.__esModule=!0),r(e)}t.exports=r,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(14),o=r(15),i=r(16),a=r(17);t.exports=function(t){return n(t)||o(t)||i(t)||a()},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(e){return t.exports=r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},t.exports.default=t.exports,t.exports.__esModule=!0,r(e)}t.exports=r,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(7).default,o=r(4);t.exports=function(t,e){return!e||"object"!==n(e)&&"function"!=typeof e?o(t):e},t.exports.default=t.exports,t.exports.__esModule=!0},,function(t,e,r){var n=function(t){"use strict";var e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function u(t,e,r,n){var o=e&&e.prototype instanceof f?e:f,i=Object.create(o.prototype),a=new S(n||[]);return i._invoke=function(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return I()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var s=x(a,r);if(s){if(s===l)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=c(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===l)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(t,r,a),i}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var l={};function f(){}function p(){}function h(){}var d={};d[o]=function(){return this};var v=Object.getPrototypeOf,y=v&&v(v(j([])));y&&y!==e&&r.call(y,o)&&(d=y);var m=h.prototype=f.prototype=Object.create(d);function g(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var n;this._invoke=function(o,i){function a(){return new e((function(n,a){!function n(o,i,a,s){var u=c(t[o],t,i);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(f).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,s)}))}s(u.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function x(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function w(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(w,this),this.reset(!0)}function j(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:I}}function I(){return{value:void 0,done:!0}}return p.prototype=m.constructor=h,h.constructor=p,p.displayName=s(h,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,s(t,a,"GeneratorFunction")),t.prototype=Object.create(m),t},t.awrap=function(t){return{__await:t}},g(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new b(u(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},g(m),s(m,a,"Generator"),m[o]=function(){return this},m.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=j,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(s&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,l):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:j(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}(t.exports);try{regeneratorRuntime=n}catch(t){Function("r","regeneratorRuntime = r")(n)}},function(t,e,r){var n=r(10);t.exports=function(t){if(Array.isArray(t))return n(t)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(10);t.exports=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(e,n){return t.exports=r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},t.exports.default=t.exports,t.exports.__esModule=!0,r(e,n)}t.exports=r,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){"use strict";r.r(e);var n=r(2),o=r.n(n),i=r(6),a=r.n(i),s=r(5),u=r.n(s),c=r(0),l=r.n(c),f=r(3),p=r.n(f),h=r(7),d=r.n(h);function v(t){return!!t&&(t instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&t instanceof MessagePort||("undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas)))}var y=new Map,m=function(){function t(){l()(this,t)}return p()(t,null,[{key:"onmessage",set:function(t){self.onmessage=function(e){if(g(e)){var r=e.data,n=r.type,o=r.payload;t(n,o)}}}},{key:"addEventListener",value:function(t){var e=y.get(t);e||(e=function(e){if(g(e)){var r=e.data,n=r.type,o=r.payload;t(n,o)}}),self.addEventListener("message",e)}},{key:"removeEventListener",value:function(t){var e=y.get(t);y.delete(t),self.removeEventListener("message",e)}},{key:"postMessage",value:function(t,e){if(self){var r={source:"loaders.gl",type:t,payload:e},n=function t(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,o=n||new Set;if(e){if(v(e))o.add(e);else if(v(e.buffer))o.add(e.buffer);else if(ArrayBuffer.isView(e));else if(r&&"object"===d()(e))for(var i in e)t(e[i],r,o)}else;return void 0===n?Array.from(o):[]}(e);self.postMessage(r,n)}}}]),t}();function g(t){var e=t.type,r=t.data;return"message"===e&&r&&"string"==typeof r.source&&r.source.startsWith("loaders.gl")}function b(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function x(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?b(Object(r),!0).forEach((function(e){o()(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var w=0;function O(t,e){return new Promise((function(r,n){var o=w++;m.addEventListener((function t(e,i){if(i.id===o)switch(e){case"done":m.removeEventListener(t),r(i.result);break;case"error":m.removeEventListener(t),n(i.error)}}));var i={id:o,input:t,options:e};m.postMessage("process",i)}))}function S(t){return j.apply(this,arguments)}function j(){return(j=a()(u.a.mark((function t(e){var r,n,o,i,a,s,c;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.loader,n=e.arrayBuffer,o=e.options,i=e.context,!r.parseSync&&!r.parse){t.next=6;break}a=n,s=r.parseSync||r.parse,t.next=13;break;case 6:if(!r.parseTextSync){t.next=12;break}c=new TextDecoder,a=c.decode(n),s=r.parseTextSync,t.next=13;break;case 12:throw new Error("Could not load data with ".concat(r.name," loader"));case 13:return o=x(x({},o),{},{modules:r&&r.options&&r.options.modules||{},worker:!1}),t.next=16,s(a,x({},o),i,r);case 16:return t.abrupt("return",t.sent);case 17:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function I(t){for(var e=1/0,r=1/0,n=1/0,o=-1/0,i=-1/0,a=-1/0,s=t.POSITION?t.POSITION.value:[],u=s&&s.length,c=0;c<u;c+=3){var l=s[c],f=s[c+1],p=s[c+2];e=l<e?l:e,r=f<r?f:r,n=p<n?p:n,o=l>o?l:o,i=f>i?f:i,a=p>a?p:a}return[[e,r,n],[o,i,a]]}function k(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return _(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function _(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var M=/^[og]\s*(.+)?/,T=/^mtllib /,L=/^usemtl /,A=function(){function t(e){var r=e.index,n=e.name,o=void 0===n?"":n,i=e.mtllib,a=e.smooth,s=e.groupStart;l()(this,t),this.index=r,this.name=o,this.mtllib=i,this.smooth=a,this.groupStart=s,this.groupEnd=-1,this.groupCount=-1,this.inherited=!1}return p()(t,[{key:"clone",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.index;return new t({index:e,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0})}}]),t}(),E=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";l()(this,t),this.name=e,this.geometry={vertices:[],normals:[],colors:[],uvs:[]},this.materials=[],this.smooth=!0,this.fromDeclaration=null}return p()(t,[{key:"startMaterial",value:function(t,e){var r=this._finalize(!1);r&&(r.inherited||r.groupCount<=0)&&this.materials.splice(r.index,1);var n=new A({index:this.materials.length,name:t,mtllib:Array.isArray(e)&&e.length>0?e[e.length-1]:"",smooth:void 0!==r?r.smooth:this.smooth,groupStart:void 0!==r?r.groupEnd:0});return this.materials.push(n),n}},{key:"currentMaterial",value:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]}},{key:"_finalize",value:function(t){var e=this.currentMaterial();if(e&&-1===e.groupEnd&&(e.groupEnd=this.geometry.vertices.length/3,e.groupCount=e.groupEnd-e.groupStart,e.inherited=!1),t&&this.materials.length>1)for(var r=this.materials.length-1;r>=0;r--)this.materials[r].groupCount<=0&&this.materials.splice(r,1);return t&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),e}}]),t}(),F=function(){function t(){l()(this,t),this.objects=[],this.object=null,this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.materialLibraries=[],this.startObject("",!1)}return p()(t,[{key:"startObject",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.object&&!this.object.fromDeclaration)return this.object.name=t,void(this.object.fromDeclaration=e);var r=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object=new E(t),this.object.fromDeclaration=e,r&&r.name&&"function"==typeof r.clone){var n=r.clone(0);n.inherited=!0,this.object.materials.push(n)}this.objects.push(this.object)}},{key:"finalize",value:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)}},{key:"parseVertexIndex",value:function(t,e){var r=parseInt(t);return 3*(r>=0?r-1:r+e/3)}},{key:"parseNormalIndex",value:function(t,e){var r=parseInt(t);return 3*(r>=0?r-1:r+e/3)}},{key:"parseUVIndex",value:function(t,e){var r=parseInt(t);return 2*(r>=0?r-1:r+e/2)}},{key:"addVertex",value:function(t,e,r){var n=this.vertices,o=this.object.geometry.vertices;o.push(n[t+0],n[t+1],n[t+2]),o.push(n[e+0],n[e+1],n[e+2]),o.push(n[r+0],n[r+1],n[r+2])}},{key:"addVertexPoint",value:function(t){var e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])}},{key:"addVertexLine",value:function(t){var e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])}},{key:"addNormal",value:function(t,e,r){var n=this.normals,o=this.object.geometry.normals;o.push(n[t+0],n[t+1],n[t+2]),o.push(n[e+0],n[e+1],n[e+2]),o.push(n[r+0],n[r+1],n[r+2])}},{key:"addColor",value:function(t,e,r){var n=this.colors,o=this.object.geometry.colors;o.push(n[t+0],n[t+1],n[t+2]),o.push(n[e+0],n[e+1],n[e+2]),o.push(n[r+0],n[r+1],n[r+2])}},{key:"addUV",value:function(t,e,r){var n=this.uvs,o=this.object.geometry.uvs;o.push(n[t+0],n[t+1]),o.push(n[e+0],n[e+1]),o.push(n[r+0],n[r+1])}},{key:"addUVLine",value:function(t){var e=this.uvs;this.object.geometry.uvs.push(e[t+0],e[t+1])}},{key:"addFace",value:function(t,e,r,n,o,i,a,s,u){var c=this.vertices.length,l=this.parseVertexIndex(t,c),f=this.parseVertexIndex(e,c),p=this.parseVertexIndex(r,c);if(this.addVertex(l,f,p),void 0!==n&&""!==n){var h=this.uvs.length;l=this.parseUVIndex(n,h),f=this.parseUVIndex(o,h),p=this.parseUVIndex(i,h),this.addUV(l,f,p)}if(void 0!==a&&""!==a){var d=this.normals.length;l=this.parseNormalIndex(a,d),f=a===s?l:this.parseNormalIndex(s,d),p=a===u?l:this.parseNormalIndex(u,d),this.addNormal(l,f,p)}this.colors.length>0&&this.addColor(l,f,p)}},{key:"addPointGeometry",value:function(t){this.object.geometry.type="Points";var e,r=this.vertices.length,n=k(t);try{for(n.s();!(e=n.n()).done;){var o=e.value;this.addVertexPoint(this.parseVertexIndex(o,r))}}catch(t){n.e(t)}finally{n.f()}}},{key:"addLineGeometry",value:function(t,e){this.object.geometry.type="Line";var r,n=this.vertices.length,o=this.uvs.length,i=k(t);try{for(i.s();!(r=i.n()).done;){var a=r.value;this.addVertexLine(this.parseVertexIndex(a,n))}}catch(t){i.e(t)}finally{i.f()}var s,u=k(e);try{for(u.s();!(s=u.n()).done;){var c=s.value;this.addUVLine(this.parseUVIndex(c,o))}}catch(t){u.e(t)}finally{u.f()}}}]),t}(),P=r(8),D=r.n(P);function N(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return U(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return U(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function U(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var z=function(){function t(e,r){l()(this,t),o()(this,"fields",void 0),o()(this,"metadata",void 0),function(t,e){if(!t)throw new Error(e||"loader assertion failed.")}(Array.isArray(e)),function(t){var e,r={},n=N(t);try{for(n.s();!(e=n.n()).done;){var o=e.value;r[o.name]&&console.warn("Schema: duplicated field name",o.name,o),r[o.name]=!0}}catch(t){n.e(t)}finally{n.f()}}(e),this.fields=e,this.metadata=r||new Map}return p()(t,[{key:"compareTo",value:function(t){if(this.metadata!==t.metadata)return!1;if(this.fields.length!==t.fields.length)return!1;for(var e=0;e<this.fields.length;++e)if(!this.fields[e].compareTo(t.fields[e]))return!1;return!0}},{key:"select",value:function(){for(var e=Object.create(null),r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];for(var i=0,a=n;i<a.length;i++){var s=a[i];e[s]=!0}var u=this.fields.filter((function(t){return e[t.name]}));return new t(u,this.metadata)}},{key:"selectAt",value:function(){for(var e=this,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];var i=n.map((function(t){return e.fields[t]})).filter(Boolean);return new t(i,this.metadata)}},{key:"assign",value:function(e){var r,n=this.metadata;if(e instanceof t){var o=e;r=o.fields,n=B(B(new Map,this.metadata),o.metadata)}else r=e;var i,a=Object.create(null),s=N(this.fields);try{for(s.s();!(i=s.n()).done;){var u=i.value;a[u.name]=u}}catch(t){s.e(t)}finally{s.f()}var c,l=N(r);try{for(l.s();!(c=l.n()).done;){var f=c.value;a[f.name]=f}}catch(t){l.e(t)}finally{l.f()}return new t(Object.values(a),n)}}]),t}();function B(t,e){return new Map([].concat(D()(t||new Map),D()(e||new Map)))}var C,V,R,G,W=r(4),Y=r.n(W),$=r(1),J=r.n($),X=r(11),q=r.n(X),H=r(9),K=r.n(H);function Q(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=K()(t);if(e){var o=K()(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return q()(this,r)}}!function(t){t[t.NONE=0]="NONE",t[t.Null=1]="Null",t[t.Int=2]="Int",t[t.Float=3]="Float",t[t.Binary=4]="Binary",t[t.Utf8=5]="Utf8",t[t.Bool=6]="Bool",t[t.Decimal=7]="Decimal",t[t.Date=8]="Date",t[t.Time=9]="Time",t[t.Timestamp=10]="Timestamp",t[t.Interval=11]="Interval",t[t.List=12]="List",t[t.Struct=13]="Struct",t[t.Union=14]="Union",t[t.FixedSizeBinary=15]="FixedSizeBinary",t[t.FixedSizeList=16]="FixedSizeList",t[t.Map=17]="Map",t[t.Dictionary=-1]="Dictionary",t[t.Int8=-2]="Int8",t[t.Int16=-3]="Int16",t[t.Int32=-4]="Int32",t[t.Int64=-5]="Int64",t[t.Uint8=-6]="Uint8",t[t.Uint16=-7]="Uint16",t[t.Uint32=-8]="Uint32",t[t.Uint64=-9]="Uint64",t[t.Float16=-10]="Float16",t[t.Float32=-11]="Float32",t[t.Float64=-12]="Float64",t[t.DateDay=-13]="DateDay",t[t.DateMillisecond=-14]="DateMillisecond",t[t.TimestampSecond=-15]="TimestampSecond",t[t.TimestampMillisecond=-16]="TimestampMillisecond",t[t.TimestampMicrosecond=-17]="TimestampMicrosecond",t[t.TimestampNanosecond=-18]="TimestampNanosecond",t[t.TimeSecond=-19]="TimeSecond",t[t.TimeMillisecond=-20]="TimeMillisecond",t[t.TimeMicrosecond=-21]="TimeMicrosecond",t[t.TimeNanosecond=-22]="TimeNanosecond",t[t.DenseUnion=-23]="DenseUnion",t[t.SparseUnion=-24]="SparseUnion",t[t.IntervalDayTime=-25]="IntervalDayTime",t[t.IntervalYearMonth=-26]="IntervalYearMonth"}(C||(C={}));var Z=function(){function t(){l()(this,t)}return p()(t,[{key:"typeId",get:function(){return C.NONE}},{key:"compareTo",value:function(t){return this===t}}],[{key:"isNull",value:function(t){return t&&t.typeId===C.Null}},{key:"isInt",value:function(t){return t&&t.typeId===C.Int}},{key:"isFloat",value:function(t){return t&&t.typeId===C.Float}},{key:"isBinary",value:function(t){return t&&t.typeId===C.Binary}},{key:"isUtf8",value:function(t){return t&&t.typeId===C.Utf8}},{key:"isBool",value:function(t){return t&&t.typeId===C.Bool}},{key:"isDecimal",value:function(t){return t&&t.typeId===C.Decimal}},{key:"isDate",value:function(t){return t&&t.typeId===C.Date}},{key:"isTime",value:function(t){return t&&t.typeId===C.Time}},{key:"isTimestamp",value:function(t){return t&&t.typeId===C.Timestamp}},{key:"isInterval",value:function(t){return t&&t.typeId===C.Interval}},{key:"isList",value:function(t){return t&&t.typeId===C.List}},{key:"isStruct",value:function(t){return t&&t.typeId===C.Struct}},{key:"isUnion",value:function(t){return t&&t.typeId===C.Union}},{key:"isFixedSizeBinary",value:function(t){return t&&t.typeId===C.FixedSizeBinary}},{key:"isFixedSizeList",value:function(t){return t&&t.typeId===C.FixedSizeList}},{key:"isMap",value:function(t){return t&&t.typeId===C.Map}},{key:"isDictionary",value:function(t){return t&&t.typeId===C.Dictionary}}]),t}();V=Symbol.toStringTag;var tt=function(t){J()(r,t);var e=Q(r);function r(t,n){var i;return l()(this,r),i=e.call(this),o()(Y()(i),"isSigned",void 0),o()(Y()(i),"bitWidth",void 0),i.isSigned=t,i.bitWidth=n,i}return p()(r,[{key:"typeId",get:function(){return C.Int}},{key:V,get:function(){return"Int"}},{key:"toString",value:function(){return"".concat(this.isSigned?"I":"Ui","nt").concat(this.bitWidth)}}]),r}(Z),et=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!0,8)}return r}(tt),rt=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!0,16)}return r}(tt),nt=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!0,32)}return r}(tt),ot=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!1,8)}return r}(tt),it=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!1,16)}return r}(tt),at=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,!1,32)}return r}(tt),st=32,ut=64;R=Symbol.toStringTag;var ct=function(t){J()(r,t);var e=Q(r);function r(t){var n;return l()(this,r),n=e.call(this),o()(Y()(n),"precision",void 0),n.precision=t,n}return p()(r,[{key:"typeId",get:function(){return C.Float}},{key:R,get:function(){return"Float"}},{key:"toString",value:function(){return"Float".concat(this.precision)}}]),r}(Z),lt=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,st)}return r}(ct),ft=function(t){J()(r,t);var e=Q(r);function r(){return l()(this,r),e.call(this,ut)}return r}(ct);Symbol.toStringTag;Symbol.toStringTag;Symbol.toStringTag;Symbol.toStringTag;G=Symbol.toStringTag;var pt=function(t){J()(r,t);var e=Q(r);function r(t,n){var i;return l()(this,r),i=e.call(this),o()(Y()(i),"listSize",void 0),o()(Y()(i),"children",void 0),i.listSize=t,i.children=[n],i}return p()(r,[{key:"typeId",get:function(){return C.FixedSizeList}},{key:"valueType",get:function(){return this.children[0].type}},{key:"valueField",get:function(){return this.children[0]}},{key:G,get:function(){return"FixedSizeList"}},{key:"toString",value:function(){return"FixedSizeList[".concat(this.listSize,"]<").concat(this.valueType,">")}}]),r}(Z);var ht=function(){function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Map;l()(this,t),o()(this,"name",void 0),o()(this,"type",void 0),o()(this,"nullable",void 0),o()(this,"metadata",void 0),this.name=e,this.type=r,this.nullable=n,this.metadata=i}return p()(t,[{key:"typeId",get:function(){return this.type&&this.type.typeId}},{key:"clone",value:function(){return new t(this.name,this.type,this.nullable,this.metadata)}},{key:"compareTo",value:function(t){return this.name===t.name&&this.type===t.type&&this.nullable===t.nullable&&this.metadata===t.metadata}},{key:"toString",value:function(){return"".concat(this.type).concat(this.nullable?", nullable":"").concat(this.metadata?", metadata: ".concat(this.metadata):"")}}]),t}();function dt(t,e){var r=new Map;for(var n in e)"value"!==n&&r.set(n,JSON.stringify(e[n]));var o=function(t){switch(t.constructor){case Int8Array:return new et;case Uint8Array:return new ot;case Int16Array:return new rt;case Uint16Array:return new it;case Int32Array:return new nt;case Uint32Array:return new at;case Float32Array:return new lt;case Float64Array:return new ft;default:throw new Error("array type not supported")}}(e.value),i=!("size"in e)||1===e.size;return new ht(t,i?o:new pt(e.size,new ht("value",o)),!1,r)}function vt(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return yt(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return yt(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function yt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function mt(t,e){var r=function(t){var e=new F;-1!==t.indexOf("\r\n")&&(t=t.replace(/\r\n/g,"\n")),-1!==t.indexOf("\\\n")&&(t=t.replace(/\\\n/g,""));for(var r=t.split("\n"),n="",o="",i=[],a="function"==typeof"".trimLeft,s=0,u=r.length;s<u;s++)if(n=r[s],0!==(n=a?n.trimLeft():n.trim()).length&&"#"!==(o=n.charAt(0)))if("v"===o){var c=n.split(/\s+/);switch(c[0]){case"v":e.vertices.push(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3])),8===c.length&&e.colors.push(parseFloat(c[4]),parseFloat(c[5]),parseFloat(c[6]));break;case"vn":e.normals.push(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3]));break;case"vt":e.uvs.push(parseFloat(c[1]),parseFloat(c[2]))}}else if("f"===o){for(var l=n.substr(1).trim().split(/\s+/),f=[],p=0,h=l.length;p<h;p++){var d=l[p];if(d.length>0){var v=d.split("/");f.push(v)}}for(var y=f[0],m=1,g=f.length-1;m<g;m++){var b=f[m],x=f[m+1];e.addFace(y[0],b[0],x[0],y[1],b[1],x[1],y[2],b[2],x[2])}}else if("l"===o){var w=n.substring(1).trim().split(" "),O=void 0,S=[];if(-1===n.indexOf("/"))O=w;else{O=[];for(var j=0,I=w.length;j<I;j++){var _=w[j].split("/");""!==_[0]&&O.push(_[0]),""!==_[1]&&S.push(_[1])}}e.addLineGeometry(O,S)}else if("p"===o){var A=n.substr(1).trim().split(" ");e.addPointGeometry(A)}else if(null!==(i=M.exec(n))){var E=(" "+i[0].substr(1).trim()).substr(1);e.startObject(E)}else if(L.test(n))e.object.startMaterial(n.substring(7).trim(),e.materialLibraries);else if(T.test(n))e.materialLibraries.push(n.substring(7).trim());else{if("s"!==o){if("\0"===n)continue;throw new Error('Unexpected line: "'.concat(n,'"'))}if((i=n.split(" ")).length>1){var P=i[1].trim().toLowerCase();e.object.smooth="0"!==P&&"off"!==P}else e.object.smooth=!0;var D=e.object.currentMaterial();D&&(D.smooth=e.object.smooth)}e.finalize();var N,U=[],z=[],B=k(e.objects);try{for(B.s();!(N=B.n()).done;){var C=N.value,V=C.geometry;if(0!==V.vertices.length){var R={header:{vertexCount:V.vertices.length/3},attributes:{}};switch(V.type){case"Points":R.mode=0;break;case"Line":R.mode=1;break;default:R.mode=4}R.attributes.POSITION={value:new Float32Array(V.vertices),size:3},V.normals.length>0&&(R.attributes.NORMAL={value:new Float32Array(V.normals),size:3}),V.colors.length>0&&(R.attributes.COLOR_0={value:new Float32Array(V.colors),size:3}),V.uvs.length>0&&(R.attributes.TEXCOORD_0={value:new Float32Array(V.uvs),size:2}),R.materials=[];var G,W=k(C.materials);try{for(W.s();!(G=W.n()).done;){var Y=G.value,$={name:Y.name,flatShading:!Y.smooth};R.materials.push($),z.push($)}}catch(t){W.e(t)}finally{W.f()}R.name=C.name,U.push(R)}}}catch(t){B.e(t)}finally{B.f()}return{meshes:U,materials:z}}(t).meshes,n=r.reduce((function(t,e){return t+e.header.vertexCount}),0),o=function(t,e){var r,n,o,i,a=new Float32Array(3*e),s=0,u=vt(t);try{for(u.s();!(i=u.n()).done;){var c=i.value.attributes,l=c.POSITION,f=c.NORMAL,p=c.COLOR_0,h=c.TEXCOORD_0;a.set(l.value,3*s),f&&(r=r||new Float32Array(3*e)).set(f.value,3*s),p&&(n=n||new Float32Array(3*e)).set(p.value,3*s),h&&(o=o||new Float32Array(2*e)).set(h.value,2*s),s+=l.value.length/3}}catch(t){u.e(t)}finally{u.f()}var d={};d.POSITION={value:a,size:3},r&&(d.NORMAL={value:r,size:3});n&&(d.COLOR_0={value:n,size:3});o&&(d.TEXCOORD_0={value:o,size:2});return d}(r,n),i={vertexCount:n,boundingBox:I(o)};return{loaderData:{header:{}},schema:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var n in r)e=e||new Map,"value"!==n&&e.set(n,JSON.stringify(r[n]));var o=[];for(var i in t){var a=t[i],s=dt(i,a);o.push(s)}return new z(o,e)}(o,{mode:4,boundingBox:i.boundingBox}),header:i,mode:4,attributes:o}}var gt={name:"OBJ",id:"obj",module:"obj",version:"3.0.14",worker:!0,extensions:["obj"],mimeTypes:["text/plain"],testText:function(t){return"v"===t[0]},options:{obj:{}}};function bt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function xt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?bt(Object(r),!0).forEach((function(e){o()(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):bt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var wt,Ot,St=xt(xt({},gt),{},{parse:(wt=a()(u.a.mark((function t(e,r){return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",mt((new TextDecoder).decode(e)));case 1:case"end":return t.stop()}}),t)}))),function(t,e){return wt.apply(this,arguments)}),parseTextSync:mt});Ot=St,"undefined"!=typeof self&&(m.onmessage=function(){var t=a()(u.a.mark((function t(e,r){var n,o,i,a,s;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.t0=e,t.next="process"===t.t0?3:16;break;case 3:return t.prev=3,n=r.input,o=r.options,i=void 0===o?{}:o,t.next=7,S({loader:Ot,arrayBuffer:n,options:i,context:{parse:O}});case 7:a=t.sent,m.postMessage("done",{result:a}),t.next=15;break;case 11:t.prev=11,t.t1=t.catch(3),s=t.t1 instanceof Error?t.t1.message:"",m.postMessage("error",{error:s});case 15:return t.abrupt("break",16);case 16:case"end":return t.stop()}}),t,null,[[3,11]])})));return function(e,r){return t.apply(this,arguments)}}())}]);
2
2
  //# sourceMappingURL=obj-worker.js.map