@loaders.gl/i3s 3.2.6 → 3.3.0-alpha.2

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 (57) 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 +19 -8
  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 +76 -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/esm/arcgis-webscene-loader.js +1 -1
  20. package/dist/esm/arcgis-webscene-loader.js.map +1 -1
  21. package/dist/esm/i3s-attribute-loader.js +1 -1
  22. package/dist/esm/i3s-attribute-loader.js.map +1 -1
  23. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  24. package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -1
  25. package/dist/esm/i3s-content-loader.js +12 -4
  26. package/dist/esm/i3s-content-loader.js.map +1 -1
  27. package/dist/esm/i3s-loader.js +8 -12
  28. package/dist/esm/i3s-loader.js.map +1 -1
  29. package/dist/esm/i3s-node-page-loader.js +1 -1
  30. package/dist/esm/i3s-node-page-loader.js.map +1 -1
  31. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +37 -34
  32. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  33. package/dist/esm/lib/parsers/parse-i3s.js +1 -1
  34. package/dist/esm/lib/parsers/parse-i3s.js.map +1 -1
  35. package/dist/esm/types.js.map +1 -1
  36. package/dist/i3s-building-scene-layer-loader.js +1 -1
  37. package/dist/i3s-content-loader.d.ts.map +1 -1
  38. package/dist/i3s-content-loader.js +8 -4
  39. package/dist/i3s-content-worker.js +56 -48
  40. package/dist/i3s-loader.d.ts +5 -0
  41. package/dist/i3s-loader.d.ts.map +1 -1
  42. package/dist/i3s-loader.js +6 -9
  43. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +2 -2
  44. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  45. package/dist/lib/parsers/parse-i3s-tile-content.js +36 -32
  46. package/dist/lib/parsers/parse-i3s.d.ts +1 -1
  47. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
  48. package/dist/lib/parsers/parse-i3s.js +1 -1
  49. package/dist/types.d.ts +41 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/package.json +8 -8
  52. package/src/i3s-building-scene-layer-loader.ts +1 -1
  53. package/src/i3s-content-loader.ts +18 -6
  54. package/src/i3s-loader.ts +15 -12
  55. package/src/lib/parsers/parse-i3s-tile-content.ts +46 -41
  56. package/src/lib/parsers/parse-i3s.ts +1 -1
  57. package/src/types.ts +45 -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.6" !== 'undefined' ? "3.2.6" : 'latest';
