@loaders.gl/tile-converter 3.3.0-alpha.3 → 3.3.0-alpha.4

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 (88) hide show
  1. package/dist/3d-tiles-attributes-worker.js +1 -1
  2. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +8 -0
  3. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  4. package/dist/3d-tiles-converter/3d-tiles-converter.js +57 -43
  5. package/dist/converter.min.js +21 -21
  6. package/dist/deps-installer/deps-installer.d.ts +5 -1
  7. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  8. package/dist/deps-installer/deps-installer.js +21 -1
  9. package/dist/dist.min.js +660 -1016
  10. package/dist/es5/3d-tiles-attributes-worker.js +1 -1
  11. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +115 -101
  12. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  13. package/dist/es5/deps-installer/deps-installer.js +70 -6
  14. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  15. package/dist/es5/i3s-attributes-worker.js +1 -1
  16. package/dist/es5/i3s-attributes-worker.js.map +1 -1
  17. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +4 -0
  18. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  19. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  20. package/dist/es5/i3s-converter/helpers/feature-attributes.js +153 -0
  21. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
  22. package/dist/es5/i3s-converter/helpers/geometry-converter.js +40 -44
  23. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  24. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +55 -36
  25. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  26. package/dist/es5/i3s-converter/helpers/node-pages.js +10 -2
  27. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  28. package/dist/es5/i3s-converter/i3s-converter.js +364 -435
  29. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  30. package/dist/es5/pgm-loader.js +1 -1
  31. package/dist/esm/3d-tiles-attributes-worker.js +1 -1
  32. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +59 -44
  33. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  34. package/dist/esm/deps-installer/deps-installer.js +21 -2
  35. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  36. package/dist/esm/i3s-attributes-worker.js +1 -1
  37. package/dist/esm/i3s-attributes-worker.js.map +1 -1
  38. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +4 -0
  39. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  40. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  41. package/dist/esm/i3s-converter/helpers/feature-attributes.js +138 -0
  42. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
  43. package/dist/esm/i3s-converter/helpers/geometry-converter.js +19 -21
  44. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  45. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +55 -36
  46. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  47. package/dist/esm/i3s-converter/helpers/node-pages.js +9 -2
  48. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  49. package/dist/esm/i3s-converter/i3s-converter.js +93 -183
  50. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  51. package/dist/esm/pgm-loader.js +1 -1
  52. package/dist/i3s-attributes-worker.d.ts +5 -1
  53. package/dist/i3s-attributes-worker.d.ts.map +1 -1
  54. package/dist/i3s-attributes-worker.js +3 -3
  55. package/dist/i3s-attributes-worker.js.map +2 -2
  56. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +2 -3
  57. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  58. package/dist/i3s-converter/helpers/batch-ids-extensions.js +3 -0
  59. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +2 -2
  60. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
  61. package/dist/i3s-converter/helpers/feature-attributes.d.ts +32 -0
  62. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -1
  63. package/dist/i3s-converter/helpers/feature-attributes.js +162 -1
  64. package/dist/i3s-converter/helpers/geometry-converter.d.ts +5 -4
  65. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  66. package/dist/i3s-converter/helpers/geometry-converter.js +29 -27
  67. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
  68. package/dist/i3s-converter/helpers/gltf-attributes.js +50 -30
  69. package/dist/i3s-converter/helpers/node-pages.d.ts +4 -0
  70. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  71. package/dist/i3s-converter/helpers/node-pages.js +9 -2
  72. package/dist/i3s-converter/i3s-converter.d.ts +24 -48
  73. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  74. package/dist/i3s-converter/i3s-converter.js +88 -186
  75. package/dist/i3s-converter/types.d.ts +4 -0
  76. package/dist/i3s-converter/types.d.ts.map +1 -1
  77. package/package.json +15 -15
  78. package/src/3d-tiles-converter/3d-tiles-converter.ts +71 -55
  79. package/src/deps-installer/deps-installer.ts +29 -2
  80. package/src/i3s-attributes-worker.ts +5 -1
  81. package/src/i3s-converter/helpers/batch-ids-extensions.ts +13 -6
  82. package/src/i3s-converter/helpers/coordinate-converter.ts +2 -2
  83. package/src/i3s-converter/helpers/feature-attributes.ts +182 -0
  84. package/src/i3s-converter/helpers/geometry-converter.ts +45 -36
  85. package/src/i3s-converter/helpers/gltf-attributes.ts +54 -33
  86. package/src/i3s-converter/helpers/node-pages.ts +10 -2
  87. package/src/i3s-converter/i3s-converter.ts +125 -210
  88. package/src/i3s-converter/types.ts +4 -0
