@loaders.gl/i3s 3.2.7 → 3.3.0-alpha.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 (67) hide show
  1. package/dist/dist.min.js +62 -55
  2. package/dist/es5/arcgis-webscene-loader.js +1 -1
  3. package/dist/es5/arcgis-webscene-loader.js.map +1 -1
  4. package/dist/es5/i3s-attribute-loader.js +1 -1
  5. package/dist/es5/i3s-attribute-loader.js.map +1 -1
  6. package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
  7. package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -1
  8. package/dist/es5/i3s-content-loader.js +22 -9
  9. package/dist/es5/i3s-content-loader.js.map +1 -1
  10. package/dist/es5/i3s-loader.js +36 -38
  11. package/dist/es5/i3s-loader.js.map +1 -1
  12. package/dist/es5/i3s-node-page-loader.js +1 -1
  13. package/dist/es5/i3s-node-page-loader.js.map +1 -1
  14. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +75 -77
  15. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  16. package/dist/es5/lib/parsers/parse-i3s.js +1 -1
  17. package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
  18. package/dist/es5/types.js.map +1 -1
  19. package/dist/es5/workers/i3s-content-nodejs-worker.js +10 -0
  20. package/dist/es5/workers/i3s-content-nodejs-worker.js.map +1 -0
  21. package/dist/esm/arcgis-webscene-loader.js +1 -1
  22. package/dist/esm/arcgis-webscene-loader.js.map +1 -1
  23. package/dist/esm/i3s-attribute-loader.js +1 -1
  24. package/dist/esm/i3s-attribute-loader.js.map +1 -1
  25. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  26. package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -1
  27. package/dist/esm/i3s-content-loader.js +14 -5
  28. package/dist/esm/i3s-content-loader.js.map +1 -1
  29. package/dist/esm/i3s-loader.js +8 -12
  30. package/dist/esm/i3s-loader.js.map +1 -1
  31. package/dist/esm/i3s-node-page-loader.js +1 -1
  32. package/dist/esm/i3s-node-page-loader.js.map +1 -1
  33. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +35 -33
  34. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  35. package/dist/esm/lib/parsers/parse-i3s.js +1 -1
  36. package/dist/esm/lib/parsers/parse-i3s.js.map +1 -1
  37. package/dist/esm/types.js.map +1 -1
  38. package/dist/esm/workers/i3s-content-nodejs-worker.js +5 -0
  39. package/dist/esm/workers/i3s-content-nodejs-worker.js.map +1 -0
  40. package/dist/i3s-building-scene-layer-loader.js +1 -1
  41. package/dist/i3s-content-loader.d.ts.map +1 -1
  42. package/dist/i3s-content-loader.js +10 -5
  43. package/dist/i3s-content-nodejs-worker.js +200 -0
  44. package/dist/i3s-content-nodejs-worker.js.map +7 -0
  45. package/dist/i3s-content-worker.js +56 -49
  46. package/dist/i3s-loader.d.ts +5 -0
  47. package/dist/i3s-loader.d.ts.map +1 -1
  48. package/dist/i3s-loader.js +6 -9
  49. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +2 -2
  50. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  51. package/dist/lib/parsers/parse-i3s-tile-content.js +35 -32
  52. package/dist/lib/parsers/parse-i3s.d.ts +1 -1
  53. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
  54. package/dist/lib/parsers/parse-i3s.js +1 -1
  55. package/dist/types.d.ts +41 -0
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/workers/i3s-content-nodejs-worker.d.ts +2 -0
  58. package/dist/workers/i3s-content-nodejs-worker.d.ts.map +1 -0
  59. package/dist/workers/i3s-content-nodejs-worker.js +6 -0
  60. package/package.json +11 -10
  61. package/src/i3s-building-scene-layer-loader.ts +1 -1
  62. package/src/i3s-content-loader.ts +20 -7
  63. package/src/i3s-loader.ts +15 -12
  64. package/src/lib/parsers/parse-i3s-tile-content.ts +44 -41
  65. package/src/lib/parsers/parse-i3s.ts +1 -1
  66. package/src/types.ts +45 -0
  67. package/src/workers/i3s-content-nodejs-worker.ts +5 -0
@@ -21,7 +21,7 @@ var _parseI3s = require("./lib/parsers/parse-i3s");
21
21
 
22
22
  var _constants = require("./lib/parsers/constants");
23
23
 
24
- var VERSION = typeof "3.2.7" !== 'undefined' ? "3.2.7" : 'latest';
24
+ var VERSION = typeof "3.3.0-alpha.3" !== 'undefined' ? "3.3.0-alpha.3" : 'latest';
25
25
  var TILESET_REGEX = /layers\/[0-9]+$/;
26
26
  var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
27
27
  var SLPK_HEX = '504b0304';
