@loaders.gl/tile-converter 4.0.0-alpha.20 → 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 (62) hide show
  1. package/dist/converter.min.js +113 -113
  2. package/dist/dist.min.js +33160 -32581
  3. package/dist/es5/deps-installer/deps-installer.js +1 -1
  4. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +70 -4
  5. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
  6. package/dist/es5/i3s-converter/i3s-converter.js +34 -32
  7. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  8. package/dist/es5/i3s-server/controllers/slpk-controller.js +2 -2
  9. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
  10. package/dist/es5/index.js +0 -7
  11. package/dist/es5/index.js.map +1 -1
  12. package/dist/es5/pgm-loader.js +1 -1
  13. package/dist/es5/slpk-extractor/slpk-extractor.js +7 -8
  14. package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -1
  15. package/dist/esm/deps-installer/deps-installer.js +1 -1
  16. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +33 -4
  17. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
  18. package/dist/esm/i3s-converter/i3s-converter.js +7 -5
  19. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  20. package/dist/esm/i3s-server/bin/i3s-server.min.js +70 -70
  21. package/dist/esm/i3s-server/controllers/slpk-controller.js +1 -1
  22. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
  23. package/dist/esm/index.js +0 -1
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/pgm-loader.js +1 -1
  26. package/dist/esm/slpk-extractor/slpk-extractor.js +2 -3
  27. package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -1
  28. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +15 -0
  29. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -1
  30. package/dist/i3s-converter/helpers/load-3d-tiles.js +51 -5
  31. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  32. package/dist/i3s-converter/i3s-converter.js +6 -4
  33. package/dist/i3s-server/controllers/slpk-controller.js +2 -2
  34. package/dist/index.d.ts +0 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -3
  37. package/dist/slpk-extractor/slpk-extractor.d.ts +1 -1
  38. package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -1
  39. package/dist/slpk-extractor/slpk-extractor.js +3 -4
  40. package/dist/slpk-extractor.min.js +35 -35
  41. package/package.json +14 -14
  42. package/src/i3s-converter/helpers/load-3d-tiles.ts +61 -5
  43. package/src/i3s-converter/i3s-converter.ts +12 -5
  44. package/src/i3s-server/controllers/slpk-controller.ts +1 -1
  45. package/src/index.ts +0 -1
  46. package/src/slpk-extractor/slpk-extractor.ts +2 -3
  47. package/dist/es5/slpk-extractor/helpers/file-handle-file.js +0 -214
  48. package/dist/es5/slpk-extractor/helpers/file-handle-file.js.map +0 -1
  49. package/dist/es5/slpk-extractor/helpers/fs-promises.js +0 -77
  50. package/dist/es5/slpk-extractor/helpers/fs-promises.js.map +0 -1
  51. package/dist/esm/slpk-extractor/helpers/file-handle-file.js +0 -54
  52. package/dist/esm/slpk-extractor/helpers/file-handle-file.js.map +0 -1
  53. package/dist/esm/slpk-extractor/helpers/fs-promises.js +0 -32
  54. package/dist/esm/slpk-extractor/helpers/fs-promises.js.map +0 -1
  55. package/dist/slpk-extractor/helpers/file-handle-file.d.ts +0 -51
  56. package/dist/slpk-extractor/helpers/file-handle-file.d.ts.map +0 -1
  57. package/dist/slpk-extractor/helpers/file-handle-file.js +0 -86
  58. package/dist/slpk-extractor/helpers/fs-promises.d.ts +0 -38
  59. package/dist/slpk-extractor/helpers/fs-promises.d.ts.map +0 -1
  60. package/dist/slpk-extractor/helpers/fs-promises.js +0 -51
  61. package/src/slpk-extractor/helpers/file-handle-file.ts +0 -109
  62. package/src/slpk-extractor/helpers/fs-promises.ts +0 -66
@@ -16,7 +16,7 @@ var _path = require("path");
16
16
  var _workerUtils = require("@loaders.gl/worker-utils");
17
17
  var _draco = require("@loaders.gl/draco");
18
18
  var _textures = require("@loaders.gl/textures");
19
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'beta';
19
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'beta';
20
20
  var PGM_LINK = 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/egm/egm2008-5.zip';
