@loaders.gl/tiles 5.0.0-alpha.1 → 5.0.0-alpha.3
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 +17482 -3685
- package/dist/dist.min.js +4 -1
- package/dist/index.cjs +4594 -422
- package/dist/index.cjs.map +3 -4
- package/dist/index.d.ts +16 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -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 +4 -0
- package/dist/point-cloud/point-cloud-tileset.d.ts.map +1 -1
- package/dist/point-cloud/point-cloud-tileset.js +54 -12
- package/dist/point-cloud/point-cloud-tileset.js.map +1 -1
- package/dist/point-cloud/types.d.ts +17 -0
- 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 +37 -29
- package/dist/raster-set.d.ts.map +1 -1
- package/dist/raster-set.js +25 -2
- package/dist/raster-set.js.map +1 -1
- package/dist/spatial/format-spatial-reference.d.ts +67 -0
- package/dist/spatial/format-spatial-reference.d.ts.map +1 -0
- package/dist/spatial/format-spatial-reference.js +233 -0
- package/dist/spatial/format-spatial-reference.js.map +1 -0
- package/dist/spatial/get-spatial-coordinate-frame.d.ts +9 -0
- package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +1 -0
- package/dist/spatial/get-spatial-coordinate-frame.js +58 -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/spatial-coordinate-transformer.d.ts +48 -0
- package/dist/spatial/spatial-coordinate-transformer.d.ts.map +1 -0
- package/dist/spatial/spatial-coordinate-transformer.js +211 -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/tileset-3d/common/tile-3d.d.ts +147 -4
- package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -1
- package/dist/tileset-3d/common/tile-3d.js +358 -76
- package/dist/tileset-3d/common/tile-3d.js.map +1 -1
- package/dist/tileset-3d/common/tileset-3d.d.ts +168 -3
- package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -1
- package/dist/tileset-3d/common/tileset-3d.js +306 -23
- 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 +32 -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 +19 -1
- package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -1
- package/dist/tileset-3d/common/tileset-traverser.js +39 -7
- package/dist/tileset-3d/common/tileset-traverser.js.map +1 -1
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +136 -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 +384 -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 +86 -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 +196 -21
- 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-source.d.ts +14 -1
- package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +1 -1
- package/dist/tileset-3d/format-i3s/i3s-source.js +107 -17
- package/dist/tileset-3d/format-i3s/i3s-source.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 +4 -33
- package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -1
- package/dist/tileset-3d/helpers/frame-state.d.ts +62 -2
- package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -1
- package/dist/tileset-3d/helpers/frame-state.js +85 -9
- package/dist/tileset-3d/helpers/frame-state.js.map +1 -1
- package/dist/tileset-3d/helpers/i3s-lod.d.ts.map +1 -1
- package/dist/tileset-3d/helpers/i3s-lod.js +20 -8
- package/dist/tileset-3d/helpers/i3s-lod.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 +5 -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/index.ts +61 -1
- package/src/point-cloud/point-cloud-tile.ts +4 -0
- package/src/point-cloud/point-cloud-tileset.ts +70 -12
- package/src/point-cloud/types.ts +21 -0
- package/src/raster-set.ts +118 -45
- package/src/spatial/format-spatial-reference.ts +311 -0
- package/src/spatial/get-spatial-coordinate-frame.ts +74 -0
- package/src/spatial/i3s-elevation.ts +96 -0
- package/src/spatial/i3s-spatial-transformer.ts +957 -0
- package/src/spatial/spatial-coordinate-transformer.ts +276 -0
- package/src/spatial/spatial-resource-registry.ts +79 -0
- package/src/spatial/spatial-types.ts +422 -0
- package/src/tileset-3d/common/tile-3d.ts +435 -84
- package/src/tileset-3d/common/tileset-3d.ts +445 -23
- package/src/tileset-3d/common/tileset-cache.ts +15 -7
- package/src/tileset-3d/common/tileset-source.ts +36 -0
- package/src/tileset-3d/common/tileset-traverser.ts +40 -7
- package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +612 -0
- package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +254 -21
- 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-source.ts +119 -18
- 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 +5 -55
- package/src/tileset-3d/helpers/frame-state.ts +142 -11
- package/src/tileset-3d/helpers/i3s-lod.ts +22 -8
- 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 +9 -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":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Vector3 } from '@math.gl/core';
|
|
2
|
+
import type { Plane } from '@math.gl/culling';
|
|
2
3
|
export type BoundingRectangle = {
|
|
3
4
|
width: number;
|
|
4
5
|
height: number;
|
|
@@ -11,6 +12,8 @@ export type Viewport = {
|
|
|
11
12
|
height: number;
|
|
12
13
|
width: number;
|
|
13
14
|
zoom: number;
|
|
15
|
+
/** Perspective vertical field of view in degrees, when exposed by the viewport. */
|
|
16
|
+
fovy?: number;
|
|
14
17
|
/** Whether this viewport uses an orthographic projection. */
|
|
15
18
|
orthographic?: boolean;
|
|
16
19
|
/**
|
|
@@ -18,6 +21,8 @@ export type Viewport = {
|
|
|
18
21
|
* Orthographic 3D Tiles traversal requires a positive, finite value to calculate SSE.
|
|
19
22
|
*/
|
|
20
23
|
metersPerPixel?: number;
|
|
24
|
+
/** Optional world-space clipping planes used to cull renderable tile content. */
|
|
25
|
+
clippingPlanes?: Plane[];
|
|
21
26
|
distanceScales: {
|
|
22
27
|
unitsPerMeter: number[];
|
|
23
28
|
metersPerUnit: number[];
|
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;AACtC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAE5C,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,iFAAiF;IACjF,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC;IACzB,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":"AAAA,sCAAsC;AAEtC,wEAAwE;AACxE,4FAA4F;AAE5F,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IACvB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACjB,MAAM,CAAQ;IACd,OAAO,CAAS;IAEhB,YAAY,MAAM,GAAG,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM;QACf,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK;QACP,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,OAAO;QAChB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAEnB,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,OAAO;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,GAAG;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM;QACZ,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAEpB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM;QACX,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,MAAM;QACT,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,MAAM;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
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.3",
|
|
4
4
|
"description": "Common components for different tiles loaders.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -42,13 +42,16 @@
|
|
|
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/
|
|
47
|
-
"@
|
|
48
|
-
"@math.gl/
|
|
49
|
-
"@math.gl/culling": "
|
|
50
|
-
"@math.gl/
|
|
51
|
-
"@math.gl/
|
|
45
|
+
"@loaders.gl/loader-utils": "5.0.0-alpha.3",
|
|
46
|
+
"@loaders.gl/schema": "5.0.0-alpha.3",
|
|
47
|
+
"@math.gl/core": "4.2.0-alpha.6",
|
|
48
|
+
"@math.gl/crs": "^4.2.0-alpha.6",
|
|
49
|
+
"@math.gl/culling": "4.2.0-alpha.6",
|
|
50
|
+
"@math.gl/geoid": "4.2.0-alpha.6",
|
|
51
|
+
"@math.gl/geometry-utils": "4.2.0-alpha.6",
|
|
52
|
+
"@math.gl/geospatial": "4.2.0-alpha.6",
|
|
53
|
+
"@math.gl/proj4": "^4.2.0-alpha.6",
|
|
54
|
+
"@math.gl/web-mercator": "4.2.0-alpha.6",
|
|
52
55
|
"@probe.gl/stats": "^4.1.1"
|
|
53
56
|
},
|
|
54
57
|
"devDependencies": {
|
|
@@ -57,5 +60,5 @@
|
|
|
57
60
|
"peerDependencies": {
|
|
58
61
|
"@loaders.gl/core": "~5.0.0-alpha.0"
|
|
59
62
|
},
|
|
60
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "6e6f532b04a2798191ee2d9a932ca73b7c7f3c8d"
|
|
61
64
|
}
|
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';
|
|
@@ -75,7 +93,8 @@ export type {
|
|
|
75
93
|
PointCloudTileContent,
|
|
76
94
|
PointCloudTileHeader,
|
|
77
95
|
PointCloudTilesetSource,
|
|
78
|
-
PointCloudTilesetViewState
|
|
96
|
+
PointCloudTilesetViewState,
|
|
97
|
+
PointCloudCoordinateSystem
|
|
79
98
|
} from './point-cloud/types';
|
|
80
99
|
export type {PointCloudTilesetOptions} from './point-cloud/point-cloud-tileset';
|
|
81
100
|
export {PointCloudTileset} from './point-cloud/point-cloud-tileset';
|
|
@@ -83,7 +102,48 @@ export {PointCloudTile} from './point-cloud/point-cloud-tile';
|
|
|
83
102
|
export {createBoundingVolume} from './tileset-3d/helpers/bounding-volume';
|
|
84
103
|
export {calculateTransformProps} from './tileset-3d/helpers/transform-utils';
|
|
85
104
|
|
|
105
|
+
export type {
|
|
106
|
+
CreateTilesetSpatialReferenceOptions,
|
|
107
|
+
TilesetCoordinateFrame,
|
|
108
|
+
TilesetElevationBounds,
|
|
109
|
+
TilesetElevationMode,
|
|
110
|
+
TilesetElevationProvider,
|
|
111
|
+
TilesetElevationRange,
|
|
112
|
+
TilesetElevationSample,
|
|
113
|
+
TilesetHeightReference,
|
|
114
|
+
TilesetOutputCoordinates,
|
|
115
|
+
TilesetSpatialOptions,
|
|
116
|
+
TilesetSpatialReference,
|
|
117
|
+
TilesetSpatialReferenceProvenance,
|
|
118
|
+
TilesetTargetHeightReference
|
|
119
|
+
} from './spatial/spatial-types';
|
|
120
|
+
export {
|
|
121
|
+
applyTilesetSpatialOptions,
|
|
122
|
+
createTilesetSpatialReference,
|
|
123
|
+
markTilesetSpatialReferenceTransformed
|
|
124
|
+
} from './spatial/spatial-types';
|
|
125
|
+
export {
|
|
126
|
+
get3DTilesSpatialReference,
|
|
127
|
+
getI3SSpatialReference
|
|
128
|
+
} from './spatial/format-spatial-reference';
|
|
129
|
+
export {SpatialCoordinateTransformer} from './spatial/spatial-coordinate-transformer';
|
|
130
|
+
export {getSpatialCoordinateFrame} from './spatial/spatial-coordinate-transformer';
|
|
131
|
+
export type {
|
|
132
|
+
I3SSpatialBounds,
|
|
133
|
+
I3SSpatialObb,
|
|
134
|
+
I3STransformedPositions
|
|
135
|
+
} from './spatial/i3s-spatial-transformer';
|
|
136
|
+
export {I3SSpatialTransformer} from './spatial/i3s-spatial-transformer';
|
|
137
|
+
export {
|
|
138
|
+
getGeoidModel,
|
|
139
|
+
registerGeoidModel,
|
|
140
|
+
registerGeoidModelFromPgm,
|
|
141
|
+
registerSpatialCrs,
|
|
142
|
+
registerSpatialDatumGrid
|
|
143
|
+
} from './spatial/spatial-resource-registry';
|
|
144
|
+
|
|
86
145
|
export {getFrameState} from './tileset-3d/helpers/frame-state';
|
|
146
|
+
export type {GetFrameStateOptions} from './tileset-3d/helpers/frame-state';
|
|
87
147
|
export {getLodStatus} from './tileset-3d/helpers/i3s-lod';
|
|
88
148
|
|
|
89
149
|
export {
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {Vector3} from '@math.gl/core';
|
|
2
6
|
import {BoundingSphere, CullingVolume, Plane} from '@math.gl/culling';
|
|
3
7
|
import type {Viewport} from '../types';
|
|
@@ -12,6 +16,10 @@ export type PointCloudTilesetOptions = {
|
|
|
12
16
|
debounceTime?: number;
|
|
13
17
|
minimumNodePixelSize?: number;
|
|
14
18
|
maximumScreenSpaceError?: number;
|
|
19
|
+
/** Override source LOD metric for point-cloud traversal. */
|
|
20
|
+
lodSelectionMetricType?: 'maxScreenThresholdSQ' | 'density-threshold';
|
|
21
|
+
/** Minimum projected point density at which a node is refined. */
|
|
22
|
+
densityThreshold?: number;
|
|
15
23
|
pointBudget?: number;
|
|
16
24
|
maxDepth?: number;
|
|
17
25
|
onTileLoad?: (tile: PointCloudTile) => void;
|
|
@@ -26,6 +34,8 @@ const DEFAULT_PROPS: PointCloudTilesetProps = {
|
|
|
26
34
|
debounceTime: 0,
|
|
27
35
|
minimumNodePixelSize: 150,
|
|
28
36
|
maximumScreenSpaceError: 1,
|
|
37
|
+
lodSelectionMetricType: 'maxScreenThresholdSQ',
|
|
38
|
+
densityThreshold: 1,
|
|
29
39
|
pointBudget: 2_000_000,
|
|
30
40
|
maxDepth: Number.POSITIVE_INFINITY,
|
|
31
41
|
onTileLoad: () => {},
|
|
@@ -303,6 +313,17 @@ export class PointCloudTileset {
|
|
|
303
313
|
|
|
304
314
|
/** Whether a tile should refine to children based on its projected screen radius. */
|
|
305
315
|
private shouldRefine(tile: PointCloudTile, traversalWeight: number): boolean {
|
|
316
|
+
if (
|
|
317
|
+
tile.level < this.options.maxDepth &&
|
|
318
|
+
Number.isFinite(traversalWeight) &&
|
|
319
|
+
(tile.header.lodSelectionMetricType || this.options.lodSelectionMetricType) ===
|
|
320
|
+
'density-threshold'
|
|
321
|
+
) {
|
|
322
|
+
const projectedArea = Math.max(1, Math.PI * traversalWeight * traversalWeight);
|
|
323
|
+
const density = tile.pointCount / projectedArea;
|
|
324
|
+
const threshold = tile.header.lodThreshold || this.options.densityThreshold;
|
|
325
|
+
return density < threshold;
|
|
326
|
+
}
|
|
306
327
|
return (
|
|
307
328
|
tile.level < this.options.maxDepth &&
|
|
308
329
|
Number.isFinite(traversalWeight) &&
|
|
@@ -593,10 +614,18 @@ export class PointCloudTileset {
|
|
|
593
614
|
if (!boundingVolume) {
|
|
594
615
|
return 1;
|
|
595
616
|
}
|
|
617
|
+
if (boundingVolume.coordinateFrame === 'cartesian') {
|
|
618
|
+
return 1;
|
|
619
|
+
}
|
|
596
620
|
|
|
597
621
|
const [minBounds, maxBounds] = boundingVolume.cartographicBounds;
|
|
598
|
-
const longitudeSpan =
|
|
599
|
-
|
|
622
|
+
const longitudeSpan = boundingVolume.coversFullLongitude
|
|
623
|
+
? 360
|
|
624
|
+
: boundingVolume.wrapsDateline
|
|
625
|
+
? 360 - Math.abs(maxBounds[0] - minBounds[0])
|
|
626
|
+
: Math.abs(maxBounds[0] - minBounds[0]);
|
|
627
|
+
const normalizedLongitudeSpan = Math.max(longitudeSpan, 0.000001);
|
|
628
|
+
return Math.max(1, Math.round(Math.log2(360 / normalizedLongitudeSpan)));
|
|
600
629
|
}
|
|
601
630
|
|
|
602
631
|
private haveSameIds(idsA: Set<string>, idsB: Set<string>): boolean {
|
|
@@ -618,16 +647,45 @@ export class PointCloudTileset {
|
|
|
618
647
|
*/
|
|
619
648
|
private getBoundingVolumeCorners(boundingVolume: PointCloudBoundingVolume): number[][] {
|
|
620
649
|
const [minBounds, maxBounds] = boundingVolume.cartographicBounds;
|
|
621
|
-
|
|
622
|
-
[
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
];
|
|
650
|
+
const longitudeIntervals = boundingVolume.coversFullLongitude
|
|
651
|
+
? [[-180, 180]]
|
|
652
|
+
: boundingVolume.wrapsDateline
|
|
653
|
+
? [
|
|
654
|
+
[minBounds[0], 180],
|
|
655
|
+
[-180, maxBounds[0]]
|
|
656
|
+
]
|
|
657
|
+
: [[minBounds[0], maxBounds[0]]];
|
|
658
|
+
const corners: number[][] = [];
|
|
659
|
+
const wrappedLongitudeSpan = 360 - Math.abs(maxBounds[0] - minBounds[0]);
|
|
660
|
+
const longitudeReference = minBounds[0] + wrappedLongitudeSpan / 2;
|
|
661
|
+
for (const [minimumLongitude, maximumLongitude] of longitudeIntervals) {
|
|
662
|
+
const normalizeLongitude = (longitude: number) => {
|
|
663
|
+
if (!boundingVolume.wrapsDateline) {
|
|
664
|
+
return longitude;
|
|
665
|
+
}
|
|
666
|
+
let normalizedLongitude = longitude;
|
|
667
|
+
while (normalizedLongitude - longitudeReference > 180) {
|
|
668
|
+
normalizedLongitude -= 360;
|
|
669
|
+
}
|
|
670
|
+
while (normalizedLongitude - longitudeReference < -180) {
|
|
671
|
+
normalizedLongitude += 360;
|
|
672
|
+
}
|
|
673
|
+
return normalizedLongitude;
|
|
674
|
+
};
|
|
675
|
+
const unwrappedMinimumLongitude = normalizeLongitude(minimumLongitude);
|
|
676
|
+
const unwrappedMaximumLongitude = normalizeLongitude(maximumLongitude);
|
|
677
|
+
corners.push(
|
|
678
|
+
[unwrappedMinimumLongitude, minBounds[1], minBounds[2] || 0],
|
|
679
|
+
[unwrappedMinimumLongitude, minBounds[1], maxBounds[2] || 0],
|
|
680
|
+
[unwrappedMinimumLongitude, maxBounds[1], minBounds[2] || 0],
|
|
681
|
+
[unwrappedMinimumLongitude, maxBounds[1], maxBounds[2] || 0],
|
|
682
|
+
[unwrappedMaximumLongitude, minBounds[1], minBounds[2] || 0],
|
|
683
|
+
[unwrappedMaximumLongitude, minBounds[1], maxBounds[2] || 0],
|
|
684
|
+
[unwrappedMaximumLongitude, maxBounds[1], minBounds[2] || 0],
|
|
685
|
+
[unwrappedMaximumLongitude, maxBounds[1], maxBounds[2] || 0]
|
|
686
|
+
);
|
|
687
|
+
}
|
|
688
|
+
return corners;
|
|
631
689
|
}
|
|
632
690
|
|
|
633
691
|
/**
|
package/src/point-cloud/types.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import type {DataSource, DataSourceOptions} from '@loaders.gl/loader-utils';
|
|
2
6
|
import type {MeshArrowTable} from '@loaders.gl/schema';
|
|
7
|
+
import type {TilesetSpatialReference} from '../spatial/spatial-types';
|
|
3
8
|
|
|
4
9
|
/**
|
|
5
10
|
* An accessor-like description for point cloud attributes.
|
|
@@ -30,6 +35,10 @@ export type PointCloudTileContent = {
|
|
|
30
35
|
coordinateSystem: PointCloudCoordinateSystem;
|
|
31
36
|
constantRGBA?: number[];
|
|
32
37
|
modelMatrix?: number[] | Float32Array;
|
|
38
|
+
/** Spatial descriptor for returned points, origins, and bounds. */
|
|
39
|
+
spatialReference?: TilesetSpatialReference;
|
|
40
|
+
/** Content bound expressed in the selected spatial output frame. */
|
|
41
|
+
spatialBoundingVolume?: PointCloudBoundingVolume;
|
|
33
42
|
};
|
|
34
43
|
|
|
35
44
|
/**
|
|
@@ -37,8 +46,14 @@ export type PointCloudTileContent = {
|
|
|
37
46
|
*/
|
|
38
47
|
export type PointCloudBoundingVolume = {
|
|
39
48
|
cartographicBounds: [min: number[], max: number[]];
|
|
49
|
+
/** True when the longitude interval crosses the antimeridian. */
|
|
50
|
+
wrapsDateline?: boolean;
|
|
51
|
+
/** True when the longitude interval covers the full globe. */
|
|
52
|
+
coversFullLongitude?: boolean;
|
|
40
53
|
center: number[];
|
|
41
54
|
radius: number;
|
|
55
|
+
/** Broad coordinate frame of `center` and `cartographicBounds`. */
|
|
56
|
+
coordinateFrame?: 'geographic' | 'cartesian';
|
|
42
57
|
};
|
|
43
58
|
|
|
44
59
|
/**
|
|
@@ -50,6 +65,12 @@ export type PointCloudTileHeader = {
|
|
|
50
65
|
pointCount: number;
|
|
51
66
|
geometricError: number;
|
|
52
67
|
boundingVolume: PointCloudBoundingVolume;
|
|
68
|
+
/** Bound expressed in the selected content/output frame; traversal retains geographic bounds. */
|
|
69
|
+
spatialBoundingVolume?: PointCloudBoundingVolume;
|
|
70
|
+
/** I3S LOD metric used to decide whether this node refines. */
|
|
71
|
+
lodSelectionMetricType?: 'maxScreenThresholdSQ' | 'density-threshold';
|
|
72
|
+
/** Source-provided LOD threshold for density or screen metrics. */
|
|
73
|
+
lodThreshold?: number;
|
|
53
74
|
};
|
|
54
75
|
|
|
55
76
|
/**
|