@loaders.gl/obj 3.1.0-alpha.4 → 3.1.0-beta.3

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 +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +1091 -0
  4. package/dist/es5/bundle.js +1 -1
  5. package/dist/es5/bundle.js.map +1 -1
  6. package/dist/es5/index.js +5 -37
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/lib/get-obj-schema.js +11 -12
  9. package/dist/es5/lib/get-obj-schema.js.map +1 -1
  10. package/dist/es5/lib/load-obj.js +42 -59
  11. package/dist/es5/lib/load-obj.js.map +1 -1
  12. package/dist/es5/lib/parse-obj.js +293 -388
  13. package/dist/es5/lib/parse-obj.js.map +1 -1
  14. package/dist/es5/obj-loader.js +3 -3
  15. package/dist/es5/obj-loader.js.map +1 -1
  16. package/dist/es5/workers/obj-worker.js +7 -3
  17. package/dist/es5/workers/obj-worker.js.map +1 -0
  18. package/dist/esm/lib/parse-obj.js +1 -1
  19. package/dist/esm/lib/parse-obj.js.map +1 -1
  20. package/dist/esm/obj-loader.js +1 -1
  21. package/dist/esm/obj-loader.js.map +1 -1
  22. package/dist/esm/workers/obj-worker.js +3 -3
  23. package/dist/esm/workers/obj-worker.js.map +1 -0
  24. package/dist/index.d.ts +35 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +18 -0
  27. package/dist/lib/get-obj-schema.d.ts +3 -0
  28. package/dist/lib/get-obj-schema.d.ts.map +1 -0
  29. package/dist/lib/get-obj-schema.js +34 -0
  30. package/dist/lib/load-obj.d.ts +14 -0
  31. package/dist/lib/load-obj.d.ts.map +1 -0
  32. package/dist/lib/load-obj.js +73 -0
  33. package/dist/lib/obj-types.d.ts +1 -0
  34. package/dist/lib/obj-types.d.ts.map +1 -0
  35. package/dist/lib/obj-types.js +1 -0
  36. package/dist/lib/parse-obj.d.ts +6 -0
  37. package/dist/lib/parse-obj.d.ts.map +1 -0
  38. package/dist/lib/parse-obj.js +438 -0
  39. package/dist/obj-loader.d.ts +21 -0
  40. package/dist/obj-loader.d.ts.map +1 -0
  41. package/dist/obj-loader.js +27 -0
  42. package/dist/obj-worker.js +1134 -2
  43. package/dist/workers/obj-worker.d.ts +2 -0
  44. package/dist/workers/obj-worker.d.ts.map +1 -0
  45. package/dist/workers/obj-worker.js +5 -0
  46. package/package.json +7 -7
  47. package/src/workers/{obj-worker.js → obj-worker.ts} +0 -0
  48. package/dist/dist.min.js +0 -2
  49. package/dist/dist.min.js.map +0 -1
  50. package/dist/obj-worker.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var moduleExports = require('./index');
3
+ const moduleExports = require('./index');
4
4
 
5
5
  globalThis.loaders = globalThis.loaders || {};
6
6
  module.exports = Object.assign(globalThis.loaders, moduleExports);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,IAAMA,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"}
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"}
package/dist/es5/index.js CHANGED
@@ -7,53 +7,21 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  Object.defineProperty(exports, "OBJWorkerLoader", {
9
9
  enumerable: true,
10
- get: function get() {
10
+ get: function () {
11
11
  return _objLoader.OBJLoader;
12
12
  }
13
13
  });
14
14
  exports._typecheckOBJLoader = exports.OBJLoader = void 0;
15
15
 
16
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
17
-
18
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
16
  var _loadObj = _interopRequireDefault(require("./lib/load-obj"));
23
17
 
24
18
  var _objLoader = require("./obj-loader");
25
19
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
-
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
-
30
- var OBJLoader = _objectSpread(_objectSpread({}, _objLoader.OBJLoader), {}, {
31
- parse: function () {
32
- var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
33
- return _regenerator.default.wrap(function _callee$(_context) {
34
- while (1) {
35
- switch (_context.prev = _context.next) {
36
- case 0:
37
- return _context.abrupt("return", (0, _loadObj.default)(new TextDecoder().decode(arrayBuffer), options));
38
-
39
- case 1:
40
- case "end":
41
- return _context.stop();
42
- }
43
- }
44
- }, _callee);
45
- }));
46
-
47
- function parse(_x, _x2) {
48
- return _parse.apply(this, arguments);
49
- }
50
-
51
- return parse;
52
- }(),
20
+ const OBJLoader = { ..._objLoader.OBJLoader,
21
+ parse: async (arrayBuffer, options) => (0, _loadObj.default)(new TextDecoder().decode(arrayBuffer), options),
53
22
  parseTextSync: _loadObj.default
54
- });
55
-
23
+ };
56
24
  exports.OBJLoader = OBJLoader;
