@loaders.gl/tiles 5.0.0-alpha.1 → 5.0.0-alpha.2
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/dist/dist.dev.js +2396 -274
- package/dist/dist.min.js +1 -1
- package/dist/index.cjs +2763 -337
- package/dist/index.cjs.map +3 -4
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/point-cloud/point-cloud-tile.d.ts.map +1 -1
- package/dist/point-cloud/point-cloud-tile.js +3 -0
- package/dist/point-cloud/point-cloud-tile.js.map +1 -1
- package/dist/point-cloud/point-cloud-tileset.d.ts.map +1 -1
- package/dist/point-cloud/point-cloud-tileset.js +3 -0
- package/dist/point-cloud/point-cloud-tileset.js.map +1 -1
- package/dist/point-cloud/types.d.ts.map +1 -1
- package/dist/point-cloud/types.js +3 -0
- package/dist/point-cloud/types.js.map +1 -1
- package/dist/raster-set.d.ts +35 -29
- package/dist/raster-set.d.ts.map +1 -1
- package/dist/raster-set.js +7 -1
- package/dist/raster-set.js.map +1 -1
- package/dist/tileset-3d/common/tile-3d.d.ts +98 -3
- package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -1
- package/dist/tileset-3d/common/tile-3d.js +229 -15
- package/dist/tileset-3d/common/tile-3d.js.map +1 -1
- package/dist/tileset-3d/common/tileset-3d.d.ts +143 -3
- package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -1
- package/dist/tileset-3d/common/tileset-3d.js +257 -16
- package/dist/tileset-3d/common/tileset-3d.js.map +1 -1
- package/dist/tileset-3d/common/tileset-cache.d.ts +11 -1
- package/dist/tileset-3d/common/tileset-cache.d.ts.map +1 -1
- package/dist/tileset-3d/common/tileset-cache.js +11 -3
- package/dist/tileset-3d/common/tileset-cache.js.map +1 -1
- package/dist/tileset-3d/common/tileset-source.d.ts +18 -0
- package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -1
- package/dist/tileset-3d/common/tileset-source.js.map +1 -1
- package/dist/tileset-3d/common/tileset-traverser.d.ts +13 -0
- package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -1
- package/dist/tileset-3d/common/tileset-traverser.js +28 -1
- package/dist/tileset-3d/common/tileset-traverser.js.map +1 -1
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +111 -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 +340 -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 +92 -3
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -1
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +211 -13
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -1
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +36 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -1
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +66 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -1
- package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.d.ts.map +1 -1
- package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js +3 -0
- package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js.map +1 -1
- package/dist/tileset-3d/format-i3s/i3s-tile-manager.d.ts.map +1 -1
- package/dist/tileset-3d/format-i3s/i3s-tile-manager.js +3 -0
- package/dist/tileset-3d/format-i3s/i3s-tile-manager.js.map +1 -1
- package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts.map +1 -1
- package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js +3 -0
- package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js.map +1 -1
- package/dist/tileset-3d/helpers/3d-tiles-options.d.ts.map +1 -1
- package/dist/tileset-3d/helpers/3d-tiles-options.js +3 -0
- package/dist/tileset-3d/helpers/3d-tiles-options.js.map +1 -1
- package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -1
- package/dist/tileset-3d/helpers/bounding-volume.js +1 -0
- package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -1
- package/dist/tileset-3d/helpers/frame-state.d.ts +59 -1
- package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -1
- package/dist/tileset-3d/helpers/frame-state.js +84 -9
- package/dist/tileset-3d/helpers/frame-state.js.map +1 -1
- package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts +61 -9
- package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts.map +1 -1
- package/dist/tileset-3d/helpers/tiles-3d-lod.js +198 -93
- package/dist/tileset-3d/helpers/tiles-3d-lod.js.map +1 -1
- 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/types.d.ts +2 -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 +5 -5
- package/src/index.ts +19 -0
- package/src/point-cloud/point-cloud-tile.ts +4 -0
- package/src/point-cloud/point-cloud-tileset.ts +4 -0
- package/src/point-cloud/types.ts +4 -0
- package/src/raster-set.ts +81 -43
- package/src/tileset-3d/common/tile-3d.ts +285 -21
- package/src/tileset-3d/common/tileset-3d.ts +368 -17
- package/src/tileset-3d/common/tileset-cache.ts +15 -7
- package/src/tileset-3d/common/tileset-source.ts +21 -0
- package/src/tileset-3d/common/tileset-traverser.ts +29 -1
- package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +534 -0
- package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +266 -13
- package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +77 -0
- package/src/tileset-3d/format-i3s/i3s-pending-tiles-register.ts +4 -0
- package/src/tileset-3d/format-i3s/i3s-tile-manager.ts +4 -0
- package/src/tileset-3d/format-i3s/i3s-tileset-traverser.ts +4 -0
- package/src/tileset-3d/helpers/3d-tiles-options.ts +4 -0
- package/src/tileset-3d/helpers/bounding-volume.ts +2 -0
- package/src/tileset-3d/helpers/frame-state.ts +139 -11
- package/src/tileset-3d/helpers/tiles-3d-lod.ts +291 -112
- package/src/tileset-3d/helpers/tiles-3d-request-priority.ts +301 -0
- package/src/types.ts +6 -0
- package/src/utils/doubly-linked-list.ts +2 -0
- package/src/utils/managed-array.ts +2 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT AND Apache-2.0
|
|
3
|
+
// Copyright vis.gl contributors
|
|
4
|
+
// This file contains behavior derived from the Cesium code base under Apache 2 license.
|
|
5
|
+
import { Vector3 } from '@math.gl/core';
|
|
6
|
+
import { BoundingSphere } from '@math.gl/culling';
|
|
7
|
+
import { TILE_REFINEMENT } from "../../constants.js";
|
|
8
|
+
const PREFERRED_SORTING_DIGITS = 10_000;
|
|
9
|
+
const FOVEATED_SORTING_SCALE = 10_000;
|
|
10
|
+
const PROGRESSIVE_RESOLUTION_PENALTY = 100_000_000;
|
|
11
|
+
const scratchBoundingSphere = new BoundingSphere();
|
|
12
|
+
const scratchCenterOffset = new Vector3();
|
|
13
|
+
const scratchClosestPointOnLine = new Vector3();
|
|
14
|
+
const scratchVectorToLine = new Vector3();
|
|
15
|
+
const scratchClosestPointOnSphere = new Vector3();
|
|
16
|
+
/**
|
|
17
|
+
* Linearly interpolates between two values.
|
|
18
|
+
*
|
|
19
|
+
* @param minimumValue - Value returned when `interpolationAmount` is zero.
|
|
20
|
+
* @param maximumValue - Value returned when `interpolationAmount` is one.
|
|
21
|
+
* @param interpolationAmount - Normalized interpolation position.
|
|
22
|
+
* @returns Linearly interpolated value.
|
|
23
|
+
*/
|
|
24
|
+
export function interpolateLinearly(minimumValue, maximumValue, interpolationAmount) {
|
|
25
|
+
return minimumValue + (maximumValue - minimumValue) * interpolationAmount;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Calculates how far a tile lies from the camera's forward center ray.
|
|
29
|
+
*
|
|
30
|
+
* The tile's bounding sphere, rather than only its center, is used so large tiles that intersect
|
|
31
|
+
* the view axis retain center priority. Clamping the nearest point to the forward ray prevents
|
|
32
|
+
* volumes behind the camera from receiving the same priority as centered visible content. The
|
|
33
|
+
* returned angular factor is zero on the view axis and increases toward the edge of a perspective
|
|
34
|
+
* frustum, reaching one for volumes entirely behind the camera.
|
|
35
|
+
*
|
|
36
|
+
* @param boundingVolume - Tile volume used to find the point nearest the camera view axis.
|
|
37
|
+
* @param camera - World-space camera position and normalized view direction.
|
|
38
|
+
* @returns Unitless angular factor, where zero intersects the view axis and larger values are more
|
|
39
|
+
* peripheral.
|
|
40
|
+
*/
|
|
41
|
+
export function calculateFoveatedFactor(boundingVolume, camera) {
|
|
42
|
+
const boundingSphere = boundingVolume instanceof BoundingSphere
|
|
43
|
+
? boundingVolume
|
|
44
|
+
: boundingVolume.getBoundingSphere(scratchBoundingSphere);
|
|
45
|
+
const { center, radius } = boundingSphere;
|
|
46
|
+
scratchCenterOffset.copy(center).subtract(camera.position);
|
|
47
|
+
const centerZDepth = Math.max(scratchCenterOffset.dot(camera.direction), 0);
|
|
48
|
+
scratchClosestPointOnLine.copy(camera.direction).scale(centerZDepth).add(camera.position);
|
|
49
|
+
scratchVectorToLine.copy(scratchClosestPointOnLine).subtract(center);
|
|
50
|
+
const distanceToCenterLine = scratchVectorToLine.magnitude();
|
|
51
|
+
if (distanceToCenterLine <= radius) {
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
scratchClosestPointOnSphere
|
|
55
|
+
.copy(scratchVectorToLine)
|
|
56
|
+
.normalize()
|
|
57
|
+
.scale(radius)
|
|
58
|
+
.add(center)
|
|
59
|
+
.subtract(camera.position);
|
|
60
|
+
if (scratchClosestPointOnSphere.magnitude() === 0) {
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
scratchClosestPointOnSphere.normalize();
|
|
64
|
+
return Math.min(Math.max(1 - scratchClosestPointOnSphere.dot(camera.direction), 0), 1);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns whether a tile supplies the coarse coverage targeted by progressive resolution.
|
|
68
|
+
*
|
|
69
|
+
* In addition to tiles whose reduced-height SSE exceeds the normal threshold, the first child
|
|
70
|
+
* that crosses below the threshold is promoted. Promoting that SSE leaf prevents gaps between
|
|
71
|
+
* coarse hierarchy levels in the initial coverage pass.
|
|
72
|
+
*
|
|
73
|
+
* @param screenSpaceError - Tile SSE calculated at the reduced logical viewport height.
|
|
74
|
+
* @param parentScreenSpaceError - Parent SSE at the same reduced height, when available.
|
|
75
|
+
* @param maximumScreenSpaceError - Normal traversal threshold in logical pixels.
|
|
76
|
+
* @param progressiveResolutionHeightFraction - Reduced-height fraction; values outside `(0, 0.5]`
|
|
77
|
+
* disable progressive priority.
|
|
78
|
+
* @returns `true` when the tile belongs to the initial coarse-coverage priority band.
|
|
79
|
+
*/
|
|
80
|
+
export function isProgressiveResolutionPriority(screenSpaceError, parentScreenSpaceError, maximumScreenSpaceError, progressiveResolutionHeightFraction) {
|
|
81
|
+
if (!Number.isFinite(progressiveResolutionHeightFraction) ||
|
|
82
|
+
progressiveResolutionHeightFraction <= 0 ||
|
|
83
|
+
progressiveResolutionHeightFraction > 0.5) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
if (screenSpaceError > maximumScreenSpaceError) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return parentScreenSpaceError !== undefined && parentScreenSpaceError > maximumScreenSpaceError;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Returns whether a peripheral request can wait briefly after camera motion.
|
|
93
|
+
*
|
|
94
|
+
* Traditional `REPLACE` traversal is never deferred because every required child must be ready
|
|
95
|
+
* before its parent disappears. `ADD` traversal and skip-LOD replacement traversal can safely keep
|
|
96
|
+
* already available ancestors while peripheral descendants wait.
|
|
97
|
+
*
|
|
98
|
+
* @param parameters - Refinement, projection, SSE, and foveation measurements for the tile.
|
|
99
|
+
* @returns `true` when the request may wait during the camera-motion delay.
|
|
100
|
+
*/
|
|
101
|
+
export function isFoveatedRequestDeferred(parameters) {
|
|
102
|
+
const coneSize = Number.isFinite(parameters.foveatedConeSize)
|
|
103
|
+
? Math.min(Math.max(parameters.foveatedConeSize, 0), 1)
|
|
104
|
+
: 1;
|
|
105
|
+
const replacementRefinement = parameters.refinement === TILE_REFINEMENT.REPLACE;
|
|
106
|
+
if ((replacementRefinement && !parameters.skipLevelOfDetail) ||
|
|
107
|
+
!parameters.foveatedScreenSpaceError ||
|
|
108
|
+
coneSize >= 1 ||
|
|
109
|
+
(replacementRefinement &&
|
|
110
|
+
parameters.skipLevelOfDetail &&
|
|
111
|
+
parameters.priorityProgressiveResolution)) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
const verticalFieldOfView = Number.isFinite(parameters.verticalFieldOfView) && parameters.verticalFieldOfView > 0
|
|
115
|
+
? parameters.verticalFieldOfView
|
|
116
|
+
: Math.PI / 3;
|
|
117
|
+
const maximumFoveatedFactor = 1 - Math.cos(verticalFieldOfView * 0.5);
|
|
118
|
+
const coneFactor = coneSize * maximumFoveatedFactor;
|
|
119
|
+
if (parameters.foveatedFactor <= coneFactor || maximumFoveatedFactor <= coneFactor) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
const interpolationAmount = Math.min(Math.max((parameters.foveatedFactor - coneFactor) / (maximumFoveatedFactor - coneFactor), 0), 1);
|
|
123
|
+
const interpolationCallback = typeof parameters.interpolationCallback === 'function'
|
|
124
|
+
? parameters.interpolationCallback
|
|
125
|
+
: interpolateLinearly;
|
|
126
|
+
const interpolatedRelaxation = interpolationCallback(parameters.minimumScreenSpaceErrorRelaxation, parameters.maximumScreenSpaceError, interpolationAmount);
|
|
127
|
+
const screenSpaceErrorRelaxation = Number.isFinite(interpolatedRelaxation)
|
|
128
|
+
? Math.min(Math.max(interpolatedRelaxation, 0), parameters.maximumScreenSpaceError)
|
|
129
|
+
: 0;
|
|
130
|
+
const screenSpaceError = parameters.screenSpaceError === 0 && parameters.parentScreenSpaceError !== undefined
|
|
131
|
+
? parameters.parentScreenSpaceError * 0.5
|
|
132
|
+
: parameters.screenSpaceError;
|
|
133
|
+
return parameters.maximumScreenSpaceError - screenSpaceErrorRelaxation <= screenSpaceError;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Returns whether an eligible foveated request is inside the current camera-motion delay.
|
|
137
|
+
*
|
|
138
|
+
* Eligibility describes geometry and refinement safety; this function adds time. Keeping the
|
|
139
|
+
* active state separate ensures the scheduler removes the temporary hold as soon as the configured
|
|
140
|
+
* delay expires, while invalid timing inputs safely disable the hold.
|
|
141
|
+
*
|
|
142
|
+
* @param deferralEligible - Whether refinement and foveation permit this request to wait.
|
|
143
|
+
* @param timeSinceMovement - Seconds since the current viewport last changed pose.
|
|
144
|
+
* @param foveatedTimeDelay - Maximum delay after motion, in seconds.
|
|
145
|
+
* @returns `true` only while an eligible request remains inside a positive finite delay.
|
|
146
|
+
*/
|
|
147
|
+
export function isFoveatedRequestDelayActive(deferralEligible, timeSinceMovement, foveatedTimeDelay) {
|
|
148
|
+
return (deferralEligible &&
|
|
149
|
+
Number.isFinite(timeSinceMovement) &&
|
|
150
|
+
Number.isFinite(foveatedTimeDelay) &&
|
|
151
|
+
foveatedTimeDelay > 0 &&
|
|
152
|
+
timeSinceMovement < foveatedTimeDelay);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Encodes request priority into independent decimal bands.
|
|
156
|
+
*
|
|
157
|
+
* Smaller values load first. Requests inside the moving-camera delay are kept out of this queue;
|
|
158
|
+
* eligible requests are ordered by the progressive-coverage flag, distance from the view center,
|
|
159
|
+
* and finally the established reverse-SSE order. Normalizing reverse SSE preserves its relative
|
|
160
|
+
* ordering while preventing one metric from spilling into the next priority band.
|
|
161
|
+
*
|
|
162
|
+
* @param parameters - Independent request-priority measurements for a tile.
|
|
163
|
+
* @returns Numeric priority for `RequestScheduler`; smaller values start first.
|
|
164
|
+
*/
|
|
165
|
+
export function calculateTileRequestPriority(parameters) {
|
|
166
|
+
const normalizedReverseScreenSpaceError = parameters.rootScreenSpaceError > 0
|
|
167
|
+
? Math.min(Math.max(parameters.reverseScreenSpaceError / parameters.rootScreenSpaceError, 0), 1)
|
|
168
|
+
: 0;
|
|
169
|
+
const preferredSortingDigits = Math.floor(normalizedReverseScreenSpaceError * (PREFERRED_SORTING_DIGITS - 1));
|
|
170
|
+
const normalizedFoveatedFactor = Number.isFinite(parameters.foveatedFactor)
|
|
171
|
+
? Math.min(Math.max(parameters.foveatedFactor, 0), 1)
|
|
172
|
+
: 0;
|
|
173
|
+
const foveatedSortingDigits = Math.floor(normalizedFoveatedFactor * (PREFERRED_SORTING_DIGITS - 1)) * FOVEATED_SORTING_SCALE;
|
|
174
|
+
const progressiveResolutionDigits = parameters.priorityProgressiveResolution
|
|
175
|
+
? 0
|
|
176
|
+
: PROGRESSIVE_RESOLUTION_PENALTY;
|
|
177
|
+
return progressiveResolutionDigits + foveatedSortingDigits + preferredSortingDigits;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=tiles-3d-request-priority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiles-3d-request-priority.js","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/tiles-3d-request-priority.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,8CAA8C;AAC9C,gCAAgC;AAEhC,wFAAwF;AAExF,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,cAAc,EAAsB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAC,eAAe,EAAC,2BAAwB;AAEhD,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,MAAM,8BAA8B,GAAG,WAAW,CAAC;AAEnD,MAAM,qBAAqB,GAAG,IAAI,cAAc,EAAE,CAAC;AACnD,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC1C,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAAE,CAAC;AAChD,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC1C,MAAM,2BAA2B,GAAG,IAAI,OAAO,EAAE,CAAC;AAkElD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoB,EACpB,YAAoB,EACpB,mBAA2B;IAE3B,OAAO,YAAY,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,mBAAmB,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CACrC,cAAoD,EACpD,MAA8B;IAE9B,MAAM,cAAc,GAClB,cAAc,YAAY,cAAc;QACtC,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC9D,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,cAAc,CAAC;IAExC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1F,mBAAmB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErE,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,SAAS,EAAE,CAAC;IAC7D,IAAI,oBAAoB,IAAI,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,2BAA2B;SACxB,IAAI,CAAC,mBAAmB,CAAC;SACzB,SAAS,EAAE;SACX,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,MAAM,CAAC;SACX,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,2BAA2B,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,2BAA2B,CAAC,SAAS,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,+BAA+B,CAC7C,gBAAwB,EACxB,sBAA0C,EAC1C,uBAA+B,EAC/B,mCAA2C;IAE3C,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACrD,mCAAmC,IAAI,CAAC;QACxC,mCAAmC,GAAG,GAAG,EACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,sBAAsB,KAAK,SAAS,IAAI,sBAAsB,GAAG,uBAAuB,CAAC;AAClG,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAAsC;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC3D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,qBAAqB,GAAG,UAAU,CAAC,UAAU,KAAK,eAAe,CAAC,OAAO,CAAC;IAChF,IACE,CAAC,qBAAqB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACxD,CAAC,UAAU,CAAC,wBAAwB;QACpC,QAAQ,IAAI,CAAC;QACb,CAAC,qBAAqB;YACpB,UAAU,CAAC,iBAAiB;YAC5B,UAAU,CAAC,6BAA6B,CAAC,EAC3C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,mBAAmB,GACvB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC,mBAAmB,GAAG,CAAC;QACnF,CAAC,CAAC,UAAU,CAAC,mBAAmB;QAChC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAClB,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,QAAQ,GAAG,qBAAqB,CAAC;IACpD,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,IAAI,qBAAqB,IAAI,UAAU,EAAE,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAClC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,qBAAqB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,EAC5F,CAAC,CACF,CAAC;IACF,MAAM,qBAAqB,GACzB,OAAO,UAAU,CAAC,qBAAqB,KAAK,UAAU;QACpD,CAAC,CAAC,UAAU,CAAC,qBAAqB;QAClC,CAAC,CAAC,mBAAmB,CAAC;IAC1B,MAAM,sBAAsB,GAAG,qBAAqB,CAClD,UAAU,CAAC,iCAAiC,EAC5C,UAAU,CAAC,uBAAuB,EAClC,mBAAmB,CACpB,CAAC;IACF,MAAM,0BAA0B,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACxE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,uBAAuB,CAAC;QACnF,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,gBAAgB,GACpB,UAAU,CAAC,gBAAgB,KAAK,CAAC,IAAI,UAAU,CAAC,sBAAsB,KAAK,SAAS;QAClF,CAAC,CAAC,UAAU,CAAC,sBAAsB,GAAG,GAAG;QACzC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAElC,OAAO,UAAU,CAAC,uBAAuB,GAAG,0BAA0B,IAAI,gBAAgB,CAAC;AAC7F,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAC1C,gBAAyB,EACzB,iBAAyB,EACzB,iBAAyB;IAEzB,OAAO,CACL,gBAAgB;QAChB,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAClC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAClC,iBAAiB,GAAG,CAAC;QACrB,iBAAiB,GAAG,iBAAiB,CACtC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,UAAyC;IACpF,MAAM,iCAAiC,GACrC,UAAU,CAAC,oBAAoB,GAAG,CAAC;QACjC,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,uBAAuB,GAAG,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC,EACjF,CAAC,CACF;QACH,CAAC,CAAC,CAAC,CAAC;IACR,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CACvC,iCAAiC,GAAG,CAAC,wBAAwB,GAAG,CAAC,CAAC,CACnE,CAAC;IACF,MAAM,wBAAwB,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;QACzE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,qBAAqB,GACzB,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC;IACjG,MAAM,2BAA2B,GAAG,UAAU,CAAC,6BAA6B;QAC1E,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,8BAA8B,CAAC;IACnC,OAAO,2BAA2B,GAAG,qBAAqB,GAAG,sBAAsB,CAAC;AACtF,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export type Viewport = {
|
|
|
11
11
|
height: number;
|
|
12
12
|
width: number;
|
|
13
13
|
zoom: number;
|
|
14
|
+
/** Perspective vertical field of view in degrees, when exposed by the viewport. */
|
|
15
|
+
fovy?: number;
|
|
14
16
|
/** Whether this viewport uses an orthographic projection. */
|
|
15
17
|
orthographic?: boolean;
|
|
16
18
|
/**
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;iEACiE;AACjE,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE;QACd,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG;IAC1C,mGAAmG;IACnG,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,mGAAmG;IACnG,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doubly-linked-list.d.ts","sourceRoot":"","sources":["../../src/utils/doubly-linked-list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doubly-linked-list.d.ts","sourceRoot":"","sources":["../../src/utils/doubly-linked-list.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,oBAAoB,EAAC,qCAAkC;AAE/D;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACzC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACzC,OAAO,SAAK;IAEZ,IAAI,MAAM,WAET;IAED;;;;OAIG;IACH,GAAG,CAAC,IAAI,KAAA;IAgBR;;;OAGG;IACH,MAAM,CAAC,IAAI,KAAA;IA4BX;;;;OAIG;IACH,MAAM,CAAC,IAAI,KAAA,EAAE,QAAQ,KAAA;IAUrB,OAAO,CAAC,IAAI,KAAA,EAAE,QAAQ,KAAA;CAgBvB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
1
2
|
// This file is derived from the Cesium code base under Apache 2 license
|
|
2
3
|
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
3
4
|
import { DoublyLinkedListNode } from "./doubly-linked-list-node.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doubly-linked-list.js","sourceRoot":"","sources":["../../src/utils/doubly-linked-list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doubly-linked-list.js","sourceRoot":"","sources":["../../src/utils/doubly-linked-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-array.d.ts","sourceRoot":"","sources":["../../src/utils/managed-array.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"managed-array.d.ts","sourceRoot":"","sources":["../../src/utils/managed-array.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,IAAI,gBAAa;IACjB,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;gBAEJ,MAAM,SAAI;IAKtB;;;;;;OAMG;IACH,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,MAAM,QAAA,EAKhB;IAED;;;;;;OAMG;IACH,IAAI,MAAM,UAET;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,KAAA;IAKT;;;;;OAKG;IACH,GAAG,CAAC,KAAK,KAAA,EAAE,OAAO,KAAA;IAelB,MAAM,CAAC,OAAO,KAAA;IASd;;;;OAIG;IACH,IAAI;IAIJ;;;;OAIG;IACH,IAAI,CAAC,OAAO,KAAA;IAQZ;;;;OAIG;IACH,GAAG;IAMH;;;;OAIG;IACH,OAAO,CAAC,MAAM,KAAA;IAQd;;;;OAIG;IACH,MAAM,CAAC,MAAM,KAAA;IAMb;;;;OAIG;IACH,IAAI,CAAC,MAAM,KAAA;IAOX,KAAK;IAML,IAAI,CAAC,MAAM,KAAA;CAGZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-array.js","sourceRoot":"","sources":["../../src/utils/managed-array.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"managed-array.js","sourceRoot":"","sources":["../../src/utils/managed-array.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/tiles",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.2",
|
|
4
4
|
"description": "Common components for different tiles loaders.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@loaders.gl/loader-utils": "5.0.0-alpha.
|
|
46
|
-
"@loaders.gl/math": "5.0.0-alpha.
|
|
47
|
-
"@loaders.gl/schema": "5.0.0-alpha.
|
|
45
|
+
"@loaders.gl/loader-utils": "5.0.0-alpha.2",
|
|
46
|
+
"@loaders.gl/math": "5.0.0-alpha.2",
|
|
47
|
+
"@loaders.gl/schema": "5.0.0-alpha.2",
|
|
48
48
|
"@math.gl/core": "^4.1.0",
|
|
49
49
|
"@math.gl/culling": "^4.1.0",
|
|
50
50
|
"@math.gl/geospatial": "^4.1.0",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@loaders.gl/core": "~5.0.0-alpha.0"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "27bcc0db684abb66a83003263c9d1cafd9e5b2dd"
|
|
61
61
|
}
|
package/src/index.ts
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
export type {Tileset3DProps} from './tileset-3d/common/tileset-3d';
|
|
6
|
+
export type {FoveatedInterpolationCallback} from './tileset-3d/helpers/tiles-3d-request-priority';
|
|
6
7
|
export {Tileset3D} from './tileset-3d/common/tileset-3d';
|
|
7
8
|
export type {
|
|
8
9
|
TileContentLoadResult,
|
|
10
|
+
TileChildrenLoadResult,
|
|
9
11
|
TilesetContentFormats,
|
|
10
12
|
TilesetJSON,
|
|
11
13
|
TilesetSourceInput,
|
|
@@ -19,7 +21,23 @@ export {isTileset3DSource} from './tileset-3d/common/tileset-source';
|
|
|
19
21
|
export type {IndexedArchiveTilesetSourceOptions} from './tileset-3d/common/indexed-archive-tileset-source';
|
|
20
22
|
export {IndexedArchiveTilesetSource} from './tileset-3d/common/indexed-archive-tileset-source';
|
|
21
23
|
export {Tile3D} from './tileset-3d/common/tile-3d';
|
|
24
|
+
export type {TileChildrenState} from './tileset-3d/common/tile-3d';
|
|
22
25
|
export {Tiles3DSource} from './tileset-3d/format-3d-tiles/tiles-3d-source';
|
|
26
|
+
export type {ImplicitTilingStats} from './tileset-3d/format-3d-tiles/tiles-3d-source';
|
|
27
|
+
export type {
|
|
28
|
+
ImplicitAvailability,
|
|
29
|
+
ImplicitSubtreeReference,
|
|
30
|
+
ImplicitTileCoordinates,
|
|
31
|
+
ImplicitTileHeader,
|
|
32
|
+
ImplicitTilingDescriptor,
|
|
33
|
+
MaterializedImplicitSubtree,
|
|
34
|
+
ParsedImplicitSubtree
|
|
35
|
+
} from './tileset-3d/format-3d-tiles/implicit-tiling';
|
|
36
|
+
export {
|
|
37
|
+
createImplicitSubtreeReference,
|
|
38
|
+
materializeImplicitSubtree,
|
|
39
|
+
replaceImplicitUrlTemplate
|
|
40
|
+
} from './tileset-3d/format-3d-tiles/implicit-tiling';
|
|
23
41
|
export {I3SSource} from './tileset-3d/format-i3s/i3s-source';
|
|
24
42
|
|
|
25
43
|
export {TilesetTraverser} from './tileset-3d/common/tileset-traverser';
|
|
@@ -84,6 +102,7 @@ export {createBoundingVolume} from './tileset-3d/helpers/bounding-volume';
|
|
|
84
102
|
export {calculateTransformProps} from './tileset-3d/helpers/transform-utils';
|
|
85
103
|
|
|
86
104
|
export {getFrameState} from './tileset-3d/helpers/frame-state';
|
|
105
|
+
export type {GetFrameStateOptions} from './tileset-3d/helpers/frame-state';
|
|
87
106
|
export {getLodStatus} from './tileset-3d/helpers/i3s-lod';
|
|
88
107
|
|
|
89
108
|
export {
|
package/src/point-cloud/types.ts
CHANGED
package/src/raster-set.ts
CHANGED
|
@@ -10,57 +10,76 @@ import type {
|
|
|
10
10
|
} from '@loaders.gl/loader-utils';
|
|
11
11
|
|
|
12
12
|
/** Accepted raster request currently retained by {@link RasterSet}. */
|
|
13
|
-
export type RasterSetRequest<
|
|
13
|
+
export type RasterSetRequest<
|
|
14
|
+
DataT extends RasterData = RasterData,
|
|
15
|
+
ParametersT extends GetRasterParameters = GetRasterParameters
|
|
16
|
+
> = {
|
|
14
17
|
/** Unique request id assigned by the manager. */
|
|
15
18
|
requestId: number;
|
|
16
19
|
/** Raster request parameters that produced the accepted raster payload. */
|
|
17
|
-
parameters:
|
|
20
|
+
parameters: ParametersT;
|
|
18
21
|
/** Raster retained as the current output. */
|
|
19
22
|
raster: DataT;
|
|
20
23
|
};
|
|
21
24
|
|
|
22
25
|
/** Arguments supplied to {@link RasterSetBaseProps.shouldRefetch}. */
|
|
23
|
-
export type RasterSetShouldRefetchArgs<
|
|
26
|
+
export type RasterSetShouldRefetchArgs<
|
|
27
|
+
DataT extends RasterData = RasterData,
|
|
28
|
+
ParametersT extends GetRasterParameters = GetRasterParameters,
|
|
29
|
+
MetadataT extends RasterSourceMetadata = RasterSourceMetadata
|
|
30
|
+
> = {
|
|
24
31
|
/** Current accepted request retained by the raster manager, if any. */
|
|
25
|
-
currentRequest: RasterSetRequest<DataT> | null;
|
|
32
|
+
currentRequest: RasterSetRequest<DataT, ParametersT> | null;
|
|
26
33
|
/** Source metadata resolved by {@link RasterSet.loadMetadata}, if available. */
|
|
27
|
-
metadata:
|
|
34
|
+
metadata: MetadataT | null;
|
|
28
35
|
/** Candidate raster request parameters under evaluation. */
|
|
29
|
-
nextParameters:
|
|
36
|
+
nextParameters: ParametersT;
|
|
30
37
|
};
|
|
31
38
|
|
|
32
39
|
/** Configuration shared by all {@link RasterSet} instances. */
|
|
33
|
-
export type RasterSetBaseProps<
|
|
40
|
+
export type RasterSetBaseProps<
|
|
41
|
+
DataT extends RasterData = RasterData,
|
|
42
|
+
ParametersT extends GetRasterParameters = GetRasterParameters,
|
|
43
|
+
MetadataT extends RasterSourceMetadata = RasterSourceMetadata
|
|
44
|
+
> = {
|
|
34
45
|
/** Callback used to load source metadata. */
|
|
35
|
-
getMetadata: () => Promise<
|
|
46
|
+
getMetadata: () => Promise<MetadataT>;
|
|
36
47
|
/** Callback used to load raster data for a viewport-derived request. */
|
|
37
|
-
getRaster: (parameters:
|
|
48
|
+
getRaster: (parameters: ParametersT) => Promise<DataT>;
|
|
38
49
|
/** Debounce interval applied before issuing raster requests. */
|
|
39
50
|
debounceTime?: number;
|
|
40
51
|
/** Optional policy callback that can skip redundant raster requests. */
|
|
41
|
-
shouldRefetch?: (args: RasterSetShouldRefetchArgs<DataT>) => boolean;
|
|
52
|
+
shouldRefetch?: (args: RasterSetShouldRefetchArgs<DataT, ParametersT, MetadataT>) => boolean;
|
|
42
53
|
};
|
|
43
54
|
|
|
44
55
|
/** Options for creating a {@link RasterSet}. */
|
|
45
|
-
export type RasterSetProps<
|
|
56
|
+
export type RasterSetProps<
|
|
57
|
+
DataT extends RasterData = RasterData,
|
|
58
|
+
ParametersT extends GetRasterParameters = GetRasterParameters,
|
|
59
|
+
MetadataT extends RasterSourceMetadata = RasterSourceMetadata
|
|
60
|
+
> = Partial<RasterSetBaseProps<DataT, ParametersT, MetadataT>> & {
|
|
46
61
|
/** Optional loaders.gl raster source backing this manager. */
|
|
47
|
-
rasterSource?: RasterSource | null;
|
|
62
|
+
rasterSource?: RasterSource<DataT, ParametersT, MetadataT> | null;
|
|
48
63
|
};
|
|
49
64
|
|
|
50
65
|
/** Subscription callbacks emitted by {@link RasterSet}. */
|
|
51
|
-
export type RasterSetListener<
|
|
66
|
+
export type RasterSetListener<
|
|
67
|
+
DataT extends RasterData = RasterData,
|
|
68
|
+
ParametersT extends GetRasterParameters = GetRasterParameters,
|
|
69
|
+
MetadataT extends RasterSourceMetadata = RasterSourceMetadata
|
|
70
|
+
> = {
|
|
52
71
|
/** Fired when metadata/raster loading starts or stops. */
|
|
53
72
|
onLoadingStateChange?: (isLoading: boolean) => void;
|
|
54
73
|
/** Fired when source metadata resolves successfully. */
|
|
55
|
-
onMetadataLoad?: (metadata:
|
|
74
|
+
onMetadataLoad?: (metadata: MetadataT) => void;
|
|
56
75
|
/** Fired when metadata loading fails. */
|
|
57
76
|
onMetadataLoadError?: (error: Error) => void;
|
|
58
77
|
/** Fired when a new raster request is issued. */
|
|
59
|
-
onRasterLoadStart?: (requestId: number, parameters:
|
|
78
|
+
onRasterLoadStart?: (requestId: number, parameters: ParametersT) => void;
|
|
60
79
|
/** Fired when a raster request resolves and becomes current. */
|
|
61
|
-
onRasterLoad?: (request: RasterSetRequest<DataT>) => void;
|
|
80
|
+
onRasterLoad?: (request: RasterSetRequest<DataT, ParametersT>) => void;
|
|
62
81
|
/** Fired when a raster request fails. */
|
|
63
|
-
onRasterLoadError?: (requestId: number, error: Error, parameters:
|
|
82
|
+
onRasterLoadError?: (requestId: number, error: Error, parameters: ParametersT) => void;
|
|
64
83
|
/** Fired when metadata or the current raster changes. */
|
|
65
84
|
onUpdate?: () => void;
|
|
66
85
|
};
|
|
@@ -84,14 +103,24 @@ const DEFAULT_RASTERSET_PROPS: Required<Omit<RasterSetProps, 'rasterSource'>> =
|
|
|
84
103
|
shouldRefetch: () => true
|
|
85
104
|
};
|
|
86
105
|
|
|
87
|
-
/**
|
|
88
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Shared raster request manager used by viewport-driven raster examples and layers.
|
|
108
|
+
*
|
|
109
|
+
* @typeParam DataT Raster payload retained by the manager.
|
|
110
|
+
* @typeParam ParametersT Request parameters accepted by the source.
|
|
111
|
+
* @typeParam MetadataT Metadata returned by the source.
|
|
112
|
+
*/
|
|
113
|
+
export class RasterSet<
|
|
114
|
+
DataT extends RasterData = RasterData,
|
|
115
|
+
ParametersT extends GetRasterParameters = GetRasterParameters,
|
|
116
|
+
MetadataT extends RasterSourceMetadata = RasterSourceMetadata
|
|
117
|
+
> {
|
|
89
118
|
/** Cached metadata returned by the backing source, if any. */
|
|
90
|
-
metadata:
|
|
119
|
+
metadata: MetadataT | null = null;
|
|
91
120
|
|
|
92
|
-
private _opts: Required<RasterSetProps<DataT>>;
|
|
93
|
-
private _listeners = new Set<RasterSetListener<DataT>>();
|
|
94
|
-
private _currentRequest: RasterSetRequest<DataT> | null = null;
|
|
121
|
+
private _opts: Required<RasterSetProps<DataT, ParametersT, MetadataT>>;
|
|
122
|
+
private _listeners = new Set<RasterSetListener<DataT, ParametersT, MetadataT>>();
|
|
123
|
+
private _currentRequest: RasterSetRequest<DataT, ParametersT> | null = null;
|
|
95
124
|
private _lastAcceptedRequestId = -1;
|
|
96
125
|
private _nextRequestId = 0;
|
|
97
126
|
private _loadCounter = 0;
|
|
@@ -100,7 +129,7 @@ export class RasterSet<DataT = RasterData> {
|
|
|
100
129
|
private _finalized = false;
|
|
101
130
|
|
|
102
131
|
/** Creates a raster manager from a source or direct callbacks. */
|
|
103
|
-
constructor(opts: RasterSetProps<DataT>) {
|
|
132
|
+
constructor(opts: RasterSetProps<DataT, ParametersT, MetadataT>) {
|
|
104
133
|
this._opts = this._normalizeOptions(opts);
|
|
105
134
|
if (!this._opts.rasterSource && (!opts.getRaster || !opts.getMetadata)) {
|
|
106
135
|
throw new Error(
|
|
@@ -110,11 +139,18 @@ export class RasterSet<DataT = RasterData> {
|
|
|
110
139
|
}
|
|
111
140
|
|
|
112
141
|
/** Convenience factory for wrapping a loaders.gl {@link RasterSource}. */
|
|
113
|
-
static fromRasterSource<
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
142
|
+
static fromRasterSource<
|
|
143
|
+
DataT extends RasterData = RasterData,
|
|
144
|
+
ParametersT extends GetRasterParameters = GetRasterParameters,
|
|
145
|
+
MetadataT extends RasterSourceMetadata = RasterSourceMetadata
|
|
146
|
+
>(
|
|
147
|
+
rasterSource: RasterSource<DataT, ParametersT, MetadataT>,
|
|
148
|
+
opts: Omit<
|
|
149
|
+
RasterSetProps<DataT, ParametersT, MetadataT>,
|
|
150
|
+
'rasterSource' | 'getRaster' | 'getMetadata'
|
|
151
|
+
> = {}
|
|
152
|
+
): RasterSet<DataT, ParametersT, MetadataT> {
|
|
153
|
+
return new RasterSet<DataT, ParametersT, MetadataT>({...opts, rasterSource});
|
|
118
154
|
}
|
|
119
155
|
|
|
120
156
|
/** Whether the manager has no requests in flight and a current raster. */
|
|
@@ -128,23 +164,23 @@ export class RasterSet<DataT = RasterData> {
|
|
|
128
164
|
}
|
|
129
165
|
|
|
130
166
|
/** Current accepted request and raster payload, if any. */
|
|
131
|
-
get currentRequest(): RasterSetRequest<DataT> | null {
|
|
167
|
+
get currentRequest(): RasterSetRequest<DataT, ParametersT> | null {
|
|
132
168
|
return this._currentRequest;
|
|
133
169
|
}
|
|
134
170
|
|
|
135
171
|
/** Backing raster source when constructed from one. */
|
|
136
|
-
get rasterSource(): RasterSource | null {
|
|
172
|
+
get rasterSource(): RasterSource<DataT, ParametersT, MetadataT> | null {
|
|
137
173
|
return this._opts.rasterSource;
|
|
138
174
|
}
|
|
139
175
|
|
|
140
176
|
/** Subscribes to metadata and raster lifecycle events. */
|
|
141
|
-
subscribe(listener: RasterSetListener<DataT>): () => void {
|
|
177
|
+
subscribe(listener: RasterSetListener<DataT, ParametersT, MetadataT>): () => void {
|
|
142
178
|
this._listeners.add(listener);
|
|
143
179
|
return () => this._listeners.delete(listener);
|
|
144
180
|
}
|
|
145
181
|
|
|
146
182
|
/** Updates source callbacks or debounce settings, resetting state when the source changes. */
|
|
147
|
-
setOptions(opts: RasterSetProps<DataT>): void {
|
|
183
|
+
setOptions(opts: RasterSetProps<DataT, ParametersT, MetadataT>): void {
|
|
148
184
|
const previousRasterSource = this._opts.rasterSource;
|
|
149
185
|
const nextOptions = this._normalizeOptions({...this._opts, ...opts});
|
|
150
186
|
const sourceChanged =
|
|
@@ -165,7 +201,7 @@ export class RasterSet<DataT = RasterData> {
|
|
|
165
201
|
}
|
|
166
202
|
|
|
167
203
|
/** Loads metadata from the current raster source or callbacks. */
|
|
168
|
-
async loadMetadata(): Promise<
|
|
204
|
+
async loadMetadata(): Promise<MetadataT> {
|
|
169
205
|
this._startLoading();
|
|
170
206
|
try {
|
|
171
207
|
const metadata = await this._opts.getMetadata();
|
|
@@ -192,7 +228,7 @@ export class RasterSet<DataT = RasterData> {
|
|
|
192
228
|
}
|
|
193
229
|
|
|
194
230
|
/** Debounces and issues a new raster request for the supplied parameters. */
|
|
195
|
-
requestRaster(parameters:
|
|
231
|
+
requestRaster(parameters: ParametersT, debounceTime = this._opts.debounceTime): number {
|
|
196
232
|
if (!this.shouldRefetchRaster(parameters)) {
|
|
197
233
|
return this._currentRequest?.requestId ?? -1;
|
|
198
234
|
}
|
|
@@ -213,7 +249,7 @@ export class RasterSet<DataT = RasterData> {
|
|
|
213
249
|
}
|
|
214
250
|
|
|
215
251
|
/** Returns `true` when the supplied parameters warrant a new raster fetch. */
|
|
216
|
-
shouldRefetchRaster(parameters:
|
|
252
|
+
shouldRefetchRaster(parameters: ParametersT): boolean {
|
|
217
253
|
return this._opts.shouldRefetch({
|
|
218
254
|
currentRequest: this._currentRequest,
|
|
219
255
|
metadata: this.metadata,
|
|
@@ -230,7 +266,7 @@ export class RasterSet<DataT = RasterData> {
|
|
|
230
266
|
}
|
|
231
267
|
|
|
232
268
|
/** Loads a raster immediately and accepts it only if it is the newest completed request. */
|
|
233
|
-
private async _loadRaster(requestId: number, parameters:
|
|
269
|
+
private async _loadRaster(requestId: number, parameters: ParametersT): Promise<void> {
|
|
234
270
|
if (this._finalized) {
|
|
235
271
|
return;
|
|
236
272
|
}
|
|
@@ -276,7 +312,9 @@ export class RasterSet<DataT = RasterData> {
|
|
|
276
312
|
}
|
|
277
313
|
|
|
278
314
|
/** Resolves current options from either a source or direct callbacks. */
|
|
279
|
-
private _normalizeOptions(
|
|
315
|
+
private _normalizeOptions(
|
|
316
|
+
opts: RasterSetProps<DataT, ParametersT, MetadataT>
|
|
317
|
+
): Required<RasterSetProps<DataT, ParametersT, MetadataT>> {
|
|
280
318
|
const rasterSource = opts.rasterSource || null;
|
|
281
319
|
return {
|
|
282
320
|
...DEFAULT_RASTERSET_PROPS,
|
|
@@ -288,22 +326,22 @@ export class RasterSet<DataT = RasterData> {
|
|
|
288
326
|
if (rasterSource) {
|
|
289
327
|
return rasterSource.getMetadata();
|
|
290
328
|
}
|
|
291
|
-
return DEFAULT_RASTERSET_PROPS.getMetadata()
|
|
329
|
+
return DEFAULT_RASTERSET_PROPS.getMetadata() as Promise<MetadataT>;
|
|
292
330
|
}),
|
|
293
331
|
getRaster:
|
|
294
332
|
opts.getRaster ||
|
|
295
|
-
((parameters:
|
|
333
|
+
((parameters: ParametersT) => {
|
|
296
334
|
if (rasterSource) {
|
|
297
|
-
return rasterSource.getRaster(parameters)
|
|
335
|
+
return rasterSource.getRaster(parameters);
|
|
298
336
|
}
|
|
299
337
|
return DEFAULT_RASTERSET_PROPS.getRaster(parameters) as Promise<DataT>;
|
|
300
338
|
}),
|
|
301
339
|
debounceTime: opts.debounceTime ?? DEFAULT_RASTERSET_PROPS.debounceTime,
|
|
302
340
|
shouldRefetch:
|
|
303
341
|
(opts.shouldRefetch as
|
|
304
|
-
| ((args: RasterSetShouldRefetchArgs<DataT>) => boolean)
|
|
342
|
+
| ((args: RasterSetShouldRefetchArgs<DataT, ParametersT, MetadataT>) => boolean)
|
|
305
343
|
| undefined) ||
|
|
306
|
-
((args: RasterSetShouldRefetchArgs<DataT>) =>
|
|
344
|
+
((args: RasterSetShouldRefetchArgs<DataT, ParametersT, MetadataT>) =>
|
|
307
345
|
DEFAULT_RASTERSET_PROPS.shouldRefetch(args as RasterSetShouldRefetchArgs))
|
|
308
346
|
};
|
|
309
347
|
}
|