@loaders.gl/tiles 5.0.0-alpha.6 → 5.0.0-alpha.8

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 (114) hide show
  1. package/README.md +26 -0
  2. package/dist/dist.dev.js +10015 -8172
  3. package/dist/dist.min.js +3 -4
  4. package/dist/index.cjs +1676 -477
  5. package/dist/index.cjs.map +3 -3
  6. package/dist/index.d.ts +10 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +4 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/spatial/format-spatial-reference.d.ts +1 -0
  11. package/dist/spatial/format-spatial-reference.d.ts.map +1 -1
  12. package/dist/spatial/format-spatial-reference.js +104 -46
  13. package/dist/spatial/format-spatial-reference.js.map +1 -1
  14. package/dist/spatial/get-spatial-coordinate-frame.d.ts +12 -1
  15. package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +1 -1
  16. package/dist/spatial/get-spatial-coordinate-frame.js +105 -24
  17. package/dist/spatial/get-spatial-coordinate-frame.js.map +1 -1
  18. package/dist/spatial/normalize-crs-identifier.d.ts +15 -0
  19. package/dist/spatial/normalize-crs-identifier.d.ts.map +1 -0
  20. package/dist/spatial/normalize-crs-identifier.js +22 -0
  21. package/dist/spatial/normalize-crs-identifier.js.map +1 -0
  22. package/dist/spatial/spatial-coordinate-transformer.d.ts +4 -0
  23. package/dist/spatial/spatial-coordinate-transformer.d.ts.map +1 -1
  24. package/dist/spatial/spatial-coordinate-transformer.js +102 -18
  25. package/dist/spatial/spatial-coordinate-transformer.js.map +1 -1
  26. package/dist/spatial/spatial-resource-registry.js +3 -3
  27. package/dist/spatial/spatial-resource-registry.js.map +1 -1
  28. package/dist/spatial/tiles-3d-spatial-transformer.d.ts +32 -0
  29. package/dist/spatial/tiles-3d-spatial-transformer.d.ts.map +1 -0
  30. package/dist/spatial/tiles-3d-spatial-transformer.js +175 -0
  31. package/dist/spatial/tiles-3d-spatial-transformer.js.map +1 -0
  32. package/dist/tileset-3d/common/tile-3d-contracts.d.ts +63 -0
  33. package/dist/tileset-3d/common/tile-3d-contracts.d.ts.map +1 -0
  34. package/dist/tileset-3d/common/tile-3d-contracts.js +51 -0
  35. package/dist/tileset-3d/common/tile-3d-contracts.js.map +1 -0
  36. package/dist/tileset-3d/common/tile-3d.d.ts +33 -5
  37. package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -1
  38. package/dist/tileset-3d/common/tile-3d.js +179 -29
  39. package/dist/tileset-3d/common/tile-3d.js.map +1 -1
  40. package/dist/tileset-3d/common/tileset-3d.d.ts +15 -25
  41. package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -1
  42. package/dist/tileset-3d/common/tileset-3d.js +35 -42
  43. package/dist/tileset-3d/common/tileset-3d.js.map +1 -1
  44. package/dist/tileset-3d/common/tileset-content-traversal.d.ts +37 -0
  45. package/dist/tileset-3d/common/tileset-content-traversal.d.ts.map +1 -0
  46. package/dist/tileset-3d/common/tileset-content-traversal.js +80 -0
  47. package/dist/tileset-3d/common/tileset-content-traversal.js.map +1 -0
  48. package/dist/tileset-3d/common/tileset-observability.d.ts +60 -0
  49. package/dist/tileset-3d/common/tileset-observability.d.ts.map +1 -0
  50. package/dist/tileset-3d/common/tileset-observability.js +39 -0
  51. package/dist/tileset-3d/common/tileset-observability.js.map +1 -0
  52. package/dist/tileset-3d/common/tileset-source.d.ts +11 -1
  53. package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -1
  54. package/dist/tileset-3d/common/tileset-source.js.map +1 -1
  55. package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -1
  56. package/dist/tileset-3d/common/tileset-traverser.js +4 -3
  57. package/dist/tileset-3d/common/tileset-traverser.js.map +1 -1
  58. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +47 -1
  59. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -1
  60. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +327 -30
  61. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -1
  62. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +34 -0
  63. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -1
  64. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +278 -14
  65. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -1
  66. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +5 -3
  67. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -1
  68. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +7 -4
  69. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -1
  70. package/dist/tileset-3d/format-i3s/i3s-source.d.ts +4 -2
  71. package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +1 -1
  72. package/dist/tileset-3d/format-i3s/i3s-source.js +60 -9
  73. package/dist/tileset-3d/format-i3s/i3s-source.js.map +1 -1
  74. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts.map +1 -1
  75. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js +1 -1
  76. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js.map +1 -1
  77. package/dist/tileset-3d/helpers/bounding-volume.d.ts +7 -3
  78. package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -1
  79. package/dist/tileset-3d/helpers/bounding-volume.js +19 -61
  80. package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -1
  81. package/dist/tileset-3d/helpers/frame-state.d.ts +5 -0
  82. package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -1
  83. package/dist/tileset-3d/helpers/frame-state.js +11 -5
  84. package/dist/tileset-3d/helpers/frame-state.js.map +1 -1
  85. package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts +17 -0
  86. package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts.map +1 -0
  87. package/dist/tileset-3d/helpers/s2-bounding-volume.js +20 -0
  88. package/dist/tileset-3d/helpers/s2-bounding-volume.js.map +1 -0
  89. package/dist/types.d.ts +2 -0
  90. package/dist/types.d.ts.map +1 -1
  91. package/package.json +11 -12
  92. package/src/index.ts +18 -1
  93. package/src/spatial/format-spatial-reference.ts +127 -53
  94. package/src/spatial/get-spatial-coordinate-frame.ts +126 -31
  95. package/src/spatial/normalize-crs-identifier.ts +26 -0
  96. package/src/spatial/spatial-coordinate-transformer.ts +124 -24
  97. package/src/spatial/spatial-resource-registry.ts +3 -3
  98. package/src/spatial/tiles-3d-spatial-transformer.ts +206 -0
  99. package/src/tileset-3d/common/tile-3d-contracts.ts +115 -0
  100. package/src/tileset-3d/common/tile-3d.ts +208 -32
  101. package/src/tileset-3d/common/tileset-3d.ts +37 -61
  102. package/src/tileset-3d/common/tileset-content-traversal.ts +114 -0
  103. package/src/tileset-3d/common/tileset-observability.ts +100 -0
  104. package/src/tileset-3d/common/tileset-source.ts +19 -1
  105. package/src/tileset-3d/common/tileset-traverser.ts +4 -3
  106. package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +481 -34
  107. package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +405 -14
  108. package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +7 -4
  109. package/src/tileset-3d/format-i3s/i3s-source.ts +84 -13
  110. package/src/tileset-3d/format-i3s/i3s-tileset-traverser.ts +2 -1
  111. package/src/tileset-3d/helpers/bounding-volume.ts +29 -62
  112. package/src/tileset-3d/helpers/frame-state.ts +15 -7
  113. package/src/tileset-3d/helpers/s2-bounding-volume.ts +35 -0
  114. package/src/types.ts +2 -0