57
- var _typecheckOBJLoader = OBJLoader;
25
+ const _typecheckOBJLoader = OBJLoader;
58
26
  exports._typecheckOBJLoader = _typecheckOBJLoader;
59
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["OBJLoader","OBJWorkerLoader","parse","arrayBuffer","options","TextDecoder","decode","parseTextSync","loadOBJ","_typecheckOBJLoader"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;AASO,IAAMA,SAAS,mCACjBC,oBADiB;AAEpBC,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBC,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgC,sBAAQ,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBH,WAAzB,CAAR,EAA+CC,OAA/C,CAAhC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAFe;AAGpBG,EAAAA,aAAa,EAAEC;AAHK,EAAf;;;AAMA,IAAMC,mBAAqC,GAAGT,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"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["OBJLoader","OBJWorkerLoader","parse","arrayBuffer","options","TextDecoder","decode","parseTextSync","loadOBJ","_typecheckOBJLoader"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AASO,MAAMA,SAAS,GAAG,EACvB,GAAGC,oBADoB;AAEvBC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgC,sBAAQ,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBH,WAAzB,CAAR,EAA+CC,OAA/C,CAFhB;AAGvBG,EAAAA,aAAa,EAAEC;AAHQ,CAAlB;;AAMA,MAAMC,mBAAqC,GAAGT,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"}
@@ -7,11 +7,10 @@ exports.getOBJSchema = getOBJSchema;
7
7
 
8
8
  var _schema = require("@loaders.gl/schema");
9
9
 