21
21
  var DepsInstaller = function () {
22
22
  function DepsInstaller() {
@@ -4,10 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ exports.isNestedTileset = isNestedTileset;
8
+ exports.loadFromArchive = loadFromArchive;
7
9
  exports.loadTile3DContent = exports.loadNestedTileset = void 0;
8
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+ var _dTiles = require("@loaders.gl/3d-tiles");
11
14
  var _core = require("@loaders.gl/core");
12
15
  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; }
13
16
  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; }
@@ -17,7 +20,7 @@ var loadNestedTileset = function () {
17
20
  return _regenerator.default.wrap(function _callee$(_context) {
18
21
  while (1) switch (_context.prev = _context.next) {
19
22
  case 0:
20
- isTileset = sourceTile.type === 'json';
23
+ isTileset = isNestedTileset(sourceTile);
21
24
  if (!(!sourceTileset || !sourceTile.contentUrl || !isTileset)) {
22
25
  _context.next = 3;
23
26
  break;
@@ -29,7 +32,7 @@ var loadNestedTileset = function () {
29
32
  assetGltfUpAxis: sourceTileset.asset && sourceTileset.asset.gltfUpAxis || 'Y'
30
33
  }));
31
34
  _context.next = 6;
32
- return (0, _core.load)(sourceTile.contentUrl, sourceTileset.loader, loadOptions);
35
+ return loadFromArchive(sourceTile.contentUrl, sourceTileset.loader, loadOptions);
33
36
  case 6:
34
37
  tileContent = _context.sent;
35
38
  if (tileContent.root) {
@@ -52,7 +55,7 @@ var loadTile3DContent = function () {
52
55
  return _regenerator.default.wrap(function _callee2$(_context2) {
53
56
  while (1) switch (_context2.prev = _context2.next) {
54
57
  case 0:
55
- isTileset = sourceTile.type === 'json';
58
+ isTileset = isNestedTileset(sourceTile);
56
59
  if (!(!sourceTileset || !sourceTile.contentUrl || isTileset)) {
57
60
  _context2.next = 3;
58
61
  break;
@@ -64,7 +67,7 @@ var loadTile3DContent = function () {
64
67
  assetGltfUpAxis: sourceTileset.asset && sourceTileset.asset.gltfUpAxis || 'Y'
65
68
  })));
66
69
  _context2.next = 6;
67
- return (0, _core.load)(sourceTile.contentUrl, sourceTileset.loader, loadOptions);
70
+ return loadFromArchive(sourceTile.contentUrl, sourceTileset.loader, loadOptions);
68
71
  case 6:
69
72
  tileContent = _context2.sent;
70
73
  return _context2.abrupt("return", tileContent);
@@ -79,4 +82,67 @@ var loadTile3DContent = function () {
79
82
  };
80
83
  }();
81
84
  exports.loadTile3DContent = loadTile3DContent;
85
+ function loadFromArchive(_x7, _x8, _x9) {
86
+ return _loadFromArchive.apply(this, arguments);
87
+ }
88
+ function _loadFromArchive() {
89
+ _loadFromArchive = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(url, loader, loadOptions) {
90
+ var tz3UrlParts, filename, tz3Path, fileSystem, content;
91
+ return _regenerator.default.wrap(function _callee3$(_context3) {
92
+ while (1) switch (_context3.prev = _context3.next) {
93
+ case 0:
94
+ tz3UrlParts = url.split('.3tz');
95
+ if (!(tz3UrlParts.length === 1)) {
96
+ _context3.next = 5;
97
+ break;
98
+ }
99
+ filename = null;
100
+ _context3.next = 11;
101
+ break;
102
+ case 5:
103
+ if (!(tz3UrlParts.length === 2)) {
104
+ _context3.next = 10;
105
+ break;
106
+ }
107
+ filename = tz3UrlParts[1].slice(1);
108
+ if (filename === '') {
109
+ filename = 'tileset.json';
110
+ }
111
+ _context3.next = 11;
112
+ break;
113
+ case 10:
114
+ throw new Error('Unexpected URL format');
115
+ case 11:
116
+ if (!filename) {
117
+ _context3.next = 20;
118
+ break;
119
+ }
120
+ tz3Path = "".concat(tz3UrlParts[0], ".3tz");
121
+ fileSystem = new _dTiles.Tiles3DArchiveFileSystem(tz3Path);
122
+ _context3.next = 16;
123
+ return (0, _core.load)(filename, loader, _objectSpread(_objectSpread({}, loadOptions), {}, {
124
+ fetch: fileSystem.fetch.bind(fileSystem)
125
+ }));
126
+ case 16:
127
+ content = _context3.sent;
128
+ _context3.next = 19;
129
+ return fileSystem.destroy();
130
+ case 19:
131
+ return _context3.abrupt("return", content);
132
+ case 20:
133
+ _context3.next = 22;
134
+ return (0, _core.load)(url, loader, loadOptions);
135
+ case 22:
136
+ return _context3.abrupt("return", _context3.sent);
137
+ case 23:
138
+ case "end":
139
+ return _context3.stop();
140
+ }
141
+ }, _callee3);
142
+ }));
143
+ return _loadFromArchive.apply(this, arguments);
144
+ }
145
+ function isNestedTileset(tile) {
146
+ return (tile === null || tile === void 0 ? void 0 : tile.type) === 'json' || (tile === null || tile === void 0 ? void 0 : tile.type) === '3tz';
147
+ }
82
148
  //# sourceMappingURL=load-3d-tiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-3d-tiles.js","names":["_core","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","loadNestedTileset","_ref","_asyncToGenerator2","_regenerator","mark","_callee","sourceTileset","sourceTile","tilesetLoadOptions","isTileset","loadOptions","tileContent","wrap","_callee$","_context","prev","next","type","contentUrl","abrupt","loader","id","assetGltfUpAxis","asset","gltfUpAxis","load","sent","root","children","stop","_x","_x2","_x3","exports","loadTile3DContent","_ref2","_callee2","_callee2$","_context2","_x4","_x5","_x6"],"sources":["../../../../src/i3s-converter/helpers/load-3d-tiles.ts"],"sourcesContent":["import type {\n Tiles3DLoaderOptions,\n Tiles3DTileContent,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSONPostprocessed\n} from '@loaders.gl/3d-tiles';\nimport {load} from '@loaders.gl/core';\n\n/**\n * Load nested 3DTiles tileset. If the sourceTile is not nested tileset - do nothing\n * @param sourceTileset - source root tileset JSON\n * @param sourceTile - source tile JSON that is supposed to has link to nested tileset\n * @param tilesetLoadOptions - load options for Tiles3DLoader\n * @returns nothing\n */\nexport const loadNestedTileset = async (\n sourceTileset: Tiles3DTilesetJSONPostprocessed | null,\n sourceTile: Tiles3DTileJSONPostprocessed,\n tilesetLoadOptions: Tiles3DLoaderOptions\n): Promise<void> => {\n const isTileset = sourceTile.type === 'json';\n if (!sourceTileset || !sourceTile.contentUrl || !isTileset) {\n return;\n }\n\n const loadOptions = {\n ...tilesetLoadOptions,\n [sourceTileset.loader.id]: {\n isTileset,\n assetGltfUpAxis: (sourceTileset.asset && sourceTileset.asset.gltfUpAxis) || 'Y'\n }\n };\n const tileContent = await load(sourceTile.contentUrl, sourceTileset.loader, loadOptions);\n\n if (tileContent.root) {\n sourceTile.children = [tileContent.root];\n }\n};\n\n/**\n * Load 3DTiles tile content, that includes glTF object\n * @param sourceTileset - source root tileset JSON\n * @param sourceTile - source tile JSON that has link to content data\n * @param tilesetLoadOptions - load options for Tiles3DLoader\n * @returns - 3DTiles tile content or null\n */\nexport const loadTile3DContent = async (\n sourceTileset: Tiles3DTilesetJSONPostprocessed | null,\n sourceTile: Tiles3DTileJSONPostprocessed,\n tilesetLoadOptions: Tiles3DLoaderOptions\n): Promise<Tiles3DTileContent | null> => {\n const isTileset = sourceTile.type === 'json';\n if (!sourceTileset || !sourceTile.contentUrl || isTileset) {\n return null;\n }\n\n const loadOptions = {\n ...tilesetLoadOptions,\n [sourceTileset.loader.id]: {\n ...(tilesetLoadOptions[sourceTileset.loader.id] || {}),\n isTileset,\n assetGltfUpAxis: (sourceTileset.asset && sourceTileset.asset.gltfUpAxis) || 'Y'\n }\n };\n const tileContent = await load(sourceTile.contentUrl, sourceTileset.loader, loadOptions);\n\n return tileContent;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"load-3d-tiles.js","names":["_dTiles","require","_core","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","loadNestedTileset","_ref","_asyncToGenerator2","_regenerator","mark","_callee","sourceTileset","sourceTile","tilesetLoadOptions","isTileset","loadOptions","tileContent","wrap","_callee$","_context","prev","next","isNestedTileset","contentUrl","abrupt","loader","id","assetGltfUpAxis","asset","gltfUpAxis","loadFromArchive","sent","root","children","stop","_x","_x2","_x3","exports","loadTile3DContent","_ref2","_callee2","_callee2$","_context2","_x4","_x5","_x6","_x7","_x8","_x9","_loadFromArchive","_callee3","url","tz3UrlParts","filename","tz3Path","fileSystem","content","_callee3$","_context3","split","slice","Error","concat","Tiles3DArchiveFileSystem","load","fetch","bind","destroy","tile","type"],"sources":["../../../../src/i3s-converter/helpers/load-3d-tiles.ts"],"sourcesContent":["import type {\n Tiles3DLoaderOptions,\n Tiles3DTileContent,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSONPostprocessed\n} from '@loaders.gl/3d-tiles';\nimport {Tiles3DArchiveFileSystem} from '@loaders.gl/3d-tiles';\nimport {LoaderWithParser, load} from '@loaders.gl/core';\n\n/**\n * Load nested 3DTiles tileset. If the sourceTile is not nested tileset - do nothing\n * @param sourceTileset - source root tileset JSON\n * @param sourceTile - source tile JSON that is supposed to has link to nested tileset\n * @param tilesetLoadOptions - load options for Tiles3DLoader\n * @returns nothing\n */\nexport const loadNestedTileset = async (\n sourceTileset: Tiles3DTilesetJSONPostprocessed | null,\n sourceTile: Tiles3DTileJSONPostprocessed,\n tilesetLoadOptions: Tiles3DLoaderOptions\n): Promise<void> => {\n const isTileset = isNestedTileset(sourceTile);\n if (!sourceTileset || !sourceTile.contentUrl || !isTileset) {\n return;\n }\n\n const loadOptions = {\n ...tilesetLoadOptions,\n [sourceTileset.loader.id]: {\n isTileset,\n assetGltfUpAxis: (sourceTileset.asset && sourceTileset.asset.gltfUpAxis) || 'Y'\n }\n };\n const tileContent = await loadFromArchive(\n sourceTile.contentUrl,\n sourceTileset.loader,\n loadOptions\n );\n\n if (tileContent.root) {\n sourceTile.children = [tileContent.root];\n }\n};\n\n/**\n * Load 3DTiles tile content, that includes glTF object\n * @param sourceTileset - source root tileset JSON\n * @param sourceTile - source tile JSON that has link to content data\n * @param tilesetLoadOptions - load options for Tiles3DLoader\n * @returns - 3DTiles tile content or null\n */\nexport const loadTile3DContent = async (\n sourceTileset: Tiles3DTilesetJSONPostprocessed | null,\n sourceTile: Tiles3DTileJSONPostprocessed,\n tilesetLoadOptions: Tiles3DLoaderOptions\n): Promise<Tiles3DTileContent | null> => {\n const isTileset = isNestedTileset(sourceTile);\n if (!sourceTileset || !sourceTile.contentUrl || isTileset) {\n return null;\n }\n\n const loadOptions = {\n ...tilesetLoadOptions,\n [sourceTileset.loader.id]: {\n ...(tilesetLoadOptions[sourceTileset.loader.id] || {}),\n isTileset,\n assetGltfUpAxis: (sourceTileset.asset && sourceTileset.asset.gltfUpAxis) || 'Y'\n }\n };\n const tileContent = await loadFromArchive(\n sourceTile.contentUrl,\n sourceTileset.loader,\n loadOptions\n );\n\n return tileContent;\n};\n\n/**\n * Load a resource with load options and .3tz format support\n * @param url - resource URL\n * @param loader - loader to parse data (Tiles3DLoader / CesiumIonLoader)\n * @param loadOptions - 3d-tiles loader options\n * @returns 3d-tiles resource\n */\nexport async function loadFromArchive(\n url: string,\n loader: LoaderWithParser,\n loadOptions: Tiles3DLoaderOptions\n) {\n const tz3UrlParts = url.split('.3tz');\n let filename: string | null;\n // No '.3tz'. The file will be loaded with global fetch function\n if (tz3UrlParts.length === 1) {\n filename = null;\n } else if (tz3UrlParts.length === 2) {\n filename = tz3UrlParts[1].slice(1);\n if (filename === '') {\n filename = 'tileset.json';\n }\n } else {\n throw new Error('Unexpected URL format');\n }\n if (filename) {\n const tz3Path = `${tz3UrlParts[0]}.3tz`;\n const fileSystem = new Tiles3DArchiveFileSystem(tz3Path);\n const content = await load(filename, loader, {\n ...loadOptions,\n fetch: fileSystem.fetch.bind(fileSystem)\n });\n await fileSystem.destroy();\n return content;\n }\n return await load(url, loader, loadOptions);\n}\n\n/**\n * Check if tile is nested tileset\n * @param tile - 3DTiles header data\n * @returns true if tile is nested tileset\n */\nexport function isNestedTileset(tile: Tiles3DTileJSONPostprocessed) {\n return tile?.type === 'json' || tile?.type === '3tz';\n}\n"],"mappings":"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"}
@@ -185,7 +185,7 @@ var I3SConverter = function () {
185
185
  };
186
186
  }
187
187
  _context.next = 28;
188
- return (0, _core.load)(tilesetUrl, this.Loader, this.loadOptions);
188
+ return (0, _load3dTiles.loadFromArchive)(tilesetUrl, this.Loader, this.loadOptions);
189
189
  case 28:
190
190
  this.sourceTileset = _context.sent;
191
191
  _context.next = 31;
@@ -314,50 +314,51 @@ var I3SConverter = function () {
314
314
  key: "analyzeTile",
315
315
  value: function () {
316
316
  var _analyzeTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(sourceTile, traversalProps) {
317
- var tileContent, tilePreprocessData;
317
+ var isTileset, tileContent, tilePreprocessData;
318
318
  return _regenerator.default.wrap(function _callee3$(_context3) {
319
319
  while (1) switch (_context3.prev = _context3.next) {
320
320
  case 0:
321
- if (!(sourceTile.type === 'json')) {
322
- _context3.next = 4;
321
+ isTileset = (0, _load3dTiles.isNestedTileset)(sourceTile);
322
+ if (!isTileset) {
323
+ _context3.next = 5;
323
324
  break;
324
325
  }
325
- _context3.next = 3;
326
+ _context3.next = 4;
326
327
  return (0, _load3dTiles.loadNestedTileset)(this.sourceTileset, sourceTile, this.loadOptions);
327
- case 3:
328
- return _context3.abrupt("return", null);
329
328
  case 4:
329
+ return _context3.abrupt("return", null);
330
+ case 5:
330
331
  if (sourceTile.id) {
331
332
  console.log("[analyze]: ".concat(sourceTile.id));
332
333
  }
333
334
  tileContent = null;
334
- _context3.prev = 6;
335
- _context3.next = 9;
335
+ _context3.prev = 7;
336
+ _context3.next = 10;
336
337
  return (0, _load3dTiles.loadTile3DContent)(this.sourceTileset, sourceTile, _objectSpread(_objectSpread({}, this.loadOptions), {}, {
337
338
  '3d-tiles': _objectSpread(_objectSpread({}, this.loadOptions['3d-tiles']), {}, {
338
339
  loadGLTF: false
339
340
  })
340
341
  }));
341
- case 9:
342
+ case 10:
342
343
  tileContent = _context3.sent;
343
- _context3.next = 15;
344
+ _context3.next = 16;
344
345
  break;
345
- case 12:
346
- _context3.prev = 12;
347
- _context3.t0 = _context3["catch"](6);
346
+ case 13:
347
+ _context3.prev = 13;
348
+ _context3.t0 = _context3["catch"](7);
348
349
  console.log("[warning]: Failed to load ".concat(sourceTile.contentUrl, ". An I3S tile with empty content will be added to the output tileset"));
349
- case 15:
350
- _context3.next = 17;
350
+ case 16:
351
+ _context3.next = 18;
351
352
  return (0, _preprocess3dTiles.analyzeTileContent)(tileContent);
352
- case 17:
353
+ case 18:
353
354
  tilePreprocessData = _context3.sent;
354
355
  (0, _preprocess3dTiles.mergePreprocessData)(this.preprocessData, tilePreprocessData);
355
356
  return _context3.abrupt("return", null);
356
- case 20:
357
+ case 21:
357
358
  case "end":
358
359
  return _context3.stop();
359
360
  }
360
- }, _callee3, this, [[6, 12]]);
361
+ }, _callee3, this, [[7, 13]]);
361
362
  }));
362
363
  function analyzeTile(_x2, _x3) {
363
364
  return _analyzeTile.apply(this, arguments);
@@ -588,26 +589,27 @@ var I3SConverter = function () {
588
589
  key: "convertTile",
589
590
  value: function () {
590
591
  var _convertTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(sourceTile, traversalProps) {
591
- var parentNodes, transform, transformationMatrix, parentNode, childNodes, newTraversalProps;
592
+ var isTileset, parentNodes, transform, transformationMatrix, parentNode, childNodes, newTraversalProps;
592
593
  return _regenerator.default.wrap(function _callee7$(_context7) {
593
594
  while (1) switch (_context7.prev = _context7.next) {
594
595
  case 0:
595
- if (!(sourceTile.type === 'json' || sourceTile.type === 'empty')) {
596
- _context7.next = 6;
596
+ isTileset = (0, _load3dTiles.isNestedTileset)(sourceTile);
597
+ if (!(isTileset || sourceTile.type === 'empty')) {
598
+ _context7.next = 7;
597
599
  break;
598
600
  }
599
- if (!(sourceTile.type === 'json')) {
600
- _context7.next = 5;
601
+ if (!isTileset) {
602
+ _context7.next = 6;
601
603
  break;
602
604
  }
603
605
  if (sourceTile.id) {
604
606
  console.log("[load]: ".concat(sourceTile.id));
605
607
  }
606
- _context7.next = 5;
608
+ _context7.next = 6;
607
609
  return (0, _load3dTiles.loadNestedTileset)(this.sourceTileset, sourceTile, this.loadOptions);
608
- case 5:
609
- return _context7.abrupt("return", traversalProps);
610
610
  case 6:
611
+ return _context7.abrupt("return", traversalProps);
612
+ case 7:
611
613
  if (sourceTile.id) {
612
614
  console.log("[convert]: ".concat(sourceTile.id));
613
615
  }
@@ -617,19 +619,19 @@ var I3SConverter = function () {
617
619
  transformationMatrix = transformationMatrix.multiplyRight(sourceTile.transform);
618
620
  }
619
621
  parentNode = parentNodes[0];
620
- _context7.next = 13;
622
+ _context7.next = 14;
621
623
  return this._createNode(parentNode, sourceTile, transformationMatrix);
622
- case 13:
624
+ case 14:
623
625
  childNodes = _context7.sent;
624
- _context7.next = 16;
626
+ _context7.next = 17;
625
627
  return parentNode.addChildren(childNodes);
626
- case 16:
628
+ case 17:
627
629
  newTraversalProps = {
628
630
  transform: transformationMatrix,
629
631
  parentNodes: childNodes
630
632
  };
631
633
  return _context7.abrupt("return", newTraversalProps);
632
- case 18:
634
+ case 19:
633
635
  case "end":
634
636
  return _context7.stop();
635
637
  }