@loaders.gl/obj 3.1.0-alpha.1 → 3.1.0-alpha.5

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.
Files changed (50) hide show
  1. package/dist/bundle.d.ts +1 -0
  2. package/dist/dist.min.js +1 -1
  3. package/dist/dist.min.js.map +1 -1
  4. package/dist/es5/bundle.js +7 -0
  5. package/dist/es5/bundle.js.map +1 -0
  6. package/dist/es5/index.js +27 -0
  7. package/dist/es5/index.js.map +1 -0
  8. package/dist/es5/lib/get-obj-schema.js +45 -0
  9. package/dist/es5/lib/get-obj-schema.js.map +1 -0
  10. package/dist/es5/lib/load-obj.js +104 -0
  11. package/dist/es5/lib/load-obj.js.map +1 -0
  12. package/dist/es5/lib/obj-types.js +2 -0
  13. package/dist/{lib → es5/lib}/obj-types.js.map +0 -0
  14. package/dist/es5/lib/parse-obj.js +466 -0
  15. package/dist/es5/lib/parse-obj.js.map +1 -0
  16. package/dist/es5/obj-loader.js +29 -0
  17. package/dist/{obj-loader.js.map → es5/obj-loader.js.map} +1 -1
  18. package/dist/{workers → es5/workers}/obj-worker.js +0 -0
  19. package/dist/esm/bundle.js +5 -0
  20. package/dist/esm/bundle.js.map +1 -0
  21. package/dist/{index.js → esm/index.js} +0 -0
  22. package/dist/esm/index.js.map +1 -0
  23. package/dist/{lib → esm/lib}/get-obj-schema.js +0 -0
  24. package/dist/esm/lib/get-obj-schema.js.map +1 -0
  25. package/dist/{lib → esm/lib}/load-obj.js +0 -0
  26. package/dist/esm/lib/load-obj.js.map +1 -0
  27. package/dist/{lib → esm/lib}/obj-types.js +0 -0
  28. package/dist/esm/lib/obj-types.js.map +1 -0
  29. package/dist/{lib → esm/lib}/parse-obj.js +1 -1
  30. package/dist/esm/lib/parse-obj.js.map +1 -0
  31. package/dist/{obj-loader.js → esm/obj-loader.js} +1 -1
  32. package/dist/esm/obj-loader.js.map +1 -0
  33. package/dist/esm/workers/obj-worker.js +4 -0
  34. package/dist/index.d.ts +34 -0
  35. package/dist/lib/get-obj-schema.d.ts +2 -0
  36. package/dist/lib/load-obj.d.ts +13 -0
  37. package/dist/lib/obj-types.d.ts +0 -0
  38. package/dist/lib/parse-obj.d.ts +5 -0
  39. package/dist/obj-loader.d.ts +20 -0
  40. package/dist/obj-worker.js +1 -1
  41. package/dist/obj-worker.js.map +1 -1
  42. package/dist/workers/obj-worker.d.ts +1 -0
  43. package/package.json +8 -7
  44. package/src/bundle.ts +2 -3
  45. package/dist/bundle.js +0 -7
  46. package/dist/bundle.js.map +0 -1
  47. package/dist/index.js.map +0 -1
  48. package/dist/lib/get-obj-schema.js.map +0 -1
  49. package/dist/lib/load-obj.js.map +0 -1
  50. package/dist/lib/parse-obj.js.map +0 -1
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports._typecheckOBJLoader = exports.OBJLoader = void 0;
7
+ const VERSION = typeof "3.1.0-alpha.5" !== 'undefined' ? "3.1.0-alpha.5" : 'latest';
8
+ const OBJLoader = {
9
+ name: 'OBJ',
10
+ id: 'obj',
11
+ module: 'obj',
12
+ version: VERSION,
13
+ worker: true,
14
+ extensions: ['obj'],
15
+ mimeTypes: ['text/plain'],
16
+ testText: testOBJFile,
17
+ options: {
18
+ obj: {}
19
+ }
20
+ };
21
+ exports.OBJLoader = OBJLoader;
22
+
23
+ function testOBJFile(text) {
24
+ return text[0] === 'v';
25
+ }
26
+
27
+ const _typecheckOBJLoader = OBJLoader;
28
+ exports._typecheckOBJLoader = _typecheckOBJLoader;
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,2BAAuB,WAAvB,qBAAmD,QAAnE;AAKA,OAAO,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;;AAED,OAAO,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,MAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,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"}
File without changes
@@ -0,0 +1,5 @@
1
+ const moduleExports = require('./index');
2
+
3
+ globalThis.loaders = globalThis.loaders || {};
4
+ module.exports = Object.assign(globalThis.loaders, moduleExports);
5
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["loadOBJ","OBJLoader","OBJWorkerLoader","parse","arrayBuffer","options","TextDecoder","decode","parseTextSync","_typecheckOBJLoader"],"mappings":"AACA,OAAOA,OAAP,MAAoB,gBAApB;AACA,SAAQC,SAAS,IAAIC,eAArB,QAA2C,cAA3C;AAIA,SAAQA,eAAR;AAKA,OAAO,MAAMD,SAAS,GAAG,EACvB,GAAGC,eADoB;AAEvBC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCL,OAAO,CAAC,IAAIM,WAAJ,GAAkBC,MAAlB,CAAyBH,WAAzB,CAAD,EAAwCC,OAAxC,CAFvB;AAGvBG,EAAAA,aAAa,EAAER;AAHQ,CAAlB;AAMP,OAAO,MAAMS,mBAAqC,GAAGR,SAA9C","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport loadOBJ from './lib/load-obj';\nimport {OBJLoader as OBJWorkerLoader} from './obj-loader';\n\n// OBJLoader\n\nexport {OBJWorkerLoader};\n\n/**\n * Loader for the OBJ geometry format\n */\nexport const OBJLoader = {\n ...OBJWorkerLoader,\n parse: async (arrayBuffer, options) => loadOBJ(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: loadOBJ\n};\n\nexport const _typecheckOBJLoader: LoaderWithParser = OBJLoader;\n"],"file":"index.js"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/get-obj-schema.ts"],"names":["Schema","Field","FixedSizeList","getArrowTypeFromTypedArray","getOBJSchema","attributes","metadata","metadataMap","key","Map","set","JSON","stringify","fields","attributeName","attribute","field","getArrowFieldFromAttribute","push","type","value","isSingleValue","size"],"mappings":"AAAA,SAAQA,MAAR,EAAgBC,KAAhB,EAAuBC,aAAvB,EAAsCC,0BAAtC,QAAuE,oBAAvE;AAEA,OAAO,SAASC,YAAT,CAAsBC,UAAtB,EAAkCC,QAAQ,GAAG,EAA7C,EAAiD;AACtD,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,MAAe,GAAG,EAAxB;;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,IAAIhB,MAAJ,CAAWa,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,QAAMW,IAAI,GAAGhB,0BAA0B,CAACY,SAAS,CAACK,KAAX,CAAvC;AACA,QAAMC,aAAa,GAAG,EAAE,UAAUN,SAAZ,KAA0BA,SAAS,CAACO,IAAV,KAAmB,CAAnE;AACA,SAAOD,aAAa,GAChB,IAAIpB,KAAJ,CAAUa,aAAV,EAAyBK,IAAzB,EAA+B,KAA/B,EAAsCZ,WAAtC,CADgB,GAEhB,IAAIN,KAAJ,CACAa,aADA,EAEA,IAAIZ,aAAJ,CAAkBa,SAAS,CAACO,IAA5B,EAAkC,IAAIrB,KAAJ,CAAU,OAAV,EAAmBkB,IAAnB,CAAlC,CAFA,EAGA,KAHA,EAIAZ,WAJA,CAFJ;AAQD","sourcesContent":["import {Schema, Field, FixedSizeList, getArrowTypeFromTypedArray} from '@loaders.gl/schema';\n\nexport function getOBJSchema(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: Field[] = [];\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":"get-obj-schema.js"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/load-obj.ts"],"names":["getMeshBoundingBox","parseOBJ","getOBJSchema","loadOBJ","text","options","meshes","vertexCount","reduce","s","mesh","header","attributes","mergeAttributes","boundingBox","schema","mode","loaderData","positions","Float32Array","normals","colors","uvs","i","POSITION","NORMAL","COLOR_0","TEXCOORD_0","set","value","length","size"],"mappings":"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","sourcesContent":["import type {MeshAttributes} from '@loaders.gl/schema';\nimport {getMeshBoundingBox} from '@loaders.gl/schema';\nimport parseOBJ from './parse-obj';\nimport {getOBJSchema} from './get-obj-schema';\n\nexport default function loadOBJ(text, options) {\n const {meshes} = parseOBJ(text);\n\n // @ts-expect-error\n const vertexCount = meshes.reduce((s, mesh) => s + mesh.header.vertexCount, 0);\n // TODO - render objects separately\n const attributes = mergeAttributes(meshes, vertexCount);\n\n const header = {\n vertexCount,\n // @ts-ignore Need to export Attributes type\n boundingBox: getMeshBoundingBox(attributes)\n };\n\n const schema = getOBJSchema(attributes, {\n mode: 4,\n boundingBox: header.boundingBox\n });\n\n return {\n // Data return by this loader implementation\n loaderData: {\n header: {}\n },\n\n // Normalised data\n schema,\n header,\n mode: 4, // TRIANGLES\n\n attributes\n };\n}\n\n// eslint-disable-next-line max-statements\nfunction mergeAttributes(meshes, vertexCount) {\n const positions = new Float32Array(vertexCount * 3);\n let normals;\n let colors;\n let uvs;\n let i = 0;\n\n for (const mesh of meshes) {\n const {POSITION, NORMAL, COLOR_0, TEXCOORD_0} = mesh.attributes;\n\n positions.set(POSITION.value, i * 3);\n\n if (NORMAL) {\n normals = normals || new Float32Array(vertexCount * 3);\n normals.set(NORMAL.value, i * 3);\n }\n if (COLOR_0) {\n colors = colors || new Float32Array(vertexCount * 3);\n colors.set(COLOR_0.value, i * 3);\n }\n if (TEXCOORD_0) {\n uvs = uvs || new Float32Array(vertexCount * 2);\n uvs.set(TEXCOORD_0.value, i * 2);\n }\n\n i += POSITION.value.length / 3;\n }\n\n const attributes: MeshAttributes = {};\n attributes.POSITION = {value: positions, size: 3};\n\n if (normals) {\n attributes.NORMAL = {value: normals, size: 3};\n }\n if (colors) {\n attributes.COLOR_0 = {value: colors, size: 3};\n }\n if (uvs) {\n attributes.TEXCOORD_0 = {value: uvs, size: 2};\n }\n\n return attributes;\n}\n"],"file":"load-obj.js"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"obj-types.js"}
@@ -375,7 +375,7 @@ export default (text => {
375
375
  if (material) material.smooth = state.object.smooth;
376
376
  } else {
377
377
  if (line === '\0') continue;
378
- throw new Error(`Unexpected line: "${line}"`);
378
+ throw new Error("Unexpected line: \"".concat(line, "\""));
379
379
  }
380
380
  }