@@ -35,12 +35,13 @@ var I3SLoader = {
35
35
  extensions: ['bin'],
36
36
  options: {
37
37
  i3s: {
38
- loadContent: true,
39
38
  token: null,
40
39
  isTileset: 'auto',
41
40
  isTileHeader: 'auto',
42
41
  tile: null,
43
42
  tileset: null,
43
+ _tileOptions: null,
44
+ _tilesetOptions: null,
44
45
  useDracoGeometry: true,
45
46
  useCompressedTextures: true,
46
47
  decodeTextures: true,
@@ -50,29 +51,37 @@ var I3SLoader = {
50
51
  };
51
52
  exports.I3SLoader = I3SLoader;
52
53
 
53
- function parseI3S(_x, _x2, _x3) {
54
+ function parseI3S(_x) {
54
55
  return _parseI3S.apply(this, arguments);
55
56
  }
56
57
 
57
58
  function _parseI3S() {
58
- _parseI3S = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, options, context) {
59
- var url, magicNumber, isTileset, isTileHeader;
59
+ _parseI3S = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
60
+ var options,
61
+ context,
62
+ url,
63
+ magicNumber,
64
+ isTileset,
65
+ isTileHeader,
66
+ _args = arguments;
60
67
  return _regenerator.default.wrap(function _callee$(_context) {
61
68
  while (1) {
62
69
  switch (_context.prev = _context.next) {
63
70
  case 0:
71
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
72
+ context = _args.length > 2 ? _args[2] : undefined;
64
73
  url = context.url;
65
74
  options.i3s = options.i3s || {};
66
75
  magicNumber = getMagicNumber(data);
67
76
 
68
77
  if (!(magicNumber === SLPK_HEX)) {
69
- _context.next = 5;
78
+ _context.next = 7;
70
79
  break;
71
80
  }
72
81
 
73
82
  throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
74
83
 
75
- case 5:
84
+ case 7:
76
85
  if (options.i3s.isTileset === 'auto') {
77
86
  isTileset = TILESET_REGEX.test(url);
78
87
  } else {
@@ -86,54 +95,43 @@ function _parseI3S() {
86
95
  }
87
96
 
88
97
  if (!isTileset) {
89
- _context.next = 13;
98
+ _context.next = 15;
90
99
  break;
91
100
  }
92
101
 
93
- _context.next = 10;
102
+ _context.next = 12;
94
103
  return parseTileset(data, options, context);
95
104
 
96
- case 10:
105
+ case 12:
97
106
  data = _context.sent;
98
- _context.next = 26;
107
+ _context.next = 24;
99
108
  break;
100
109
 
101
- case 13:
110
+ case 15:
102
111
  if (!isTileHeader) {
103
- _context.next = 23;
104
- break;
105
- }
106
-
107
- _context.next = 16;
108
- return parseTile(data, options, context);
109
-
110
- case 16:
111
- data = _context.sent;
112
-
113
- if (!options.i3s.loadContent) {
114
112
  _context.next = 21;
115
113
  break;
116
114
  }
117
115
 
118
- options.i3s.tile = data;
119
- _context.next = 21;
120
- return (0, _core.load)(data.contentUrl, I3SLoader, options);
116
+ _context.next = 18;
117
+ return parseTile(data, context);
121
118
 
122
- case 21:
123
- _context.next = 26;
119
+ case 18:
120
+ data = _context.sent;
121
+ _context.next = 24;
124
122
  break;
125
123
 
126
- case 23:
127
- _context.next = 25;
124
+ case 21:
125
+ _context.next = 23;
128
126
  return parseTileContent(data, options);
129
127
 
130
- case 25:
128
+ case 23:
131
129
  data = _context.sent;
132
130
 
133
- case 26:
131
+ case 24:
134
132
  return _context.abrupt("return", data);
135
133
 
136
- case 27:
134
+ case 25:
137
135
  case "end":
138
136
  return _context.stop();
139
137
  }
@@ -143,7 +141,7 @@ function _parseI3S() {
143
141
  return _parseI3S.apply(this, arguments);
144
142
  }
145
143
 
146
- function parseTileContent(_x4, _x5) {
144
+ function parseTileContent(_x2, _x3) {
147
145
  return _parseTileContent.apply(this, arguments);
148
146
  }
149
147
 
@@ -169,7 +167,7 @@ function _parseTileContent() {
169
167
  return _parseTileContent.apply(this, arguments);
170
168
  }
171
169
 
172
- function parseTileset(_x6, _x7, _x8) {
170
+ function parseTileset(_x4, _x5, _x6) {
173
171
  return _parseTileset.apply(this, arguments);
174
172
  }
175
173
 
@@ -198,18 +196,18 @@ function _parseTileset() {
198
196
  return _parseTileset.apply(this, arguments);
199
197
  }
200
198
 
201
- function parseTile(_x9, _x10, _x11) {
199
+ function parseTile(_x7, _x8) {
202
200
  return _parseTile.apply(this, arguments);
203
201
  }
204
202
 
205
203
  function _parseTile() {
206
- _parseTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(data, options, context) {
204
+ _parseTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(data, context) {
207
205
  return _regenerator.default.wrap(function _callee4$(_context4) {
208
206
  while (1) {
209
207
  switch (_context4.prev = _context4.next) {
210
208
  case 0:
211
209
  data = JSON.parse(new TextDecoder().decode(data));
212
- return _context4.abrupt("return", (0, _parseI3s.normalizeTileData)(data, options, context));
210
+ return _context4.abrupt("return", (0, _parseI3s.normalizeTileData)(data, context));
213
211
 
214
212
  case 2:
215
213
  case "end":
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i3s-loader.ts"],"names":["VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","I3SLoader","name","id","module","version","mimeTypes","parse","parseI3S","extensions","options","i3s","loadContent","token","isTileset","isTileHeader","tile","tileset","useDracoGeometry","useCompressedTextures","decodeTextures","coordinateSystem","COORDINATE_SYSTEM","METER_OFFSETS","data","context","url","magicNumber","getMagicNumber","Error","test","parseTileset","parseTile","contentUrl","parseTileContent","arrayBuffer","I3SContentLoader","tilesetJson","JSON","TextDecoder","decode","loader","ArrayBuffer","Uint8Array","map","value","toString","padStart","join"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AAIA,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AAEA,IAAMC,aAAa,GAAG,iBAAtB;AACA,IAAMC,iBAAiB,GAAG,wBAA1B;AACA,IAAMC,QAAQ,GAAG,UAAjB;AAKO,IAAMC,SAA2B,GAAG;AACzCC,EAAAA,IAAI,EAAE,4BADmC;AAEzCC,EAAAA,EAAE,EAAE,KAFqC;AAGzCC,EAAAA,MAAM,EAAE,KAHiC;AAIzCC,EAAAA,OAAO,EAAER,OAJgC;AAKzCS,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAL8B;AAMzCC,EAAAA,KAAK,EAAEC,QANkC;AAOzCC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAP6B;AAQzCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AACHC,MAAAA,WAAW,EAAE,IADV;AAEHC,MAAAA,KAAK,EAAE,IAFJ;AAGHC,MAAAA,SAAS,EAAE,MAHR;AAIHC,MAAAA,YAAY,EAAE,MAJX;AAKHC,MAAAA,IAAI,EAAE,IALH;AAMHC,MAAAA,OAAO,EAAE,IANN;AAOHC,MAAAA,gBAAgB,EAAE,IAPf;AAQHC,MAAAA,qBAAqB,EAAE,IARpB;AASHC,MAAAA,cAAc,EAAE,IATb;AAUHC,MAAAA,gBAAgB,EAAEC,6BAAkBC;AAVjC;AADE;AARgC,CAApC;;;SAwBQf,Q;;;;;wEAAf,iBAAwBgB,IAAxB,EAA8Bd,OAA9B,EAAuCe,OAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AACQC,YAAAA,GADR,GACcD,OAAO,CAACC,GADtB;AAEEhB,YAAAA,OAAO,CAACC,GAAR,GAAcD,OAAO,CAACC,GAAR,IAAe,EAA7B;AACMgB,YAAAA,WAHR,GAGsBC,cAAc,CAACJ,IAAD,CAHpC;;AAAA,kBAMMG,WAAW,KAAK3B,QANtB;AAAA;AAAA;AAAA;;AAAA,kBAOU,IAAI6B,KAAJ,CAAU,qEAAV,CAPV;;AAAA;AAYE,gBAAInB,OAAO,CAACC,GAAR,CAAYG,SAAZ,KAA0B,MAA9B,EAAsC;AACpCA,cAAAA,SAAS,GAAGhB,aAAa,CAACgC,IAAd,CAAmBJ,GAAnB,CAAZ;AACD,aAFD,MAEO;AACLZ,cAAAA,SAAS,GAAGJ,OAAO,CAACC,GAAR,CAAYG,SAAxB;AACD;;AAGD,gBAAIJ,OAAO,CAACK,YAAR,KAAyB,MAA7B,EAAqC;AACnCA,cAAAA,YAAY,GAAGhB,iBAAiB,CAAC+B,IAAlB,CAAuBJ,GAAvB,CAAf;AACD,aAFD,MAEO;AACLX,cAAAA,YAAY,GAAGL,OAAO,CAACC,GAAR,CAAYI,YAA3B;AACD;;AAvBH,iBAyBMD,SAzBN;AAAA;AAAA;AAAA;;AAAA;AAAA,mBA0BiBiB,YAAY,CAACP,IAAD,EAAOd,OAAP,EAAgBe,OAAhB,CA1B7B;;AAAA;AA0BID,YAAAA,IA1BJ;AAAA;AAAA;;AAAA;AAAA,iBA2BaT,YA3Bb;AAAA;AAAA;AAAA;;AAAA;AAAA,mBA4BiBiB,SAAS,CAACR,IAAD,EAAOd,OAAP,EAAgBe,OAAhB,CA5B1B;;AAAA;AA4BID,YAAAA,IA5BJ;;AAAA,iBA6BQd,OAAO,CAACC,GAAR,CAAYC,WA7BpB;AAAA;AAAA;AAAA;;AA8BMF,YAAAA,OAAO,CAACC,GAAR,CAAYK,IAAZ,GAAmBQ,IAAnB;AA9BN;AAAA,mBA+BY,gBAAKA,IAAI,CAACS,UAAV,EAAsBhC,SAAtB,EAAiCS,OAAjC,CA/BZ;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,mBAkCiBwB,gBAAgB,CAACV,IAAD,EAAOd,OAAP,CAlCjC;;AAAA;AAkCIc,YAAAA,IAlCJ;;AAAA;AAAA,6CAqCSA,IArCT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAwCeU,gB;;;;;gFAAf,kBAAgCC,WAAhC,EAA6CzB,OAA7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBACe,iBAAMyB,WAAN,EAAmBC,kCAAnB,EAAqC1B,OAArC,CADf;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAIeqB,Y;;;;;4EAAf,kBAA4BP,IAA5B,EAAkCd,OAAlC,EAA2Ce,OAA3C;AAAA;AAAA;AAAA;AAAA;AAAA;AACQY,YAAAA,WADR,GACsBC,IAAI,CAAC/B,KAAL,CAAW,IAAIgC,WAAJ,GAAkBC,MAAlB,CAAyBhB,IAAzB,CAAX,CADtB;AAGEa,YAAAA,WAAW,CAACI,MAAZ,GAAqBxC,SAArB;AAHF;AAAA,mBAIQ,oCAAqBoC,WAArB,EAAkC3B,OAAlC,EAA2Ce,OAA3C,CAJR;;AAAA;AAAA,8CAMSY,WANT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SASeL,S;;;;;yEAAf,kBAAyBR,IAAzB,EAA+Bd,OAA/B,EAAwCe,OAAxC;AAAA;AAAA;AAAA;AAAA;AACED,YAAAA,IAAI,GAAGc,IAAI,CAAC/B,KAAL,CAAW,IAAIgC,WAAJ,GAAkBC,MAAlB,CAAyBhB,IAAzB,CAAX,CAAP;AADF,8CAES,iCAAkBA,IAAlB,EAAwBd,OAAxB,EAAiCe,OAAjC,CAFT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAKA,SAASG,cAAT,CAAwBJ,IAAxB,EAA8B;AAC5B,MAAIA,IAAI,YAAYkB,WAApB,EAAiC;AAE/B,WAAO,iCAAI,IAAIC,UAAJ,CAAenB,IAAf,EAAqB,CAArB,EAAwB,CAAxB,CAAJ,EACJoB,GADI,CACA,UAACC,KAAD;AAAA,aAAWA,KAAK,CAACC,QAAN,CAAe,EAAf,EAAmBC,QAAnB,CAA4B,CAA5B,EAA+B,GAA/B,CAAX;AAAA,KADA,EAEJC,IAFI,CAEC,EAFD,CAAP;AAGD;;AACD,SAAO,IAAP;AACD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {load, parse} from '@loaders.gl/core';\nimport {I3SContentLoader} from './i3s-content-loader';\nimport {normalizeTileData, normalizeTilesetData} from './lib/parsers/parse-i3s';\nimport {COORDINATE_SYSTEM} from './lib/parsers/constants';\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\nconst TILESET_REGEX = /layers\\/[0-9]+$/;\nconst TILE_HEADER_REGEX = /nodes\\/([0-9-]+|root)$/;\nconst SLPK_HEX = '504b0304';\n\n/**\n * Loader for I3S - Indexed 3D Scene Layer\n */\nexport const I3SLoader: LoaderWithParser = {\n name: 'I3S (Indexed Scene Layers)',\n id: 'i3s',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseI3S,\n extensions: ['bin'],\n options: {\n i3s: {\n loadContent: true,\n token: null,\n isTileset: 'auto',\n isTileHeader: 'auto',\n tile: null,\n tileset: null,\n useDracoGeometry: true,\n useCompressedTextures: true,\n decodeTextures: true,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS\n }\n }\n};\n\nasync function parseI3S(data, options, context) {\n const url = context.url;\n options.i3s = options.i3s || {};\n const magicNumber = getMagicNumber(data);\n\n // check if file is slpk\n if (magicNumber === SLPK_HEX) {\n throw new Error('Files with .slpk extention currently are not supported by I3SLoader');\n }\n\n // auto detect file type based on url\n let isTileset;\n if (options.i3s.isTileset === 'auto') {\n isTileset = TILESET_REGEX.test(url);\n } else {\n isTileset = options.i3s.isTileset;\n }\n\n let isTileHeader;\n if (options.isTileHeader === 'auto') {\n isTileHeader = TILE_HEADER_REGEX.test(url);\n } else {\n isTileHeader = options.i3s.isTileHeader;\n }\n\n if (isTileset) {\n data = await parseTileset(data, options, context);\n } else if (isTileHeader) {\n data = await parseTile(data, options, context);\n if (options.i3s.loadContent) {\n options.i3s.tile = data;\n await load(data.contentUrl, I3SLoader, options);\n }\n } else {\n data = await parseTileContent(data, options);\n }\n\n return data;\n}\n\nasync function parseTileContent(arrayBuffer, options) {\n return await parse(arrayBuffer, I3SContentLoader, options);\n}\n\nasync function parseTileset(data, options, context) {\n const tilesetJson = JSON.parse(new TextDecoder().decode(data));\n // eslint-disable-next-line no-use-before-define\n tilesetJson.loader = I3SLoader;\n await normalizeTilesetData(tilesetJson, options, context);\n\n return tilesetJson;\n}\n\nasync function parseTile(data, options, context) {\n data = JSON.parse(new TextDecoder().decode(data));\n return normalizeTileData(data, options, context);\n}\n\nfunction getMagicNumber(data) {\n if (data instanceof ArrayBuffer) {\n // slice binary data (4 bytes from the beginning) and transform it to hexadecimal numeral system\n return [...new Uint8Array(data, 0, 4)]\n .map((value) => value.toString(16).padStart(2, '0'))\n .join('');\n }\n return null;\n}\n"],"file":"i3s-loader.js"}
1
+ {"version":3,"sources":["../../src/i3s-loader.ts"],"names":["VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","I3SLoader","name","id","module","version","mimeTypes","parse","parseI3S","extensions","options","i3s","token","isTileset","isTileHeader","tile","tileset","_tileOptions","_tilesetOptions","useDracoGeometry","useCompressedTextures","decodeTextures","coordinateSystem","COORDINATE_SYSTEM","METER_OFFSETS","data","context","url","magicNumber","getMagicNumber","Error","test","parseTileset","parseTile","parseTileContent","arrayBuffer","I3SContentLoader","tilesetJson","JSON","TextDecoder","decode","loader","ArrayBuffer","Uint8Array","map","value","toString","padStart","join"],"mappings":"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","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parse} from '@loaders.gl/core';\nimport {I3SContentLoader} from './i3s-content-loader';\nimport {normalizeTileData, normalizeTilesetData} from './lib/parsers/parse-i3s';\nimport {COORDINATE_SYSTEM} from './lib/parsers/constants';\nimport {I3SParseOptions} from './types';\nimport {LoaderOptions} from './../../loader-utils/src/types';\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\nconst TILESET_REGEX = /layers\\/[0-9]+$/;\nconst TILE_HEADER_REGEX = /nodes\\/([0-9-]+|root)$/;\nconst SLPK_HEX = '504b0304';\n\nexport type I3SLoaderOptions = LoaderOptions & {\n i3s?: I3SParseOptions;\n};\n\n/**\n * Loader for I3S - Indexed 3D Scene Layer\n */\nexport const I3SLoader: LoaderWithParser = {\n name: 'I3S (Indexed Scene Layers)',\n id: 'i3s',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseI3S,\n extensions: ['bin'],\n options: {\n i3s: {\n token: null,\n isTileset: 'auto',\n isTileHeader: 'auto',\n tile: null,\n tileset: null,\n _tileOptions: null,\n _tilesetOptions: null,\n useDracoGeometry: true,\n useCompressedTextures: true,\n decodeTextures: true,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS\n }\n }\n};\n\nasync function parseI3S(data, options: I3SLoaderOptions = {}, context) {\n const url = context.url;\n options.i3s = options.i3s || {};\n const magicNumber = getMagicNumber(data);\n\n // check if file is slpk\n if (magicNumber === SLPK_HEX) {\n throw new Error('Files with .slpk extention currently are not supported by I3SLoader');\n }\n\n // auto detect file type based on url\n let isTileset;\n if (options.i3s.isTileset === 'auto') {\n isTileset = TILESET_REGEX.test(url);\n } else {\n isTileset = options.i3s.isTileset;\n }\n\n let isTileHeader;\n if (options.isTileHeader === 'auto') {\n isTileHeader = TILE_HEADER_REGEX.test(url);\n } else {\n isTileHeader = options.i3s.isTileHeader;\n }\n\n if (isTileset) {\n data = await parseTileset(data, options, context);\n } else if (isTileHeader) {\n data = await parseTile(data, context);\n } else {\n data = await parseTileContent(data, options);\n }\n\n return data;\n}\n\nasync function parseTileContent(arrayBuffer, options: I3SLoaderOptions) {\n return await parse(arrayBuffer, I3SContentLoader, options);\n}\n\nasync function parseTileset(data, options: I3SLoaderOptions, context) {\n const tilesetJson = JSON.parse(new TextDecoder().decode(data));\n // eslint-disable-next-line no-use-before-define\n tilesetJson.loader = I3SLoader;\n await normalizeTilesetData(tilesetJson, options, context);\n\n return tilesetJson;\n}\n\nasync function parseTile(data, context) {\n data = JSON.parse(new TextDecoder().decode(data));\n return normalizeTileData(data, context);\n}\n\nfunction getMagicNumber(data) {\n if (data instanceof ArrayBuffer) {\n // slice binary data (4 bytes from the beginning) and transform it to hexadecimal numeral system\n return [...new Uint8Array(data, 0, 4)]\n .map((value) => value.toString(16).padStart(2, '0'))\n .join('');\n }\n return null;\n}\n"],"file":"i3s-loader.js"}
@@ -11,7 +11,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
11
11
 
12
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
13
 
14
- var VERSION = typeof "3.2.7" !== 'undefined' ? "3.2.7" : 'latest';
14
+ var VERSION = typeof "3.3.0-alpha.3" !== 'undefined' ? "3.3.0-alpha.3" : 'latest';
15
15
 
16
16
  function parseNodePage(_x) {
17
17
  return _parseNodePage.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i3s-node-page-loader.ts"],"names":["VERSION","parseNodePage","data","JSON","parse","TextDecoder","decode","I3SNodePageLoader","name","id","module","version","mimeTypes","extensions","options"],"mappings":";;;;;;;;;;;;;AAIA,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;;SAEeC,a;;;;;6EAAf,iBAA6BC,IAA7B;AAAA;AAAA;AAAA;AAAA;AAAA,6CACSC,IAAI,CAACC,KAAL,CAAW,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,IAAzB,CAAX,CADT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAOO,IAAMK,iBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,eAD2C;AAEjDC,EAAAA,EAAE,EAAE,eAF6C;AAGjDC,EAAAA,MAAM,EAAE,KAHyC;AAIjDC,EAAAA,OAAO,EAAEX,OAJwC;AAKjDY,EAAAA,SAAS,EAAE,CAAC,kBAAD,CALsC;AAMjDR,EAAAA,KAAK,EAALA,KANiD;AAOjDS,EAAAA,UAAU,EAAE,CAAC,MAAD,CAPqC;AAQjDC,EAAAA,OAAO,EAAE;AARwC,CAA5C;;;SAWQV,K;;;;;qEAAf,kBAAqBF,IAArB;AAAA;AAAA;AAAA;AAAA;AACEA,YAAAA,IAAI,GAAGD,aAAa,CAACC,IAAD,CAApB;AADF,8CAESA,IAFT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {LoaderWithParser} 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\nasync function parseNodePage(data) {\n return JSON.parse(new TextDecoder().decode(data));\n}\n\n/**\n * Loader for I3S node pages\n */\nexport const I3SNodePageLoader: LoaderWithParser = {\n name: 'I3S Node Page',\n id: 'i3s-node-page',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/json'],\n parse,\n extensions: ['json'],\n options: {}\n};\n\nasync function parse(data) {\n data = parseNodePage(data);\n return data;\n}\n"],"file":"i3s-node-page-loader.js"}
1
+ {"version":3,"sources":["../../src/i3s-node-page-loader.ts"],"names":["VERSION","parseNodePage","data","JSON","parse","TextDecoder","decode","I3SNodePageLoader","name","id","module","version","mimeTypes","extensions","options"],"mappings":";;;;;;;;;;;;;AAIA,IAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;;SAEeC,a;;;;;6EAAf,iBAA6BC,IAA7B;AAAA;AAAA;AAAA;AAAA;AAAA,6CACSC,IAAI,CAACC,KAAL,CAAW,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,IAAzB,CAAX,CADT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAOO,IAAMK,iBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,eAD2C;AAEjDC,EAAAA,EAAE,EAAE,eAF6C;AAGjDC,EAAAA,MAAM,EAAE,KAHyC;AAIjDC,EAAAA,OAAO,EAAEX,OAJwC;AAKjDY,EAAAA,SAAS,EAAE,CAAC,kBAAD,CALsC;AAMjDR,EAAAA,KAAK,EAALA,KANiD;AAOjDS,EAAAA,UAAU,EAAE,CAAC,MAAD,CAPqC;AAQjDC,EAAAA,OAAO,EAAE;AARwC,CAA5C;;;SAWQV,K;;;;;qEAAf,kBAAqBF,IAArB;AAAA;AAAA;AAAA;AAAA;AACEA,YAAAA,IAAI,GAAGD,aAAa,CAACC,IAAD,CAApB;AADF,8CAESA,IAFT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {LoaderWithParser} 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\nasync function parseNodePage(data) {\n return JSON.parse(new TextDecoder().decode(data));\n}\n\n/**\n * Loader for I3S node pages\n */\nexport const I3SNodePageLoader: LoaderWithParser = {\n name: 'I3S Node Page',\n id: 'i3s-node-page',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/json'],\n parse,\n extensions: ['json'],\n options: {}\n};\n\nasync function parse(data) {\n data = parseNodePage(data);\n return data;\n}\n"],"file":"i3s-node-page-loader.js"}
@@ -68,89 +68,96 @@ function parseI3STileContent(_x, _x2, _x3, _x4, _x5) {
68
68
  }
69
69
 
70
70
  function _parseI3STileContent() {
71
- _parseI3STileContent = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, tile, tileset, options, context) {
72
- var _options$i3s, url, loader, response, _arrayBuffer, _options, texture;
71
+ _parseI3STileContent = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, tileOptions, tilesetOptions, options, context) {
72
+ var content, _options$i3s, url, loader, response, _arrayBuffer, _options, texture;
73
73
 
74
74
  return _regenerator.default.wrap(function _callee$(_context) {
75
75
  while (1) {
76
76
  switch (_context.prev = _context.next) {
77
77
  case 0:
78
- tile.content = tile.content || {};
79
- tile.content.featureIds = tile.content.featureIds || null;
80
- tile.content.attributes = {};
78
+ content = {
79
+ attributes: {},
80
+ indices: null,
81
+ featureIds: [],
82
+ vertexCount: 0,
83
+ modelMatrix: new _core2.Matrix4(),
84
+ coordinateSystem: 0,
85
+ byteLength: 0,
86
+ texture: null
87
+ };
81
88
 
82
- if (!tile.textureUrl) {
83
- _context.next = 37;
89
+ if (!tileOptions.textureUrl) {
90
+ _context.next = 35;
84
91
  break;
85
92
  }
86
93
 
87
- url = (0, _urlUtils.getUrlWithToken)(tile.textureUrl, options === null || options === void 0 ? void 0 : (_options$i3s = options.i3s) === null || _options$i3s === void 0 ? void 0 : _options$i3s.token);
88
- loader = getLoaderForTextureFormat(tile.textureFormat);
89
- _context.next = 8;
94
+ url = (0, _urlUtils.getUrlWithToken)(tileOptions.textureUrl, options === null || options === void 0 ? void 0 : (_options$i3s = options.i3s) === null || _options$i3s === void 0 ? void 0 : _options$i3s.token);
95
+ loader = getLoaderForTextureFormat(tileOptions.textureFormat);
96
+ _context.next = 6;
90
97
  return fetch(url, options === null || options === void 0 ? void 0 : options.fetch);
91
98
 
92
- case 8:
99
+ case 6:
93
100
  response = _context.sent;
94
- _context.next = 11;
101
+ _context.next = 9;
95
102
  return response.arrayBuffer();
96
103
 
97
- case 11:
104
+ case 9:
98
105
  _arrayBuffer = _context.sent;
99
106
 
100
107
  if (!(options !== null && options !== void 0 && options.i3s.decodeTextures)) {
101
- _context.next = 36;
108
+ _context.next = 34;
102
109
  break;
103
110
  }
104
111
 
105
112
  if (!(loader === _images.ImageLoader)) {
106
- _context.next = 28;
113
+ _context.next = 26;
107
114
  break;
108
115
  }
109
116
 
110
- _options = _objectSpread(_objectSpread({}, tile.textureLoaderOptions), {}, {
117
+ _options = _objectSpread(_objectSpread({}, tileOptions.textureLoaderOptions), {}, {
111
118
  image: {
112
119
  type: 'data'
113
120
  }
114
121
  });
115
- _context.prev = 15;
116
- _context.next = 18;
122
+ _context.prev = 13;
123
+ _context.next = 16;
117
124
  return context.parse(_arrayBuffer, _options);
118
125
 
119
- case 18:
120
- tile.content.texture = _context.sent;
121
- _context.next = 26;
126
+ case 16:
127
+ content.texture = _context.sent;
128
+ _context.next = 24;
122
129
  break;
123
130
 
124
- case 21:
125
- _context.prev = 21;
126
- _context.t0 = _context["catch"](15);
127
- _context.next = 25;
131
+ case 19:
132
+ _context.prev = 19;
133
+ _context.t0 = _context["catch"](13);
134
+ _context.next = 23;
128
135
  return (0, _core.parse)(_arrayBuffer, loader, _options);
129
136
 
130
- case 25:
131
- tile.content.texture = _context.sent;
137
+ case 23:
138
+ content.texture = _context.sent;
132
139
 
133
- case 26:
134
- _context.next = 34;
140
+ case 24:
141
+ _context.next = 32;
135
142
  break;
136
143
 
137
- case 28:
144
+ case 26:
138
145
  if (!(loader === _textures.CompressedTextureLoader || loader === _textures.BasisLoader)) {
139
- _context.next = 34;
146
+ _context.next = 32;
140
147
  break;
141
148
  }
142
149
 
143
- _context.next = 31;
144
- return (0, _core.load)(_arrayBuffer, loader, tile.textureLoaderOptions);
150
+ _context.next = 29;
151
+ return (0, _core.load)(_arrayBuffer, loader, tileOptions.textureLoaderOptions);
145
152
 
146
- case 31:
153
+ case 29:
147
154
  texture = _context.sent;
148
155
 
149
156
  if (loader === _textures.BasisLoader) {
150
157
  texture = texture[0];
151
158
  }
152
159
 
153
- tile.content.texture = {
160
+ content.texture = {
154
161
  compressed: true,
155
162
  mipmaps: false,
156
163
  width: texture[0].width,
@@ -158,76 +165,67 @@ function _parseI3STileContent() {
158
165
  data: texture
159
166
  };
160
167
 
161
- case 34:
162
- _context.next = 37;
168
+ case 32:
169
+ _context.next = 35;
163
170
  break;
164
171
 
165
- case 36:
166
- tile.content.texture = _arrayBuffer;
172
+ case 34:
173
+ content.texture = _arrayBuffer;
167
174
 
168
- case 37:
169
- tile.content.material = makePbrMaterial(tile.materialDefinition, tile.content.texture);
175
+ case 35:
176
+ content.material = makePbrMaterial(tileOptions.materialDefinition, content.texture);
170
177
 
171
- if (tile.content.material) {
172
- tile.content.texture = null;
178
+ if (content.material) {
179
+ content.texture = null;
173
180
  }
174
181
 
175
- _context.next = 41;
176
- return parseI3SNodeGeometry(arrayBuffer, tile, tileset, options);
182
+ _context.next = 39;
183
+ return parseI3SNodeGeometry(arrayBuffer, content, tileOptions, tilesetOptions, options);
177
184
 
178
- case 41:
185
+ case 39:
179
186
  return _context.abrupt("return", _context.sent);
180
187
 
181
- case 42:
188
+ case 40:
182
189
  case "end":
183
190
  return _context.stop();
184
191
  }
185
192
  }
186
- }, _callee, null, [[15, 21]]);
193
+ }, _callee, null, [[13, 19]]);
187
194
  }));
188
195
  return _parseI3STileContent.apply(this, arguments);
189
196
  }
190
197
 
191
- function parseI3SNodeGeometry(_x6, _x7, _x8, _x9) {
198
+ function parseI3SNodeGeometry(_x6, _x7, _x8, _x9, _x10) {
192
199
  return _parseI3SNodeGeometry.apply(this, arguments);
193
200
  }
194
201
 
195
202
  function _parseI3SNodeGeometry() {
196
- _parseI3SNodeGeometry = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(arrayBuffer, tile, tileset, options) {
203
+ _parseI3SNodeGeometry = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(arrayBuffer, content, tileOptions, tilesetOptions, options) {
197
204
  var _options$i3s2;
198
205
 
199
- var content, contentByteLength, attributes, vertexCount, byteOffset, featureCount, indices, _decompressedGeometry, decompressedGeometry, _decompressedGeometry2, POSITION, NORMAL, COLOR_0, TEXCOORD_0, featureIndex, uvRegion, featureIds, _tileset$store$defaul, vertexAttributes, attributesOrder, featureAttributes, featureAttributeOrder, headers, _normalizeAttributes, normalizedVertexAttributes, offset, _normalizeAttributes2, normalizedFeatureAttributes, enuMatrix, attributeIndex;
206
+ var contentByteLength, attributes, vertexCount, byteOffset, featureCount, indices, _decompressedGeometry, decompressedGeometry, _decompressedGeometry2, POSITION, NORMAL, COLOR_0, TEXCOORD_0, featureIndex, uvRegion, featureIds, _tilesetOptions$store, vertexAttributes, attributesOrder, featureAttributes, featureAttributeOrder, headers, _normalizeAttributes, normalizedVertexAttributes, offset, _normalizeAttributes2, normalizedFeatureAttributes, enuMatrix, attributeIndex;
200
207
 
201
208
  return _regenerator.default.wrap(function _callee2$(_context2) {
202
209
  while (1) {
203
210
  switch (_context2.prev = _context2.next) {
204
211
  case 0:
205
- if (tile.content) {
206
- _context2.next = 2;
207
- break;
208
- }
209
-
210
- return _context2.abrupt("return", tile);
211
-
212
- case 2:
213
- content = tile.content;
214
212
  contentByteLength = arrayBuffer.byteLength;
215
213
  byteOffset = 0;
216
214
  featureCount = 0;
217
215
 
218
- if (!tile.isDracoGeometry) {
219
- _context2.next = 19;
216
+ if (!tileOptions.isDracoGeometry) {
217
+ _context2.next = 16;
220
218
  break;
221
219
  }
222
220
 
223
- _context2.next = 9;
221
+ _context2.next = 6;
224
222
  return (0, _core.parse)(arrayBuffer, _draco.DracoLoader, {
225
223
  draco: {
226
224
  attributeNameEntry: I3S_ATTRIBUTE_TYPE
227
225
  }
228
226
  });
229
227
 
230
- case 9:
228
+ case 6:
231
229
  decompressedGeometry = _context2.sent;
232
230
  vertexCount = decompressedGeometry.header.vertexCount;
233
231
  indices = (_decompressedGeometry = decompressedGeometry.indices) === null || _decompressedGeometry === void 0 ? void 0 : _decompressedGeometry.value;
@@ -247,12 +245,12 @@ function _parseI3SNodeGeometry() {
247
245
  flattenFeatureIdsByFeatureIndices(attributes, featureIds);
248
246
  }
249
247
 
250
- _context2.next = 28;
248
+ _context2.next = 25;
251
249
  break;
252
250
 
253
- case 19:
254
- _tileset$store$defaul = tileset.store.defaultGeometrySchema, vertexAttributes = _tileset$store$defaul.vertexAttributes, attributesOrder = _tileset$store$defaul.ordering, featureAttributes = _tileset$store$defaul.featureAttributes, featureAttributeOrder = _tileset$store$defaul.featureAttributeOrder;
255
- headers = parseHeaders(tileset, arrayBuffer);
251
+ case 16:
252
+ _tilesetOptions$store = tilesetOptions.store.defaultGeometrySchema, vertexAttributes = _tilesetOptions$store.vertexAttributes, attributesOrder = _tilesetOptions$store.ordering, featureAttributes = _tilesetOptions$store.featureAttributes, featureAttributeOrder = _tilesetOptions$store.featureAttributeOrder;
253
+ headers = parseHeaders(arrayBuffer, tilesetOptions);
256
254
  byteOffset = headers.byteOffset;
257
255
  vertexCount = headers.vertexCount;
258
256
  featureCount = headers.featureCount;
@@ -261,9 +259,9 @@ function _parseI3SNodeGeometry() {
261
259
  flattenFeatureIdsByFaceRanges(normalizedFeatureAttributes);
262
260
  attributes = concatAttributes(normalizedVertexAttributes, normalizedFeatureAttributes);
263
261
 
264
- case 28:
262
+ case 25:
265
263
  if (!(options !== null && options !== void 0 && (_options$i3s2 = options.i3s) !== null && _options$i3s2 !== void 0 && _options$i3s2.coordinateSystem) || options.i3s.coordinateSystem === _constants.COORDINATE_SYSTEM.METER_OFFSETS) {
266
- enuMatrix = parsePositions(attributes.position, tile);
264
+ enuMatrix = parsePositions(attributes.position, tileOptions);
267
265
  content.modelMatrix = enuMatrix.invert();
268
266
  content.coordinateSystem = _constants.COORDINATE_SYSTEM.METER_OFFSETS;
269
267
  } else {
@@ -281,7 +279,7 @@ function _parseI3SNodeGeometry() {
281
279
  content.indices = indices || null;
282
280
 
283
281
  if (attributes.id && attributes.id.value) {
284
- tile.content.featureIds = attributes.id.value;
282
+ content.featureIds = attributes.id.value;
285
283
  }
286
284
 
287
285
  for (attributeIndex in content.attributes) {
@@ -292,9 +290,9 @@ function _parseI3SNodeGeometry() {
292
290
 
293
291
  content.vertexCount = vertexCount;
294
292
  content.byteLength = contentByteLength;
295
- return _context2.abrupt("return", tile);
293
+ return _context2.abrupt("return", content);
296
294
 
297
- case 36:
295
+ case 33:
298
296
  case "end":
299
297
  return _context2.stop();
300
298
  }
@@ -336,12 +334,12 @@ function normalizeAttribute(attribute) {
336
334
  return attribute;
337
335
  }
338
336
 
339
- function parseHeaders(tileset, arrayBuffer) {
337
+ function parseHeaders(arrayBuffer, options) {
340
338
  var byteOffset = 0;
341
339
  var vertexCount = 0;
342
340
  var featureCount = 0;
343
341
 
344
- var _iterator = _createForOfIteratorHelper(tileset.store.defaultGeometrySchema.header),
342
+ var _iterator = _createForOfIteratorHelper(options.store.defaultGeometrySchema.header),
345
343
  _step;
346
344
 
347
345
  try {
@@ -456,8 +454,8 @@ function parseUint64Values(buffer, elementsCount, attributeSize) {
456
454
  return new Uint32Array(values);
457
455
  }
458
456
 
459
- function parsePositions(attribute, tile) {
460
- var mbs = tile.mbs;
457
+ function parsePositions(attribute, options) {
458
+ var mbs = options.mbs;
461
459
  var value = attribute.value;
462
460
  var metadata = attribute.metadata;
463
461
  var enuMatrix = new _core2.Matrix4();