@@ -1,6 +1,7 @@
1
1
  import { Matrix4 } from '@math.gl/core';
2
2
  import { CullingVolume } from '@math.gl/culling';
3
3
  import type { CullingResult } from '@math.gl/culling';
4
+ import type { Tile3DContent, Tile3DFeatureIdSet, Tile3DMetadataContext } from "./tile-3d-contracts.js";
4
5
  import type { Tileset3D } from "./tileset-3d.js";
5
6
  import type { DoublyLinkedListNode } from "../../utils/doubly-linked-list-node.js";
6
7
  import { TILE_REFINEMENT } from "../../constants.js";
@@ -67,6 +68,8 @@ export declare class Tile3D {
67
68
  * separate ensures transform updates never compound an already-scaled geometric error.
68
69
  */
69
70
  private _unscaledLodMetricValue;
71
+ /** Whether the source format defines geometric error in transform-local units. */
72
+ private _scaleGeometricError;
70
73
  /** @todo math.gl is not exporting BoundingVolume base type? */
71
74
  boundingVolume: any;
72
75
  /**
@@ -76,6 +79,14 @@ export declare class Tile3D {
76
79
  content: any;
77
80
  /** Loaded payloads in the same order as {@link contentUrls}; `content` remains the primary payload. */
78
81
  contents: any[];
82
+ /** Ordered renderer-neutral descriptors for each source content entry. */
83
+ contentEntries: Tile3DContent[];
84
+ /** Raw metadata references inherited by this tile and its content. */
85
+ metadataContext: Tile3DMetadataContext;
86
+ /** Feature-id declarations normalized from supported content extensions. */
87
+ featureIdSets: Tile3DFeatureIdSet[];
88
+ /** Decoded 3D Tiles vector topology for the primary loaded content, when present. */
89
+ vectorContent: unknown;
79
90
  /**
80
91
  * Metadata entity attached to this tile in the source tileset, if present.
81
92
  *
@@ -135,6 +146,7 @@ export declare class Tile3D {
135
146
  get contentBoundingVolumes(): any[];
136
147
  /** Bounding volume that limits when this tile may be requested, when declared. */
137
148
  get viewerRequestVolume(): any;
149
+ /** Accumulated tile transforms from the source JSON, excluding the tileset model matrix. */
138
150
  _initialTransform: Matrix4;
139
151
  _priority: number;
140
152
  _selectedFrame: number;
@@ -211,7 +223,7 @@ export declare class Tile3D {
211
223
  */
212
224
  get screenSpaceError(): number;
213
225
  /**
214
- * Get bounding box in cartographic coordinates
226
+ * Get the current world-space bounding volume in cartographic coordinates.
215
227
  * @returns [min, max] each in [longitude, latitude, altitude]
216
228
  */
217
229
  get boundingBox(): CartographicBounds;
@@ -264,6 +276,10 @@ export declare class Tile3D {
264
276
  * The request may not be made if the Request Scheduler can't prioritize it.
265
277
  */
266
278
  loadContent(): Promise<TileContentLoadResult>;
279
+ /** Loads content for complete dataset operations without viewport-based request priority. */
280
+ loadContentForTraversal(): Promise<TileContentLoadResult>;
281
+ /** Loads source content and updates the tile's renderer-neutral payload state. */
282
+ private _loadContentFromSource;
267
283
  /**
268
284
  * Requests and installs this tile's lazy child-header group through its source.
269
285
  *
@@ -285,13 +301,25 @@ export declare class Tile3D {
285
301
  /**
286
302
  * Replaces a contentless implicit placeholder with its materialized subtree-root header.
287
303
  *
288
- * Transform state is intentionally preserved: the placeholder already owns the composed
289
- * transform, and reapplying the root transform here would double-transform bounds and geometric
290
- * error. Content and raw geometric error are reinitialized from the newly available header.
304
+ * The placeholder transform is preserved when the subtree omits a root transform. An explicit
305
+ * subtree-root transform replaces it and is recomposed against the runtime parent. Content,
306
+ * metadata, bounds, and raw geometric error are reinitialized from the available header.
291
307
  *
292
308
  * @param materializedHeader - Available root header produced from one subtree resource.
293
309
  */
294
310
  applyImplicitSubtreeHeader(materializedHeader: Record<string, any>): void;
311
+ /** Refreshes tile and content metadata from a source or materialized tile header. */
312
+ private _initializeMetadata;
313
+ /** Updates payload and renderability while retaining immutable metadata descriptors. */
314
+ private _updateContentEntriesAfterLoad;
315
+ /** Returns one ordered content descriptor, or null when the index is out of range. */
316
+ getContentEntry(index: number): Tile3DContent | null;
317
+ /** Returns whether an ordered content entry currently has renderable payload. */
318
+ isContentRenderable(index: number): boolean;
319
+ /** Initializes additive renderer-neutral descriptors from a normalized tile header. */
320
+ private _initializeContentEntries;
321
+ /** Extracts renderer-neutral feature-id declarations without decoding property values. */
322
+ private _getFeatureIdSets;
295
323
  unloadContent(): boolean;
296
324
  /**
297
325
  * Update the tile's visibility
@@ -319,7 +347,7 @@ export declare class Tile3D {
319
347
  * @param frameState Current camera, culling, and optional clipping-plane state.
320
348
  * @returns The content visibility classification.
321
349
  */
322
- contentVisibility(frameState: FrameState): CullingResult;
350
+ contentVisibility(frameState: FrameState, contentIndex?: number): CullingResult;
323
351
  /**
324
352
  * Computes the (potentially approximate) distance from the closest point of the tile's bounding volume to the camera.
325
353
  * @param frameState The frame state.
@@ -1 +1 @@
1
- {"version":3,"file":"tile-3d.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/common/tile-3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile-3d.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/common/tile-3d.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  // See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
6
6
  import { Vector3, Matrix4 } from '@math.gl/core';
7
7
  import { CullingVolume } from '@math.gl/culling';
8
+ import { getTile3DFeatureIdSets } from "./tile-3d-contracts.js";
8
9
  import { LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_CONTENT_STATE, TILESET_TYPE } from "../../constants.js";
9
10
  import { createBoundingVolume, getCartographicBounds } from "../helpers/bounding-volume.js";
10
11
  import { getTiles3DScreenSpaceError } from "../helpers/tiles-3d-lod.js";
@@ -56,6 +57,13 @@ export function getContentVisibility(contentVolumes, fallbackVolume, cullingVolu
56
57
  }
57
58
  return intersectingVolume ? 'intersecting' : 'inside';
58
59
  }
60
+ function isNestedTilesetPayload(payload) {
61
+ if (!payload || typeof payload !== 'object') {
62
+ return false;
63
+ }
64
+ const record = payload;
65
+ return record.shape === 'tileset3d' || record.type === 'tileset3d' || Boolean(record.tileset);
66
+ }
59
67
  function defined(x) {
60
68
  return x !== undefined && x !== null;
61
69
  }
@@ -88,6 +96,8 @@ export class Tile3D {
88
96
  * separate ensures transform updates never compound an already-scaled geometric error.
89
97
  */
90
98
  _unscaledLodMetricValue = 0;
99
+ /** Whether the source format defines geometric error in transform-local units. */
100
+ _scaleGeometricError = true;
91
101
  /** @todo math.gl is not exporting BoundingVolume base type? */
92
102
  boundingVolume = null;
93
103
  /**
@@ -97,6 +107,14 @@ export class Tile3D {
97
107
  content = null;
98
108
  /** Loaded payloads in the same order as {@link contentUrls}; `content` remains the primary payload. */
99
109
  contents = [];
110
+ /** Ordered renderer-neutral descriptors for each source content entry. */
111
+ contentEntries = [];
112
+ /** Raw metadata references inherited by this tile and its content. */
113
+ metadataContext = {};
114
+ /** Feature-id declarations normalized from supported content extensions. */
115
+ featureIdSets = [];
116
+ /** Decoded 3D Tiles vector topology for the primary loaded content, when present. */
117
+ vectorContent = null;
100
118
  /**
101
119
  * Metadata entity attached to this tile in the source tileset, if present.
102
120
  *
@@ -163,6 +181,7 @@ export class Tile3D {
163
181
  get viewerRequestVolume() {
164
182
  return this._viewerRequestVolume;
165
183
  }
184
+ /** Accumulated tile transforms from the source JSON, excluding the tileset model matrix. */
166
185
  _initialTransform = new Matrix4();
167
186
  // Used by traverser, cannot be marked private
168
187
  _priority = 0;
@@ -208,17 +227,14 @@ export class Tile3D {
208
227
  this.type = header.type;
209
228
  this.contentUrl = header.contentUrl;
210
229
  this.contentUrls = header.contentUrls || (header.contentUrl ? [header.contentUrl] : []);
211
- this.metadata = header.metadata || null;
212
- const contentHeaders = Array.isArray(header.content) ? header.content : [header.content];
213
- this.contentMetadata = contentHeaders
214
- .filter(Boolean)
215
- .map(contentHeader => contentHeader.metadata || null);
230
+ this._initializeMetadata(header);
216
231
  this.childrenState = header.implicitSubtree ? 'unloaded' : 'ready';
217
232
  this._initializeLodMetric(header);
218
233
  this._initializeTransforms(header);
219
234
  this._updateLodMetricScale();
220
235
  this._initializeBoundingVolumes(header);
221
236
  this._initializeContent(header);
237
+ this._initializeContentEntries(header);
222
238
  this._initializeRenderingState(header);
223
239
  Object.seal(this);
224
240
  }
@@ -306,12 +322,12 @@ export class Tile3D {
306
322
  return this._screenSpaceError;
307
323
  }
308
324
  /**
309
- * Get bounding box in cartographic coordinates
325
+ * Get the current world-space bounding volume in cartographic coordinates.
310
326
  * @returns [min, max] each in [longitude, latitude, altitude]
311
327
  */
312
328
  get boundingBox() {
313
329
  if (!this._boundingBox) {
314
- this._boundingBox = getCartographicBounds(this.header.boundingVolume, this.boundingVolume);
330
+ this._boundingBox = getCartographicBounds(this.header.boundingVolume, this.boundingVolume, !this.computedTransform.equals(this._initialTransform));
315
331
  }
316
332
  return this._boundingBox;
317
333
  }
@@ -446,17 +462,7 @@ export class Tile3D {
446
462
  return { loaded: false };
447
463
  }
448
464
  try {
449
- const loadResult = await this.tileset.source.loadTileContent(this);
450
- if (loadResult.contents) {
451
- this.contents = loadResult.contents;
452
- this.content = this.contents[0] || null;
453
- }
454
- if (this.tileset.options.contentLoader) {
455
- await this.tileset.options.contentLoader(this);
456
- }
457
- this.contentState = TILE_CONTENT_STATE.READY;
458
- this._onContentLoaded();
459
- return loadResult;
465
+ return await this._loadContentFromSource();
460
466
  }
461
467
  catch (error) {
462
468
  // Tile is unloaded before the content finishes loading
@@ -467,6 +473,40 @@ export class Tile3D {
467
473
  requestToken.done();
468
474
  }
469
475
  }
476
+ /** Loads content for complete dataset operations without viewport-based request priority. */
477
+ async loadContentForTraversal() {
478
+ if (this.hasEmptyContent) {
479
+ return { loaded: false };
480
+ }
481
+ if (this.content) {
482
+ return { loaded: true, contents: this.contents };
483
+ }
484
+ this.contentState = TILE_CONTENT_STATE.LOADING;
485
+ try {
486
+ return await this._loadContentFromSource();
487
+ }
488
+ catch (error) {
489
+ this.contentState = TILE_CONTENT_STATE.FAILED;
490
+ throw error;
491
+ }
492
+ }
493
+ /** Loads source content and updates the tile's renderer-neutral payload state. */
494
+ async _loadContentFromSource() {
495
+ const loadResult = await this.tileset.source.loadTileContent(this);
496
+ if (loadResult.contents) {
497
+ this.contents = loadResult.contents;
498
+ this.content = this.contents[0] || null;
499
+ }
500
+ this.vectorContent =
501
+ this.contents.find(content => Boolean(content?.vectorContent))?.vectorContent || null;
502
+ if (this.tileset.options.contentLoader) {
503
+ await this.tileset.options.contentLoader(this);
504
+ }
505
+ this.contentState = TILE_CONTENT_STATE.READY;
506
+ this._onContentLoaded();
507
+ this._updateContentEntriesAfterLoad(loadResult);
508
+ return loadResult;
509
+ }
470
510
  /**
471
511
  * Requests and installs this tile's lazy child-header group through its source.
472
512
  *
@@ -524,34 +564,127 @@ export class Tile3D {
524
564
  /**
525
565
  * Replaces a contentless implicit placeholder with its materialized subtree-root header.
526
566
  *
527
- * Transform state is intentionally preserved: the placeholder already owns the composed
528
- * transform, and reapplying the root transform here would double-transform bounds and geometric
529
- * error. Content and raw geometric error are reinitialized from the newly available header.
567
+ * The placeholder transform is preserved when the subtree omits a root transform. An explicit
568
+ * subtree-root transform replaces it and is recomposed against the runtime parent. Content,
569
+ * metadata, bounds, and raw geometric error are reinitialized from the available header.
530
570
  *
531
571
  * @param materializedHeader - Available root header produced from one subtree resource.
532
572
  */
533
573
  applyImplicitSubtreeHeader(materializedHeader) {
534
574
  const existingTransform = this.header.transform;
535
575
  const existingTransformMatrix = this.header.transformMatrix;
576
+ const hasMaterializedTransform = materializedHeader.transform !== undefined;
536
577
  this.header = {
537
578
  ...this.header,
538
579
  ...materializedHeader,
539
- transform: existingTransform,
540
- transformMatrix: existingTransformMatrix,
580
+ transform: hasMaterializedTransform ? materializedHeader.transform : existingTransform,
581
+ transformMatrix: hasMaterializedTransform
582
+ ? materializedHeader.transformMatrix
583
+ : existingTransformMatrix,
541
584
  implicitSubtree: undefined
542
585
  };
586
+ if (hasMaterializedTransform) {
587
+ this._initializeTransforms(this.header);
588
+ }
543
589
  this.refine = this._getRefine(materializedHeader.refine);
544
590
  this.type = materializedHeader.type;
545
591
  this.contentUrl = materializedHeader.contentUrl;
546
592
  this.contentUrls =
547
593
  materializedHeader.contentUrls ||
548
594
  (materializedHeader.contentUrl ? [materializedHeader.contentUrl] : []);
595
+ this._initializeMetadata(this.header);
549
596
  this._initializeLodMetric(materializedHeader);
550
597
  this._updateLodMetricScale();
551
598
  this._initializeBoundingVolumes(this.header);
599
+ this._boundingBox = undefined;
552
600
  // Use the merged header so inherited viewer-request-volume metadata remains available when a
553
601
  // materialized implicit tile has no render content of its own.
554
602
  this._initializeContent(this.header);
603
+ this._initializeContentEntries(this.header);
604
+ }
605
+ /** Refreshes tile and content metadata from a source or materialized tile header. */
606
+ _initializeMetadata(header) {
607
+ this.metadata = header.metadata || null;
608
+ const contentHeaders = Array.isArray(header.content) ? header.content : [header.content];
609
+ this.contentMetadata = contentHeaders
610
+ .filter(Boolean)
611
+ .map(contentHeader => contentHeader.metadata || null);
612
+ const firstContentHeader = contentHeaders.find(Boolean) || {};
613
+ const groupReference = firstContentHeader.group;
614
+ const group = typeof groupReference === 'number'
615
+ ? this.tileset.groups?.[groupReference] || null
616
+ : groupReference || null;
617
+ const metadataContext = {
618
+ tileset: this.tileset.metadata || null,
619
+ group,
620
+ tile: this.metadata,
621
+ content: this.contentMetadata[0] || null,
622
+ subtree: header.implicitMetadata || null
623
+ };
624
+ if (this.tileset.groups) {
625
+ metadataContext.groups = this.tileset.groups;
626
+ }
627
+ this.metadataContext = metadataContext;
628
+ }
629
+ /** Updates payload and renderability while retaining immutable metadata descriptors. */
630
+ _updateContentEntriesAfterLoad(loadResult) {
631
+ if (loadResult.contentEntries) {
632
+ this.contentEntries = loadResult.contentEntries.map((entry, index) => ({
633
+ ...entry,
634
+ index,
635
+ boundingVolume: entry.boundingVolume || this._contentBoundingVolumes[index] || this.boundingVolume,
636
+ payload: entry.payload ?? this.contents[index] ?? null,
637
+ featureIds: entry.featureIds?.length
638
+ ? entry.featureIds
639
+ : getTile3DFeatureIdSets(entry.payload ?? this.contents[index]),
640
+ renderable: Boolean(entry.renderable !== false &&
641
+ (entry.payload ?? this.contents[index]) &&
642
+ !isNestedTilesetPayload(entry.payload ?? this.contents[index]))
643
+ }));
644
+ this.featureIdSets = this.contentEntries.flatMap(entry => entry.featureIds);
645
+ return;
646
+ }
647
+ this.contentEntries = this.contentEntries.map((entry, index) => ({
648
+ ...entry,
649
+ payload: this.contents[index] ?? null,
650
+ featureIds: getTile3DFeatureIdSets(this.contents[index]),
651
+ renderable: Boolean(this.contents[index]) && !isNestedTilesetPayload(this.contents[index])
652
+ }));
653
+ this.featureIdSets = this.contentEntries.flatMap(entry => entry.featureIds);
654
+ }
655
+ /** Returns one ordered content descriptor, or null when the index is out of range. */
656
+ getContentEntry(index) {
657
+ return this.contentEntries[index] || null;
658
+ }
659
+ /** Returns whether an ordered content entry currently has renderable payload. */
660
+ isContentRenderable(index) {
661
+ return Boolean(this.contentEntries[index]?.renderable);
662
+ }
663
+ /** Initializes additive renderer-neutral descriptors from a normalized tile header. */
664
+ _initializeContentEntries(tileHeader) {
665
+ const headers = Array.isArray(tileHeader.content)
666
+ ? tileHeader.content
667
+ : tileHeader.content
668
+ ? [tileHeader.content]
669
+ : [];
670
+ this.contentEntries = headers.map((contentHeader, index) => {
671
+ const normalizedContentHeader = contentHeader || {};
672
+ return {
673
+ index,
674
+ uri: this.contentUrls[index] || normalizedContentHeader.uri || normalizedContentHeader.url,
675
+ group: normalizedContentHeader.group,
676
+ type: normalizedContentHeader.type,
677
+ payload: null,
678
+ metadata: normalizedContentHeader.metadata || null,
679
+ boundingVolume: this._contentBoundingVolumes[index] || this.boundingVolume,
680
+ featureIds: this._getFeatureIdSets(normalizedContentHeader),
681
+ renderable: false
682
+ };
683
+ });
684
+ }
685
+ /** Extracts renderer-neutral feature-id declarations without decoding property values. */
686
+ _getFeatureIdSets(contentHeader) {
687
+ return getTile3DFeatureIdSets(contentHeader);
555
688
  }
556
689
  // Unloads the tile's content.
557
690
  unloadContent() {
@@ -562,6 +695,13 @@ export class Tile3D {
562
695
  }
563
696
  this.contents = [];
564
697
  this.content = null;
698
+ this.vectorContent = null;
699
+ this.contentEntries = this.contentEntries.map(entry => ({
700
+ ...entry,
701
+ payload: null,
702
+ renderable: false
703
+ }));
704
+ this.featureIdSets = this.contentEntries.flatMap(entry => entry.featureIds);
565
705
  if (this.header.content && this.header.content.destroy) {
566
706
  this.header.content.destroy();
567
707
  }
@@ -677,8 +817,13 @@ export class Tile3D {
677
817
  * @param frameState Current camera, culling, and optional clipping-plane state.
678
818
  * @returns The content visibility classification.
679
819
  */
680
- contentVisibility(frameState) {
681
- return getContentVisibility(this._contentBoundingVolumes, this.boundingVolume, frameState.cullingVolume, this._visibilityPlaneMask, frameState.clippingPlanes);
820
+ contentVisibility(frameState, contentIndex) {
821
+ const contentVolumes = contentIndex === undefined
822
+ ? this._contentBoundingVolumes
823
+ : this._contentBoundingVolumes[contentIndex]
824
+ ? [this._contentBoundingVolumes[contentIndex]]
825
+ : [];
826
+ return getContentVisibility(contentVolumes, this.boundingVolume, frameState.cullingVolume, this._visibilityPlaneMask, frameState.clippingPlanes);
682
827
  }
683
828
  /**
684
829
  * Computes the (potentially approximate) distance from the closest point of the tile's bounding volume to the camera.
@@ -726,6 +871,10 @@ export class Tile3D {
726
871
  // INTERNAL METHODS
727
872
  /** Initializes the tile's LOD metric from its header or its nearest available ancestor. */
728
873
  _initializeLodMetric(header) {
874
+ this._scaleGeometricError =
875
+ typeof header._scaleGeometricError === 'boolean'
876
+ ? header._scaleGeometricError
877
+ : (this.parent?._scaleGeometricError ?? true);
729
878
  if ('lodMetricType' in header) {
730
879
  this.lodMetricType = header.lodMetricType;
731
880
  }
@@ -773,7 +922,7 @@ export class Tile3D {
773
922
  * I3S `maxScreenThreshold` is already a screen-space metric and must not be transform-scaled.
774
923
  */
775
924
  _updateLodMetricScale() {
776
- if (this.lodMetricType !== LOD_METRIC_TYPE.GEOMETRIC_ERROR) {
925
+ if (this.lodMetricType !== LOD_METRIC_TYPE.GEOMETRIC_ERROR || !this._scaleGeometricError) {
777
926
  this.lodMetricValue = this._unscaledLodMetricValue;
778
927
  return;
779
928
  }
@@ -861,13 +1010,14 @@ export class Tile3D {
861
1010
  }
862
1011
  }
863
1012
  _updateBoundingVolume(header) {
1013
+ this._boundingBox = undefined;
864
1014
  // Update the bounding volumes
865
- this.boundingVolume = createBoundingVolume(header.boundingVolume, this.computedTransform, this.boundingVolume);
1015
+ this.boundingVolume = createBoundingVolume(header.boundingVolume, this.computedTransform, this.boundingVolume, this._initialTransform);
866
1016
  // Viewer request volumes constrain traversal, not just render content. A contentless implicit
867
1017
  // connector can still own an inherited request volume, so initialize it before the
868
1018
  // content-specific early return below.
869
1019
  if (header.viewerRequestVolume) {
870
- this._viewerRequestVolume = createBoundingVolume(header.viewerRequestVolume, this.computedTransform, this._viewerRequestVolume);
1020
+ this._viewerRequestVolume = createBoundingVolume(header.viewerRequestVolume, this.computedTransform, this._viewerRequestVolume, this._initialTransform);
871
1021
  }
872
1022
  const content = header.content;
873
1023
  if (content) {
@@ -882,7 +1032,7 @@ export class Tile3D {
882
1032
  // corresponding index rather than being appended after bounded sibling entries.
883
1033
  this._contentBoundingVolumes = contentHeaders.length
884
1034
  ? contentHeaders.map(headerEntry => headerEntry?.boundingVolume
885
- ? createBoundingVolume(headerEntry.boundingVolume, this.computedTransform)
1035
+ ? createBoundingVolume(headerEntry.boundingVolume, this.computedTransform, undefined, this._initialTransform)
886
1036
  : this.boundingVolume)
887
1037
  : [this.boundingVolume];
888
1038
  this._contentBoundingVolume = this._contentBoundingVolumes[0] || null;
@@ -1 +1 @@
1
- {"version":3,"file":"tile-3d.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/tile-3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile-3d.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/tile-3d.ts"],"names":[],"mappings":"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"}