24
+ var VERSION = typeof "3.3.0-alpha.2" !== 'undefined' ? "3.3.0-alpha.2" : '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":"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","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":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AAMA,IAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAEA,IAAMC,aAAa,GAAG,iBAAtB;AACA,IAAMC,iBAAiB,GAAG,wBAA1B;AACA,IAAMC,QAAQ,GAAG,UAAjB;AASO,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,KAAK,EAAE,IADJ;AAEHC,MAAAA,SAAS,EAAE,MAFR;AAGHC,MAAAA,YAAY,EAAE,MAHX;AAIHC,MAAAA,IAAI,EAAE,IAJH;AAKHC,MAAAA,OAAO,EAAE,IALN;AAMHC,MAAAA,YAAY,EAAE,IANX;AAOHC,MAAAA,eAAe,EAAE,IAPd;AAQHC,MAAAA,gBAAgB,EAAE,IARf;AASHC,MAAAA,qBAAqB,EAAE,IATpB;AAUHC,MAAAA,cAAc,EAAE,IAVb;AAWHC,MAAAA,gBAAgB,EAAEC,6BAAkBC;AAXjC;AADE;AARgC,CAApC;;;SAyBQhB,Q;;;;;wEAAf,iBAAwBiB,IAAxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8Bf,YAAAA,OAA9B,2DAA0D,EAA1D;AAA8DgB,YAAAA,OAA9D;AACQC,YAAAA,GADR,GACcD,OAAO,CAACC,GADtB;AAEEjB,YAAAA,OAAO,CAACC,GAAR,GAAcD,OAAO,CAACC,GAAR,IAAe,EAA7B;AACMiB,YAAAA,WAHR,GAGsBC,cAAc,CAACJ,IAAD,CAHpC;;AAAA,kBAMMG,WAAW,KAAK5B,QANtB;AAAA;AAAA;AAAA;;AAAA,kBAOU,IAAI8B,KAAJ,CAAU,qEAAV,CAPV;;AAAA;AAYE,gBAAIpB,OAAO,CAACC,GAAR,CAAYE,SAAZ,KAA0B,MAA9B,EAAsC;AACpCA,cAAAA,SAAS,GAAGf,aAAa,CAACiC,IAAd,CAAmBJ,GAAnB,CAAZ;AACD,aAFD,MAEO;AACLd,cAAAA,SAAS,GAAGH,OAAO,CAACC,GAAR,CAAYE,SAAxB;AACD;;AAGD,gBAAIH,OAAO,CAACI,YAAR,KAAyB,MAA7B,EAAqC;AACnCA,cAAAA,YAAY,GAAGf,iBAAiB,CAACgC,IAAlB,CAAuBJ,GAAvB,CAAf;AACD,aAFD,MAEO;AACLb,cAAAA,YAAY,GAAGJ,OAAO,CAACC,GAAR,CAAYG,YAA3B;AACD;;AAvBH,iBAyBMD,SAzBN;AAAA;AAAA;AAAA;;AAAA;AAAA,mBA0BiBmB,YAAY,CAACP,IAAD,EAAOf,OAAP,EAAgBgB,OAAhB,CA1B7B;;AAAA;AA0BID,YAAAA,IA1BJ;AAAA;AAAA;;AAAA;AAAA,iBA2BaX,YA3Bb;AAAA;AAAA;AAAA;;AAAA;AAAA,mBA4BiBmB,SAAS,CAACR,IAAD,EAAOC,OAAP,CA5B1B;;AAAA;AA4BID,YAAAA,IA5BJ;AAAA;AAAA;;AAAA;AAAA;AAAA,mBA8BiBS,gBAAgB,CAACT,IAAD,EAAOf,OAAP,CA9BjC;;AAAA;AA8BIe,YAAAA,IA9BJ;;AAAA;AAAA,6CAiCSA,IAjCT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAoCeS,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;;;;SAIesB,Y;;;;;4EAAf,kBAA4BP,IAA5B,EAAkCf,OAAlC,EAA6DgB,OAA7D;AAAA;AAAA;AAAA;AAAA;AAAA;AACQW,YAAAA,WADR,GACsBC,IAAI,CAAC/B,KAAL,CAAW,IAAIgC,WAAJ,GAAkBC,MAAlB,CAAyBf,IAAzB,CAAX,CADtB;AAGEY,YAAAA,WAAW,CAACI,MAAZ,GAAqBxC,SAArB;AAHF;AAAA,mBAIQ,oCAAqBoC,WAArB,EAAkC3B,OAAlC,EAA2CgB,OAA3C,CAJR;;AAAA;AAAA,8CAMSW,WANT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SASeJ,S;;;;;yEAAf,kBAAyBR,IAAzB,EAA+BC,OAA/B;AAAA;AAAA;AAAA;AAAA;AACED,YAAAA,IAAI,GAAGa,IAAI,CAAC/B,KAAL,CAAW,IAAIgC,WAAJ,GAAkBC,MAAlB,CAAyBf,IAAzB,CAAX,CAAP;AADF,8CAES,iCAAkBA,IAAlB,EAAwBC,OAAxB,CAFT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAKA,SAASG,cAAT,CAAwBJ,IAAxB,EAA8B;AAC5B,MAAIA,IAAI,YAAYiB,WAApB,EAAiC;AAE/B,WAAO,iCAAI,IAAIC,UAAJ,CAAelB,IAAf,EAAqB,CAArB,EAAwB,CAAxB,CAAJ,EACJmB,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 {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.6" !== 'undefined' ? "3.2.6" : 'latest';
14
+ var VERSION = typeof "3.3.0-alpha.2" !== 'undefined' ? "3.3.0-alpha.2" : '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"}
@@ -62,95 +62,103 @@ function getLoaderForTextureFormat(textureFormat) {
62
62
  }
