@loaders.gl/tiles 5.0.0-alpha.6 → 5.0.0-alpha.7
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/dist/dist.dev.js +5160 -2896
- package/dist/dist.min.js +4 -2
- package/dist/index.cjs +1509 -454
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/spatial/format-spatial-reference.d.ts +1 -0
- package/dist/spatial/format-spatial-reference.d.ts.map +1 -1
- package/dist/spatial/format-spatial-reference.js +104 -46
- package/dist/spatial/format-spatial-reference.js.map +1 -1
- package/dist/spatial/get-spatial-coordinate-frame.d.ts +12 -1
- package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +1 -1
- package/dist/spatial/get-spatial-coordinate-frame.js +105 -24
- package/dist/spatial/get-spatial-coordinate-frame.js.map +1 -1
- 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 +4 -0
- package/dist/spatial/spatial-coordinate-transformer.d.ts.map +1 -1
- package/dist/spatial/spatial-coordinate-transformer.js +89 -12
- package/dist/spatial/spatial-coordinate-transformer.js.map +1 -1
- 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-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 +29 -5
- package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -1
- package/dist/tileset-3d/common/tile-3d.js +147 -18
- package/dist/tileset-3d/common/tile-3d.js.map +1 -1
- package/dist/tileset-3d/common/tileset-3d.d.ts +14 -0
- package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -1
- package/dist/tileset-3d/common/tileset-3d.js +27 -1
- package/dist/tileset-3d/common/tileset-3d.js.map +1 -1
- 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 +3 -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.map +1 -1
- package/dist/tileset-3d/common/tileset-traverser.js +4 -3
- package/dist/tileset-3d/common/tileset-traverser.js.map +1 -1
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +47 -1
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -1
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +327 -30
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -1
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +32 -0
- 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 +265 -14
- 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 +5 -3
- 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 +7 -4
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -1
- package/dist/tileset-3d/helpers/bounding-volume.d.ts +7 -3
- package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -1
- package/dist/tileset-3d/helpers/bounding-volume.js +19 -61
- package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -1
- package/dist/tileset-3d/helpers/frame-state.d.ts +4 -0
- package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -1
- package/dist/tileset-3d/helpers/frame-state.js +6 -1
- package/dist/tileset-3d/helpers/frame-state.js.map +1 -1
- 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/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +13 -12
- package/src/index.ts +13 -1
- package/src/spatial/format-spatial-reference.ts +127 -53
- package/src/spatial/get-spatial-coordinate-frame.ts +126 -31
- package/src/spatial/normalize-crs-identifier.ts +26 -0
- package/src/spatial/spatial-coordinate-transformer.ts +106 -15
- package/src/spatial/tiles-3d-spatial-transformer.ts +206 -0
- package/src/tileset-3d/common/tile-3d-contracts.ts +115 -0
- package/src/tileset-3d/common/tile-3d.ts +172 -18
- package/src/tileset-3d/common/tileset-3d.ts +29 -1
- package/src/tileset-3d/common/tileset-observability.ts +100 -0
- package/src/tileset-3d/common/tileset-source.ts +3 -0
- package/src/tileset-3d/common/tileset-traverser.ts +4 -3
- package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +481 -34
- package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +387 -14
- package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +7 -4
- package/src/tileset-3d/helpers/bounding-volume.ts +29 -62
- package/src/tileset-3d/helpers/frame-state.ts +6 -1
- package/src/tileset-3d/helpers/s2-bounding-volume.ts +35 -0
- package/src/types.ts +2 -0
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright vis.gl contributors
|
|
4
|
-
import { TILE_TYPE } from "../../constants.js";
|
|
4
|
+
import { TILE_REFINEMENT, TILE_TYPE } from "../../constants.js";
|
|
5
|
+
// TypeScript's legacy `node` resolution does not inspect package `exports`, but this public
|
|
6
|
+
// subpath is resolved by the package at runtime and avoids loading unrelated DGGS decoders.
|
|
7
|
+
// @ts-expect-error Conditional package subpath exports require a modern module resolver.
|
|
8
|
+
import { getS2DescendantIndex, getS2IndexFromToken, getS2TokenFromIndex } from '@math.gl/dggs/s2';
|
|
9
|
+
import { convertS2BoundingVolumeToOBB } from "../helpers/s2-bounding-volume.js";
|
|
5
10
|
const QUADTREE_CHILD_COUNT = 4;
|
|
6
11
|
const OCTREE_CHILD_COUNT = 8;
|
|
12
|
+
const AVAILABILITY_RANK_CACHE = new WeakMap();
|
|
7
13
|
/**
|
|
8
14
|
* Creates the lazy reference stored on an implicit subtree-root header.
|
|
9
15
|
*
|
|
@@ -15,7 +21,8 @@ export function createImplicitSubtreeReference(descriptor, coordinates) {
|
|
|
15
21
|
return {
|
|
16
22
|
coordinates,
|
|
17
23
|
subtreeUrl: replaceImplicitUrlTemplate(descriptor.subtreesUrlTemplate, coordinates),
|
|
18
|
-
descriptor
|
|
24
|
+
descriptor,
|
|
25
|
+
resource: findImplicitPackageResource(descriptor.resourceFiles, replaceImplicitUrlTemplate(descriptor.subtreesUrlTemplate, coordinates))
|
|
19
26
|
};
|
|
20
27
|
}
|
|
21
28
|
/**
|
|
@@ -33,6 +40,7 @@ export function createImplicitSubtreeReference(descriptor, coordinates) {
|
|
|
33
40
|
export function materializeImplicitSubtree(subtree, reference) {
|
|
34
41
|
const { descriptor } = reference;
|
|
35
42
|
validateImplicitDescriptor(descriptor);
|
|
43
|
+
validateImplicitSubtree(subtree, descriptor);
|
|
36
44
|
const counters = { tileCount: 0, childSubtreeCount: 0 };
|
|
37
45
|
const root = materializeAvailableTile(subtree, reference, { localLevel: 0, mortonIndex: 0 }, reference.coordinates, counters);
|
|
38
46
|
if (!root) {
|
|
@@ -40,6 +48,78 @@ export function materializeImplicitSubtree(subtree, reference) {
|
|
|
40
48
|
}
|
|
41
49
|
return { root, ...counters };
|
|
42
50
|
}
|
|
51
|
+
/** Validates availability lengths and tightly packed draft attribute/property row counts. */
|
|
52
|
+
function validateImplicitSubtree(subtree, descriptor) {
|
|
53
|
+
const childCount = getImplicitChildCount(descriptor.subdivisionScheme);
|
|
54
|
+
const tileElementCount = (childCount ** descriptor.subtreeLevels - 1) / (childCount - 1);
|
|
55
|
+
const childSubtreeElementCount = childCount ** descriptor.subtreeLevels;
|
|
56
|
+
validateAvailabilityLength(subtree.tileAvailability, tileElementCount, 'tile');
|
|
57
|
+
const contentAvailabilityStreams = Array.isArray(subtree.contentAvailability)
|
|
58
|
+
? subtree.contentAvailability
|
|
59
|
+
: subtree.contentAvailability
|
|
60
|
+
? [subtree.contentAvailability]
|
|
61
|
+
: [];
|
|
62
|
+
for (const contentAvailability of contentAvailabilityStreams) {
|
|
63
|
+
validateAvailabilityLength(contentAvailability, tileElementCount, 'content');
|
|
64
|
+
}
|
|
65
|
+
validateAvailabilityLength(subtree.childSubtreeAvailability, childSubtreeElementCount, 'child subtree');
|
|
66
|
+
const availableTileCount = countAvailableElements(subtree.tileAvailability, tileElementCount);
|
|
67
|
+
const availableContentCount = contentAvailabilityStreams[0]
|
|
68
|
+
? countAvailableElements(contentAvailabilityStreams[0], tileElementCount)
|
|
69
|
+
: 0;
|
|
70
|
+
validateAttributeLengths(subtree.tileAttributes, availableTileCount, 'tile');
|
|
71
|
+
validateAttributeLengths(subtree.contentAttributes, availableContentCount, 'content');
|
|
72
|
+
if (subtree.tilePropertyRows && subtree.tilePropertyRows.length !== availableTileCount) {
|
|
73
|
+
throw new Error('3DTILES_subtree: tile property-table count does not match availability');
|
|
74
|
+
}
|
|
75
|
+
if (subtree.contentPropertyRows && subtree.contentPropertyRows.length !== availableContentCount) {
|
|
76
|
+
throw new Error('3DTILES_subtree: content property-table count does not match availability');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** Verifies that a bitstream contains every bit required by its implicit subtree. */
|
|
80
|
+
function validateAvailabilityLength(availability, elementCount, label) {
|
|
81
|
+
if (availability.constant === 0 || availability.constant === 1) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (!availability.explicitBitstream ||
|
|
85
|
+
availability.explicitBitstream.byteLength * 8 < elementCount) {
|
|
86
|
+
throw new Error(`3DTILES_subtree: ${label} availability bitstream is too short`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Counts available elements within the meaningful, unpadded part of an availability stream. */
|
|
90
|
+
function countAvailableElements(availability, elementCount) {
|
|
91
|
+
if (availability.constant === 1) {
|
|
92
|
+
return elementCount;
|
|
93
|
+
}
|
|
94
|
+
if (availability.constant === 0) {
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
let availableCount = 0;
|
|
98
|
+
for (let index = 0; index < elementCount; index++) {
|
|
99
|
+
if (getAvailabilityValue(availability, index)) {
|
|
100
|
+
availableCount++;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return availableCount;
|
|
104
|
+
}
|
|
105
|
+
/** Validates standard subtree attribute accessor counts after availability expansion. */
|
|
106
|
+
function validateAttributeLengths(attributes, availableCount, label) {
|
|
107
|
+
const componentCounts = {
|
|
108
|
+
TILE_BOUNDING_BOX: 16,
|
|
109
|
+
TILE_BOUNDING_SPHERE: 4,
|
|
110
|
+
TILE_GEOMETRIC_ERROR: 1,
|
|
111
|
+
TILE_REFINE: 1,
|
|
112
|
+
TILE_TRANSFORM: 16,
|
|
113
|
+
CONTENT_BOUNDING_BOX: 16,
|
|
114
|
+
CONTENT_BOUNDING_SPHERE: 4
|
|
115
|
+
};
|
|
116
|
+
for (const [semantic, values] of Object.entries(attributes || {})) {
|
|
117
|
+
const componentCount = componentCounts[semantic];
|
|
118
|
+
if (componentCount && values.length !== availableCount * componentCount) {
|
|
119
|
+
throw new Error(`3DTILES_subtree: ${label} attribute ${semantic} count does not match availability`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
43
123
|
/**
|
|
44
124
|
* Replaces implicit coordinate placeholders in a content or subtree URL.
|
|
45
125
|
*
|
|
@@ -47,14 +127,20 @@ export function materializeImplicitSubtree(subtree, reference) {
|
|
|
47
127
|
* @param coordinates - Global coordinates to insert.
|
|
48
128
|
* @returns URL with all coordinate placeholders replaced.
|
|
49
129
|
*/
|
|
50
|
-
export function replaceImplicitUrlTemplate(templateUrl, coordinates) {
|
|
130
|
+
export function replaceImplicitUrlTemplate(templateUrl, coordinates, properties = {}) {
|
|
51
131
|
const values = {
|
|
52
132
|
level: coordinates.level,
|
|
53
133
|
x: coordinates.x,
|
|
54
134
|
y: coordinates.y,
|
|
55
|
-
z: coordinates.z
|
|
135
|
+
z: coordinates.z,
|
|
136
|
+
...properties
|
|
56
137
|
};
|
|
57
|
-
return templateUrl.replace(/{(
|
|
138
|
+
return templateUrl.replace(/{([^{}]+)}/g, (match, propertyName) => {
|
|
139
|
+
const value = Object.hasOwn(values, propertyName)
|
|
140
|
+
? values[propertyName]
|
|
141
|
+
: values[propertyName.toLowerCase()];
|
|
142
|
+
return value === undefined ? match : String(value);
|
|
143
|
+
});
|
|
58
144
|
}
|
|
59
145
|
/**
|
|
60
146
|
* Builds one available tile and recursively materializes descendants in the same subtree.
|
|
@@ -100,7 +186,7 @@ function materializeAvailableTile(subtree, reference, localCoordinates, globalCo
|
|
|
100
186
|
}
|
|
101
187
|
}
|
|
102
188
|
}
|
|
103
|
-
return formatImplicitTileHeader(subtree, descriptor, reference, globalCoordinates, contentAvailability, children);
|
|
189
|
+
return formatImplicitTileHeader(subtree, descriptor, reference, globalCoordinates, availabilityIndex, contentAvailability, children);
|
|
104
190
|
}
|
|
105
191
|
/**
|
|
106
192
|
* Creates a contentless placeholder for an available child subtree.
|
|
@@ -110,7 +196,9 @@ function materializeAvailableTile(subtree, reference, localCoordinates, globalCo
|
|
|
110
196
|
* @returns Header that participates in culling and SSE before its subtree is requested.
|
|
111
197
|
*/
|
|
112
198
|
function createLazyImplicitTileHeader(subtree, descriptor, coordinates) {
|
|
113
|
-
const
|
|
199
|
+
const resourceFiles = mergeImplicitPackageFiles(descriptor.resourceFiles, subtree.resourceFiles);
|
|
200
|
+
const childDescriptor = resourceFiles ? { ...descriptor, resourceFiles } : descriptor;
|
|
201
|
+
const reference = createImplicitSubtreeReference(childDescriptor, coordinates);
|
|
114
202
|
return {
|
|
115
203
|
id: getImplicitTileId(reference, coordinates),
|
|
116
204
|
children: [],
|
|
@@ -121,9 +209,126 @@ function createLazyImplicitTileHeader(subtree, descriptor, coordinates) {
|
|
|
121
209
|
lodMetricValue: descriptor.rootLodMetricValue / 2 ** coordinates.level,
|
|
122
210
|
refine: descriptor.refine,
|
|
123
211
|
type: TILE_TYPE.EMPTY,
|
|
124
|
-
implicitMetadata: getImplicitSubtreeMetadata(subtree)
|
|
212
|
+
implicitMetadata: getImplicitSubtreeMetadata(subtree),
|
|
213
|
+
_scaleGeometricError: descriptor.scaleGeometricError !== false
|
|
125
214
|
};
|
|
126
215
|
}
|
|
216
|
+
/** Decodes supported standard subtree attributes for one tightly packed available row. */
|
|
217
|
+
function getSubtreeAttributeOverrides(attributes, rowIndex, scope) {
|
|
218
|
+
if (!attributes || rowIndex < 0) {
|
|
219
|
+
return {};
|
|
220
|
+
}
|
|
221
|
+
const box = getAttributeComponents(attributes[scope === 'tile' ? 'TILE_BOUNDING_BOX' : 'CONTENT_BOUNDING_BOX'], rowIndex, 16);
|
|
222
|
+
const sphere = getAttributeComponents(attributes[scope === 'tile' ? 'TILE_BOUNDING_SPHERE' : 'CONTENT_BOUNDING_SPHERE'], rowIndex, 4);
|
|
223
|
+
const boundingVolume = box
|
|
224
|
+
? {
|
|
225
|
+
box: [
|
|
226
|
+
box[12],
|
|
227
|
+
box[13],
|
|
228
|
+
box[14],
|
|
229
|
+
box[0] / 2,
|
|
230
|
+
box[1] / 2,
|
|
231
|
+
box[2] / 2,
|
|
232
|
+
box[4] / 2,
|
|
233
|
+
box[5] / 2,
|
|
234
|
+
box[6] / 2,
|
|
235
|
+
box[8] / 2,
|
|
236
|
+
box[9] / 2,
|
|
237
|
+
box[10] / 2
|
|
238
|
+
]
|
|
239
|
+
}
|
|
240
|
+
: sphere
|
|
241
|
+
? { sphere }
|
|
242
|
+
: undefined;
|
|
243
|
+
if (scope === 'content') {
|
|
244
|
+
return { boundingVolume };
|
|
245
|
+
}
|
|
246
|
+
const geometricError = getAttributeComponents(attributes.TILE_GEOMETRIC_ERROR, rowIndex, 1)?.[0];
|
|
247
|
+
if (geometricError !== undefined && (!Number.isFinite(geometricError) || geometricError < 0)) {
|
|
248
|
+
throw new Error('3DTILES_subtree: TILE_GEOMETRIC_ERROR must be nonnegative');
|
|
249
|
+
}
|
|
250
|
+
const refineValue = getAttributeComponents(attributes.TILE_REFINE, rowIndex, 1)?.[0];
|
|
251
|
+
if (refineValue !== undefined && refineValue !== 0 && refineValue !== 1) {
|
|
252
|
+
throw new Error('3DTILES_subtree: TILE_REFINE must be 0 or 1');
|
|
253
|
+
}
|
|
254
|
+
return {
|
|
255
|
+
boundingVolume,
|
|
256
|
+
geometricError,
|
|
257
|
+
refine: refineValue === undefined
|
|
258
|
+
? undefined
|
|
259
|
+
: refineValue === 0
|
|
260
|
+
? TILE_REFINEMENT.ADD
|
|
261
|
+
: TILE_REFINEMENT.REPLACE,
|
|
262
|
+
transform: getAttributeComponents(attributes.TILE_TRANSFORM, rowIndex, 16)
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
/** Copies one logical accessor element and validates its available-row count. */
|
|
266
|
+
function getAttributeComponents(values, rowIndex, componentCount) {
|
|
267
|
+
if (!values) {
|
|
268
|
+
return undefined;
|
|
269
|
+
}
|
|
270
|
+
const offset = rowIndex * componentCount;
|
|
271
|
+
if (offset + componentCount > values.length) {
|
|
272
|
+
throw new Error('3DTILES_subtree: attribute accessor is shorter than availability');
|
|
273
|
+
}
|
|
274
|
+
return Array.from({ length: componentCount }, (_unused, componentIndex) => Number(values[offset + componentIndex]));
|
|
275
|
+
}
|
|
276
|
+
/** Returns the tightly packed property/attribute row index for an available element. */
|
|
277
|
+
function getAvailabilityRank(availability, index) {
|
|
278
|
+
if (availability.constant === 1) {
|
|
279
|
+
return index;
|
|
280
|
+
}
|
|
281
|
+
if (availability.constant === 0) {
|
|
282
|
+
return 0;
|
|
283
|
+
}
|
|
284
|
+
let ranks = AVAILABILITY_RANK_CACHE.get(availability);
|
|
285
|
+
if (!ranks) {
|
|
286
|
+
const bitCount = (availability.explicitBitstream?.byteLength || 0) * 8;
|
|
287
|
+
ranks = new Uint32Array(bitCount + 1);
|
|
288
|
+
for (let candidateIndex = 0; candidateIndex < bitCount; candidateIndex++) {
|
|
289
|
+
ranks[candidateIndex + 1] =
|
|
290
|
+
ranks[candidateIndex] + Number(getAvailabilityValue(availability, candidateIndex));
|
|
291
|
+
}
|
|
292
|
+
AVAILABILITY_RANK_CACHE.set(availability, ranks);
|
|
293
|
+
}
|
|
294
|
+
return ranks[index];
|
|
295
|
+
}
|
|
296
|
+
/** Locates a concrete generated URI in a retained glTF package. */
|
|
297
|
+
function findImplicitPackageResource(files, resourceUrl) {
|
|
298
|
+
if (!files?.length) {
|
|
299
|
+
return undefined;
|
|
300
|
+
}
|
|
301
|
+
const urlWithoutQuery = resourceUrl.split('?')[0];
|
|
302
|
+
const packageRelativePath = /^gltf-package:\/\/[^/]+\/(.*)$/.exec(urlWithoutQuery)?.[1];
|
|
303
|
+
const exactFileIndex = files.findIndex(file => {
|
|
304
|
+
const reference = file.originalUri || file.name;
|
|
305
|
+
return (file.uri === urlWithoutQuery ||
|
|
306
|
+
Boolean(reference && (urlWithoutQuery === reference || packageRelativePath === reference)));
|
|
307
|
+
});
|
|
308
|
+
if (exactFileIndex >= 0) {
|
|
309
|
+
return { fileIndex: exactFileIndex, files };
|
|
310
|
+
}
|
|
311
|
+
const fileIndex = files.findIndex(file => {
|
|
312
|
+
const reference = file.originalUri || file.name;
|
|
313
|
+
return Boolean(reference &&
|
|
314
|
+
(urlWithoutQuery.endsWith(`/${reference}`) || urlWithoutQuery.endsWith(`:${reference}`)));
|
|
315
|
+
});
|
|
316
|
+
return fileIndex < 0 ? undefined : { fileIndex, files };
|
|
317
|
+
}
|
|
318
|
+
/** Layers files declared by a child package over inherited parent-package files. */
|
|
319
|
+
function mergeImplicitPackageFiles(parentFiles, childFiles) {
|
|
320
|
+
if (!childFiles?.length) {
|
|
321
|
+
return parentFiles;
|
|
322
|
+
}
|
|
323
|
+
if (!parentFiles?.length) {
|
|
324
|
+
return childFiles;
|
|
325
|
+
}
|
|
326
|
+
const childReferences = new Set(childFiles.flatMap(file => [file.uri, file.originalUri, file.name].filter(Boolean)));
|
|
327
|
+
return [
|
|
328
|
+
...childFiles,
|
|
329
|
+
...parentFiles.filter(file => ![file.uri, file.originalUri, file.name].some(reference => reference && childReferences.has(reference)))
|
|
330
|
+
];
|
|
331
|
+
}
|
|
127
332
|
/**
|
|
128
333
|
* Formats an available implicit tile as a runtime header.
|
|
129
334
|
*
|
|
@@ -134,7 +339,22 @@ function createLazyImplicitTileHeader(subtree, descriptor, coordinates) {
|
|
|
134
339
|
* @param children - Materialized or lazy child headers.
|
|
135
340
|
* @returns Runtime tile header.
|
|
136
341
|
*/
|
|
137
|
-
function formatImplicitTileHeader(subtree, descriptor, reference, coordinates, contentAvailability, children) {
|
|
342
|
+
function formatImplicitTileHeader(subtree, descriptor, reference, coordinates, availabilityIndex, contentAvailability, children) {
|
|
343
|
+
const tilePropertyIndex = getAvailabilityRank(subtree.tileAvailability, availabilityIndex);
|
|
344
|
+
const tileProperties = subtree.tilePropertyRows?.[tilePropertyIndex];
|
|
345
|
+
const primaryContentAvailability = Array.isArray(subtree.contentAvailability)
|
|
346
|
+
? subtree.contentAvailability[0]
|
|
347
|
+
: subtree.contentAvailability;
|
|
348
|
+
const contentPropertyIndex = primaryContentAvailability &&
|
|
349
|
+
getAvailabilityValue(primaryContentAvailability, availabilityIndex)
|
|
350
|
+
? getAvailabilityRank(primaryContentAvailability, availabilityIndex)
|
|
351
|
+
: -1;
|
|
352
|
+
const contentProperties = subtree.contentPropertyRows?.[contentPropertyIndex];
|
|
353
|
+
const tileTemplateProperties = subtree.tileTemplatePropertyRows?.[tilePropertyIndex] || tileProperties;
|
|
354
|
+
const contentTemplateProperties = subtree.contentTemplatePropertyRows?.[contentPropertyIndex] || contentProperties;
|
|
355
|
+
const templateProperties = { ...tileTemplateProperties, ...contentTemplateProperties };
|
|
356
|
+
const tileAttributes = getSubtreeAttributeOverrides(subtree.tileAttributes, tilePropertyIndex, 'tile');
|
|
357
|
+
const contentAttributes = getSubtreeAttributeOverrides(subtree.contentAttributes, contentPropertyIndex, 'content');
|
|
138
358
|
const contentUrlTemplates = descriptor.contentUrlTemplates?.length
|
|
139
359
|
? descriptor.contentUrlTemplates
|
|
140
360
|
: [descriptor.contentUrlTemplate];
|
|
@@ -143,34 +363,52 @@ function formatImplicitTileHeader(subtree, descriptor, reference, coordinates, c
|
|
|
143
363
|
if (!contentAvailability[contentIndex] || !templateUrl) {
|
|
144
364
|
return null;
|
|
145
365
|
}
|
|
366
|
+
const contentUrl = replaceImplicitUrlTemplate(templateUrl, coordinates, templateProperties);
|
|
367
|
+
if (/{[^{}]+}/.test(contentUrl)) {
|
|
368
|
+
throw new Error(`Implicit content URI has unresolved template values: ${contentUrl}`);
|
|
369
|
+
}
|
|
146
370
|
return {
|
|
147
371
|
contentIndex,
|
|
148
|
-
contentUrl
|
|
372
|
+
contentUrl
|
|
149
373
|
};
|
|
150
374
|
})
|
|
151
375
|
.filter((entry) => Boolean(entry));
|
|
152
376
|
const availableContentUrls = contentEntries.map(entry => entry.contentUrl);
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
377
|
+
const resourceFiles = mergeImplicitPackageFiles(descriptor.resourceFiles, subtree.resourceFiles);
|
|
378
|
+
const content = contentEntries.map(({ contentIndex, contentUrl }) => {
|
|
379
|
+
const packageResource = findImplicitPackageResource(resourceFiles, contentUrl);
|
|
380
|
+
return {
|
|
381
|
+
...(descriptor.contentHeaders?.[contentIndex] ||
|
|
382
|
+
(contentIndex === 0 ? descriptor.contentHeader : {}) ||
|
|
383
|
+
{}),
|
|
384
|
+
...contentAttributes,
|
|
385
|
+
uri: contentUrl,
|
|
386
|
+
...(contentProperties ? { metadata: { properties: contentProperties } } : {}),
|
|
387
|
+
...(packageResource ? { _resource: packageResource } : {})
|
|
388
|
+
};
|
|
389
|
+
});
|
|
159
390
|
const contentUrl = availableContentUrls[0];
|
|
160
|
-
const
|
|
391
|
+
const computedLodMetricValue = descriptor.rootLodMetricValue / 2 ** coordinates.level;
|
|
392
|
+
const lodMetricValue = tileAttributes.geometricError ?? computedLodMetricValue;
|
|
393
|
+
const computedBoundingVolume = calculateImplicitBoundingVolume(descriptor.rootBoundingVolume, coordinates, descriptor.subdivisionScheme);
|
|
161
394
|
return {
|
|
162
395
|
id: getImplicitTileId(reference, coordinates),
|
|
163
396
|
children,
|
|
164
397
|
contentUrl,
|
|
165
398
|
content: content.length > 1 ? content : content[0],
|
|
399
|
+
contents: descriptor.useCanonicalContents && content.length ? content : undefined,
|
|
166
400
|
contentUrls: availableContentUrls,
|
|
167
|
-
refine: descriptor.refine,
|
|
401
|
+
refine: tileAttributes.refine || descriptor.refine,
|
|
168
402
|
type: getImplicitTileType(contentUrl),
|
|
169
403
|
lodMetricType: descriptor.lodMetricType,
|
|
170
404
|
lodMetricValue,
|
|
171
405
|
geometricError: lodMetricValue,
|
|
172
|
-
boundingVolume:
|
|
173
|
-
|
|
406
|
+
boundingVolume: tileAttributes.boundingVolume || computedBoundingVolume,
|
|
407
|
+
transform: tileAttributes.transform,
|
|
408
|
+
transformMatrix: tileAttributes.transform,
|
|
409
|
+
metadata: tileProperties ? { properties: tileProperties } : undefined,
|
|
410
|
+
implicitMetadata: getImplicitSubtreeMetadata(subtree, tileProperties, contentProperties),
|
|
411
|
+
_scaleGeometricError: descriptor.scaleGeometricError !== false
|
|
174
412
|
};
|
|
175
413
|
}
|
|
176
414
|
/**
|
|
@@ -182,18 +420,22 @@ function formatImplicitTileHeader(subtree, descriptor, reference, coordinates, c
|
|
|
182
420
|
* @param subtree - Parsed subtree containing optional metadata declarations.
|
|
183
421
|
* @returns Metadata references, or `undefined` when the subtree declares none.
|
|
184
422
|
*/
|
|
185
|
-
function getImplicitSubtreeMetadata(subtree) {
|
|
423
|
+
function getImplicitSubtreeMetadata(subtree, tileProperties, contentProperties) {
|
|
186
424
|
if (!subtree.propertyTables &&
|
|
187
425
|
subtree.tileMetadata === undefined &&
|
|
188
426
|
!subtree.contentMetadata &&
|
|
189
|
-
subtree.subtreeMetadata === undefined
|
|
427
|
+
subtree.subtreeMetadata === undefined &&
|
|
428
|
+
!tileProperties &&
|
|
429
|
+
!contentProperties) {
|
|
190
430
|
return undefined;
|
|
191
431
|
}
|
|
192
432
|
return {
|
|
193
433
|
propertyTables: subtree.propertyTables,
|
|
194
434
|
tileMetadata: subtree.tileMetadata,
|
|
195
435
|
contentMetadata: subtree.contentMetadata,
|
|
196
|
-
subtreeMetadata: subtree.subtreeMetadata
|
|
436
|
+
subtreeMetadata: subtree.subtreeMetadata,
|
|
437
|
+
tileProperties,
|
|
438
|
+
contentProperties
|
|
197
439
|
};
|
|
198
440
|
}
|
|
199
441
|
/**
|
|
@@ -274,9 +516,8 @@ function getImplicitChildCount(subdivisionScheme) {
|
|
|
274
516
|
* Calculates the bounding volume for global implicit coordinates.
|
|
275
517
|
*
|
|
276
518
|
* Region volumes are divided in longitude/latitude and, for octrees, height. Oriented boxes are
|
|
277
|
-
* divided along their half-axis vectors. S2
|
|
278
|
-
*
|
|
279
|
-
* by `@loaders.gl/3d-tiles`, and a conservative volume avoids incorrect culling.
|
|
519
|
+
* divided along their half-axis vectors. S2 roots use math.gl's Hilbert-aware descendant indexing
|
|
520
|
+
* to produce the exact child token and a corresponding geospatial oriented box.
|
|
280
521
|
*
|
|
281
522
|
* @param rootBoundingVolume - Bounding volume of the complete implicit hierarchy.
|
|
282
523
|
* @param coordinates - Global tile coordinates.
|
|
@@ -287,9 +528,11 @@ function calculateImplicitBoundingVolume(rootBoundingVolume, coordinates, subdiv
|
|
|
287
528
|
if (rootBoundingVolume.region) {
|
|
288
529
|
const [west, south, east, north, minimumHeight, maximumHeight] = rootBoundingVolume.region;
|
|
289
530
|
const divisionCount = 2 ** coordinates.level;
|
|
290
|
-
const
|
|
531
|
+
const longitudeSpan = east >= west ? east - west : east + 2 * Math.PI - west;
|
|
532
|
+
const longitudeSize = longitudeSpan / divisionCount;
|
|
291
533
|
const latitudeSize = (north - south) / divisionCount;
|
|
292
|
-
const childWest = west + longitudeSize * coordinates.x;
|
|
534
|
+
const childWest = normalizeRegionLongitude(west + longitudeSize * coordinates.x);
|
|
535
|
+
const childEast = normalizeRegionLongitude(west + longitudeSize * (coordinates.x + 1));
|
|
293
536
|
const childSouth = south + latitudeSize * coordinates.y;
|
|
294
537
|
let childMinimumHeight = minimumHeight;
|
|
295
538
|
let childMaximumHeight = maximumHeight;
|
|
@@ -302,7 +545,7 @@ function calculateImplicitBoundingVolume(rootBoundingVolume, coordinates, subdiv
|
|
|
302
545
|
region: [
|
|
303
546
|
childWest,
|
|
304
547
|
childSouth,
|
|
305
|
-
|
|
548
|
+
childEast,
|
|
306
549
|
childSouth + latitudeSize,
|
|
307
550
|
childMinimumHeight,
|
|
308
551
|
childMaximumHeight
|
|
@@ -311,7 +554,13 @@ function calculateImplicitBoundingVolume(rootBoundingVolume, coordinates, subdiv
|
|
|
311
554
|
}
|
|
312
555
|
if (rootBoundingVolume.box) {
|
|
313
556
|
if (rootBoundingVolume.s2VolumeInfo) {
|
|
314
|
-
return
|
|
557
|
+
return calculateS2ImplicitBoundingVolume(rootBoundingVolume, coordinates, subdivisionScheme);
|
|
558
|
+
}
|
|
559
|
+
if (rootBoundingVolume.extensions?.['3DTILES_shape_cylinder_region']) {
|
|
560
|
+
return {
|
|
561
|
+
...rootBoundingVolume,
|
|
562
|
+
box: [...rootBoundingVolume.box]
|
|
563
|
+
};
|
|
315
564
|
}
|
|
316
565
|
const box = rootBoundingVolume.box;
|
|
317
566
|
const divisionCount = 2 ** coordinates.level;
|
|
@@ -341,6 +590,54 @@ function calculateImplicitBoundingVolume(rootBoundingVolume, coordinates, subdiv
|
|
|
341
590
|
}
|
|
342
591
|
throw new Error(`Unsupported implicit 3D Tiles bounding volume: ${JSON.stringify(rootBoundingVolume)}`);
|
|
343
592
|
}
|
|
593
|
+
/**
|
|
594
|
+
* Calculates an implicit descendant of an S2 root using math.gl's canonical Hilbert hierarchy.
|
|
595
|
+
*
|
|
596
|
+
* @param rootBoundingVolume - Normalized S2 root volume.
|
|
597
|
+
* @param coordinates - Global implicit tile coordinates.
|
|
598
|
+
* @param subdivisionScheme - Quadtree or octree subdivision.
|
|
599
|
+
* @returns Child volume with updated S2 metadata and oriented box.
|
|
600
|
+
*/
|
|
601
|
+
function calculateS2ImplicitBoundingVolume(rootBoundingVolume, coordinates, subdivisionScheme) {
|
|
602
|
+
const rootS2VolumeInfo = rootBoundingVolume.s2VolumeInfo;
|
|
603
|
+
const rootIndex = getS2IndexFromToken(rootS2VolumeInfo.token);
|
|
604
|
+
const descendantIndex = getS2DescendantIndex(rootIndex, coordinates.level, coordinates.x, coordinates.y);
|
|
605
|
+
const divisionCount = 2 ** coordinates.level;
|
|
606
|
+
const heightSize = (rootS2VolumeInfo.maximumHeight - rootS2VolumeInfo.minimumHeight) / divisionCount;
|
|
607
|
+
const childS2VolumeInfo = {
|
|
608
|
+
token: getS2TokenFromIndex(descendantIndex),
|
|
609
|
+
minimumHeight: rootS2VolumeInfo.minimumHeight +
|
|
610
|
+
(subdivisionScheme === 'OCTREE' ? heightSize * coordinates.z : 0),
|
|
611
|
+
maximumHeight: rootS2VolumeInfo.minimumHeight +
|
|
612
|
+
(subdivisionScheme === 'OCTREE'
|
|
613
|
+
? heightSize * (coordinates.z + 1)
|
|
614
|
+
: heightSize * divisionCount)
|
|
615
|
+
};
|
|
616
|
+
const extensions = rootBoundingVolume.extensions ? { ...rootBoundingVolume.extensions } : undefined;
|
|
617
|
+
if (extensions?.['3DTILES_bounding_volume_S2']) {
|
|
618
|
+
extensions['3DTILES_bounding_volume_S2'] = childS2VolumeInfo;
|
|
619
|
+
}
|
|
620
|
+
if (extensions?.['3DTILES_shape_s2']) {
|
|
621
|
+
extensions['3DTILES_shape_s2'] = childS2VolumeInfo;
|
|
622
|
+
}
|
|
623
|
+
return {
|
|
624
|
+
...rootBoundingVolume,
|
|
625
|
+
...(extensions ? { extensions } : {}),
|
|
626
|
+
s2VolumeInfo: childS2VolumeInfo,
|
|
627
|
+
box: convertS2BoundingVolumeToOBB(childS2VolumeInfo)
|
|
628
|
+
};
|
|
629
|
+
}
|
|
630
|
+
/** Normalize a longitude while preserving the positive pi boundary for non-wrapped regions. */
|
|
631
|
+
function normalizeRegionLongitude(longitude) {
|
|
632
|
+
let normalizedLongitude = longitude;
|
|
633
|
+
while (normalizedLongitude > Math.PI) {
|
|
634
|
+
normalizedLongitude -= 2 * Math.PI;
|
|
635
|
+
}
|
|
636
|
+
while (normalizedLongitude < -Math.PI) {
|
|
637
|
+
normalizedLongitude += 2 * Math.PI;
|
|
638
|
+
}
|
|
639
|
+
return normalizedLongitude;
|
|
640
|
+
}
|
|
344
641
|
/**
|
|
345
642
|
* Detects the runtime tile category from an available content URL.
|
|
346
643
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implicit-tiling.js","sourceRoot":"","sources":["../../../src/tileset-3d/format-3d-tiles/implicit-tiling.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"implicit-tiling.js","sourceRoot":"","sources":["../../../src/tileset-3d/format-3d-tiles/implicit-tiling.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,12 @@ export declare class Tiles3DSource implements Tileset3DSource {
|
|
|
53
53
|
private readonly queryParams;
|
|
54
54
|
/** Final request URLs cached by unmodified tile content URL. */
|
|
55
55
|
private readonly tileUrlCache;
|
|
56
|
+
/** Original content descriptors retained across {@link Tile3D.unloadContent} calls. */
|
|
57
|
+
private readonly tileContentHeaders;
|
|
58
|
+
/** Source-local namespaces assigned to distinct embedded glTF package file collections. */
|
|
59
|
+
private readonly packageNamespaces;
|
|
60
|
+
/** Next source-local package namespace. */
|
|
61
|
+
private nextPackageNamespace;
|
|
56
62
|
/** Parsed subtree requests keyed by final source URL for deduplication and LRU reuse. */
|
|
57
63
|
private readonly implicitSubtreeCache;
|
|
58
64
|
/** Mutable counters exposed as a defensive snapshot through {@link getImplicitTilingStats}. */
|
|
@@ -62,6 +68,10 @@ export declare class Tiles3DSource implements Tileset3DSource {
|
|
|
62
68
|
private readonly extensionsUsed;
|
|
63
69
|
private readonly resolver?;
|
|
64
70
|
private rootTileset;
|
|
71
|
+
/** CRS transformer shared by this source's headers and decoded glTF content. */
|
|
72
|
+
private spatialTransformer?;
|
|
73
|
+
/** Root header after composing source-frame transforms and rebuilding target bounds. */
|
|
74
|
+
private preparedRootHeader?;
|
|
65
75
|
/**
|
|
66
76
|
* Creates a 3D Tiles source.
|
|
67
77
|
* @param input Root metadata request, or preloaded root metadata for tests and internal callers.
|
|
@@ -87,6 +97,8 @@ export declare class Tiles3DSource implements Tileset3DSource {
|
|
|
87
97
|
* Returns the root 3D Tiles payload.
|
|
88
98
|
*/
|
|
89
99
|
getRootTileset(): Promise<TilesetJSON>;
|
|
100
|
+
/** Prepare nonlinear CRS state before runtime headers are materialized. */
|
|
101
|
+
prepareTileset(tileset: Tileset3D): Promise<void>;
|
|
90
102
|
/**
|
|
91
103
|
* Builds explicit runtime headers while leaving implicit subtree references lazy.
|
|
92
104
|
*/
|
|
@@ -99,6 +111,11 @@ export declare class Tiles3DSource implements Tileset3DSource {
|
|
|
99
111
|
* Loads binary content or nested tileset JSON for a runtime tile.
|
|
100
112
|
*/
|
|
101
113
|
loadTileContent(tile: Tile3D): Promise<TileContentLoadResult>;
|
|
114
|
+
/** Transform a tile header and its eagerly declared descendants. */
|
|
115
|
+
private transformTileHeader;
|
|
116
|
+
/** Rebuilds one header subtree using an explicitly selected CRS transformer. */
|
|
117
|
+
private transformTileHeaderWithTransformer;
|
|
118
|
+
private transformContentHeader;
|
|
102
119
|
/**
|
|
103
120
|
* Loads, materializes, and installs exactly one implicit subtree.
|
|
104
121
|
*
|
|
@@ -151,6 +168,14 @@ export declare class Tiles3DSource implements Tileset3DSource {
|
|
|
151
168
|
* Updates content-format flags and installs nested tileset subtrees.
|
|
152
169
|
*/
|
|
153
170
|
onTileLoaded(tileset: Tileset3D, tile: Tile3D, loadResult: TileContentLoadResult): void;
|
|
171
|
+
/**
|
|
172
|
+
* Resolves a nested tileset's CRS independently and adapts it to the owning tileset output frame.
|
|
173
|
+
*
|
|
174
|
+
* Nested resources may use a different source CRS from their parent. Their headers and glTF
|
|
175
|
+
* payloads must therefore use a transformer built from the nested descriptor, while the parent
|
|
176
|
+
* runtime continues to expose one requested output frame to traversal and rendering.
|
|
177
|
+
*/
|
|
178
|
+
private prepareNestedTileset;
|
|
154
179
|
/**
|
|
155
180
|
* Loads data through injected core APIs so this module stays independent from `@loaders.gl/core`.
|
|
156
181
|
*/
|
|
@@ -163,10 +188,17 @@ export declare class Tiles3DSource implements Tileset3DSource {
|
|
|
163
188
|
* Loads an arbitrary source resource through an injected resolver or core API.
|
|
164
189
|
*/
|
|
165
190
|
private loadResourceData;
|
|
191
|
+
/** Loads a URL content reference or parses a buffer-view file retained from a glTF package. */
|
|
192
|
+
private loadContentResource;
|
|
193
|
+
/** Returns a stable source-local namespace for one embedded glTF package file collection. */
|
|
194
|
+
private getPackageNamespace;
|
|
195
|
+
/** Resolves a retained package-file byte range without eagerly copying other package files. */
|
|
196
|
+
private getPackageFileData;
|
|
166
197
|
/**
|
|
167
198
|
* Returns a parsed subtree from the LRU cache or starts one source-managed request.
|
|
168
199
|
*
|
|
169
200
|
* @param subtreeUrl - Final subtree URL after query inheritance.
|
|
201
|
+
* @param packageResource - Optional glTF package file satisfying the subtree reference.
|
|
170
202
|
* @returns Parsed subtree availability data.
|
|
171
203
|
*/
|
|
172
204
|
private loadImplicitSubtreeResource;
|