@@ -71,6 +71,13 @@ class NodePages {
71
71
  const nodeIndex = id % this.nodesPerPage;
72
72
  return this.nodePages[pageIndex].nodes[nodeIndex];
73
73
  }
74
+ /**
75
+ * Update all fields in the node excluding id
76
+ */
77
+ updateAll(id, data) {
78
+ const node = this.getNodeById(id);
79
+ Object.assign(node, data, { index: node.index });
80
+ }
74
81
  /**
75
82
  * Update material in node.mesh object by node id
76
83
  * @param id - end-to-end index of the node
@@ -104,7 +111,7 @@ class NodePages {
104
111
  */
105
112
  updateNodeAttributeByNodeId(id) {
106
113
  const node = this.getNodeById(id);
107
- if (!node.mesh) {
114
+ if (!node.mesh || !node.index) {
108
115
  return;
109
116
  }
110
117
  node.mesh.attribute.resource = node.index;
@@ -150,7 +157,7 @@ class NodePages {
150
157
  * @param node - node object
151
158
  */
152
159
  updateResourceInMesh(node) {
153
- if (node.mesh) {
160
+ if (node.mesh && isFinite(node.index)) {
154
161
  node.mesh.geometry.resource = node.index;
155
162
  }
156
163
  }
@@ -112,6 +112,26 @@ export default class I3SConverter {
112
112
  * @param data.level - level of node (distanse to root node in the tree)
113
113
  */
114
114
  private _addChildrenWithNeighborsAndWriteFile;
115
+ /**
116
+ * Convert nested subtree of 3DTiles dataset
117
+ * @param param0
118
+ * @param param0.sourceTile - source 3DTile data
119
+ * @param param0.parentNode - parent I3S node
120
+ * @param param0.childNodes - child I3S nodes
121
+ * @param param0.parentId - parent node ID
122
+ * @param param0.level - tree level
123
+ */
124
+ private convertNestedTileset;
125
+ /**
126
+ * Convert 3DTiles tile to I3S node
127
+ * @param param0
128
+ * @param param0.sourceTile - source 3DTile data
129
+ * @param param0.parentNode - parent I3S node
130
+ * @param param0.childNodes - child I3S nodes
131
+ * @param param0.parentId - parent node ID
132
+ * @param param0.level - tree level
133
+ */
134
+ private convertNode;
115
135
  /**
116
136
  * Add child nodes recursively and write them to files
117
137
  * @param data - arguments
@@ -139,6 +159,8 @@ export default class I3SConverter {
139
159
  /**
140
160
  * Convert tile to one or more I3S nodes
141
161
  * @param sourceTile - source tile (3DTile)
162
+ * @param parentId - id of parent node in node pages
163
+ * @param propertyTable - batch table from b3dm / feature properties from EXT_FEATURE_METADATA
142
164
  * result.geometry - ArrayBuffer with geometry attributes
143
165
  * result.compressedGeometry - ArrayBuffer with compressed (draco) geometry
144
166
  * result.texture - texture image
@@ -150,7 +172,7 @@ export default class I3SConverter {
150
172
  */
151
173
  private _convertResources;
152
174
  /**
153
- * Create a new node object (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md)
175
+ * Update node object (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md)
154
176
  * in node pages (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodePage.cmn.md)
155
177
  * @param maxScreenThresholdSQ - Level of Details (LOD) metric
156
178
  * @param boundingVolumes - Bounding volumes
@@ -163,7 +185,7 @@ export default class I3SConverter {
163
185
  * @param resources.featureCount - number of features
164
186
  * @return the node object in node pages
165
187
  */
166
- private _createNodeInNodePages;
188
+ private _updateNodeInNodePages;
167
189
  /**
168
190
  * Create a new node page object in node pages
169
191
  * @param parentNode - 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md object of the parent node
@@ -237,57 +259,11 @@ export default class I3SConverter {
237
259
  * @return material id
238
260
  */
239
261
  private _findOrCreateMaterial;
240
- /**
241
- * Generate storage attribute for map segmentation.
242
- * @param attributeIndex - order index of attribute (f_0, f_1 ...).
243
- * @param key - attribute key from propertyTable.
244
- * @param attributeType - attribute type.
245
- * @return Updated storageAttribute.
246
- */
247
- private _createdStorageAttribute;
248
- /**
249
- * Get the attribute type for attributeStorageInfo https://github.com/Esri/i3s-spec/blob/master/docs/1.7/attributeStorageInfo.cmn.md
250
- * @param key - attribute's key
251
- * @param attribute - attribute's type in propertyTable
252
- */
253
- private getAttributeType;
254
- /**
255
- * Setup storage attribute as string.
256
- * @param storageAttribute - attribute for map segmentation.
257
- */
258
- private _setupStringAttribute;
259
- /**
260
- * Setup Id attribute for map segmentation.
261
- * @param storageAttribute - attribute for map segmentation .
262
- */
263
- private _setupIdAttribute;
264
- /**
265
- * Setup double attribute for map segmentation.
266
- * @param storageAttribute - attribute for map segmentation .
267
- */
268
- private _setupDoubleAttribute;
269
- /**
270
- * Setup field attribute for map segmentation.
271
- * @param key - attribute for map segmentation.
272
- * @param fieldAttributeType - esri attribute type ('esriFieldTypeString' or 'esriFieldTypeOID').
273
- */
274
- private _createFieldAttribute;
275
262
  /**
276
263
  * Do conversion of 3DTiles property table to I3s node attributes.
277
264
  * @param propertyTable - Table with layer meta data.
278
265
  */
279
266
  private _convertPropertyTableToNodeAttributes;
280
- /**
281
- * Find and return attribute type based on key form propertyTable.
282
- * @param attributeType
283
- */
284
- private _getFieldAttributeType;
285
- /**
286
- * Generate popup info to show metadata on the map.
287
- * @param propertyTable - table data with OBJECTID.
288
- * @return data for correct rendering of popup.
289
- */
290
- private _createPopupInfo;
291
267
  /**
292
268
  * Print statistics in the end of conversion
293
269
  * @param params - output files data
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"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"}
@@ -50,15 +50,12 @@ const draco_1 = require("@loaders.gl/draco");
50
50
  const write_queue_1 = __importDefault(require("../lib/utils/write-queue"));
51
51
  const i3s_attributes_worker_1 = require("../i3s-attributes-worker");
52
52
  const constants_1 = require("../constants");
53
+ const feature_attributes_1 = require("./helpers/feature-attributes");
53
54
  const ION_DEFAULT_TOKEN = process_1.default.env?.IonToken || // eslint-disable-line
54
55
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ'; // eslint-disable-line
55
56
  const HARDCODED_NODES_PER_PAGE = 64;
56
57
  const _3D_TILES = '3DTILES';
57
58
  const _3D_OBJECT_LAYER_TYPE = '3DObject';
58
- const STRING_TYPE = 'string';
59
- const SHORT_INT_TYPE = 'Int32';
60
- const DOUBLE_TYPE = 'double';
61
- const OBJECT_ID_TYPE = 'OBJECTID';
62
59
  const REFRESH_TOKEN_TIMEOUT = 1800; // 30 minutes in seconds
63
60
  const CESIUM_DATASET_PREFIX = 'https://';
64
61
  // const FS_FILE_TOO_LARGE = 'ERR_FS_FILE_TOO_LARGE';
@@ -129,7 +126,18 @@ class I3SConverter {
129
126
  await this.loadWorkers();
130
127
  try {
131
128
  const preloadOptions = await this._fetchPreloadOptions();
132
- const tilesetOptions = { loadOptions: { basis: { format: 'rgba32' } } };
129
+ const tilesetOptions = {
130
+ loadOptions: {
131
+ _nodeWorkers: true,
132
+ reuseWorkers: true,
133
+ basis: { format: 'rgba32' },
134
+ 'basis-nodejs': {
135
+ format: 'rgba32',
136
+ workerUrl: './modules/textures/dist/basis-nodejs-worker.js'
137
+ },
138
+ 'draco-nodejs': { workerUrl: './modules/draco/dist/draco-nodejs-worker.js' }
139
+ }
140
+ };
133
141
  if (preloadOptions.headers) {
134
142
  tilesetOptions.loadOptions.fetch = { headers: preloadOptions.headers };
135
143
  }
@@ -356,6 +364,48 @@ class I3SConverter {
356
364
  await this._addChildren({ ...data, childNodes });
357
365
  await this._addNeighborsAndWriteFile(data.parentNode, childNodes);
358
366
  }
367
+ /**
368
+ * Convert nested subtree of 3DTiles dataset
369
+ * @param param0
370
+ * @param param0.sourceTile - source 3DTile data
371
+ * @param param0.parentNode - parent I3S node
372
+ * @param param0.childNodes - child I3S nodes
373
+ * @param param0.parentId - parent node ID
374
+ * @param param0.level - tree level
375
+ */
376
+ async convertNestedTileset({ sourceTile, parentNode, childNodes, parentId, level }) {
377
+ await this.sourceTileset._loadTile(sourceTile);
378
+ await this._addChildren({
379
+ parentNode,
380
+ sourceTiles: sourceTile.children,
381
+ childNodes,
382
+ parentId,
383
+ level: level + 1
384
+ });
385
+ await sourceTile.unloadContent();
386
+ }
387
+ /**
388
+ * Convert 3DTiles tile to I3S node
389
+ * @param param0
390
+ * @param param0.sourceTile - source 3DTile data
391
+ * @param param0.parentNode - parent I3S node
392
+ * @param param0.childNodes - child I3S nodes
393
+ * @param param0.parentId - parent node ID
394
+ * @param param0.level - tree level
395
+ */
396
+ async convertNode({ sourceTile, parentNode, childNodes, parentId, level }) {
397
+ const children = await this._createNode(parentNode, sourceTile, parentId, level);
398
+ parentNode.children = parentNode.children || [];
399
+ for (const child of children) {
400
+ parentNode.children.push({
401
+ id: child.id,
402
+ href: `../${child.path}`,
403
+ obb: child.obb,
404
+ mbs: child.mbs
405
+ });
406
+ childNodes.push(child);
407
+ }
408
+ }
359
409
  /**
360
410
  * Add child nodes recursively and write them to files
361
411
  * @param data - arguments
@@ -370,31 +420,15 @@ class I3SConverter {
370
420
  if (this.options.maxDepth && level > this.options.maxDepth) {
371
421
  return;
372
422
  }
423
+ const promises = [];
373
424
  for (const sourceTile of sourceTiles) {
374
425
  if (sourceTile.type === 'json') {
375
- await this.sourceTileset._loadTile(sourceTile);
376
- await this._addChildren({
377
- parentNode,
378
- sourceTiles: sourceTile.children,
379
- childNodes,
380
- parentId,
381
- level: level + 1
382
- });
383
- await sourceTile.unloadContent();
426
+ promises.push(this.convertNestedTileset({ sourceTile, parentNode, childNodes, parentId, level }));
384
427
  }
385
428
  else {
386
- const children = await this._createNode(parentNode, sourceTile, parentId, level);
387
- parentNode.children = parentNode.children || [];
388
- for (const child of children) {
389
- parentNode.children.push({
390
- id: child.id,
391
- href: `../${child.path}`,
392
- obb: child.obb,
393
- mbs: child.mbs
394
- });
395
- childNodes.push(child);
396
- }
429
+ promises.push(this.convertNode({ sourceTile, parentNode, childNodes, parentId, level }));
397
430
  }
431
+ await Promise.all(promises);
398
432
  if (sourceTile.id) {
399
433
  console.log(sourceTile.id); // eslint-disable-line
400
434
  }
@@ -445,11 +479,11 @@ class I3SConverter {
445
479
  await this._updateTilesetOptions();
446
480
  await this.sourceTileset._loadTile(sourceTile);
447
481
  let boundingVolumes = (0, coordinate_converter_1.createBoundingVolumes)(sourceTile, this.geoidHeightModel);
448
- const propertyTable = (0, geometry_converter_1.getPropertyTable)(sourceTile);
482
+ const propertyTable = (0, geometry_converter_1.getPropertyTable)(sourceTile.content);
449
483
  if (propertyTable && !this.layers0?.attributeStorageInfo?.length) {
450
484
  this._convertPropertyTableToNodeAttributes(propertyTable);
451
485
  }
452
- const resourcesData = await this._convertResources(sourceTile, propertyTable);
486
+ const resourcesData = await this._convertResources(sourceTile, parentId, propertyTable);
453
487
  const nodes = [];
454
488
  const nodesInPage = [];
455
489
  const emptyResources = {
@@ -470,7 +504,7 @@ class I3SConverter {
470
504
  }
471
505
  const lodSelection = (0, lod_conversion_utils_1.convertGeometricErrorToScreenThreshold)(sourceTile, boundingVolumes);
472
506
  const maxScreenThresholdSQ = lodSelection.find((val) => val.metricType === 'maxScreenThresholdSQ') || { maxError: 0 };
473
- const nodeInPage = this._createNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources);
507
+ const nodeInPage = this._updateNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources);
474
508
  const node = this._createNodeIndexDocument(parentTile, boundingVolumes, lodSelection, nodeInPage, resources);
475
509
  if (nodeInPage.mesh) {
476
510
  await this._writeResources(resources, node.path);
@@ -496,6 +530,8 @@ class I3SConverter {
496
530
  /**
497
531
  * Convert tile to one or more I3S nodes
498
532
  * @param sourceTile - source tile (3DTile)
533
+ * @param parentId - id of parent node in node pages
534
+ * @param propertyTable - batch table from b3dm / feature properties from EXT_FEATURE_METADATA
499
535
  * result.geometry - ArrayBuffer with geometry attributes
500
536
  * result.compressedGeometry - ArrayBuffer with compressed (draco) geometry
501
537
  * result.texture - texture image
@@ -505,15 +541,20 @@ class I3SConverter {
505
541
  * result.attributes - feature attributes
506
542
  * result.featureCount - number of features
507
543
  */
508
- async _convertResources(sourceTile, propertyTable) {
544
+ async _convertResources(sourceTile, parentId, propertyTable) {
509
545
  if (!this.isContentSupported(sourceTile)) {
510
546
  return null;
511
547
  }
512
- const resourcesData = await (0, geometry_converter_1.default)(sourceTile.content, Number(this.nodePages.nodesCounter), propertyTable, this.featuresHashArray, this.layers0?.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.geoidHeightModel, this.workerSource);
548
+ const draftObb = {
549
+ center: [],
550
+ halfSize: [],
551
+ quaternion: []
552
+ };
553
+ const resourcesData = await (0, geometry_converter_1.default)(sourceTile.content, () => this.nodePages.push({ index: 0, obb: draftObb }, parentId), propertyTable, this.featuresHashArray, this.layers0?.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.geoidHeightModel, this.workerSource);
513
554
  return resourcesData;
514
555
  }
515
556
  /**
516
- * Create a new node object (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md)
557
+ * Update node object (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md)
517
558
  * in node pages (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodePage.cmn.md)
518
559
  * @param maxScreenThresholdSQ - Level of Details (LOD) metric
519
560
  * @param boundingVolumes - Bounding volumes
@@ -526,7 +567,7 @@ class I3SConverter {
526
567
  * @param resources.featureCount - number of features
527
568
  * @return the node object in node pages
528
569
  */
529
- _createNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources) {
570
+ _updateNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources) {
530
571
  const { meshMaterial, texture, vertexCount, featureCount, geometry } = resources;
531
572
  const nodeInPage = {
532
573
  index: 0,
@@ -548,7 +589,15 @@ class I3SConverter {
548
589
  }
549
590
  };
550
591
  }
551
- const nodeId = this.nodePages.push(nodeInPage, parentId);
592
+ let nodeId = resources.nodeId;
593
+ if (nodeId) {
594
+ this.nodePages.updateAll(nodeId, nodeInPage);
595
+ const node = this.nodePages.getNodeById(nodeId);
596
+ this.nodePages.updateResourceInMesh(node);
597
+ }
598
+ else {
599
+ nodeId = this.nodePages.push(nodeInPage, parentId);
600
+ }
552
601
  if (meshMaterial) {
553
602
  this.nodePages.updateMaterialByNodeId(nodeId, this._findOrCreateMaterial(meshMaterial));
554
603
  }
@@ -564,7 +613,7 @@ class I3SConverter {
564
613
  if (featureCount) {
565
614
  this.nodePages.updateFeatureCountByNodeId(nodeId, featureCount);
566
615
  }
567
- return nodeInPage;
616
+ return this.nodePages.getNodeById(nodeId);
568
617
  }
569
618
  /**
570
619
  * Create a new node page object in node pages
@@ -822,104 +871,6 @@ class I3SConverter {
822
871
  this.materialMap.set(hash, newMaterialId);
823
872
  return newMaterialId;
824
873
  }
825
- /**
826
- * Generate storage attribute for map segmentation.
827
- * @param attributeIndex - order index of attribute (f_0, f_1 ...).
828
- * @param key - attribute key from propertyTable.
829
- * @param attributeType - attribute type.
830
- * @return Updated storageAttribute.
831
- */
832
- _createdStorageAttribute(attributeIndex, key, attributeType) {
833
- const storageAttribute = {
834
- key: `f_${attributeIndex}`,
835
- name: key,
836
- ordering: ['attributeValues'],
837
- header: [{ property: 'count', valueType: 'UInt32' }],
838
- attributeValues: { valueType: 'Int32', valuesPerElement: 1 }
839
- };
840
- switch (attributeType) {
841
- case OBJECT_ID_TYPE:
842
- this._setupIdAttribute(storageAttribute);
843
- break;
844
- case STRING_TYPE:
845
- this._setupStringAttribute(storageAttribute);
846
- break;
847
- case DOUBLE_TYPE:
848
- this._setupDoubleAttribute(storageAttribute);
849
- break;
850
- case SHORT_INT_TYPE:
851
- break;
852
- default:
853
- this._setupStringAttribute(storageAttribute);
854
- }
855
- return storageAttribute;
856
- }
857
- /**
858
- * Get the attribute type for attributeStorageInfo https://github.com/Esri/i3s-spec/blob/master/docs/1.7/attributeStorageInfo.cmn.md
859
- * @param key - attribute's key
860
- * @param attribute - attribute's type in propertyTable
861
- */
862
- getAttributeType(key, attribute) {
863
- if (key === OBJECT_ID_TYPE) {
864
- return OBJECT_ID_TYPE;
865
- }
866
- if (typeof attribute === STRING_TYPE) {
867
- return STRING_TYPE;
868
- }
869
- else if (typeof attribute === 'number') {
870
- return Number.isInteger(attribute) ? SHORT_INT_TYPE : DOUBLE_TYPE;
871
- }
872
- return STRING_TYPE;
873
- }
874
- /**
875
- * Setup storage attribute as string.
876
- * @param storageAttribute - attribute for map segmentation.
877
- */
878
- _setupStringAttribute(storageAttribute) {
879
- storageAttribute.ordering.unshift('attributeByteCounts');
880
- storageAttribute.header.push({ property: 'attributeValuesByteCount', valueType: 'UInt32' });
881
- storageAttribute.attributeValues = {
882
- valueType: 'String',
883
- encoding: 'UTF-8',
884
- valuesPerElement: 1
885
- };
886
- storageAttribute.attributeByteCounts = {
887
- valueType: 'UInt32',
888
- valuesPerElement: 1
889
- };
890
- }
891
- /**
892
- * Setup Id attribute for map segmentation.
893
- * @param storageAttribute - attribute for map segmentation .
894
- */
895
- _setupIdAttribute(storageAttribute) {
896
- storageAttribute.attributeValues = {
897
- valueType: 'Oid32',
898
- valuesPerElement: 1
899
- };
900
- }
901
- /**
902
- * Setup double attribute for map segmentation.
903
- * @param storageAttribute - attribute for map segmentation .
904
- */
905
- _setupDoubleAttribute(storageAttribute) {
906
- storageAttribute.attributeValues = {
907
- valueType: 'Float64',
908
- valuesPerElement: 1
909
- };
910
- }
911
- /**
912
- * Setup field attribute for map segmentation.
913
- * @param key - attribute for map segmentation.
914
- * @param fieldAttributeType - esri attribute type ('esriFieldTypeString' or 'esriFieldTypeOID').
915
- */
916
- _createFieldAttribute(key, fieldAttributeType) {
917
- return {
918
- name: key,
919
- type: fieldAttributeType,
920
- alias: key
921
- };
922
- }
923
874
  /**
924
875
  * Do conversion of 3DTiles property table to I3s node attributes.
925
876
  * @param propertyTable - Table with layer meta data.
@@ -932,11 +883,11 @@ class I3SConverter {
932
883
  };
933
884
  for (const key in propertyTableWithObjectId) {
934
885
  const firstAttribute = propertyTableWithObjectId[key][0];
935
- const attributeType = this.getAttributeType(key, firstAttribute);
936
- const storageAttribute = this._createdStorageAttribute(attributeIndex, key, attributeType);
937
- const fieldAttributeType = this._getFieldAttributeType(attributeType);
938
- const fieldAttribute = this._createFieldAttribute(key, fieldAttributeType);
939
- const popupInfo = this._createPopupInfo(propertyTableWithObjectId);
886
+ const attributeType = (0, feature_attributes_1.getAttributeType)(key, firstAttribute);
887
+ const storageAttribute = (0, feature_attributes_1.createdStorageAttribute)(attributeIndex, key, attributeType);
888
+ const fieldAttributeType = (0, feature_attributes_1.getFieldAttributeType)(attributeType);
889
+ const fieldAttribute = (0, feature_attributes_1.createFieldAttribute)(key, fieldAttributeType);
890
+ const popupInfo = (0, feature_attributes_1.createPopupInfo)(propertyTableWithObjectId);
940
891
  this.layers0.attributeStorageInfo.push(storageAttribute);
941
892
  this.layers0.fields.push(fieldAttribute);
942
893
  this.layers0.popupInfo = popupInfo;
@@ -944,55 +895,6 @@ class I3SConverter {
944
895
  attributeIndex += 1;
945
896
  }
946
897
  }
947
- /**
948
- * Find and return attribute type based on key form propertyTable.
949
- * @param attributeType
950
- */
951
- _getFieldAttributeType(attributeType) {
952
- switch (attributeType) {
953
- case OBJECT_ID_TYPE:
954
- return 'esriFieldTypeOID';
955
- case STRING_TYPE:
956
- return 'esriFieldTypeString';
957
- case SHORT_INT_TYPE:
958
- return 'esriFieldTypeInteger';
959
- case DOUBLE_TYPE:
960
- return 'esriFieldTypeDouble';
961
- default:
962
- return 'esriFieldTypeString';
963
- }
964
- }
965
- /**
966
- * Generate popup info to show metadata on the map.
967
- * @param propertyTable - table data with OBJECTID.
968
- * @return data for correct rendering of popup.
969
- */
970
- _createPopupInfo(propertyTable) {
971
- const title = '{OBJECTID}';
972
- const mediaInfos = [];
973
- const fieldInfos = [];
974
- const popupElements = [];
975
- const expressionInfos = [];
976
- for (const key in propertyTable) {
977
- fieldInfos.push({
978
- fieldName: key,
979
- visible: true,
980
- isEditable: false,
981
- label: key
982
- });
983
- }
984
- popupElements.push({
985
- fieldInfos,
986
- type: 'fields'
987
- });
988
- return {
989
- title,
990
- mediaInfos,
991
- popupElements,
992
- fieldInfos,
993
- expressionInfos
994
- };
995
- }
996
898
  /**
997
899
  * Print statistics in the end of conversion
998
900
  * @param params - output files data
@@ -2,6 +2,10 @@ import { BoundingVolumes, I3SMaterialDefinition, MaterialDefinitionInfo, Texture
2
2
  import { ImageDataType } from '@loaders.gl/images';
3
3
  /** Converted resources for specific node */
4
4
  export declare type I3SConvertedResources = {
5
+ /**
6
+ * Node id
7
+ */
8
+ nodeId?: number;
5
9
  /** Non-compressed geometry buffer that have structure met
6
10
  * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md
7
11
  * (Geometry buffer)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD,4CAA4C;AAC5C,oBAAY,qBAAqB,GAAG;IAClC;;;OAGG;IACH,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACjD;;OAEG;IACH,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACpB;;OAEG;IACH,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C;;OAEG;IACH,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,oBAAY,mBAAmB,GAAG;IAChC,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,iDAAiD;IACjD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;OAEG;IACH,eAAe,EAAE,IAAI,GAAG,eAAe,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,oBAAY,kBAAkB,GAAG;IAC/B,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,kCAAkC;IAClC,SAAS,EAAE,WAAW,CAAC;IACvB,kCAAkC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,8DAA8D;AAC9D,oBAAY,4BAA4B,GAAG;IACzC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,+CAA+C;AAC/C,oBAAY,qBAAqB,GAAG;IAClC,oHAAoH;IACpH,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnD,kHAAkH;IAClH,sBAAsB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACjD,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,2EAA2E;AAC3E,oBAAY,sBAAsB,GAAG;IACnC,2GAA2G;IAC3G,QAAQ,EAAE,qBAAqB,CAAC;IAChC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD,4CAA4C;AAC5C,oBAAY,qBAAqB,GAAG;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACjD;;OAEG;IACH,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACpB;;OAEG;IACH,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C;;OAEG;IACH,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,oBAAY,mBAAmB,GAAG;IAChC,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,iDAAiD;IACjD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;OAEG;IACH,eAAe,EAAE,IAAI,GAAG,eAAe,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,oBAAY,kBAAkB,GAAG;IAC/B,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,kCAAkC;IAClC,SAAS,EAAE,WAAW,CAAC;IACvB,kCAAkC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,8DAA8D;AAC9D,oBAAY,4BAA4B,GAAG;IACzC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,+CAA+C;AAC/C,oBAAY,qBAAqB,GAAG;IAClC,oHAAoH;IACpH,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnD,kHAAkH;IAClH,sBAAsB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACjD,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,2EAA2E;AAC3E,oBAAY,sBAAsB,GAAG;IACnC,2GAA2G;IAC3G,QAAQ,EAAE,qBAAqB,CAAC;IAChC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/tile-converter",
3
- "version": "3.3.0-alpha.3",
3
+ "version": "3.3.0-alpha.4",
4
4
  "description": "Converter",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -43,19 +43,19 @@
43
43
  "build-3d-tiles-attributes-worker": "esbuild src/workers/3d-tiles-attributes-worker.ts --outfile=dist/3d-tiles-attributes-worker.js --platform=node --target=esnext,node12 --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\""
44
44
  },
45
45
  "dependencies": {
46
- "@loaders.gl/3d-tiles": "3.3.0-alpha.3",
47
- "@loaders.gl/crypto": "3.3.0-alpha.3",
48
- "@loaders.gl/draco": "3.3.0-alpha.3",
49
- "@loaders.gl/gltf": "3.3.0-alpha.3",
50
- "@loaders.gl/i3s": "3.3.0-alpha.3",
51
- "@loaders.gl/images": "3.3.0-alpha.3",
52
- "@loaders.gl/loader-utils": "3.3.0-alpha.3",
53
- "@loaders.gl/polyfills": "3.3.0-alpha.3",
54
- "@loaders.gl/schema": "3.3.0-alpha.3",
55
- "@loaders.gl/textures": "3.3.0-alpha.3",
56
- "@loaders.gl/tiles": "3.3.0-alpha.3",
57
- "@loaders.gl/worker-utils": "3.3.0-alpha.3",
58
- "@loaders.gl/zip": "3.3.0-alpha.3",
46
+ "@loaders.gl/3d-tiles": "3.3.0-alpha.4",
47
+ "@loaders.gl/crypto": "3.3.0-alpha.4",
48
+ "@loaders.gl/draco": "3.3.0-alpha.4",
49
+ "@loaders.gl/gltf": "3.3.0-alpha.4",
50
+ "@loaders.gl/i3s": "3.3.0-alpha.4",
51
+ "@loaders.gl/images": "3.3.0-alpha.4",
52
+ "@loaders.gl/loader-utils": "3.3.0-alpha.4",
53
+ "@loaders.gl/polyfills": "3.3.0-alpha.4",
54
+ "@loaders.gl/schema": "3.3.0-alpha.4",
55
+ "@loaders.gl/textures": "3.3.0-alpha.4",
56
+ "@loaders.gl/tiles": "3.3.0-alpha.4",
57
+ "@loaders.gl/worker-utils": "3.3.0-alpha.4",
58
+ "@loaders.gl/zip": "3.3.0-alpha.4",
59
59
  "@luma.gl/engine": "^8.5.4",
60
60
  "@math.gl/core": "^3.5.1",
61
61
  "@math.gl/culling": "^3.5.1",
@@ -75,5 +75,5 @@
75
75
  "peerDependencies": {
76
76
  "@loaders.gl/core": "^3.2.0"
77
77
  },
78
- "gitHead": "232fdc52fcbee10d8322fd8a4589680943f10517"
78
+ "gitHead": "d1c524fd3cb9296ecd1bf7d185765c4f6aaef6a1"
79
79
  }