@loaders.gl/i3s 4.0.0-alpha.21 → 4.0.0-alpha.22

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 (32) hide show
  1. package/dist/dist.min.js +43 -30
  2. package/dist/es5/arcgis-webscene-loader.js +1 -1
  3. package/dist/es5/i3s-attribute-loader.js +1 -1
  4. package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
  5. package/dist/es5/i3s-content-loader.js +1 -1
  6. package/dist/es5/i3s-loader.js +1 -1
  7. package/dist/es5/i3s-loader.js.map +1 -1
  8. package/dist/es5/i3s-node-page-loader.js +1 -1
  9. package/dist/es5/i3s-slpk-loader.js +1 -1
  10. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +34 -31
  11. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  12. package/dist/esm/arcgis-webscene-loader.js +1 -1
  13. package/dist/esm/i3s-attribute-loader.js +1 -1
  14. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  15. package/dist/esm/i3s-content-loader.js +1 -1
  16. package/dist/esm/i3s-loader.js +1 -1
  17. package/dist/esm/i3s-loader.js.map +1 -1
  18. package/dist/esm/i3s-node-page-loader.js +1 -1
  19. package/dist/esm/i3s-slpk-loader.js +1 -1
  20. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +5 -2
  21. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  22. package/dist/i3s-content-worker-node.js +39 -39
  23. package/dist/i3s-content-worker-node.js.map +3 -3
  24. package/dist/i3s-content-worker.js +34 -21
  25. package/dist/i3s-loader.d.ts +1 -2
  26. package/dist/i3s-loader.d.ts.map +1 -1
  27. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +1 -1
  28. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  29. package/dist/lib/parsers/parse-i3s-tile-content.js +6 -3
  30. package/package.json +9 -9
  31. package/src/i3s-loader.ts +1 -2
  32. package/src/lib/parsers/parse-i3s-tile-content.ts +6 -4
package/dist/dist.min.js CHANGED
@@ -713,6 +713,15 @@
713
713
  }
714
714
  });
715
715
 
716
+ // ../loader-utils/src/loader-types.ts
717
+ async function parseFromContext(data, loaders, options, context) {
718
+ return context._parse(data, loaders, options, context);
719
+ }
720
+ var init_loader_types = __esm({
721
+ "../loader-utils/src/loader-types.ts"() {
722
+ }
723
+ });
724
+
716
725
  // ../loader-utils/src/lib/env-utils/assert.ts
