@loaders.gl/tile-converter 4.0.0-alpha.21 → 4.0.0-alpha.23

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 (81) hide show
  1. package/dist/constants.d.ts +0 -2
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +1 -3
  4. package/dist/converter.min.js +114 -114
  5. package/dist/dist.min.js +2409 -1161
  6. package/dist/es5/constants.js +1 -5
  7. package/dist/es5/constants.js.map +1 -1
  8. package/dist/es5/deps-installer/deps-installer.js +1 -1
  9. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +26 -11
  10. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  11. package/dist/es5/i3s-converter/helpers/feature-attributes.js +14 -12
  12. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
  13. package/dist/es5/i3s-converter/helpers/geometry-converter.js +61 -10
  14. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  15. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +70 -4
  16. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
  17. package/dist/es5/i3s-converter/helpers/node-index-document.js +3 -2
  18. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -1
  19. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +1 -2
  20. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
  21. package/dist/es5/i3s-converter/i3s-converter.js +70 -58
  22. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  23. package/dist/es5/i3s-server/controllers/slpk-controller.js +2 -2
  24. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
  25. package/dist/es5/pgm-loader.js +1 -1
  26. package/dist/es5/slpk-extractor/slpk-extractor.js +1 -1
  27. package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -1
  28. package/dist/esm/constants.js +0 -2
  29. package/dist/esm/constants.js.map +1 -1
  30. package/dist/esm/deps-installer/deps-installer.js +1 -1
  31. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +21 -6
  32. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  33. package/dist/esm/i3s-converter/helpers/feature-attributes.js +6 -4
  34. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
  35. package/dist/esm/i3s-converter/helpers/geometry-converter.js +59 -8
  36. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  37. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +33 -4
  38. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
  39. package/dist/esm/i3s-converter/helpers/node-index-document.js +2 -1
  40. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -1
  41. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +1 -1
  42. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
  43. package/dist/esm/i3s-converter/i3s-converter.js +27 -22
  44. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  45. package/dist/esm/i3s-server/bin/i3s-server.min.js +71 -71
  46. package/dist/esm/i3s-server/controllers/slpk-controller.js +1 -1
  47. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
  48. package/dist/esm/pgm-loader.js +1 -1
  49. package/dist/esm/slpk-extractor/slpk-extractor.js +2 -1
  50. package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -1
  51. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  52. package/dist/i3s-converter/helpers/batch-ids-extensions.js +37 -16
  53. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -1
  54. package/dist/i3s-converter/helpers/feature-attributes.js +6 -4
  55. package/dist/i3s-converter/helpers/geometry-converter.d.ts +2 -2
  56. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  57. package/dist/i3s-converter/helpers/geometry-converter.js +93 -12
  58. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +15 -0
  59. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -1
  60. package/dist/i3s-converter/helpers/load-3d-tiles.js +51 -5
  61. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
  62. package/dist/i3s-converter/helpers/node-index-document.js +4 -1
  63. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +2 -2
  64. package/dist/i3s-converter/i3s-converter.d.ts +1 -1
  65. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  66. package/dist/i3s-converter/i3s-converter.js +38 -17
  67. package/dist/i3s-server/controllers/slpk-controller.js +2 -2
  68. package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -1
  69. package/dist/slpk-extractor/slpk-extractor.js +2 -1
  70. package/dist/slpk-extractor.min.js +38 -38
  71. package/package.json +14 -14
  72. package/src/constants.ts +0 -3
  73. package/src/i3s-converter/helpers/batch-ids-extensions.ts +53 -14
  74. package/src/i3s-converter/helpers/feature-attributes.ts +8 -6
  75. package/src/i3s-converter/helpers/geometry-converter.ts +135 -12
  76. package/src/i3s-converter/helpers/load-3d-tiles.ts +61 -5
  77. package/src/i3s-converter/helpers/node-index-document.ts +5 -1
  78. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +1 -1
  79. package/src/i3s-converter/i3s-converter.ts +54 -22
  80. package/src/i3s-server/controllers/slpk-controller.ts +1 -1
  81. package/src/slpk-extractor/slpk-extractor.ts +2 -1
@@ -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
  }
