@loaders.gl/tiles 4.5.3 → 5.0.0-alpha.10
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.
- package/LICENSE +14 -3
- package/README.md +136 -1
- package/dist/dist.dev.js +22570 -4947
- package/dist/dist.min.js +3 -1
- package/dist/image-set.d.ts +94 -0
- package/dist/image-set.d.ts.map +1 -0
- package/dist/image-set.js +243 -0
- package/dist/image-set.js.map +1 -0
- package/dist/index.cjs +10171 -2117
- package/dist/index.cjs.map +3 -4
- package/dist/index.d.ts +50 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -8
- package/dist/index.js.map +1 -1
- package/dist/point-cloud/point-cloud-tile.d.ts +47 -0
- package/dist/point-cloud/point-cloud-tile.d.ts.map +1 -0
- package/dist/point-cloud/point-cloud-tile.js +70 -0
- package/dist/point-cloud/point-cloud-tile.js.map +1 -0
- package/dist/point-cloud/point-cloud-tileset.d.ts +135 -0
- package/dist/point-cloud/point-cloud-tileset.d.ts.map +1 -0
- package/dist/point-cloud/point-cloud-tileset.js +549 -0
- package/dist/point-cloud/point-cloud-tileset.js.map +1 -0
- package/dist/point-cloud/types.d.ts +81 -0
- package/dist/point-cloud/types.d.ts.map +1 -0
- package/dist/point-cloud/types.js +5 -0
- package/dist/point-cloud/types.js.map +1 -0
- package/dist/raster-set.d.ts +124 -0
- package/dist/raster-set.d.ts.map +1 -0
- package/dist/raster-set.js +348 -0
- package/dist/raster-set.js.map +1 -0
- package/dist/spatial/format-spatial-reference.d.ts +68 -0
- package/dist/spatial/format-spatial-reference.d.ts.map +1 -0
- package/dist/spatial/format-spatial-reference.js +291 -0
- package/dist/spatial/format-spatial-reference.js.map +1 -0
- package/dist/spatial/get-spatial-coordinate-frame.d.ts +20 -0
- package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +1 -0
- package/dist/spatial/get-spatial-coordinate-frame.js +139 -0
- package/dist/spatial/get-spatial-coordinate-frame.js.map +1 -0
- package/dist/spatial/i3s-elevation.d.ts +20 -0
- package/dist/spatial/i3s-elevation.d.ts.map +1 -0
- package/dist/spatial/i3s-elevation.js +90 -0
- package/dist/spatial/i3s-elevation.js.map +1 -0
- package/dist/spatial/i3s-spatial-transformer.d.ts +189 -0
- package/dist/spatial/i3s-spatial-transformer.d.ts.map +1 -0
- package/dist/spatial/i3s-spatial-transformer.js +686 -0
- package/dist/spatial/i3s-spatial-transformer.js.map +1 -0
- package/dist/spatial/normalize-crs-identifier.d.ts +15 -0
- package/dist/spatial/normalize-crs-identifier.d.ts.map +1 -0
- package/dist/spatial/normalize-crs-identifier.js +22 -0
- package/dist/spatial/normalize-crs-identifier.js.map +1 -0
- package/dist/spatial/spatial-coordinate-transformer.d.ts +52 -0
- package/dist/spatial/spatial-coordinate-transformer.d.ts.map +1 -0
- package/dist/spatial/spatial-coordinate-transformer.js +295 -0
- package/dist/spatial/spatial-coordinate-transformer.js.map +1 -0
- package/dist/spatial/spatial-resource-registry.d.ts +44 -0
- package/dist/spatial/spatial-resource-registry.d.ts.map +1 -0
- package/dist/spatial/spatial-resource-registry.js +67 -0
- package/dist/spatial/spatial-resource-registry.js.map +1 -0
- package/dist/spatial/spatial-types.d.ts +190 -0
- package/dist/spatial/spatial-types.d.ts.map +1 -0
- package/dist/spatial/spatial-types.js +192 -0
- package/dist/spatial/spatial-types.js.map +1 -0
- package/dist/spatial/tiles-3d-spatial-transformer.d.ts +32 -0
- package/dist/spatial/tiles-3d-spatial-transformer.d.ts.map +1 -0
- package/dist/spatial/tiles-3d-spatial-transformer.js +175 -0
- package/dist/spatial/tiles-3d-spatial-transformer.js.map +1 -0
- package/dist/tileset-2d/adapter.d.ts +37 -0
- package/dist/tileset-2d/adapter.d.ts.map +1 -0
- package/dist/tileset-2d/adapter.js +5 -0
- package/dist/tileset-2d/adapter.js.map +1 -0
- package/dist/tileset-2d/index.d.ts +7 -0
- package/dist/tileset-2d/index.d.ts.map +1 -0
- package/dist/tileset-2d/index.js +6 -0
- package/dist/tileset-2d/index.js.map +1 -0
- package/dist/tileset-2d/tile-2d-header.d.ts +68 -0
- package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -0
- package/dist/tileset-2d/tile-2d-header.js +181 -0
- package/dist/tileset-2d/tile-2d-header.js.map +1 -0
- package/dist/tileset-2d/tileset-2d.d.ts +200 -0
- package/dist/tileset-2d/tileset-2d.d.ts.map +1 -0
- package/dist/tileset-2d/tileset-2d.js +532 -0
- package/dist/tileset-2d/tileset-2d.js.map +1 -0
- package/dist/tileset-2d/types.d.ts +44 -0
- package/dist/tileset-2d/types.d.ts.map +1 -0
- package/dist/tileset-2d/types.js +5 -0
- package/dist/tileset-2d/types.js.map +1 -0
- package/dist/tileset-2d.d.ts +2 -0
- package/dist/tileset-2d.d.ts.map +1 -0
- package/dist/tileset-2d.js +5 -0
- package/dist/tileset-2d.js.map +1 -0
- package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts +60 -0
- package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts.map +1 -0
- package/dist/tileset-3d/common/indexed-archive-tileset-source.js +130 -0
- package/dist/tileset-3d/common/indexed-archive-tileset-source.js.map +1 -0
- package/dist/tileset-3d/common/tile-3d-contracts.d.ts +63 -0
- package/dist/tileset-3d/common/tile-3d-contracts.d.ts.map +1 -0
- package/dist/tileset-3d/common/tile-3d-contracts.js +51 -0
- package/dist/tileset-3d/common/tile-3d-contracts.js.map +1 -0
- package/dist/tileset-3d/common/tile-3d.d.ts +410 -0
- package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -0
- package/dist/tileset-3d/common/tile-3d.js +1056 -0
- package/dist/tileset-3d/common/tile-3d.js.map +1 -0
- package/dist/tileset-3d/common/tileset-3d.d.ts +360 -0
- package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -0
- package/dist/tileset-3d/common/tileset-3d.js +846 -0
- package/dist/tileset-3d/common/tileset-3d.js.map +1 -0
- package/dist/tileset-3d/common/tileset-cache.d.ts +29 -0
- package/dist/tileset-3d/common/tileset-cache.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d/common}/tileset-cache.js +12 -4
- package/dist/tileset-3d/common/tileset-cache.js.map +1 -0
- package/dist/tileset-3d/common/tileset-content-traversal.d.ts +37 -0
- package/dist/tileset-3d/common/tileset-content-traversal.d.ts.map +1 -0
- package/dist/tileset-3d/common/tileset-content-traversal.js +80 -0
- package/dist/tileset-3d/common/tileset-content-traversal.js.map +1 -0
- package/dist/tileset-3d/common/tileset-observability.d.ts +60 -0
- package/dist/tileset-3d/common/tileset-observability.d.ts.map +1 -0
- package/dist/tileset-3d/common/tileset-observability.js +39 -0
- package/dist/tileset-3d/common/tileset-observability.js.map +1 -0
- package/dist/tileset-3d/common/tileset-source.d.ts +228 -0
- package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -0
- package/dist/tileset-3d/common/tileset-source.js +17 -0
- package/dist/tileset-3d/common/tileset-source.js.map +1 -0
- package/dist/{tileset → tileset-3d/common}/tileset-traverser.d.ts +35 -3
- package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d/common}/tileset-traverser.js +61 -13
- package/dist/tileset-3d/common/tileset-traverser.js.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +182 -0
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +681 -0
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +221 -0
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +770 -0
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +110 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +331 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
- package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.js +3 -0
- package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js.map +1 -0
- package/dist/tileset-3d/format-i3s/i3s-source.d.ts +116 -0
- package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +1 -0
- package/dist/tileset-3d/format-i3s/i3s-source.js +450 -0
- package/dist/tileset-3d/format-i3s/i3s-source.js.map +1 -0
- package/dist/tileset-3d/format-i3s/i3s-tile-manager.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.js +5 -2
- package/dist/tileset-3d/format-i3s/i3s-tile-manager.js.map +1 -0
- package/dist/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.d.ts +2 -2
- package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.js +17 -23
- package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/3d-tiles-options.d.ts +1 -1
- package/dist/tileset-3d/helpers/3d-tiles-options.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/3d-tiles-options.js +3 -0
- package/dist/tileset-3d/helpers/3d-tiles-options.js.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/bounding-volume.d.ts +7 -3
- package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/bounding-volume.js +20 -91
- package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -0
- package/dist/tileset-3d/helpers/frame-state.d.ts +93 -0
- package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/frame-state.js +92 -10
- package/dist/tileset-3d/helpers/frame-state.js.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/i3s-lod.d.ts +1 -1
- package/dist/tileset-3d/helpers/i3s-lod.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/i3s-lod.js +21 -9
- package/dist/tileset-3d/helpers/i3s-lod.js.map +1 -0
- package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts +17 -0
- package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/s2-bounding-volume.js +20 -0
- package/dist/tileset-3d/helpers/s2-bounding-volume.js.map +1 -0
- package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts +72 -0
- package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/tiles-3d-lod.js +257 -0
- package/dist/tileset-3d/helpers/tiles-3d-lod.js.map +1 -0
- package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts +134 -0
- package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/tiles-3d-request-priority.js +179 -0
- package/dist/tileset-3d/helpers/tiles-3d-request-priority.js.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/transform-utils.d.ts +1 -1
- package/dist/tileset-3d/helpers/transform-utils.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/transform-utils.js.map +1 -0
- package/dist/tileset-3d/helpers/zoom.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/zoom.js.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/doubly-linked-list.d.ts.map +1 -1
- package/dist/utils/doubly-linked-list.js +1 -0
- package/dist/utils/doubly-linked-list.js.map +1 -1
- package/dist/utils/managed-array.d.ts.map +1 -1
- package/dist/utils/managed-array.js +1 -0
- package/dist/utils/managed-array.js.map +1 -1
- package/package.json +12 -9
- package/src/image-set.ts +328 -0
- package/src/index.ts +157 -9
- package/src/point-cloud/point-cloud-tile.ts +80 -0
- package/src/point-cloud/point-cloud-tileset.ts +767 -0
- package/src/point-cloud/types.ts +99 -0
- package/src/raster-set.ts +504 -0
- package/src/spatial/format-spatial-reference.ts +385 -0
- package/src/spatial/get-spatial-coordinate-frame.ts +169 -0
- package/src/spatial/i3s-elevation.ts +96 -0
- package/src/spatial/i3s-spatial-transformer.ts +957 -0
- package/src/spatial/normalize-crs-identifier.ts +26 -0
- package/src/spatial/spatial-coordinate-transformer.ts +376 -0
- package/src/spatial/spatial-resource-registry.ts +79 -0
- package/src/spatial/spatial-types.ts +422 -0
- package/src/spatial/tiles-3d-spatial-transformer.ts +206 -0
- package/src/tileset-2d/adapter.ts +46 -0
- package/src/tileset-2d/index.ts +33 -0
- package/src/tileset-2d/tile-2d-header.ts +224 -0
- package/src/tileset-2d/tileset-2d.ts +715 -0
- package/src/tileset-2d/types.ts +39 -0
- package/src/tileset-2d.ts +5 -0
- package/src/tileset-3d/common/indexed-archive-tileset-source.ts +205 -0
- package/src/tileset-3d/common/tile-3d-contracts.ts +115 -0
- package/src/tileset-3d/common/tile-3d.ts +1310 -0
- package/src/tileset-3d/common/tileset-3d.ts +1166 -0
- package/src/{tileset → tileset-3d/common}/tileset-cache.ts +16 -8
- package/src/tileset-3d/common/tileset-content-traversal.ts +114 -0
- package/src/tileset-3d/common/tileset-observability.ts +100 -0
- package/src/tileset-3d/common/tileset-source.ts +284 -0
- package/src/{tileset → tileset-3d/common}/tileset-traverser.ts +74 -14
- package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +1059 -0
- package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +1025 -0
- package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +379 -0
- package/src/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.ts +4 -0
- package/src/tileset-3d/format-i3s/i3s-source.ts +557 -0
- package/src/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.ts +6 -2
- package/src/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.ts +20 -24
- package/src/{tileset → tileset-3d}/helpers/3d-tiles-options.ts +5 -1
- package/src/{tileset → tileset-3d}/helpers/bounding-volume.ts +31 -114
- package/src/tileset-3d/helpers/frame-state.ts +322 -0
- package/src/{tileset → tileset-3d}/helpers/i3s-lod.ts +24 -10
- package/src/tileset-3d/helpers/s2-bounding-volume.ts +35 -0
- package/src/tileset-3d/helpers/tiles-3d-lod.ts +370 -0
- package/src/tileset-3d/helpers/tiles-3d-request-priority.ts +301 -0
- package/src/{tileset → tileset-3d}/helpers/transform-utils.ts +1 -1
- package/src/types.ts +18 -0
- package/src/utils/doubly-linked-list.ts +2 -0
- package/src/utils/managed-array.ts +2 -0
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts +0 -7
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts.map +0 -1
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js +0 -53
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.d.ts.map +0 -1
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
- package/dist/tileset/format-i3s/i3s-tile-manager.d.ts.map +0 -1
- package/dist/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
- package/dist/tileset/format-i3s/i3s-tileset-traverser.d.ts.map +0 -1
- package/dist/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
- package/dist/tileset/helpers/3d-tiles-options.d.ts.map +0 -1
- package/dist/tileset/helpers/3d-tiles-options.js.map +0 -1
- package/dist/tileset/helpers/bounding-volume.d.ts.map +0 -1
- package/dist/tileset/helpers/bounding-volume.js.map +0 -1
- package/dist/tileset/helpers/frame-state.d.ts +0 -28
- package/dist/tileset/helpers/frame-state.d.ts.map +0 -1
- package/dist/tileset/helpers/frame-state.js.map +0 -1
- package/dist/tileset/helpers/i3s-lod.d.ts.map +0 -1
- package/dist/tileset/helpers/i3s-lod.js.map +0 -1
- package/dist/tileset/helpers/tiles-3d-lod.d.ts +0 -8
- package/dist/tileset/helpers/tiles-3d-lod.d.ts.map +0 -1
- package/dist/tileset/helpers/tiles-3d-lod.js +0 -113
- package/dist/tileset/helpers/tiles-3d-lod.js.map +0 -1
- package/dist/tileset/helpers/transform-utils.d.ts.map +0 -1
- package/dist/tileset/helpers/transform-utils.js.map +0 -1
- package/dist/tileset/helpers/zoom.d.ts.map +0 -1
- package/dist/tileset/helpers/zoom.js.map +0 -1
- package/dist/tileset/tile-3d.d.ts +0 -230
- package/dist/tileset/tile-3d.d.ts.map +0 -1
- package/dist/tileset/tile-3d.js +0 -631
- package/dist/tileset/tile-3d.js.map +0 -1
- package/dist/tileset/tileset-3d.d.ts +0 -284
- package/dist/tileset/tileset-3d.d.ts.map +0 -1
- package/dist/tileset/tileset-3d.js +0 -814
- package/dist/tileset/tileset-3d.js.map +0 -1
- package/dist/tileset/tileset-cache.d.ts +0 -19
- package/dist/tileset/tileset-cache.d.ts.map +0 -1
- package/dist/tileset/tileset-cache.js.map +0 -1
- package/dist/tileset/tileset-traverser.d.ts.map +0 -1
- package/dist/tileset/tileset-traverser.js.map +0 -1
- package/src/tileset/format-3d-tiles/tileset-3d-traverser.ts +0 -63
- package/src/tileset/helpers/frame-state.ts +0 -183
- package/src/tileset/helpers/tiles-3d-lod.ts +0 -149
- package/src/tileset/tile-3d.ts +0 -788
- package/src/tileset/tileset-3d.ts +0 -1037
- /package/dist/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.d.ts +0 -0
- /package/dist/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.d.ts +0 -0
- /package/dist/{tileset → tileset-3d}/helpers/transform-utils.js +0 -0
- /package/dist/{tileset → tileset-3d}/helpers/zoom.d.ts +0 -0
- /package/dist/{tileset → tileset-3d}/helpers/zoom.js +0 -0
- /package/src/{tileset → tileset-3d}/helpers/zoom.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiles-3d-source.js","sourceRoot":"","sources":["../../../src/tileset-3d/format-3d-tiles/tiles-3d-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { TilesetTraverser } from "../common/tileset-traverser.js";
|
|
2
|
+
import type { Tile3D } from "../common/tile-3d.js";
|
|
3
|
+
import type { FrameState } from "../helpers/frame-state.js";
|
|
4
|
+
export declare class Tileset3DTraverser extends TilesetTraverser {
|
|
5
|
+
/** Pending implicit subtree requests keyed by viewport and tile identity. */
|
|
6
|
+
private readonly pendingImplicitSubtrees;
|
|
7
|
+
/**
|
|
8
|
+
* Reports whether every implicit subtree request started by this viewport traversal has settled.
|
|
9
|
+
*
|
|
10
|
+
* @param frameState - Traversal frame whose completion callback is being considered.
|
|
11
|
+
* @returns `true` when no matching subtree metadata request remains pending.
|
|
12
|
+
*/
|
|
13
|
+
protected traversalFinished(frameState: FrameState): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Runs normal replacement traversal or the dedicated skip-LOD traversal selected by options.
|
|
16
|
+
*
|
|
17
|
+
* @param root - Root of the runtime subtree to traverse.
|
|
18
|
+
* @param frameState - Current culling and LOD state.
|
|
19
|
+
*/
|
|
20
|
+
executeTraversal(root: Tile3D, frameState: FrameState): void;
|
|
21
|
+
/**
|
|
22
|
+
* Traverses visible replacement branches without requesting skipped intermediate content.
|
|
23
|
+
*
|
|
24
|
+
* Base-traversal tiles establish coarse coverage. Below that base, only final desired tiles and
|
|
25
|
+
* tiles that cross the configured depth/SSE thresholds are requested. Already available
|
|
26
|
+
* ancestors remain selectable while those requests stream in.
|
|
27
|
+
*
|
|
28
|
+
* @param root - Root of the runtime subtree to traverse.
|
|
29
|
+
* @param frameState - Current culling and LOD state.
|
|
30
|
+
*/
|
|
31
|
+
private executeSkipTraversal;
|
|
32
|
+
/**
|
|
33
|
+
* Updates and pushes visible children for skip traversal without requiring sibling readiness.
|
|
34
|
+
*
|
|
35
|
+
* @param tile - Parent whose children are considered.
|
|
36
|
+
* @param frameState - Current culling and LOD state.
|
|
37
|
+
* @param stack - Depth-first traversal stack.
|
|
38
|
+
* @returns `true` when at least one visible child continues refinement.
|
|
39
|
+
*/
|
|
40
|
+
private updateAndPushSkipChildren;
|
|
41
|
+
/**
|
|
42
|
+
* Determines whether a tile belongs to the coarse non-skipping portion of the traversal.
|
|
43
|
+
*
|
|
44
|
+
* @param tile - Tile considered for loading.
|
|
45
|
+
* @param frameState - Current traversal frame.
|
|
46
|
+
* @returns `true` when the tile should always be requested for fallback coverage.
|
|
47
|
+
*/
|
|
48
|
+
private isInBaseTraversal;
|
|
49
|
+
/**
|
|
50
|
+
* Determines whether a skipped branch has crossed its configured request threshold.
|
|
51
|
+
*
|
|
52
|
+
* @param tile - Tile considered for loading.
|
|
53
|
+
* @param frameState - Current traversal frame.
|
|
54
|
+
* @returns `true` when the tile must be requested instead of skipped.
|
|
55
|
+
*/
|
|
56
|
+
private hasReachedSkippingThreshold;
|
|
57
|
+
/**
|
|
58
|
+
* Finds the nearest ancestor whose render content is loaded, loading, or requested this frame.
|
|
59
|
+
*
|
|
60
|
+
* @param tile - Descendant whose request threshold needs an anchor.
|
|
61
|
+
* @param frameState - Current traversal frame.
|
|
62
|
+
* @returns The nearest request anchor, or `null` when none exists.
|
|
63
|
+
*/
|
|
64
|
+
private findNearestRequestedOrLoadedAncestor;
|
|
65
|
+
/**
|
|
66
|
+
* Selects the desired tile, its nearest ready ancestor, or nearby ready descendants.
|
|
67
|
+
*
|
|
68
|
+
* @param tile - Tile that ended the desired refinement branch.
|
|
69
|
+
* @param frameState - Current culling state.
|
|
70
|
+
*/
|
|
71
|
+
private selectDesiredTile;
|
|
72
|
+
/**
|
|
73
|
+
* Selects ready descendants near an unavailable desired tile to reduce temporary empty regions.
|
|
74
|
+
*
|
|
75
|
+
* @param root - Unavailable tile whose descendants are searched.
|
|
76
|
+
* @param frameState - Current culling state.
|
|
77
|
+
*/
|
|
78
|
+
private selectLoadedDescendants;
|
|
79
|
+
compareDistanceToCamera(a: any, b: any): number;
|
|
80
|
+
/**
|
|
81
|
+
* Starts an implicit subtree request after culling and request-volume eligibility.
|
|
82
|
+
*
|
|
83
|
+
* The first subtree of an implicit hierarchy materializes independently of SSE because its
|
|
84
|
+
* placeholder has no render content. Deeper subtree boundaries remain SSE-gated. The current
|
|
85
|
+
* parent remains the traversal boundary while metadata is loading, which preserves REPLACE
|
|
86
|
+
* coverage and ADD accumulation. Request scheduling reads the tile's existing
|
|
87
|
+
* progressive-resolution and foveated metrics, so subtree metadata follows the same priority
|
|
88
|
+
* policy as render content. A completion notification lets the owning tileset publish the newly
|
|
89
|
+
* materialized traversal result on the next update.
|
|
90
|
+
*
|
|
91
|
+
* @param tile - Tile whose existing or lazy children should be updated.
|
|
92
|
+
* @param frameState - Current culling and LOD state.
|
|
93
|
+
*/
|
|
94
|
+
updateChildTiles(tile: Tile3D, frameState: FrameState): void;
|
|
95
|
+
/**
|
|
96
|
+
* Resumes the same traversal frame after one lazy subtree request settles.
|
|
97
|
+
*
|
|
98
|
+
* Successful materialization traverses the new headers immediately. Failed or scheduler-cancelled
|
|
99
|
+
* requests finish the current traversal without retrying in a tight loop; a later application
|
|
100
|
+
* update may retry them.
|
|
101
|
+
*
|
|
102
|
+
* @param tile - Subtree-root tile whose request settled.
|
|
103
|
+
* @param frameState - Frame that started the request.
|
|
104
|
+
* @param requestKey - Viewport-scoped pending-request identity.
|
|
105
|
+
*/
|
|
106
|
+
private handleImplicitSubtreeLoad;
|
|
107
|
+
updateTileVisibility(tile: any, frameState: any): void;
|
|
108
|
+
meetsScreenSpaceErrorEarly(tile: any, frameState: any): boolean;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=tileset-3d-traverser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tileset-3d-traverser.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,gBAAgB,EAAC,uCAAoC;AAC7D,OAAO,KAAK,EAAC,MAAM,EAAC,6BAA0B;AAC9C,OAAO,KAAK,EAAC,UAAU,EAAC,kCAA+B;AAEvD,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAkC;IAE1E;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAU5D;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQ5D;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IA2C5B;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAwBjC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAkCnC;;;;;;OAMG;IACH,OAAO,CAAC,oCAAoC;IAkB5C;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAmB/B,uBAAuB,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAO5B;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAkB5D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAgBjC,oBAAoB,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;IAmCrC,0BAA0B,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;CAS5C"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// This file is derived from the Cesium code base under Apache 2 license
|
|
5
|
+
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
6
|
+
import { TILE3D_OPTIMIZATION_HINT, TILE_REFINEMENT } from "../../constants.js";
|
|
7
|
+
import { TilesetTraverser } from "../common/tileset-traverser.js";
|
|
8
|
+
export class Tileset3DTraverser extends TilesetTraverser {
|
|
9
|
+
/** Pending implicit subtree requests keyed by viewport and tile identity. */
|
|
10
|
+
pendingImplicitSubtrees = new Map();
|
|
11
|
+
/**
|
|
12
|
+
* Reports whether every implicit subtree request started by this viewport traversal has settled.
|
|
13
|
+
*
|
|
14
|
+
* @param frameState - Traversal frame whose completion callback is being considered.
|
|
15
|
+
* @returns `true` when no matching subtree metadata request remains pending.
|
|
16
|
+
*/
|
|
17
|
+
traversalFinished(frameState) {
|
|
18
|
+
const viewportPrefix = `${frameState.viewport.id}:`;
|
|
19
|
+
for (const [requestKey, frameNumber] of this.pendingImplicitSubtrees) {
|
|
20
|
+
if (requestKey.startsWith(viewportPrefix) && frameNumber === frameState.frameNumber) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Runs normal replacement traversal or the dedicated skip-LOD traversal selected by options.
|
|
28
|
+
*
|
|
29
|
+
* @param root - Root of the runtime subtree to traverse.
|
|
30
|
+
* @param frameState - Current culling and LOD state.
|
|
31
|
+
*/
|
|
32
|
+
executeTraversal(root, frameState) {
|
|
33
|
+
if (!this.isSkipLevelOfDetailEnabled()) {
|
|
34
|
+
super.executeTraversal(root, frameState);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.executeSkipTraversal(root, frameState);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Traverses visible replacement branches without requesting skipped intermediate content.
|
|
41
|
+
*
|
|
42
|
+
* Base-traversal tiles establish coarse coverage. Below that base, only final desired tiles and
|
|
43
|
+
* tiles that cross the configured depth/SSE thresholds are requested. Already available
|
|
44
|
+
* ancestors remain selectable while those requests stream in.
|
|
45
|
+
*
|
|
46
|
+
* @param root - Root of the runtime subtree to traverse.
|
|
47
|
+
* @param frameState - Current culling and LOD state.
|
|
48
|
+
*/
|
|
49
|
+
executeSkipTraversal(root, frameState) {
|
|
50
|
+
const stack = [root];
|
|
51
|
+
root._selectionDepth = root.parent ? root.parent._selectionDepth : 1;
|
|
52
|
+
while (stack.length > 0) {
|
|
53
|
+
const tile = stack.pop();
|
|
54
|
+
const parentRefines = !tile.parent || tile.parent._shouldRefine;
|
|
55
|
+
const shouldRefine = this.canTraverse(tile, frameState) &&
|
|
56
|
+
this.updateAndPushSkipChildren(tile, frameState, stack) &&
|
|
57
|
+
parentRefines;
|
|
58
|
+
const stoppedRefining = !shouldRefine && parentRefines;
|
|
59
|
+
if (!tile.hasRenderContent) {
|
|
60
|
+
this.emptyTiles[tile.id] = tile;
|
|
61
|
+
this.loadTile(tile, frameState);
|
|
62
|
+
if (stoppedRefining) {
|
|
63
|
+
this.selectDesiredTile(tile, frameState);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (tile.refine === TILE_REFINEMENT.ADD) {
|
|
67
|
+
this.loadTile(tile, frameState);
|
|
68
|
+
this.selectDesiredTile(tile, frameState);
|
|
69
|
+
}
|
|
70
|
+
else if (tile.refine === TILE_REFINEMENT.REPLACE) {
|
|
71
|
+
if (this.isInBaseTraversal(tile, frameState)) {
|
|
72
|
+
this.loadTile(tile, frameState);
|
|
73
|
+
if (stoppedRefining) {
|
|
74
|
+
this.selectDesiredTile(tile, frameState);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else if (stoppedRefining) {
|
|
78
|
+
this.loadTile(tile, frameState);
|
|
79
|
+
this.selectDesiredTile(tile, frameState);
|
|
80
|
+
}
|
|
81
|
+
else if (this.hasReachedSkippingThreshold(tile, frameState)) {
|
|
82
|
+
this.loadTile(tile, frameState);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
this.touchTile(tile, frameState);
|
|
86
|
+
tile._shouldRefine = shouldRefine;
|
|
87
|
+
}
|
|
88
|
+
this.completeTraversal(frameState);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Updates and pushes visible children for skip traversal without requiring sibling readiness.
|
|
92
|
+
*
|
|
93
|
+
* @param tile - Parent whose children are considered.
|
|
94
|
+
* @param frameState - Current culling and LOD state.
|
|
95
|
+
* @param stack - Depth-first traversal stack.
|
|
96
|
+
* @returns `true` when at least one visible child continues refinement.
|
|
97
|
+
*/
|
|
98
|
+
updateAndPushSkipChildren(tile, frameState, stack) {
|
|
99
|
+
this.updateChildTiles(tile, frameState);
|
|
100
|
+
tile.children.sort(this.compareDistanceToCamera.bind(this));
|
|
101
|
+
let hasVisibleChild = false;
|
|
102
|
+
for (const child of tile.children) {
|
|
103
|
+
child._selectionDepth = tile.hasRenderContent
|
|
104
|
+
? tile._selectionDepth + 1
|
|
105
|
+
: tile._selectionDepth;
|
|
106
|
+
if (child.isVisibleAndInRequestVolume) {
|
|
107
|
+
stack.push(child);
|
|
108
|
+
hasVisibleChild = true;
|
|
109
|
+
}
|
|
110
|
+
else if (this.options.loadSiblings) {
|
|
111
|
+
this.loadTile(child, frameState);
|
|
112
|
+
this.touchTile(child, frameState);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return hasVisibleChild;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Determines whether a tile belongs to the coarse non-skipping portion of the traversal.
|
|
119
|
+
*
|
|
120
|
+
* @param tile - Tile considered for loading.
|
|
121
|
+
* @param frameState - Current traversal frame.
|
|
122
|
+
* @returns `true` when the tile should always be requested for fallback coverage.
|
|
123
|
+
*/
|
|
124
|
+
isInBaseTraversal(tile, frameState) {
|
|
125
|
+
if (this.options.immediatelyLoadDesiredLevelOfDetail) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (!this.findNearestRequestedOrLoadedAncestor(tile, frameState)) {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
const configuredBaseScreenSpaceError = Number.isFinite(this.options.baseScreenSpaceError)
|
|
132
|
+
? Math.max(this.options.baseScreenSpaceError, 0)
|
|
133
|
+
: 1024;
|
|
134
|
+
const baseScreenSpaceError = Math.max(configuredBaseScreenSpaceError, tile.tileset.memoryAdjustedScreenSpaceError);
|
|
135
|
+
if (tile._screenSpaceError === 0 && tile.parent) {
|
|
136
|
+
return tile.parent._screenSpaceError > baseScreenSpaceError;
|
|
137
|
+
}
|
|
138
|
+
return tile._screenSpaceError > baseScreenSpaceError;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Determines whether a skipped branch has crossed its configured request threshold.
|
|
142
|
+
*
|
|
143
|
+
* @param tile - Tile considered for loading.
|
|
144
|
+
* @param frameState - Current traversal frame.
|
|
145
|
+
* @returns `true` when the tile must be requested instead of skipped.
|
|
146
|
+
*/
|
|
147
|
+
hasReachedSkippingThreshold(tile, frameState) {
|
|
148
|
+
if (this.options.immediatelyLoadDesiredLevelOfDetail) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
const progressiveResolutionLeaf = tile._priorityProgressiveResolution &&
|
|
152
|
+
tile._screenSpaceErrorProgressiveResolution <= tile.tileset.memoryAdjustedScreenSpaceError &&
|
|
153
|
+
Boolean(tile.parent &&
|
|
154
|
+
tile.parent._screenSpaceErrorProgressiveResolution >
|
|
155
|
+
tile.tileset.memoryAdjustedScreenSpaceError);
|
|
156
|
+
if (progressiveResolutionLeaf) {
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
const ancestor = this.findNearestRequestedOrLoadedAncestor(tile, frameState);
|
|
160
|
+
if (!ancestor) {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
const skipScreenSpaceErrorFactor = Number.isFinite(this.options.skipScreenSpaceErrorFactor) &&
|
|
164
|
+
this.options.skipScreenSpaceErrorFactor > 0
|
|
165
|
+
? this.options.skipScreenSpaceErrorFactor
|
|
166
|
+
: 16;
|
|
167
|
+
const skipLevels = Number.isFinite(this.options.skipLevels)
|
|
168
|
+
? Math.max(Math.floor(this.options.skipLevels), 0)
|
|
169
|
+
: 1;
|
|
170
|
+
return (tile._screenSpaceError < ancestor._screenSpaceError / skipScreenSpaceErrorFactor &&
|
|
171
|
+
tile.depth > ancestor.depth + skipLevels);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Finds the nearest ancestor whose render content is loaded, loading, or requested this frame.
|
|
175
|
+
*
|
|
176
|
+
* @param tile - Descendant whose request threshold needs an anchor.
|
|
177
|
+
* @param frameState - Current traversal frame.
|
|
178
|
+
* @returns The nearest request anchor, or `null` when none exists.
|
|
179
|
+
*/
|
|
180
|
+
findNearestRequestedOrLoadedAncestor(tile, frameState) {
|
|
181
|
+
let ancestor = tile.parent;
|
|
182
|
+
while (ancestor) {
|
|
183
|
+
const contentIsUsableAnchor = ancestor.hasRenderContent &&
|
|
184
|
+
!ancestor.contentFailed &&
|
|
185
|
+
(!ancestor.hasUnloadedContent || ancestor._requestedFrame === frameState.frameNumber);
|
|
186
|
+
if (contentIsUsableAnchor) {
|
|
187
|
+
return ancestor;
|
|
188
|
+
}
|
|
189
|
+
ancestor = ancestor.parent;
|
|
190
|
+
}
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Selects the desired tile, its nearest ready ancestor, or nearby ready descendants.
|
|
195
|
+
*
|
|
196
|
+
* @param tile - Tile that ended the desired refinement branch.
|
|
197
|
+
* @param frameState - Current culling state.
|
|
198
|
+
*/
|
|
199
|
+
selectDesiredTile(tile, frameState) {
|
|
200
|
+
let fallbackTile = tile;
|
|
201
|
+
while (fallbackTile) {
|
|
202
|
+
if (this.shouldSelectTile(fallbackTile, frameState)) {
|
|
203
|
+
this.selectTile(fallbackTile, frameState);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
fallbackTile = fallbackTile.parent;
|
|
207
|
+
}
|
|
208
|
+
this.selectLoadedDescendants(tile, frameState);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Selects ready descendants near an unavailable desired tile to reduce temporary empty regions.
|
|
212
|
+
*
|
|
213
|
+
* @param root - Unavailable tile whose descendants are searched.
|
|
214
|
+
* @param frameState - Current culling state.
|
|
215
|
+
*/
|
|
216
|
+
selectLoadedDescendants(root, frameState) {
|
|
217
|
+
const stack = [{ tile: root, depth: 0 }];
|
|
218
|
+
while (stack.length > 0) {
|
|
219
|
+
const { tile, depth } = stack.pop();
|
|
220
|
+
for (const child of tile.children) {
|
|
221
|
+
this.updateTile(child, frameState);
|
|
222
|
+
if (!child.isVisibleAndInRequestVolume) {
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
if (child.contentAvailable) {
|
|
226
|
+
this.selectTile(child, frameState);
|
|
227
|
+
this.touchTile(child, frameState);
|
|
228
|
+
}
|
|
229
|
+
else if (depth < 1) {
|
|
230
|
+
stack.push({ tile: child, depth: depth + 1 });
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
compareDistanceToCamera(a, b) {
|
|
236
|
+
// Sort by farthest child first since this is going on a stack
|
|
237
|
+
return b._distanceToCamera === 0 && a._distanceToCamera === 0
|
|
238
|
+
? b._centerZDepth - a._centerZDepth
|
|
239
|
+
: b._distanceToCamera - a._distanceToCamera;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Starts an implicit subtree request after culling and request-volume eligibility.
|
|
243
|
+
*
|
|
244
|
+
* The first subtree of an implicit hierarchy materializes independently of SSE because its
|
|
245
|
+
* placeholder has no render content. Deeper subtree boundaries remain SSE-gated. The current
|
|
246
|
+
* parent remains the traversal boundary while metadata is loading, which preserves REPLACE
|
|
247
|
+
* coverage and ADD accumulation. Request scheduling reads the tile's existing
|
|
248
|
+
* progressive-resolution and foveated metrics, so subtree metadata follows the same priority
|
|
249
|
+
* policy as render content. A completion notification lets the owning tileset publish the newly
|
|
250
|
+
* materialized traversal result on the next update.
|
|
251
|
+
*
|
|
252
|
+
* @param tile - Tile whose existing or lazy children should be updated.
|
|
253
|
+
* @param frameState - Current culling and LOD state.
|
|
254
|
+
*/
|
|
255
|
+
updateChildTiles(tile, frameState) {
|
|
256
|
+
const isImplicitHierarchyRoot = tile.header.implicitSubtree?.coordinates.level === 0;
|
|
257
|
+
if (tile.hasUnloadedChildren &&
|
|
258
|
+
tile.isVisibleAndInRequestVolume &&
|
|
259
|
+
(isImplicitHierarchyRoot || this.shouldRefine(tile, frameState))) {
|
|
260
|
+
const requestKey = `${frameState.viewport.id}:${tile.id}`;
|
|
261
|
+
if (!this.pendingImplicitSubtrees.has(requestKey)) {
|
|
262
|
+
this.pendingImplicitSubtrees.set(requestKey, frameState.frameNumber);
|
|
263
|
+
void tile.tileset._loadTileChildren(tile, frameState).finally(() => {
|
|
264
|
+
this.handleImplicitSubtreeLoad(tile, frameState, requestKey);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
super.updateChildTiles(tile, frameState);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Resumes the same traversal frame after one lazy subtree request settles.
|
|
272
|
+
*
|
|
273
|
+
* Successful materialization traverses the new headers immediately. Failed or scheduler-cancelled
|
|
274
|
+
* requests finish the current traversal without retrying in a tight loop; a later application
|
|
275
|
+
* update may retry them.
|
|
276
|
+
*
|
|
277
|
+
* @param tile - Subtree-root tile whose request settled.
|
|
278
|
+
* @param frameState - Frame that started the request.
|
|
279
|
+
* @param requestKey - Viewport-scoped pending-request identity.
|
|
280
|
+
*/
|
|
281
|
+
handleImplicitSubtreeLoad(tile, frameState, requestKey) {
|
|
282
|
+
this.pendingImplicitSubtrees.delete(requestKey);
|
|
283
|
+
if (this._frameNumber !== frameState.frameNumber) {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
if (tile.childrenState === 'ready') {
|
|
287
|
+
this.executeTraversal(tile, frameState);
|
|
288
|
+
}
|
|
289
|
+
else if (this.traversalFinished(frameState)) {
|
|
290
|
+
this.options.onTraversalEnd(frameState);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
updateTileVisibility(tile, frameState) {
|
|
294
|
+
super.updateTileVisibility(tile, frameState);
|
|
295
|
+
// Optimization - if none of the tile's children are visible then this tile isn't visible
|
|
296
|
+
if (!tile.isVisibleAndInRequestVolume) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
const hasChildren = tile.children.length > 0;
|
|
300
|
+
if (tile.hasTilesetContent && hasChildren) {
|
|
301
|
+
// Use the root tile's visibility instead of this tile's visibility.
|
|
302
|
+
// The root tile may be culled by the children bounds optimization in which
|
|
303
|
+
// case this tile should also be culled.
|
|
304
|
+
const firstChild = tile.children[0];
|
|
305
|
+
this.updateTileVisibility(firstChild, frameState);
|
|
306
|
+
tile._visible = firstChild._visible;
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
if (this.meetsScreenSpaceErrorEarly(tile, frameState)) {
|
|
310
|
+
tile._visible = false;
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
const replace = tile.refine === TILE_REFINEMENT.REPLACE;
|
|
314
|
+
const useOptimization = tile._optimChildrenWithinParent === TILE3D_OPTIMIZATION_HINT.USE_OPTIMIZATION;
|
|
315
|
+
if (replace && useOptimization && hasChildren) {
|
|
316
|
+
if (!this.anyChildrenVisible(tile, frameState)) {
|
|
317
|
+
tile._visible = false;
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
meetsScreenSpaceErrorEarly(tile, frameState) {
|
|
323
|
+
const { parent } = tile;
|
|
324
|
+
if (!parent || parent.hasTilesetContent || parent.refine !== TILE_REFINEMENT.ADD) {
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
327
|
+
// Use parent's geometric error with child's box to see if the tile already meet the SSE
|
|
328
|
+
return !this.shouldRefine(tile, frameState, true);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=tileset-3d-traverser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tileset-3d-traverser.js","sourceRoot":"","sources":["../../../src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i3s-pending-tiles-register.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/format-i3s/i3s-pending-tiles-register.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,cAAc,CAA+C;IAErE;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOhD;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IASlD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAI/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i3s-pending-tiles-register.js","sourceRoot":"","sources":["../../../src/tileset-3d/format-i3s/i3s-pending-tiles-register.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAC1B,cAAc,GAAqC,IAAI,GAAG,EAAE,CAAC;IAErE;;;;OAIG;IACH,QAAQ,CAAC,UAAkB,EAAE,WAAmB;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QACrE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,UAAkB,EAAE,WAAmB;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAkB,EAAE,WAAmB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzE,OAAO,KAAK,KAAK,CAAC,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { CoreAPI, Loader, LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
|
+
import type { Tile3D } from "../common/tile-3d.js";
|
|
3
|
+
import type { Tileset3D } from "../common/tileset-3d.js";
|
|
4
|
+
import type { FrameState } from "../helpers/frame-state.js";
|
|
5
|
+
import type { TileChildrenLoadResult, TileContentLoadResult, TilesetContentFormats, TilesetJSON, Tileset3DSource, TilesetSourceInput, TilesetSourceMetadata, TilesetSourceViewState } from "../common/tileset-source.js";
|
|
6
|
+
import { TILESET_TYPE } from "../../constants.js";
|
|
7
|
+
import type { TilesetTraverser, TilesetTraverserProps } from "../common/tileset-traverser.js";
|
|
8
|
+
/**
|
|
9
|
+
* {@link Tileset3DSource} implementation for I3S datasets.
|
|
10
|
+
*/
|
|
11
|
+
export declare class I3SSource implements Tileset3DSource {
|
|
12
|
+
/** I3S format discriminator. */
|
|
13
|
+
readonly type = TILESET_TYPE.I3S;
|
|
14
|
+
/** Primary I3S loader used for root and child metadata requests. */
|
|
15
|
+
readonly loader: Loader;
|
|
16
|
+
/** Worker-capable loader used for binary tile content when supplied by the format loader. */
|
|
17
|
+
readonly contentLoader: Loader;
|
|
18
|
+
/** Root I3S layer URL. */
|
|
19
|
+
readonly url: string;
|
|
20
|
+
/** Base path used for relative tile resource resolution. */
|
|
21
|
+
readonly basePath: string;
|
|
22
|
+
/** Parsed I3S layer metadata. */
|
|
23
|
+
tileset: TilesetJSON | null;
|
|
24
|
+
/** Loader options forwarded to tile requests. */
|
|
25
|
+
readonly loadOptions: LoaderOptions;
|
|
26
|
+
/** Core API used for metadata and tile-content loads when injected by the caller. */
|
|
27
|
+
coreApi?: CoreAPI;
|
|
28
|
+
/** Aggregate content-format flags discovered during streaming. */
|
|
29
|
+
readonly contentFormats: TilesetContentFormats;
|
|
30
|
+
asset?: Record<string, any>;
|
|
31
|
+
properties?: any;
|
|
32
|
+
extras?: any;
|
|
33
|
+
credits?: any;
|
|
34
|
+
metadata?: TilesetSourceMetadata;
|
|
35
|
+
private readonly queryParams;
|
|
36
|
+
private readonly resolver?;
|
|
37
|
+
private rootTileset;
|
|
38
|
+
/** Spatial adapter created lazily after Tileset3D applies target options. */
|
|
39
|
+
private spatialTransformer?;
|
|
40
|
+
/** Root header prepared after asynchronous elevation sampling. */
|
|
41
|
+
private preparedRootHeader?;
|
|
42
|
+
/**
|
|
43
|
+
* Creates an I3S source.
|
|
44
|
+
* @param input Root metadata request, or preloaded root metadata for tests and internal callers.
|
|
45
|
+
* @param loadOptions Loader options forwarded to tile requests.
|
|
46
|
+
*/
|
|
47
|
+
constructor(input: TilesetSourceInput, loadOptions?: LoaderOptions);
|
|
48
|
+
/**
|
|
49
|
+
* Fetches and normalizes root I3S metadata for runtime consumption.
|
|
50
|
+
*/
|
|
51
|
+
initialize(): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Returns normalized source metadata after initialization.
|
|
54
|
+
*/
|
|
55
|
+
getMetadata(): TilesetSourceMetadata;
|
|
56
|
+
/**
|
|
57
|
+
* Returns the initialized I3S root metadata.
|
|
58
|
+
*/
|
|
59
|
+
getRootTileset(): Promise<TilesetJSON>;
|
|
60
|
+
/** Prepare option-dependent spatial state and the asynchronously placed root bound. */
|
|
61
|
+
prepareTileset(tileset: Tileset3D): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Creates the runtime root tile for an I3S subtree.
|
|
64
|
+
*/
|
|
65
|
+
initializeTileHeaders(tileset: Tileset3D, tilesetJson: TilesetJSON, parentTile?: Tile3D | null): Tile3D;
|
|
66
|
+
/**
|
|
67
|
+
* Creates the standard I3S traverser.
|
|
68
|
+
*/
|
|
69
|
+
createTraverser(options: TilesetTraverserProps): TilesetTraverser;
|
|
70
|
+
/**
|
|
71
|
+
* Loads renderable content for an I3S tile.
|
|
72
|
+
*/
|
|
73
|
+
loadTileContent(tile: Tile3D): Promise<TileContentLoadResult>;
|
|
74
|
+
/**
|
|
75
|
+
* Loads child tile metadata on demand from node pages or `/nodes/{id}` resources.
|
|
76
|
+
*/
|
|
77
|
+
loadChildTileHeader(_parentTile: Tile3D, childId: string, _frameState: FrameState | null): Promise<any>;
|
|
78
|
+
/** Loads all declared I3S child headers without camera or visibility state. */
|
|
79
|
+
loadTileChildrenForTraversal(parentTile: Tile3D, signal?: AbortSignal): Promise<TileChildrenLoadResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Resolves an I3S request URL with source-managed query parameters.
|
|
82
|
+
*/
|
|
83
|
+
getTileUrl(tilePath: string): string;
|
|
84
|
+
/**
|
|
85
|
+
* Derives the default view state from full extent or store extent metadata.
|
|
86
|
+
*/
|
|
87
|
+
getViewState(rootTile: Tile3D | null): TilesetSourceViewState;
|
|
88
|
+
/**
|
|
89
|
+
* Updates content-format flags after tile content loads.
|
|
90
|
+
*/
|
|
91
|
+
onTileLoaded(_tileset: Tileset3D, tile: Tile3D): void;
|
|
92
|
+
/**
|
|
93
|
+
* Returns the total number of known tiles when node pages metadata is available.
|
|
94
|
+
*/
|
|
95
|
+
getTilesTotalCount(): number | null;
|
|
96
|
+
/**
|
|
97
|
+
* Loads data through injected core APIs so this module stays independent from `@loaders.gl/core`.
|
|
98
|
+
*/
|
|
99
|
+
private loadWithCoreApi;
|
|
100
|
+
/**
|
|
101
|
+
* Loads data through an injected resolver when present, otherwise through the injected core API.
|
|
102
|
+
*/
|
|
103
|
+
private loadRootData;
|
|
104
|
+
/**
|
|
105
|
+
* Initializes query parameters before any URL-backed resource is requested.
|
|
106
|
+
* @param loadOptions Loader options that may contain an ArcGIS token.
|
|
107
|
+
*/
|
|
108
|
+
private initializeQueryParams;
|
|
109
|
+
/**
|
|
110
|
+
* Loads tile metadata or content through an injected resolver when present, otherwise through the injected core API.
|
|
111
|
+
*/
|
|
112
|
+
private loadResourceData;
|
|
113
|
+
/** Transform one I3S header bound after target options and elevation providers are available. */
|
|
114
|
+
private transformTileHeader;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=i3s-source.d.ts.map
|