717
726
  function assert(condition, message) {
718
727
  if (!condition) {
@@ -1768,6 +1777,7 @@
1768
1777
  // ../loader-utils/src/index.ts
1769
1778
  var init_src2 = __esm({
1770
1779
  "../loader-utils/src/index.ts"() {
1780
+ init_loader_types();
1771
1781
  init_assert();
1772
1782
  init_globals();
1773
1783
  init_parse_with_worker();
@@ -2715,6 +2725,11 @@
2715
2725
  loaders._state = loaders._state || {};
2716
2726
  return loaders._state;
2717
2727
  }
2728
+ function getGlobalLoaderOptions() {
2729
+ const state = getGlobalLoaderState();
2730
+ state.globalOptions = state.globalOptions || { ...DEFAULT_LOADER_OPTIONS };
2731
+ return state.globalOptions;
2732
+ }
2718
2733
  function normalizeOptions(options, loader, loaders, url) {
2719
2734
  loaders = loaders || [];
2720
2735
  loaders = Array.isArray(loaders) ? loaders : [loaders];
@@ -2795,17 +2810,11 @@
2795
2810
  options.baseUri = url;
2796
2811
  }
2797
2812
  }
2798
- var getGlobalLoaderOptions;
2799
2813
  var init_option_utils = __esm({
2800
2814
  "../core/src/lib/loader-utils/option-utils.ts"() {
2801
2815
  init_is_type();
2802
2816
  init_loggers();
2803
2817
  init_option_defaults();
2804
- getGlobalLoaderOptions = () => {
2805
- const state = getGlobalLoaderState();
2806
- state.globalOptions = state.globalOptions || { ...DEFAULT_LOADER_OPTIONS };
2807
- return state.globalOptions;
2808
- };
2809
2818
  }
2810
2819
  });
2811
2820
 
@@ -2926,8 +2935,10 @@
2926
2935
  reason = reason || (loader ? `matched MIME type ${type}` : "");
2927
2936
  loader = loader || findLoaderByInitialBytes(loaders, data);
2928
2937
  reason = reason || (loader ? `matched initial data ${getFirstCharacters(data)}` : "");
2929
- loader = loader || findLoaderByMIMEType(loaders, options?.fallbackMimeType);
2930
- reason = reason || (loader ? `matched fallback MIME type ${type}` : "");
2938
+ if (options?.fallbackMimeType) {
2939
+ loader = loader || findLoaderByMIMEType(loaders, options?.fallbackMimeType);
2940
+ reason = reason || (loader ? `matched fallback MIME type ${type}` : "");
2941
+ }
2931
2942
  if (reason) {
2932
2943
  log.log(1, `selectLoader selected ${loader?.name}: ${reason}.`);
2933
2944
  }
@@ -3023,7 +3034,7 @@
3023
3034
  }
3024
3035
  switch (typeof test) {
3025
3036
  case "function":
3026
- return test(data, loader);
3037
+ return test(data);
3027
3038
  case "string":
3028
3039
  const magic = getMagicString(data, byteOffset, test.length);
3029
3040
  return test === magic;
@@ -3296,7 +3307,7 @@
3296
3307
  return newContext;
3297
3308
  }
3298
3309
  function getLoadersFromContext(loaders, context) {
3299
- if (!context && loaders && !Array.isArray(loaders)) {
3310
+ if (loaders && !Array.isArray(loaders)) {
3300
3311
  return loaders;
3301
3312
  }
3302
3313
  let candidateLoaders;
@@ -3307,7 +3318,7 @@
3307
3318
  const contextLoaders = Array.isArray(context.loaders) ? context.loaders : [context.loaders];
3308
3319
  candidateLoaders = candidateLoaders ? [...candidateLoaders, ...contextLoaders] : contextLoaders;
3309
3320
  }
3310
- return candidateLoaders && candidateLoaders.length ? candidateLoaders : null;
3321
+ return candidateLoaders && candidateLoaders.length ? candidateLoaders : void 0;
3311
3322
  }
3312
3323
  var init_loader_context = __esm({
3313
3324
  "../core/src/lib/loader-utils/loader-context.ts"() {
@@ -3319,7 +3330,6 @@
3319
3330
 
3320
3331
  // ../core/src/lib/api/parse.ts
3321
3332
  async function parse(data, loaders, options, context) {
3322
- assert2(!context || typeof context === "object");
3323
3333
  if (loaders && !Array.isArray(loaders) && !isLoaderObject(loaders)) {
3324
3334
  context = void 0;
3325
3335
  options = loaders;
@@ -3335,7 +3345,7 @@
3335
3345
  return null;
3336
3346
  }
3337
3347
  options = normalizeOptions(options, loader, candidateLoaders, url);
3338
- context = getLoaderContext({ url, parse, loaders: candidateLoaders }, options, context || null);
3348
+ context = getLoaderContext({ url, _parse: parse, loaders: candidateLoaders }, options, context || null);
3339
3349
  return await parseWithLoader(loader, data, options, context);
3340
3350
  }
3341
3351
  async function parseWithLoader(loader, data, options, context) {
@@ -9168,9 +9178,11 @@
9168
9178
  if (loader === ImageLoader) {
9169
9179
  const options2 = { ...tileOptions.textureLoaderOptions, image: { type: "data" } };
9170
9180
  try {
9171
- content.texture = await context.parse(arrayBuffer2, options2);
9181
+ const texture = await parseFromContext(arrayBuffer2, [], options2, context);
9182
+ content.texture = texture;
9172
9183
  } catch (e2) {
9173
- content.texture = await parse(arrayBuffer2, loader, options2);
9184
+ const texture = await parse(arrayBuffer2, loader, options2, context);
9185
+ content.texture = texture;
9174
9186
  }
9175
9187
  } else if (loader === CompressedTextureLoader || loader === BasisLoader) {
9176
9188
  let texture = await load(arrayBuffer2, loader, tileOptions.textureLoaderOptions);
@@ -9512,6 +9524,7 @@
9512
9524
  init_src3();
9513
9525
  init_esm2();
9514
9526
  init_esm3();
9527
+ init_src2();
9515
9528
  init_src4();
9516
9529
  init_src6();
9517
9530
  init_src7();
@@ -11038,17 +11051,6 @@
11038
11051
  }
11039
11052
  });
11040
11053
 
11041
- // ../zip/src/index.ts
11042
- var init_src9 = __esm({
11043
- "../zip/src/index.ts"() {
11044
- init_data_view_file();
11045
- init_cd_file_header();
11046
- init_local_file_header();
11047
- init_search_from_the_end();
11048
- init_hash_file_utility();
11049
- }
11050
- });
11051
-
11052
11054
  // ../compression/src/lib/compression.ts
11053
11055
  var Compression;
11054
11056
  var init_compression = __esm({
@@ -15332,19 +15334,30 @@
15332
15334
  });
15333
15335
 
15334
15336
  // ../compression/src/index.ts
15335
- var init_src10 = __esm({
15337
+ var init_src9 = __esm({
15336
15338
  "../compression/src/index.ts"() {
15337
15339
  init_gzip_compression();
15338
15340
  }
15339
15341
  });
15340
15342
 
15343
+ // ../zip/src/index.ts
15344
+ var init_src10 = __esm({
15345
+ "../zip/src/index.ts"() {
15346
+ init_data_view_file();
15347
+ init_cd_file_header();
15348
+ init_local_file_header();
15349
+ init_search_from_the_end();
15350
+ init_hash_file_utility();
15351
+ }
15352
+ });
15353
+
15341
15354
  // src/lib/parsers/parse-slpk/slpk-archieve.ts
15342
15355
  var import_md52, PATH_DESCRIPTIONS, SLPKArchive;
15343
15356
  var init_slpk_archieve = __esm({
15344
15357
  "src/lib/parsers/parse-slpk/slpk-archieve.ts"() {
15345
15358
  import_md52 = __toModule(require_md5());
15346
- init_src9();
15347
15359
  init_src10();
15360
+ init_src9();
15348
15361
  PATH_DESCRIPTIONS = [
15349
15362
  {
15350
15363
  test: /^$/,
@@ -15451,7 +15464,7 @@
15451
15464
  var parseSLPK;
15452
15465
  var init_parse_slpk = __esm({
15453
15466
  "src/lib/parsers/parse-slpk/parse-slpk.ts"() {
15454
- init_src9();
15467
+ init_src10();
15455
15468
  init_slpk_archieve();
15456
15469
  parseSLPK = async (fileProvider, cb) => {
15457
15470
  const hashCDOffset = await searchFromTheEnd(fileProvider, signature);
@@ -15483,7 +15496,7 @@
15483
15496
  var VERSION12, SLPKLoader;
15484
15497
  var init_i3s_slpk_loader = __esm({
15485
15498
  "src/i3s-slpk-loader.ts"() {
15486
- init_src9();
15499
+ init_src10();
15487
15500
  init_parse_slpk();
15488
15501
  VERSION12 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
15489
15502
  SLPKLoader = {
@@ -8,7 +8,7 @@ exports.ArcGisWebSceneLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseArcgisWebscene = require("./lib/parsers/parse-arcgis-webscene");
11
- var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'beta';
12
12
  var ArcGisWebSceneLoader = {
13
13
  name: 'ArcGIS Web Scene Loader',
14
14
  id: 'arcgis-web-scene',
@@ -15,7 +15,7 @@ var _parseI3sAttribute = require("./lib/parsers/parse-i3s-attribute");
15
15
  var _urlUtils = require("./lib/utils/url-utils");
16
16
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
- var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
18
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'latest';
19
19
  var EMPTY_VALUE = '';
20
20
  var REJECTED_STATUS = 'rejected';
21
21
  var I3SAttributeLoader = {
@@ -8,7 +8,7 @@ exports.I3SBuildingSceneLayerLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseI3sBuildingSceneLayer = require("./lib/parsers/parse-i3s-building-scene-layer");
11
- var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'beta';
12
12
  var I3SBuildingSceneLayerLoader = {
13
13
  name: 'I3S Building Scene Layer',
14
14
  id: 'i3s-building-scene-layer',
@@ -8,7 +8,7 @@ exports.I3SContentLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseI3sTileContent = require("./lib/parsers/parse-i3s-tile-content");
11
- var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'beta';
12
12
  var I3SContentLoader = {
13
13
  name: 'I3S Content (Indexed Scene Layers)',
14
14
  id: 'i3s-content',
@@ -12,7 +12,7 @@ var _core = require("@loaders.gl/core");
12
12
  var _i3sContentLoader = require("./i3s-content-loader");
13
13
  var _parseI3s = require("./lib/parsers/parse-i3s");
14
14
  var _constants = require("./lib/parsers/constants");
15
- var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
15
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'latest';
16
16
  var TILESET_REGEX = /layers\/[0-9]+$/;
17
17
  var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
18
18
  var SLPK_HEX = '504b0304';
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-loader.js","names":["_core","require","_i3sContentLoader","_parseI3s","_constants","VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","POINT_CLOUD","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","colorsByAttribute","exports","_x","_parseI3S","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","context","url","magicNumber","_args","wrap","_callee$","_context","prev","next","length","undefined","getMagicNumber","Error","test","parseTileset","sent","parseTile","parseTileContent","abrupt","stop","_x2","_x3","_parseTileContent","_callee2","arrayBuffer","_callee2$","_context2","I3SContentLoader","_x4","_x5","_x6","_parseTileset","_callee3","tilesetJson","tilesetPostprocessed","_callee3$","_context3","JSON","TextDecoder","decode","layerType","normalizeTilesetData","_x7","_x8","_parseTile","_callee4","_callee4$","_context4","normalizeTileData","ArrayBuffer","_toConsumableArray2","Uint8Array","map","value","toString","padStart","join"],"sources":["../../src/i3s-loader.ts"],"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';\nconst POINT_CLOUD = 'PointCloud';\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 colorsByAttribute: null\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\n if (tilesetJson?.layerType === POINT_CLOUD) {\n throw new Error('Point Cloud layers currently are not supported by I3SLoader');\n }\n\n const tilesetPostprocessed = await normalizeTilesetData(tilesetJson, options, context);\n return tilesetPostprocessed;\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"],"mappings":"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"}
1
+ {"version":3,"file":"i3s-loader.js","names":["_core","require","_i3sContentLoader","_parseI3s","_constants","VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","POINT_CLOUD","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","colorsByAttribute","exports","_x","_parseI3S","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","context","url","magicNumber","_args","wrap","_callee$","_context","prev","next","length","undefined","getMagicNumber","Error","test","parseTileset","sent","parseTile","parseTileContent","abrupt","stop","_x2","_x3","_parseTileContent","_callee2","arrayBuffer","_callee2$","_context2","I3SContentLoader","_x4","_x5","_x6","_parseTileset","_callee3","tilesetJson","tilesetPostprocessed","_callee3$","_context3","JSON","TextDecoder","decode","layerType","normalizeTilesetData","_x7","_x8","_parseTile","_callee4","_callee4$","_context4","normalizeTileData","ArrayBuffer","_toConsumableArray2","Uint8Array","map","value","toString","padStart","join"],"sources":["../../src/i3s-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} 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';\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';\nconst POINT_CLOUD = 'PointCloud';\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 colorsByAttribute: null\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\n if (tilesetJson?.layerType === POINT_CLOUD) {\n throw new Error('Point Cloud layers currently are not supported by I3SLoader');\n }\n\n const tilesetPostprocessed = await normalizeTilesetData(tilesetJson, options, context);\n return tilesetPostprocessed;\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"],"mappings":";;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAKA,IAAMI,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAE3E,IAAMC,aAAa,GAAG,iBAAiB;AACvC,IAAMC,iBAAiB,GAAG,wBAAwB;AAClD,IAAMC,QAAQ,GAAG,UAAU;AAC3B,IAAMC,WAAW,GAAG,YAAY;AASzB,IAAMC,SAA2B,GAAG;EACzCC,IAAI,EAAE,4BAA4B;EAClCC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAET,OAAO;EAChBU,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAEC,QAAQ;EACfC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE,IAAI;MACXC,SAAS,EAAE,MAAM;MACjBC,YAAY,EAAE,MAAM;MACpBC,IAAI,EAAE,IAAI;MACVC,OAAO,EAAE,IAAI;MACbC,YAAY,EAAE,IAAI;MAClBC,eAAe,EAAE,IAAI;MACrBC,gBAAgB,EAAE,IAAI;MACtBC,qBAAqB,EAAE,IAAI;MAC3BC,cAAc,EAAE,IAAI;MACpBC,gBAAgB,EAAEC,4BAAiB,CAACC,aAAa;MACjDC,iBAAiB,EAAE;IACrB;EACF;AACF,CAAC;AAACC,OAAA,CAAAzB,SAAA,GAAAA,SAAA;AAAA,SAEaO,QAAQA,CAAAmB,EAAA;EAAA,OAAAC,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,UAAA;EAAAA,SAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAvB,SAAAC,QAAwBC,IAAI;IAAA,IAAA1B,OAAA;MAAA2B,OAAA;MAAAC,GAAA;MAAAC,WAAA;MAAA1B,SAAA;MAAAC,YAAA;MAAA0B,KAAA,GAAAV,SAAA;IAAA,OAAAG,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAEnC,OAAyB,GAAA8B,KAAA,CAAAM,MAAA,QAAAN,KAAA,QAAAO,SAAA,GAAAP,KAAA,MAAG,CAAC,CAAC;UAAEH,OAAO,GAAAG,KAAA,CAAAM,MAAA,OAAAN,KAAA,MAAAO,SAAA;UAC7DT,GAAG,GAAGD,OAAO,CAACC,GAAG;UACvB5B,OAAO,CAACC,GAAG,GAAGD,OAAO,CAACC,GAAG,IAAI,CAAC,CAAC;UACzB4B,WAAW,GAAGS,cAAc,CAACZ,IAAI,CAAC;UAAA,MAGpCG,WAAW,KAAKxC,QAAQ;YAAA4C,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MACpB,IAAII,KAAK,CAAC,qEAAqE,CAAC;QAAA;UAKxF,IAAIvC,OAAO,CAACC,GAAG,CAACE,SAAS,KAAK,MAAM,EAAE;YACpCA,SAAS,GAAGhB,aAAa,CAACqD,IAAI,CAACZ,GAAG,CAAC;UACrC,CAAC,MAAM;YACLzB,SAAS,GAAGH,OAAO,CAACC,GAAG,CAACE,SAAS;UACnC;UAGA,IAAIH,OAAO,CAACI,YAAY,KAAK,MAAM,EAAE;YACnCA,YAAY,GAAGhB,iBAAiB,CAACoD,IAAI,CAACZ,GAAG,CAAC;UAC5C,CAAC,MAAM;YACLxB,YAAY,GAAGJ,OAAO,CAACC,GAAG,CAACG,YAAY;UACzC;UAAC,KAEGD,SAAS;YAAA8B,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OACEM,YAAY,CAACf,IAAI,EAAE1B,OAAO,EAAE2B,OAAO,CAAC;QAAA;UAAjDD,IAAI,GAAAO,QAAA,CAAAS,IAAA;UAAAT,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAA,KACK/B,YAAY;YAAA6B,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OACRQ,SAAS,CAACjB,IAAI,EAAEC,OAAO,CAAC;QAAA;UAArCD,IAAI,GAAAO,QAAA,CAAAS,IAAA;UAAAT,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OAESS,gBAAgB,CAAClB,IAAI,EAAE1B,OAAO,CAAC;QAAA;UAA5C0B,IAAI,GAAAO,QAAA,CAAAS,IAAA;QAAA;UAAA,OAAAT,QAAA,CAAAY,MAAA,WAGCnB,IAAI;QAAA;QAAA;UAAA,OAAAO,QAAA,CAAAa,IAAA;MAAA;IAAA,GAAArB,OAAA;EAAA,CACZ;EAAA,OAAAP,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEcwB,gBAAgBA,CAAAG,GAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAA9B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA6B,kBAAA;EAAAA,iBAAA,OAAA5B,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA/B,SAAA0B,SAAgCC,WAAW,EAAEnD,OAAyB;IAAA,OAAAuB,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAAqB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAnB,IAAA,GAAAmB,SAAA,CAAAlB,IAAA;QAAA;UAAAkB,SAAA,CAAAlB,IAAA;UAAA,OACvD,IAAAtC,WAAK,EAACsD,WAAW,EAAEG,kCAAgB,EAAEtD,OAAO,CAAC;QAAA;UAAA,OAAAqD,SAAA,CAAAR,MAAA,WAAAQ,SAAA,CAAAX,IAAA;QAAA;QAAA;UAAA,OAAAW,SAAA,CAAAP,IAAA;MAAA;IAAA,GAAAI,QAAA;EAAA,CAC3D;EAAA,OAAAD,iBAAA,CAAA9B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEcqB,YAAYA,CAAAc,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,aAAA,CAAAvC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAsC,cAAA;EAAAA,aAAA,OAAArC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA3B,SAAAmC,SAA4BjC,IAAI,EAAE1B,OAAyB,EAAE2B,OAAO;IAAA,IAAAiC,WAAA,EAAAC,oBAAA;IAAA,OAAAtC,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAA+B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA7B,IAAA,GAAA6B,SAAA,CAAA5B,IAAA;QAAA;UAC5DyB,WAAW,GAAGI,IAAI,CAACnE,KAAK,CAAC,IAAIoE,WAAW,CAAC,CAAC,CAACC,MAAM,CAACxC,IAAI,CAAC,CAAC;UAAA,MAE1D,CAAAkC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEO,SAAS,MAAK7E,WAAW;YAAAyE,SAAA,CAAA5B,IAAA;YAAA;UAAA;UAAA,MAClC,IAAII,KAAK,CAAC,6DAA6D,CAAC;QAAA;UAAAwB,SAAA,CAAA5B,IAAA;UAAA,OAG7C,IAAAiC,8BAAoB,EAACR,WAAW,EAAE5D,OAAO,EAAE2B,OAAO,CAAC;QAAA;UAAhFkC,oBAAoB,GAAAE,SAAA,CAAArB,IAAA;UAAA,OAAAqB,SAAA,CAAAlB,MAAA,WACnBgB,oBAAoB;QAAA;QAAA;UAAA,OAAAE,SAAA,CAAAjB,IAAA;MAAA;IAAA,GAAAa,QAAA;EAAA,CAC5B;EAAA,OAAAD,aAAA,CAAAvC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEcuB,SAASA,CAAA0B,GAAA,EAAAC,GAAA;EAAA,OAAAC,UAAA,CAAApD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAmD,WAAA;EAAAA,UAAA,OAAAlD,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAxB,SAAAgD,SAAyB9C,IAAI,EAAEC,OAAO;IAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAA0C,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAxC,IAAA,GAAAwC,SAAA,CAAAvC,IAAA;QAAA;UACpCT,IAAI,GAAGsC,IAAI,CAACnE,KAAK,CAAC,IAAIoE,WAAW,CAAC,CAAC,CAACC,MAAM,CAACxC,IAAI,CAAC,CAAC;UAAC,OAAAgD,SAAA,CAAA7B,MAAA,WAC3C,IAAA8B,2BAAiB,EAACjD,IAAI,EAAEC,OAAO,CAAC;QAAA;QAAA;UAAA,OAAA+C,SAAA,CAAA5B,IAAA;MAAA;IAAA,GAAA0B,QAAA;EAAA,CACxC;EAAA,OAAAD,UAAA,CAAApD,KAAA,OAAAC,SAAA;AAAA;AAED,SAASkB,cAAcA,CAACZ,IAAI,EAAE;EAC5B,IAAIA,IAAI,YAAYkD,WAAW,EAAE;IAE/B,OAAO,IAAAC,mBAAA,CAAAvD,OAAA,EAAI,IAAIwD,UAAU,CAACpD,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAClCqD,GAAG,CAAC,UAACC,KAAK;MAAA,OAAKA,KAAK,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAAA,EAAC,CACnDC,IAAI,CAAC,EAAE,CAAC;EACb;EACA,OAAO,IAAI;AACb"}
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.I3SNodePageLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
10
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'latest';
11
11
  function parseNodePage(_x, _x2) {
12
12
  return _parseNodePage.apply(this, arguments);
13
13
  }
@@ -9,7 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _zip = require("@loaders.gl/zip");
11
11
  var _parseSlpk = require("./lib/parsers/parse-slpk/parse-slpk");
12
- var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
12
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'latest';
13
13
  var SLPKLoader = {
14
14
  name: 'I3S SLPK (Scene Layer Package)',
15
15
  id: 'slpk',
@@ -12,6 +12,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
12
12
  var _core = require("@loaders.gl/core");
13
13
  var _core2 = require("@math.gl/core");
14
14
  var _geospatial = require("@math.gl/geospatial");
15
+ var _loaderUtils = require("@loaders.gl/loader-utils");
15
16
  var _images = require("@loaders.gl/images");
16
17
  var _draco = require("@loaders.gl/draco");
17
18
  var _textures = require("@loaders.gl/textures");
@@ -44,7 +45,7 @@ function parseI3STileContent(_x, _x2, _x3, _x4, _x5) {
44
45
  }
45
46
  function _parseI3STileContent() {
46
47
  _parseI3STileContent = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, tileOptions, tilesetOptions, options, context) {
47
- var content, _options$i3s, url, loader, response, _arrayBuffer, _options, texture;
48
+ var content, _options$i3s, url, loader, response, _arrayBuffer, _options, texture, _texture, _texture2;
48
49
  return _regenerator.default.wrap(function _callee$(_context) {
49
50
  while (1) switch (_context.prev = _context.next) {
50
51
  case 0:
@@ -59,7 +60,7 @@ function _parseI3STileContent() {
59
60
  texture: null
60
61
  };
61
62
  if (!tileOptions.textureUrl) {
62
- _context.next = 35;
63
+ _context.next = 37;
63
64
  break;
64
65
  }
65
66
  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);
@@ -73,11 +74,11 @@ function _parseI3STileContent() {
73
74
  case 9:
74
75
  _arrayBuffer = _context.sent;
75
76
  if (!(options !== null && options !== void 0 && options.i3s.decodeTextures)) {
76
- _context.next = 34;
77
+ _context.next = 36;
77
78
  break;
78
79
  }
79
80
  if (!(loader === _images.ImageLoader)) {
80
- _context.next = 26;
81
+ _context.next = 28;
81
82
  break;
82
83
  }
83
84
  _options = _objectSpread(_objectSpread({}, tileOptions.textureLoaderOptions), {}, {
@@ -87,59 +88,61 @@ function _parseI3STileContent() {
87
88
  });
88
89
  _context.prev = 13;
89
90
  _context.next = 16;
90
- return context.parse(_arrayBuffer, _options);
91
+ return (0, _loaderUtils.parseFromContext)(_arrayBuffer, [], _options, context);
91
92
  case 16:
92
- content.texture = _context.sent;
93
- _context.next = 24;
93
+ texture = _context.sent;
94
+ content.texture = texture;
95
+ _context.next = 26;
94
96
  break;
95
- case 19:
96
- _context.prev = 19;
97
+ case 20:
98
+ _context.prev = 20;
97
99
  _context.t0 = _context["catch"](13);
98
- _context.next = 23;
99
- return (0, _core.parse)(_arrayBuffer, loader, _options);
100
- case 23:
101
- content.texture = _context.sent;
100
+ _context.next = 24;
101
+ return (0, _core.parse)(_arrayBuffer, loader, _options, context);
102
102
  case 24:
103
- _context.next = 32;
104
- break;
103
+ _texture = _context.sent;
104
+ content.texture = _texture;
105
105
  case 26:
106
+ _context.next = 34;
107
+ break;
108
+ case 28:
106
109
  if (!(loader === _textures.CompressedTextureLoader || loader === _textures.BasisLoader)) {
107
- _context.next = 32;
110
+ _context.next = 34;
108
111
  break;
109
112
  }
110
- _context.next = 29;
113
+ _context.next = 31;
111
114
  return (0, _core.load)(_arrayBuffer, loader, tileOptions.textureLoaderOptions);
112
- case 29:
113
- texture = _context.sent;
115
+ case 31:
116
+ _texture2 = _context.sent;
114
117
  if (loader === _textures.BasisLoader) {
115
- texture = texture[0];
118
+ _texture2 = _texture2[0];
116
119
  }
117
120
  content.texture = {
118
121
  compressed: true,
119
122
  mipmaps: false,
120
- width: texture[0].width,
121
- height: texture[0].height,
122
- data: texture
123
+ width: _texture2[0].width,
124
+ height: _texture2[0].height,
125
+ data: _texture2
123
126
  };
124
- case 32:
125
- _context.next = 35;
126
- break;
127
127
  case 34:
128
+ _context.next = 37;
129
+ break;
130
+ case 36:
128
131
  content.texture = _arrayBuffer;
129
- case 35:
132
+ case 37:
130
133
  content.material = makePbrMaterial(tileOptions.materialDefinition, content.texture);
131
134
  if (content.material) {
132
135
  content.texture = null;
133
136
  }
134
- _context.next = 39;
137
+ _context.next = 41;
135
138
  return parseI3SNodeGeometry(arrayBuffer, content, tileOptions, tilesetOptions, options);
136
- case 39:
139
+ case 41:
137
140
  return _context.abrupt("return", _context.sent);
138
- case 40:
141
+ case 42:
139
142
  case "end":
140
143
  return _context.stop();
141
144
  }
142
- }, _callee, null, [[13, 19]]);
145
+ }, _callee, null, [[13, 20]]);
143
146
  }));
144
147
  return _parseI3STileContent.apply(this, arguments);
145
148
  }