63
63
 
64
64
  var I3S_ATTRIBUTE_TYPE = 'i3s-attribute-type';
65
+ var defaultContent = {
66
+ attributes: {},
67
+ indices: null,
68
+ featureIds: [],
69
+ vertexCount: 0,
70
+ modelMatrix: new _core2.Matrix4(),
71
+ coordinateSystem: 0,
72
+ byteLength: 0,
73
+ texture: null
74
+ };
65
75
 
66
76
  function parseI3STileContent(_x, _x2, _x3, _x4, _x5) {
67
77
  return _parseI3STileContent.apply(this, arguments);
68
78
  }
69
79
 
70
80
  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;
81
+ _parseI3STileContent = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, tileOptions, tilesetOptions, options, context) {
82
+ var content, _options$i3s, url, loader, response, _arrayBuffer, _options, texture;
73
83
 
74
84
  return _regenerator.default.wrap(function _callee$(_context) {
75
85
  while (1) {
76
86
  switch (_context.prev = _context.next) {
77
87
  case 0:
78
- tile.content = tile.content || {};
79
- tile.content.featureIds = tile.content.featureIds || null;
80
- tile.content.attributes = {};
88
+ content = defaultContent;
81
89
 
82
- if (!tile.textureUrl) {
83
- _context.next = 37;
90
+ if (!tileOptions.textureUrl) {
91
+ _context.next = 35;
84
92
  break;
85
93
  }
86
94
 
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;
95
+ 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);
96
+ loader = getLoaderForTextureFormat(tileOptions.textureFormat);
97
+ _context.next = 6;
90
98
  return fetch(url, options === null || options === void 0 ? void 0 : options.fetch);
91
99
 
92
- case 8:
100
+ case 6:
93
101
  response = _context.sent;
94
- _context.next = 11;
102
+ _context.next = 9;
95
103
  return response.arrayBuffer();
96
104
 
97
- case 11:
105
+ case 9:
98
106
  _arrayBuffer = _context.sent;
99
107
 
100
108
  if (!(options !== null && options !== void 0 && options.i3s.decodeTextures)) {
101
- _context.next = 36;
109
+ _context.next = 34;
102
110
  break;
103
111
  }
104
112
 
105
113
  if (!(loader === _images.ImageLoader)) {
106
- _context.next = 28;
114
+ _context.next = 26;
107
115
  break;
108
116
  }
109
117
 
110
- _options = _objectSpread(_objectSpread({}, tile.textureLoaderOptions), {}, {
118
+ _options = _objectSpread(_objectSpread({}, tileOptions.textureLoaderOptions), {}, {
111
119
  image: {
112
120
  type: 'data'
113
121
  }
114
122
  });
115
- _context.prev = 15;
116
- _context.next = 18;
123
+ _context.prev = 13;
124
+ _context.next = 16;
117
125
  return context.parse(_arrayBuffer, _options);
118
126
 
119
- case 18:
120
- tile.content.texture = _context.sent;
121
- _context.next = 26;
127
+ case 16:
128
+ content.texture = _context.sent;
129
+ _context.next = 24;
122
130
  break;
123
131
 
124
- case 21:
125
- _context.prev = 21;
126
- _context.t0 = _context["catch"](15);
127
- _context.next = 25;
132
+ case 19:
133
+ _context.prev = 19;
134
+ _context.t0 = _context["catch"](13);
135
+ _context.next = 23;
128
136
  return (0, _core.parse)(_arrayBuffer, loader, _options);
129
137
 
130
- case 25:
131
- tile.content.texture = _context.sent;
138
+ case 23:
139
+ content.texture = _context.sent;
132
140
 
133
- case 26:
134
- _context.next = 34;
141
+ case 24:
142
+ _context.next = 32;
135
143
  break;
136
144
 
137
- case 28:
145
+ case 26:
138
146
  if (!(loader === _textures.CompressedTextureLoader || loader === _textures.BasisLoader)) {
139
- _context.next = 34;
147
+ _context.next = 32;
140
148
  break;
141
149
  }
142
150
 
143
- _context.next = 31;
144
- return (0, _core.load)(_arrayBuffer, loader, tile.textureLoaderOptions);
151
+ _context.next = 29;
152
+ return (0, _core.load)(_arrayBuffer, loader, tileOptions.textureLoaderOptions);
145
153
 
146
- case 31:
154
+ case 29:
147
155
  texture = _context.sent;
148
156
 
149
157
  if (loader === _textures.BasisLoader) {
150
158
  texture = texture[0];
151
159
  }
152
160
 
153
- tile.content.texture = {
161
+ content.texture = {
154
162
  compressed: true,
155
163
  mipmaps: false,
156
164
  width: texture[0].width,
@@ -158,76 +166,67 @@ function _parseI3STileContent() {
158
166
  data: texture
159
167
  };
160
168
 
161
- case 34:
162
- _context.next = 37;
169
+ case 32:
170
+ _context.next = 35;
163
171
  break;
164
172
 
165
- case 36:
166
- tile.content.texture = _arrayBuffer;
173
+ case 34:
174
+ content.texture = _arrayBuffer;
167
175
 
168
- case 37:
169
- tile.content.material = makePbrMaterial(tile.materialDefinition, tile.content.texture);
176
+ case 35:
177
+ content.material = makePbrMaterial(tileOptions.materialDefinition, content.texture);
170
178
 
171
- if (tile.content.material) {
172
- tile.content.texture = null;
179
+ if (content.material) {
180
+ content.texture = null;
173
181
  }
174
182
 
175
- _context.next = 41;
176
- return parseI3SNodeGeometry(arrayBuffer, tile, tileset, options);
183
+ _context.next = 39;
184
+ return parseI3SNodeGeometry(arrayBuffer, content, tileOptions, tilesetOptions, options);
177
185
 
178
- case 41:
186
+ case 39:
179
187
  return _context.abrupt("return", _context.sent);
180
188
 
181
- case 42:
189
+ case 40:
182
190
  case "end":
183
191
  return _context.stop();
184
192
  }
185
193
  }
186
- }, _callee, null, [[15, 21]]);
194
+ }, _callee, null, [[13, 19]]);
187
195
  }));
188
196
  return _parseI3STileContent.apply(this, arguments);
189
197
  }