10
- function getOBJSchema(attributes) {
11
- var metadata = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
- var metadataMap;
10
+ function getOBJSchema(attributes, metadata = {}) {
11
+ let metadataMap;
13
12
 
14
- for (var key in metadata) {
13
+ for (const key in metadata) {
15
14
  metadataMap = metadataMap || new Map();
16
15
 
17
16
  if (key !== 'value') {
@@ -19,11 +18,11 @@ function getOBJSchema(attributes) {
19
18
  }
20
19
  }
21
20
 
22
- var fields = [];
21
+ const fields = [];
23
22
 
24
- for (var attributeName in attributes) {
25
- var attribute = attributes[attributeName];
26
- var field = getArrowFieldFromAttribute(attributeName, attribute);
23
+ for (const attributeName in attributes) {
24
+ const attribute = attributes[attributeName];
25
+ const field = getArrowFieldFromAttribute(attributeName, attribute);
27
26
  fields.push(field);
28
27
  }
29
28
 
@@ -31,16 +30,16 @@ function getOBJSchema(attributes) {
31
30
  }
32
31
 
33
32
  function getArrowFieldFromAttribute(attributeName, attribute) {
34
- var metadataMap = new Map();
33
+ const metadataMap = new Map();
35
34
 
36
- for (var key in attribute) {
35
+ for (const key in attribute) {
37
36
  if (key !== 'value') {
38
37
  metadataMap.set(key, JSON.stringify(attribute[key]));
39
38
  }
40
39
  }
41
40
 
42
- var type = (0, _schema.getArrowTypeFromTypedArray)(attribute.value);
43
- var isSingleValue = !('size' in attribute) || attribute.size === 1;
41
+ const type = (0, _schema.getArrowTypeFromTypedArray)(attribute.value);
42
+ const isSingleValue = !('size' in attribute) || attribute.size === 1;
44
43
  return isSingleValue ? new _schema.Field(attributeName, type, false, metadataMap) : new _schema.Field(attributeName, new _schema.FixedSizeList(attribute.size, new _schema.Field('value', type)), false, metadataMap);
45
44
  }
46
45
  //# sourceMappingURL=get-obj-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/get-obj-schema.ts"],"names":["getOBJSchema","attributes","metadata","metadataMap","key","Map","set","JSON","stringify","fields","attributeName","attribute","field","getArrowFieldFromAttribute","push","Schema","type","value","isSingleValue","size","Field","FixedSizeList"],"mappings":";;;;;;;AAAA;;AAEO,SAASA,YAAT,CAAsBC,UAAtB,EAAiD;AAAA,MAAfC,QAAe,uEAAJ,EAAI;AACtD,MAAIC,WAAJ;;AACA,OAAK,IAAMC,GAAX,IAAkBF,QAAlB,EAA4B;AAC1BC,IAAAA,WAAW,GAAGA,WAAW,IAAI,IAAIE,GAAJ,EAA7B;;AACA,QAAID,GAAG,KAAK,OAAZ,EAAqB;AACnBD,MAAAA,WAAW,CAACG,GAAZ,CAAgBF,GAAhB,EAAqBG,IAAI,CAACC,SAAL,CAAeN,QAAQ,CAACE,GAAD,CAAvB,CAArB;AACD;AACF;;AAED,MAAMK,MAAe,GAAG,EAAxB;;AACA,OAAK,IAAMC,aAAX,IAA4BT,UAA5B,EAAwC;AACtC,QAAMU,SAAS,GAAGV,UAAU,CAACS,aAAD,CAA5B;AACA,QAAME,KAAK,GAAGC,0BAA0B,CAACH,aAAD,EAAgBC,SAAhB,CAAxC;AACAF,IAAAA,MAAM,CAACK,IAAP,CAAYF,KAAZ;AACD;;AACD,SAAO,IAAIG,cAAJ,CAAWN,MAAX,EAAmBN,WAAnB,CAAP;AACD;;AAED,SAASU,0BAAT,CAAoCH,aAApC,EAAmDC,SAAnD,EAA8D;AAC5D,MAAMR,WAAW,GAAG,IAAIE,GAAJ,EAApB;;AACA,OAAK,IAAMD,GAAX,IAAkBO,SAAlB,EAA6B;AAC3B,QAAIP,GAAG,KAAK,OAAZ,EAAqB;AACnBD,MAAAA,WAAW,CAACG,GAAZ,CAAgBF,GAAhB,EAAqBG,IAAI,CAACC,SAAL,CAAeG,SAAS,CAACP,GAAD,CAAxB,CAArB;AACD;AACF;;AAED,MAAMY,IAAI,GAAG,wCAA2BL,SAAS,CAACM,KAArC,CAAb;AACA,MAAMC,aAAa,GAAG,EAAE,UAAUP,SAAZ,KAA0BA,SAAS,CAACQ,IAAV,KAAmB,CAAnE;AACA,SAAOD,aAAa,GAChB,IAAIE,aAAJ,CAAUV,aAAV,EAAyBM,IAAzB,EAA+B,KAA/B,EAAsCb,WAAtC,CADgB,GAEhB,IAAIiB,aAAJ,CACAV,aADA,EAEA,IAAIW,qBAAJ,CAAkBV,SAAS,CAACQ,IAA5B,EAAkC,IAAIC,aAAJ,CAAU,OAAV,EAAmBJ,IAAnB,CAAlC,CAFA,EAGA,KAHA,EAIAb,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"}
1
+ {"version":3,"sources":["../../../src/lib/get-obj-schema.ts"],"names":["getOBJSchema","attributes","metadata","metadataMap","key","Map","set","JSON","stringify","fields","attributeName","attribute","field","getArrowFieldFromAttribute","push","Schema","type","value","isSingleValue","size","Field","FixedSizeList"],"mappings":";;;;;;;AAAA;;AAEO,SAASA,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,IAAIG,cAAJ,CAAWN,MAAX,EAAmBN,WAAnB,CAAP;AACD;;AAED,SAASU,0BAAT,CAAoCH,aAApC,EAAmDC,SAAnD,EAA8D;AAC5D,QAAMR,WAAW,GAAG,IAAIE,GAAJ,EAApB;;AACA,OAAK,MAAMD,GAAX,IAAkBO,SAAlB,EAA6B;AAC3B,QAAIP,GAAG,KAAK,OAAZ,EAAqB;AACnBD,MAAAA,WAAW,CAACG,GAAZ,CAAgBF,GAAhB,EAAqBG,IAAI,CAACC,SAAL,CAAeG,SAAS,CAACP,GAAD,CAAxB,CAArB;AACD;AACF;;AAED,QAAMY,IAAI,GAAG,wCAA2BL,SAAS,CAACM,KAArC,CAAb;AACA,QAAMC,aAAa,GAAG,EAAE,UAAUP,SAAZ,KAA0BA,SAAS,CAACQ,IAAV,KAAmB,CAAnE;AACA,SAAOD,aAAa,GAChB,IAAIE,aAAJ,CAAUV,aAAV,EAAyBM,IAAzB,EAA+B,KAA/B,EAAsCb,WAAtC,CADgB,GAEhB,IAAIiB,aAAJ,CACAV,aADA,EAEA,IAAIW,qBAAJ,CAAkBV,SAAS,CAACQ,IAA5B,EAAkC,IAAIC,aAAJ,CAAU,OAAV,EAAmBJ,IAAnB,CAAlC,CAFA,EAGA,KAHA,EAIAb,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"}
@@ -13,25 +13,17 @@ var _parseObj = _interopRequireDefault(require("./parse-obj"));
13
13
 
14
14
  var _getObjSchema = require("./get-obj-schema");
15
15
 
16
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
17
-
18
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
-
20
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
-
22
16
  function loadOBJ(text, options) {
23
- var _parseOBJ = (0, _parseObj.default)(text),
24
- meshes = _parseOBJ.meshes;
25
-
26
- var vertexCount = meshes.reduce(function (s, mesh) {
27
- return s + mesh.header.vertexCount;
28
- }, 0);
29
- var attributes = mergeAttributes(meshes, vertexCount);
30
- var header = {
31
- vertexCount: vertexCount,
17
+ const {
18
+ meshes
19
+ } = (0, _parseObj.default)(text);
20
+ const vertexCount = meshes.reduce((s, mesh) => s + mesh.header.vertexCount, 0);
21
+ const attributes = mergeAttributes(meshes, vertexCount);
22
+ const header = {
23
+ vertexCount,
32
24
  boundingBox: (0, _schema.getMeshBoundingBox)(attributes)
33
25
  };
34
- var schema = (0, _getObjSchema.getOBJSchema)(attributes, {
26
+ const schema = (0, _getObjSchema.getOBJSchema)(attributes, {
35
27
  mode: 4,
36
28
  boundingBox: header.boundingBox
37
29
  });
@@ -39,57 +31,48 @@ function loadOBJ(text, options) {
39
31
  loaderData: {
40
32
  header: {}
41
33
  },
42
- schema: schema,
43
- header: header,
34
+ schema,
35
+ header,
44
36
  mode: 4,
45
- attributes: attributes
37
+ attributes
46
38
  };
47
39
  }
48
40
 
49
41
  function mergeAttributes(meshes, vertexCount) {
50
- var positions = new Float32Array(vertexCount * 3);
51
- var normals;
52
- var colors;
53
- var uvs;
54
- var i = 0;
55
-
56
- var _iterator = _createForOfIteratorHelper(meshes),
57
- _step;
58
-
59
- try {
60
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
61
- var mesh = _step.value;
62
- var _mesh$attributes = mesh.attributes,
63
- POSITION = _mesh$attributes.POSITION,
64
- NORMAL = _mesh$attributes.NORMAL,
65
- COLOR_0 = _mesh$attributes.COLOR_0,
66
- TEXCOORD_0 = _mesh$attributes.TEXCOORD_0;
67
- positions.set(POSITION.value, i * 3);
68
-
69
- if (NORMAL) {
70
- normals = normals || new Float32Array(vertexCount * 3);
71
- normals.set(NORMAL.value, i * 3);
72
- }
73
-
74
- if (COLOR_0) {
75
- colors = colors || new Float32Array(vertexCount * 3);
76
- colors.set(COLOR_0.value, i * 3);
77
- }
78
-
79
- if (TEXCOORD_0) {
80
- uvs = uvs || new Float32Array(vertexCount * 2);
81
- uvs.set(TEXCOORD_0.value, i * 2);
82
- }
83
-
84
- i += POSITION.value.length / 3;
42
+ const positions = new Float32Array(vertexCount * 3);
43
+ let normals;
44
+ let colors;
45
+ let uvs;
46
+ let i = 0;
47
+
48
+ for (const mesh of meshes) {
49
+ const {
50
+ POSITION,
51
+ NORMAL,
52
+ COLOR_0,
53
+ TEXCOORD_0
54
+ } = mesh.attributes;
55
+ positions.set(POSITION.value, i * 3);
56
+
57
+ if (NORMAL) {
58
+ normals = normals || new Float32Array(vertexCount * 3);
59
+ normals.set(NORMAL.value, i * 3);
60
+ }
61
+
62
+ if (COLOR_0) {
63
+ colors = colors || new Float32Array(vertexCount * 3);
64
+ colors.set(COLOR_0.value, i * 3);
65
+ }
66
+
67
+ if (TEXCOORD_0) {
68
+ uvs = uvs || new Float32Array(vertexCount * 2);
69
+ uvs.set(TEXCOORD_0.value, i * 2);
85
70
  }
86
- } catch (err) {
87
- _iterator.e(err);
88
- } finally {
89
- _iterator.f();
71
+
72
+ i += POSITION.value.length / 3;
90
73
  }
91
74
 
92
- var attributes = {};
75
+ const attributes = {};
93
76
  attributes.POSITION = {
94
77
  value: positions,
95
78
  size: 3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/load-obj.ts"],"names":["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"}
1
+ {"version":3,"sources":["../../../src/lib/load-obj.ts"],"names":["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"}