381
381
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/parse-obj.ts"],"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,4 +1,4 @@
1
- const VERSION = typeof "3.1.0-alpha.1" !== 'undefined' ? "3.1.0-alpha.1" : 'latest';
1
+ const VERSION = typeof "3.1.0-alpha.5" !== 'undefined' ? "3.1.0-alpha.5" : 'latest';
2
2
  export const OBJLoader = {
3
3
  name: 'OBJ',
4
4
  id: 'obj',
@@ -0,0 +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,2BAAuB,WAAvB,qBAAmD,QAAnE;AAKA,OAAO,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;;AAED,OAAO,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"}
@@ -0,0 +1,4 @@
1
+ import {createLoaderWorker} from '@loaders.gl/loader-utils';
2
+ import {OBJLoader} from '../index';
3
+
4
+ createLoaderWorker(OBJLoader);
@@ -0,0 +1,34 @@
1
+ import type { LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ import loadOBJ from './lib/load-obj';
3
+ import { OBJLoader as OBJWorkerLoader } from './obj-loader';
4
+ export { OBJWorkerLoader };
5
+ /**
6
+ * Loader for the OBJ geometry format
7
+ */
8
+ export declare const OBJLoader: {
9
+ parse: (arrayBuffer: any, options: any) => Promise<{
10
+ loaderData: {
11
+ header: {};
12
+ };
13
+ schema: import("modules/schema/dist").Schema;
14
+ header: {
15
+ vertexCount: number;
16
+ boundingBox: [[number, number, number], [number, number, number]];
17
+ };
18
+ mode: number;
19
+ attributes: import("modules/schema/dist").MeshAttributes;
20
+ }>;
21
+ parseTextSync: typeof loadOBJ;
22
+ name: string;
23
+ id: string;
24
+ module: string;
25
+ version: any;
26
+ worker: boolean;
27
+ extensions: string[];
28
+ mimeTypes: string[];
29
+ testText: (text: any) => boolean;
30
+ options: {
31
+ obj: {};
32
+ };
33
+ };
34
+ export declare const _typecheckOBJLoader: LoaderWithParser;
@@ -0,0 +1,2 @@
1
+ import { Schema } from '@loaders.gl/schema';
2
+ export declare function getOBJSchema(attributes: any, metadata?: {}): Schema;
@@ -0,0 +1,13 @@
1
+ import type { MeshAttributes } from '@loaders.gl/schema';
2
+ export default function loadOBJ(text: any, options: any): {
3
+ loaderData: {
4
+ header: {};
5
+ };
6
+ schema: import("@loaders.gl/schema").Schema;
7
+ header: {
8
+ vertexCount: number;
9
+ boundingBox: [[number, number, number], [number, number, number]];
10
+ };
11
+ mode: number;
12
+ attributes: MeshAttributes;
13
+ };
File without changes
@@ -0,0 +1,5 @@
1
+ declare const _default: (text: any) => {
2
+ meshes: never[];
3
+ materials: never[];
4
+ };
5
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import type { Loader } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * Worker loader for the OBJ geometry format
4
+ */
5
+ export declare const OBJLoader: {
6
+ name: string;
7
+ id: string;
8
+ module: string;
9
+ version: any;
10
+ worker: boolean;
11
+ extensions: string[];
12
+ mimeTypes: string[];
13
+ testText: typeof testOBJFile;
14
+ options: {
15
+ obj: {};
16
+ };
17
+ };
18
+ declare function testOBJFile(text: any): boolean;
19
+ export declare const _typecheckOBJLoader: Loader;
20
+ export {};
@@ -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);Symbol.toStringTag;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.1.0-alpha.1",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);Symbol.toStringTag;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.1.0-alpha.5",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