190
198
 
191
- function parseI3SNodeGeometry(_x6, _x7, _x8, _x9) {
199
+ function parseI3SNodeGeometry(_x6, _x7, _x8, _x9, _x10) {
192
200
  return _parseI3SNodeGeometry.apply(this, arguments);
193
201
  }
194
202
 
195
203
  function _parseI3SNodeGeometry() {
196
- _parseI3SNodeGeometry = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(arrayBuffer, tile, tileset, options) {
204
+ _parseI3SNodeGeometry = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(arrayBuffer, content, tileOptions, tilesetOptions, options) {
197
205
  var _options$i3s2;
198
206
 
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;
207
+ 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
208
 
201
209
  return _regenerator.default.wrap(function _callee2$(_context2) {
202
210
  while (1) {
203
211
  switch (_context2.prev = _context2.next) {
204
212
  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
213
  contentByteLength = arrayBuffer.byteLength;
215
214
  byteOffset = 0;
216
215
  featureCount = 0;
217
216
 
218
- if (!tile.isDracoGeometry) {
219
- _context2.next = 19;
217
+ if (!tileOptions.isDracoGeometry) {
218
+ _context2.next = 16;
220
219
  break;
221
220
  }
222
221
 
223
- _context2.next = 9;
222
+ _context2.next = 6;
224
223
  return (0, _core.parse)(arrayBuffer, _draco.DracoLoader, {
225
224
  draco: {
226
225
  attributeNameEntry: I3S_ATTRIBUTE_TYPE
227
226
  }
228
227
  });
229
228
 
230
- case 9:
229
+ case 6:
231
230
  decompressedGeometry = _context2.sent;
232
231
  vertexCount = decompressedGeometry.header.vertexCount;
233
232
  indices = (_decompressedGeometry = decompressedGeometry.indices) === null || _decompressedGeometry === void 0 ? void 0 : _decompressedGeometry.value;
@@ -247,12 +246,12 @@ function _parseI3SNodeGeometry() {
247
246
  flattenFeatureIdsByFeatureIndices(attributes, featureIds);
248
247
  }
249
248
 
250
- _context2.next = 28;
249
+ _context2.next = 25;
251
250
  break;
252
251
 
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);
252
+ case 16:
253
+ _tilesetOptions$store = tilesetOptions.store.defaultGeometrySchema, vertexAttributes = _tilesetOptions$store.vertexAttributes, attributesOrder = _tilesetOptions$store.ordering, featureAttributes = _tilesetOptions$store.featureAttributes, featureAttributeOrder = _tilesetOptions$store.featureAttributeOrder;
254
+ headers = parseHeaders(arrayBuffer, tilesetOptions);
256
255
  byteOffset = headers.byteOffset;
257
256
  vertexCount = headers.vertexCount;
258
257
  featureCount = headers.featureCount;
@@ -261,9 +260,9 @@ function _parseI3SNodeGeometry() {
261
260
  flattenFeatureIdsByFaceRanges(normalizedFeatureAttributes);
262
261
  attributes = concatAttributes(normalizedVertexAttributes, normalizedFeatureAttributes);
263
262
 
264
- case 28:
263
+ case 25:
265
264
  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);
265
+ enuMatrix = parsePositions(attributes.position, tileOptions);
267
266
  content.modelMatrix = enuMatrix.invert();
268
267
  content.coordinateSystem = _constants.COORDINATE_SYSTEM.METER_OFFSETS;
269
268
  } else {
@@ -281,7 +280,7 @@ function _parseI3SNodeGeometry() {
281
280
  content.indices = indices || null;
282
281
 
283
282
  if (attributes.id && attributes.id.value) {
284
- tile.content.featureIds = attributes.id.value;
283
+ content.featureIds = attributes.id.value;
285
284
  }
286
285
 
287
286
  for (attributeIndex in content.attributes) {
@@ -292,9 +291,9 @@ function _parseI3SNodeGeometry() {
292
291
 
293
292
  content.vertexCount = vertexCount;
294
293
  content.byteLength = contentByteLength;
295
- return _context2.abrupt("return", tile);
294
+ return _context2.abrupt("return", content);
296
295
 
297
- case 36:
296
+ case 33:
298
297
  case "end":
299
298
  return _context2.stop();
300
299
  }
@@ -336,12 +335,12 @@ function normalizeAttribute(attribute) {
336
335
  return attribute;
337
336
  }
338
337
 
339
- function parseHeaders(tileset, arrayBuffer) {
338
+ function parseHeaders(arrayBuffer, options) {
340
339
  var byteOffset = 0;
341
340
  var vertexCount = 0;
342
341
  var featureCount = 0;
343
342
 
344
- var _iterator = _createForOfIteratorHelper(tileset.store.defaultGeometrySchema.header),
343
+ var _iterator = _createForOfIteratorHelper(options.store.defaultGeometrySchema.header),
345
344
  _step;
346
345
 
347
346
  try {
@@ -456,8 +455,8 @@ function parseUint64Values(buffer, elementsCount, attributeSize) {
456
455
  return new Uint32Array(values);
457
456
  }
458
457
 
459
- function parsePositions(attribute, tile) {
460
- var mbs = tile.mbs;
458
+ function parsePositions(attribute, options) {
459
+ var mbs = options.mbs;
461
460
  var value = attribute.value;
462
461
  var metadata = attribute.metadata;
463
462
  var enuMatrix = new _core2.Matrix4();