@@ -737,7 +739,6 @@ var I3SConverter = function () {
737
739
  key: "_createNode",
738
740
  value: function () {
739
741
  var _createNode2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(parentNode, sourceTile, transformationMatrix) {
740
- var _this$layers, _this$layers$attribut;
741
742
  var tileContent, sourceBoundingVolume, boundingVolumes, propertyTable, resourcesData, nodes, nodeIds, nodesInPage, emptyResources, _iterator5, _step5, resources, lodSelection, maxScreenThresholdSQ, nodeInPage, nodeData, node, _console;
742
743
  return _regenerator.default.wrap(function _callee9$(_context9) {
743
744
  while (1) switch (_context9.prev = _context9.next) {
@@ -762,7 +763,7 @@ var I3SConverter = function () {
762
763
  sourceBoundingVolume = (0, _tiles.createBoundingVolume)(sourceTile.boundingVolume, transformationMatrix, null);
763
764
  boundingVolumes = (0, _coordinateConverter.createBoundingVolumes)(sourceBoundingVolume, this.geoidHeightModel);
764
765
  propertyTable = (0, _geometryConverter.getPropertyTable)(tileContent, this.options.metadataClass);
765
- if (propertyTable && !((_this$layers = this.layers0) !== null && _this$layers !== void 0 && (_this$layers$attribut = _this$layers.attributeStorageInfo) !== null && _this$layers$attribut !== void 0 && _this$layers$attribut.length)) {
766
+ if (propertyTable) {
766
767
  this._convertPropertyTableToNodeAttributes(propertyTable);
767
768
  }
768
769
  _context9.next = 19;
@@ -863,7 +864,7 @@ var I3SConverter = function () {
863
864
  value: function () {
864
865
  var _convertResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee11(sourceTile, transformationMatrix, boundingVolume, tileContent, parentId, propertyTable) {
865
866
  var _this3 = this,
866
- _this$layers2;
867
+ _this$layers;
867
868
  var draftObb, resourcesData;
868
869
  return _regenerator.default.wrap(function _callee11$(_context11) {
869
870
  while (1) switch (_context11.prev = _context11.next) {
@@ -896,7 +897,7 @@ var I3SConverter = function () {
896
897
  return _context10.stop();
897
898
  }
898
899
  }, _callee10);
899
- })), propertyTable, this.featuresHashArray, (_this$layers2 = this.layers0) === null || _this$layers2 === void 0 ? void 0 : _this$layers2.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.loadOptions.modules, this.options.metadataClass);
900
+ })), propertyTable, this.featuresHashArray, (_this$layers = this.layers0) === null || _this$layers === void 0 ? void 0 : _this$layers.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.loadOptions.modules, this.options.metadataClass);
900
901
  case 5:
901
902
  resourcesData = _context11.sent;
902
903
  return _context11.abrupt("return", resourcesData);
@@ -1275,12 +1276,13 @@ var I3SConverter = function () {
1275
1276
  key: "_writeAttributes",
1276
1277
  value: function () {
1277
1278
  var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee18() {
1278
- var _this$layers3,
1279
- _this$layers3$attribu,
1279
+ var _this$layers2,
1280
+ _this$layers2$attribu,
1280
1281
  _this4 = this;
1281
1282
  var attributes,
1282
1283
  childPath,
1283
1284
  slpkChildPath,
1285
+ minimumLength,
1284
1286
  _loop,
1285
1287
  index,
1286
1288
  _args19 = arguments;
@@ -1290,10 +1292,11 @@ var I3SConverter = function () {
1290
1292
  attributes = _args19.length > 0 && _args19[0] !== undefined ? _args19[0] : [];
1291
1293
  childPath = _args19.length > 1 ? _args19[1] : undefined;
1292
1294
  slpkChildPath = _args19.length > 2 ? _args19[2] : undefined;
1293
- if (!(attributes !== null && attributes !== void 0 && attributes.length && (_this$layers3 = this.layers0) !== null && _this$layers3 !== void 0 && (_this$layers3$attribu = _this$layers3.attributeStorageInfo) !== null && _this$layers3$attribu !== void 0 && _this$layers3$attribu.length)) {
1294
- _context19.next = 11;
1295
+ if (!(attributes !== null && attributes !== void 0 && attributes.length && (_this$layers2 = this.layers0) !== null && _this$layers2 !== void 0 && (_this$layers2$attribu = _this$layers2.attributeStorageInfo) !== null && _this$layers2$attribu !== void 0 && _this$layers2$attribu.length)) {
1296
+ _context19.next = 12;
1295
1297
  break;
1296
1298
  }
1299
+ minimumLength = attributes.length < this.layers0.attributeStorageInfo.length ? attributes.length : this.layers0.attributeStorageInfo.length;
1297
1300
  _loop = _regenerator.default.mark(function _loop() {
1298
1301
  var folderName, fileBuffer, slpkAttributesPath, attributesPath;
1299
1302
  return _regenerator.default.wrap(function _loop$(_context18) {
@@ -1331,17 +1334,17 @@ var I3SConverter = function () {
1331
1334
  }, _loop);
1332
1335
  });
1333
1336
  index = 0;
1334
- case 6:
1335
- if (!(index < attributes.length)) {
1336
- _context19.next = 11;
1337
+ case 7:
1338
+ if (!(index < minimumLength)) {
1339
+ _context19.next = 12;
1337
1340
  break;
1338
1341
  }
1339
- return _context19.delegateYield(_loop(), "t0", 8);
1340
- case 8:
1342
+ return _context19.delegateYield(_loop(), "t0", 9);
1343
+ case 9:
1341
1344
  index++;
1342
- _context19.next = 6;
1345
+ _context19.next = 7;
1343
1346
  break;
1344
- case 11:
1347
+ case 12:
1345
1348
  case "end":
1346
1349
  return _context19.stop();
1347
1350
  }
@@ -1395,22 +1398,31 @@ var I3SConverter = function () {
1395
1398
  }, {
1396
1399
  key: "_convertPropertyTableToNodeAttributes",
1397
1400
  value: function _convertPropertyTableToNodeAttributes(propertyTable) {
1401
+ var _this5 = this;
1398
1402
  var attributeIndex = 0;
1399
1403
  var propertyTableWithObjectId = _objectSpread({
1400
1404
  OBJECTID: [0]
1401
1405
  }, propertyTable);
1402
- for (var _key in propertyTableWithObjectId) {
1403
- var firstAttribute = propertyTableWithObjectId[_key][0];
1404
- var attributeType = (0, _featureAttributes.getAttributeType)(_key, firstAttribute);
1405
- var storageAttribute = (0, _featureAttributes.createdStorageAttribute)(attributeIndex, _key, attributeType);
1406
- var fieldAttributeType = (0, _featureAttributes.getFieldAttributeType)(attributeType);
1407
- var fieldAttribute = (0, _featureAttributes.createFieldAttribute)(_key, fieldAttributeType);
1408
- var popupInfo = (0, _featureAttributes.createPopupInfo)(propertyTableWithObjectId);
1409
- this.layers0.attributeStorageInfo.push(storageAttribute);
1410
- this.layers0.fields.push(fieldAttribute);
1411
- this.layers0.popupInfo = popupInfo;
1412
- this.layers0.layerType = _3D_OBJECT_LAYER_TYPE;
1406
+ var _loop2 = function _loop2(_key) {
1407
+ var found = _this5.layers0.attributeStorageInfo.find(function (element) {
1408
+ return element.name === _key;
1409
+ });
1410
+ if (!found) {
1411
+ var firstAttribute = propertyTableWithObjectId[_key][0];
1412
+ var attributeType = (0, _featureAttributes.getAttributeType)(_key, firstAttribute);
1413
+ var storageAttribute = (0, _featureAttributes.createdStorageAttribute)(attributeIndex, _key, attributeType);
1414
+ var fieldAttributeType = (0, _featureAttributes.getFieldAttributeType)(attributeType);
1415
+ var fieldAttribute = (0, _featureAttributes.createFieldAttribute)(_key, fieldAttributeType);
1416
+ var popupInfo = (0, _featureAttributes.createPopupInfo)(propertyTableWithObjectId);
1417
+ _this5.layers0.attributeStorageInfo.push(storageAttribute);
1418
+ _this5.layers0.fields.push(fieldAttribute);
1419
+ _this5.layers0.popupInfo = popupInfo;
1420
+ _this5.layers0.layerType = _3D_OBJECT_LAYER_TYPE;
1421
+ }
1413
1422
  attributeIndex += 1;
1423
+ };
1424
+ for (var _key in propertyTableWithObjectId) {
1425
+ _loop2(_key);
1414
1426
  }
1415
1427
  }
1416
1428
  }, {