@developmentseed/deck.gl-raster 0.4.0 → 0.5.0
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/gpu-modules/composite-bands.d.ts +85 -0
- package/dist/gpu-modules/composite-bands.d.ts.map +1 -0
- package/dist/gpu-modules/composite-bands.js +141 -0
- package/dist/gpu-modules/composite-bands.js.map +1 -0
- package/dist/gpu-modules/cutline-bbox.d.ts +70 -0
- package/dist/gpu-modules/cutline-bbox.d.ts.map +1 -0
- package/dist/gpu-modules/cutline-bbox.js +100 -0
- package/dist/gpu-modules/cutline-bbox.js.map +1 -0
- package/dist/gpu-modules/index.d.ts +6 -0
- package/dist/gpu-modules/index.d.ts.map +1 -1
- package/dist/gpu-modules/index.js +3 -0
- package/dist/gpu-modules/index.js.map +1 -1
- package/dist/gpu-modules/linear-rescale.d.ts +39 -0
- package/dist/gpu-modules/linear-rescale.d.ts.map +1 -0
- package/dist/gpu-modules/linear-rescale.js +40 -0
- package/dist/gpu-modules/linear-rescale.js.map +1 -0
- package/dist/gpu-modules/types.d.ts +10 -1
- package/dist/gpu-modules/types.d.ts.map +1 -1
- package/dist/index.d.ts +6 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/layer-utils.d.ts +28 -0
- package/dist/layer-utils.d.ts.map +1 -0
- package/dist/layer-utils.js +56 -0
- package/dist/layer-utils.js.map +1 -0
- package/dist/mesh-layer/mesh-layer.d.ts +15 -3
- package/dist/mesh-layer/mesh-layer.d.ts.map +1 -1
- package/dist/mesh-layer/mesh-layer.js +25 -3
- package/dist/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/multi-raster-tileset/index.d.ts +5 -0
- package/dist/multi-raster-tileset/index.d.ts.map +1 -0
- package/dist/multi-raster-tileset/index.js +3 -0
- package/dist/multi-raster-tileset/index.js.map +1 -0
- package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts +75 -0
- package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts.map +1 -0
- package/dist/multi-raster-tileset/multi-tileset-descriptor.js +97 -0
- package/dist/multi-raster-tileset/multi-tileset-descriptor.js.map +1 -0
- package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts +129 -0
- package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts.map +1 -0
- package/dist/multi-raster-tileset/secondary-tile-resolver.js +88 -0
- package/dist/multi-raster-tileset/secondary-tile-resolver.js.map +1 -0
- package/dist/raster-layer.d.ts +30 -12
- package/dist/raster-layer.d.ts.map +1 -1
- package/dist/raster-layer.js +20 -28
- package/dist/raster-layer.js.map +1 -1
- package/dist/raster-tileset/index.d.ts +4 -1
- package/dist/raster-tileset/index.d.ts.map +1 -1
- package/dist/raster-tileset/index.js +2 -1
- package/dist/raster-tileset/index.js.map +1 -1
- package/dist/raster-tileset/raster-tile-traversal.d.ts +35 -51
- package/dist/raster-tileset/raster-tile-traversal.d.ts.map +1 -1
- package/dist/raster-tileset/raster-tile-traversal.js +128 -172
- package/dist/raster-tileset/raster-tile-traversal.js.map +1 -1
- package/dist/raster-tileset/raster-tileset-2d.d.ts +8 -22
- package/dist/raster-tileset/raster-tileset-2d.d.ts.map +1 -1
- package/dist/raster-tileset/raster-tileset-2d.js +18 -81
- package/dist/raster-tileset/raster-tileset-2d.js.map +1 -1
- package/dist/raster-tileset/tile-matrix-set.d.ts +20 -0
- package/dist/raster-tileset/tile-matrix-set.d.ts.map +1 -0
- package/dist/raster-tileset/tile-matrix-set.js +121 -0
- package/dist/raster-tileset/tile-matrix-set.js.map +1 -0
- package/dist/raster-tileset/tileset-interface.d.ts +78 -0
- package/dist/raster-tileset/tileset-interface.d.ts.map +1 -0
- package/dist/raster-tileset/tileset-interface.js +2 -0
- package/dist/raster-tileset/tileset-interface.js.map +1 -0
- package/dist/raster-tileset/types.d.ts +10 -18
- package/dist/raster-tileset/types.d.ts.map +1 -1
- package/package.json +14 -14
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file implements tile traversal for generic 2D tilesets
|
|
3
|
-
* TileMatrixSet tile layouts.
|
|
2
|
+
* This file implements tile traversal for generic 2D tilesets.
|
|
4
3
|
*
|
|
5
4
|
* The main algorithm works as follows:
|
|
6
5
|
*
|
|
@@ -8,14 +7,16 @@
|
|
|
8
7
|
* necessarily the whole world)
|
|
9
8
|
* 2. Test if each tile is visible using viewport frustum culling
|
|
10
9
|
* 3. For visible tiles, compute distance-based LOD (Level of Detail)
|
|
11
|
-
* 4. If LOD is insufficient, recursively subdivide into
|
|
10
|
+
* 4. If LOD is insufficient, recursively subdivide into child tiles
|
|
12
11
|
* 5. Select tiles at appropriate zoom levels based on distance from camera
|
|
13
12
|
*
|
|
14
13
|
* The result is a set of tiles at varying zoom levels that efficiently
|
|
15
14
|
* cover the visible area with appropriate detail.
|
|
15
|
+
*
|
|
16
|
+
* The traversal is driven by a {@link TilesetDescriptor}, which abstracts over
|
|
17
|
+
* both OGC TileMatrixSet grids and Zarr multiscale pyramids.
|
|
16
18
|
*/
|
|
17
19
|
import { _GlobeViewport, assert } from "@deck.gl/core";
|
|
18
|
-
import { xy_bounds } from "@developmentseed/morecantile";
|
|
19
20
|
import { CullingVolume, makeOrientedBoundingBoxFromPoints, Plane, } from "@math.gl/culling";
|
|
20
21
|
import { lngLatToWorld, worldToLngLat } from "@math.gl/web-mercator";
|
|
21
22
|
/**
|
|
@@ -74,18 +75,15 @@ const EPSG_3857_CIRCUMFERENCE = 2 * Math.PI * WGS84_ELLIPSOID_A;
|
|
|
74
75
|
const EPSG_3857_HALF_CIRCUMFERENCE = EPSG_3857_CIRCUMFERENCE / 2;
|
|
75
76
|
// Maximum latitude representable in Web Mercator (EPSG:3857), in degrees.
|
|
76
77
|
const MAX_WEB_MERCATOR_LAT = 85.05112877980659;
|
|
77
|
-
// 0.28 mm per pixel
|
|
78
|
-
// https://docs.ogc.org/is/17-083r4/17-083r4.html#toc15
|
|
79
|
-
const SCREEN_PIXEL_SIZE = 0.00028;
|
|
80
78
|
/**
|
|
81
|
-
* Raster Tile Node - represents a single tile in
|
|
79
|
+
* Raster Tile Node - represents a single tile in a tileset pyramid.
|
|
82
80
|
*
|
|
83
81
|
* Akin to the upstream OSMNode class.
|
|
84
82
|
*
|
|
85
83
|
* This node class uses the following coordinate system:
|
|
86
84
|
*
|
|
87
|
-
* - x: tile column (0 to
|
|
88
|
-
* - y: tile row (0 to
|
|
85
|
+
* - x: tile column (0 to TilesetLevel.matrixWidth, left to right)
|
|
86
|
+
* - y: tile row (0 to TilesetLevel.matrixHeight, top to bottom)
|
|
89
87
|
* - z: overview level. This assumes ordering where: 0 = coarsest, higher = finer
|
|
90
88
|
*/
|
|
91
89
|
export class RasterTileNode {
|
|
@@ -95,7 +93,7 @@ export class RasterTileNode {
|
|
|
95
93
|
y;
|
|
96
94
|
/** Zoom index assumed to be (higher = finer detail) */
|
|
97
95
|
z;
|
|
98
|
-
|
|
96
|
+
descriptor;
|
|
99
97
|
/**
|
|
100
98
|
* Flag indicating whether any descendant of this tile is visible.
|
|
101
99
|
*
|
|
@@ -111,55 +109,50 @@ export class RasterTileNode {
|
|
|
111
109
|
selected;
|
|
112
110
|
/** A cache of the children of this node. */
|
|
113
111
|
_children;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
/**
|
|
113
|
+
* A cached bounding volume for this tile, used for frustum culling
|
|
114
|
+
*
|
|
115
|
+
* This stores the result of `getBoundingVolume`.
|
|
116
|
+
*/
|
|
117
|
+
_boundingVolume;
|
|
118
|
+
constructor(x, y, z, { descriptor }) {
|
|
117
119
|
this.x = x;
|
|
118
120
|
this.y = y;
|
|
119
121
|
this.z = z;
|
|
120
|
-
this.
|
|
121
|
-
this.projectTo3857 = projectTo3857;
|
|
122
|
-
this.projectTo4326 = projectTo4326;
|
|
122
|
+
this.descriptor = descriptor;
|
|
123
123
|
}
|
|
124
|
-
/** Get
|
|
125
|
-
get
|
|
126
|
-
return this.
|
|
124
|
+
/** Get the level info for this tile's z index. */
|
|
125
|
+
get level() {
|
|
126
|
+
return this.descriptor.levels[this.z];
|
|
127
127
|
}
|
|
128
128
|
/** Get the children of this node.
|
|
129
129
|
*
|
|
130
130
|
* Find all tiles at level this.z + 1 whose spatial extent overlaps this tile.
|
|
131
131
|
*
|
|
132
|
-
* A
|
|
133
|
-
*
|
|
132
|
+
* A tileset pyramid is not guaranteed to be a quadtree — it is a stack of
|
|
133
|
+
* independent grids. We find children by mapping the parent tile's CRS bounds
|
|
134
|
+
* into the child grid using {@link TilesetLevel.crsBoundsToTileRange}.
|
|
134
135
|
*/
|
|
135
136
|
get children() {
|
|
136
137
|
if (!this._children) {
|
|
137
|
-
const maxZ = this.
|
|
138
|
+
const maxZ = this.descriptor.levels.length - 1;
|
|
138
139
|
if (this.z >= maxZ) {
|
|
139
140
|
// Already at finest resolution, no children
|
|
140
141
|
this._children = null;
|
|
141
142
|
return null;
|
|
142
143
|
}
|
|
143
|
-
// In TileMatrixSet ordering: refine to z + 1 (finer detail)
|
|
144
|
-
const parentMatrix = this.tileMatrix;
|
|
145
144
|
const childZ = this.z + 1;
|
|
146
|
-
const
|
|
147
|
-
// Compute this tile's bounds in
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
y: this.y,
|
|
151
|
-
});
|
|
145
|
+
const childLevel = this.descriptor.levels[childZ];
|
|
146
|
+
// Compute this tile's bounds in the source CRS
|
|
147
|
+
const parentCorners = this.level.projectedTileCorners(this.x, this.y);
|
|
148
|
+
const parentBounds = cornersToBounds(parentCorners);
|
|
152
149
|
// Find overlapping child index range
|
|
153
|
-
const { minCol, maxCol, minRow, maxRow } =
|
|
150
|
+
const { minCol, maxCol, minRow, maxRow } = childLevel.crsBoundsToTileRange(...parentBounds);
|
|
154
151
|
const children = [];
|
|
155
|
-
const {
|
|
152
|
+
const { descriptor } = this;
|
|
156
153
|
for (let y = minRow; y <= maxRow; y++) {
|
|
157
154
|
for (let x = minCol; x <= maxCol; x++) {
|
|
158
|
-
children.push(new RasterTileNode(x, y, childZ, {
|
|
159
|
-
metadata,
|
|
160
|
-
projectTo3857,
|
|
161
|
-
projectTo4326,
|
|
162
|
-
}));
|
|
155
|
+
children.push(new RasterTileNode(x, y, childZ, { descriptor }));
|
|
163
156
|
}
|
|
164
157
|
}
|
|
165
158
|
this._children = children.length > 0 ? children : null;
|
|
@@ -170,8 +163,8 @@ export class RasterTileNode {
|
|
|
170
163
|
* Recursively traverse the tile pyramid to determine if this tile (or its
|
|
171
164
|
* descendants) should be rendered.
|
|
172
165
|
*
|
|
173
|
-
* I.e.
|
|
174
|
-
* into its children
|
|
166
|
+
* I.e. "Given this tile node, should I render this tile, or should I recurse
|
|
167
|
+
* into its children?"
|
|
175
168
|
*
|
|
176
169
|
* The algorithm performs:
|
|
177
170
|
* 1. Visibility culling - reject tiles outside the view frustum
|
|
@@ -188,7 +181,7 @@ export class RasterTileNode {
|
|
|
188
181
|
// Reset state
|
|
189
182
|
this.childVisible = false;
|
|
190
183
|
this.selected = false;
|
|
191
|
-
const { viewport, cullingVolume, elevationBounds, minZ, maxZ = this.
|
|
184
|
+
const { viewport, cullingVolume, elevationBounds, minZ, maxZ = this.descriptor.levels.length - 1, project, bounds, } = params;
|
|
192
185
|
// Get bounding volume for this tile
|
|
193
186
|
const { boundingVolume, commonSpaceBounds } = this.getBoundingVolume(elevationBounds, project);
|
|
194
187
|
// Step 1: Bounds checking
|
|
@@ -206,29 +199,14 @@ export class RasterTileNode {
|
|
|
206
199
|
const children = this.children;
|
|
207
200
|
// LOD (Level of Detail) selection (only if allowed at this level)
|
|
208
201
|
// Only select this tile if no child is visible (prevents overlapping tiles)
|
|
209
|
-
//
|
|
202
|
+
// "When pitch is low, force selection at maxZ."
|
|
210
203
|
if (!this.childVisible && this.z >= minZ) {
|
|
211
204
|
const metersPerScreenPixel = getMetersPerPixelAtBoundingVolume(boundingVolume, viewport.zoom);
|
|
212
|
-
|
|
213
|
-
const tileMetersPerPixel = this.tileMatrix.scaleDenominator * SCREEN_PIXEL_SIZE;
|
|
214
|
-
// console.log("tileMetersPerPixel", tileMetersPerPixel);
|
|
215
|
-
// const screenScaleDenominator = metersPerScreenPixel / SCREEN_PIXEL_SIZE;
|
|
216
|
-
// console.log("screenScaleDenominator", screenScaleDenominator);
|
|
217
|
-
// TODO: in the future we could try adding a bias
|
|
218
|
-
// const LOD_BIAS = 0.75;
|
|
219
|
-
// this.tileMatrix.scaleDenominator <= screenScaleDenominator * LOD_BIAS
|
|
220
|
-
// console.log(
|
|
221
|
-
// "this.tileMatrix.scaleDenominator",
|
|
222
|
-
// this.tileMatrix.scaleDenominator,
|
|
223
|
-
// );
|
|
224
|
-
// console.log(
|
|
225
|
-
// "tileMetersPerPixel <= metersPerScreenPixel",
|
|
226
|
-
// tileMetersPerPixel <= metersPerScreenPixel,
|
|
227
|
-
// );
|
|
205
|
+
const tileMetersPerPixel = this.level.metersPerPixel;
|
|
228
206
|
if (tileMetersPerPixel <= metersPerScreenPixel ||
|
|
229
207
|
this.z >= maxZ ||
|
|
230
208
|
(children === null && this.z >= minZ)) {
|
|
231
|
-
//
|
|
209
|
+
// "Select this tile when its scale is at least as detailed as the screen."
|
|
232
210
|
this.selected = true;
|
|
233
211
|
return true;
|
|
234
212
|
}
|
|
@@ -255,7 +233,7 @@ export class RasterTileNode {
|
|
|
255
233
|
* Recursively traverses the entire tree and gathers tiles where selected=true.
|
|
256
234
|
*
|
|
257
235
|
* @param result - Accumulator array for selected tiles
|
|
258
|
-
* @returns Array of selected
|
|
236
|
+
* @returns Array of selected RasterTileNode tiles
|
|
259
237
|
*/
|
|
260
238
|
getSelected(result = []) {
|
|
261
239
|
if (this.selected) {
|
|
@@ -289,6 +267,12 @@ export class RasterTileNode {
|
|
|
289
267
|
* tiling is already in EPSG:3857.
|
|
290
268
|
*/
|
|
291
269
|
getBoundingVolume(zRange, project) {
|
|
270
|
+
const cached = this._boundingVolume;
|
|
271
|
+
if (cached &&
|
|
272
|
+
cached.zRange[0] === zRange[0] &&
|
|
273
|
+
cached.zRange[1] === zRange[1]) {
|
|
274
|
+
return cached.result;
|
|
275
|
+
}
|
|
292
276
|
// Case 1: Globe view - need to construct an oriented bounding box from
|
|
293
277
|
// reprojected sample points, but also using the `project` param
|
|
294
278
|
if (project) {
|
|
@@ -303,7 +287,9 @@ export class RasterTileNode {
|
|
|
303
287
|
// corners.
|
|
304
288
|
// Case 4: Generic case - sample reference points and reproject to
|
|
305
289
|
// Web Mercator, then convert to deck.gl common space
|
|
306
|
-
|
|
290
|
+
const result = this._getGenericBoundingVolume(zRange);
|
|
291
|
+
this._boundingVolume = { zRange, result };
|
|
292
|
+
return result;
|
|
307
293
|
}
|
|
308
294
|
/**
|
|
309
295
|
* Generic case - sample reference points and reproject to Web Mercator, then
|
|
@@ -311,13 +297,9 @@ export class RasterTileNode {
|
|
|
311
297
|
*
|
|
312
298
|
*/
|
|
313
299
|
_getGenericBoundingVolume(zRange) {
|
|
314
|
-
const tileMatrix = this.tileMatrix;
|
|
315
300
|
const [minZ, maxZ] = zRange;
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
y: this.y,
|
|
319
|
-
});
|
|
320
|
-
const refPointsEPSG3857 = sampleReferencePointsInEPSG3857(REF_POINTS_9, tileCrsBounds, this.projectTo3857, this.projectTo4326);
|
|
301
|
+
const tileCorners = this.level.projectedTileCorners(this.x, this.y);
|
|
302
|
+
const refPointsEPSG3857 = sampleReferencePointsInEPSG3857(REF_POINTS_9, tileCorners, this.descriptor.projectTo3857, this.descriptor.projectTo4326);
|
|
321
303
|
const commonSpacePositions = refPointsEPSG3857.map((xy) => rescaleEPSG3857ToCommonSpace(xy));
|
|
322
304
|
const refPointPositions = [];
|
|
323
305
|
for (const p of commonSpacePositions) {
|
|
@@ -350,24 +332,6 @@ export class RasterTileNode {
|
|
|
350
332
|
};
|
|
351
333
|
}
|
|
352
334
|
}
|
|
353
|
-
/**
|
|
354
|
-
* Compute the projected tile bounds in the tile matrix's CRS.
|
|
355
|
-
*
|
|
356
|
-
* Because it's a linear transformation from the tile index to projected bounds,
|
|
357
|
-
* we don't need to sample this for each of the reference points. We only need
|
|
358
|
-
* the corners.
|
|
359
|
-
*
|
|
360
|
-
* @return The bounding box as [minX, minY, maxX, maxY] in projected CRS.
|
|
361
|
-
*/
|
|
362
|
-
function computeProjectedTileBounds(tileMatrix, { x, y, }) {
|
|
363
|
-
const bounds = xy_bounds(tileMatrix, { x, y });
|
|
364
|
-
return [
|
|
365
|
-
bounds.lowerLeft[0],
|
|
366
|
-
bounds.lowerLeft[1],
|
|
367
|
-
bounds.upperRight[0],
|
|
368
|
-
bounds.upperRight[1],
|
|
369
|
-
];
|
|
370
|
-
}
|
|
371
335
|
/**
|
|
372
336
|
* Wrap a forward projection to EPSG:3857 so that it never returns NaN.
|
|
373
337
|
*
|
|
@@ -403,22 +367,25 @@ function makeClampedForwardTo3857(projectTo3857, projectTo4326) {
|
|
|
403
367
|
};
|
|
404
368
|
}
|
|
405
369
|
/**
|
|
406
|
-
* Sample the selected reference points in EPSG:3857
|
|
370
|
+
* Sample the selected reference points in EPSG:3857.
|
|
371
|
+
*
|
|
372
|
+
* Reference points are given as `[relX, relY]` fractions in `[0, 1]` and are
|
|
373
|
+
* bilinearly interpolated across the tile's four CRS corners. For axis-aligned
|
|
374
|
+
* tiles this is equivalent to the old AABB lerp; for rotated tiles it correctly
|
|
375
|
+
* samples the actual quadrilateral rather than its bounding box.
|
|
407
376
|
*
|
|
408
|
-
* Note that EPSG:3857 is **not** the same as deck.gl's common space
|
|
409
|
-
* common space is
|
|
410
|
-
* meters.
|
|
377
|
+
* Note that EPSG:3857 is **not** the same as deck.gl's common space — deck.gl's
|
|
378
|
+
* common space is 512 units wide, while EPSG:3857 uses meters.
|
|
411
379
|
*
|
|
412
|
-
* @param
|
|
413
|
-
* @param
|
|
380
|
+
* @param refPoints Reference points as `[relX, relY]` fractions in `[0, 1]`.
|
|
381
|
+
* @param tileCorners The four CRS corners of the tile.
|
|
414
382
|
*/
|
|
415
|
-
function sampleReferencePointsInEPSG3857(refPoints,
|
|
416
|
-
const
|
|
383
|
+
function sampleReferencePointsInEPSG3857(refPoints, tileCorners, projectTo3857, projectTo4326) {
|
|
384
|
+
const { topLeft, topRight, bottomLeft, bottomRight } = tileCorners;
|
|
417
385
|
const clampedProjectTo3857 = makeClampedForwardTo3857(projectTo3857, projectTo4326);
|
|
418
386
|
const refPointPositions = [];
|
|
419
387
|
for (const [relX, relY] of refPoints) {
|
|
420
|
-
const geoX =
|
|
421
|
-
const geoY = minY + relY * (maxY - minY);
|
|
388
|
+
const [geoX, geoY] = bilerpPoint(topLeft, topRight, bottomLeft, bottomRight, relX, relY);
|
|
422
389
|
refPointPositions.push(clampedProjectTo3857(geoX, geoY));
|
|
423
390
|
}
|
|
424
391
|
return refPointPositions;
|
|
@@ -428,10 +395,6 @@ function sampleReferencePointsInEPSG3857(refPoints, tileBounds, projectTo3857, p
|
|
|
428
395
|
*
|
|
429
396
|
* Similar to the upstream code here:
|
|
430
397
|
* https://github.com/visgl/deck.gl/blob/b0134f025148b52b91320d16768ab5d14a745328/modules/geo-layers/src/tileset-2d/tile-2d-traversal.ts#L172-L177
|
|
431
|
-
*
|
|
432
|
-
* @param {number[]} xy [xy description]
|
|
433
|
-
*
|
|
434
|
-
* @return {number} [return description]
|
|
435
398
|
*/
|
|
436
399
|
function rescaleEPSG3857ToCommonSpace([x, y]) {
|
|
437
400
|
// Clamp Y to Web Mercator bounds
|
|
@@ -442,63 +405,14 @@ function rescaleEPSG3857ToCommonSpace([x, y]) {
|
|
|
442
405
|
];
|
|
443
406
|
}
|
|
444
407
|
/**
|
|
445
|
-
*
|
|
446
|
-
* overlap a parent tile.
|
|
447
|
-
*
|
|
448
|
-
* TileMatrixSets are not guaranteed to form a strict quadtree: successive
|
|
449
|
-
* TileMatrix levels may differ by non-integer refinement ratios and may not
|
|
450
|
-
* align perfectly in tile space. As a result, parent/child relationships
|
|
451
|
-
* cannot be inferred from zoom level or resolution alone.
|
|
452
|
-
*
|
|
453
|
-
* This function determines parent→child relationships by:
|
|
454
|
-
* 1. Treating each TileMatrix as an independent, axis-aligned grid in CRS space
|
|
455
|
-
* 2. Mapping the parent tile's CRS bounding box into the child grid
|
|
456
|
-
* 3. Returning the inclusive range of child tile indices whose spatial extent
|
|
457
|
-
* intersects the parent tile
|
|
408
|
+
* Get tile indices visible in viewport.
|
|
458
409
|
*
|
|
459
|
-
*
|
|
460
|
-
*
|
|
410
|
+
* Uses frustum culling driven by a {@link TilesetDescriptor}, which abstracts
|
|
411
|
+
* over OGC TileMatrixSet grids and Zarr multiscale pyramids.
|
|
461
412
|
*
|
|
462
|
-
*
|
|
463
|
-
* - The TileMatrix grid is axis-aligned in CRS space
|
|
464
|
-
* - `cornerOfOrigin` is `"topLeft"`
|
|
465
|
-
* - Tiles are rectangular and uniformly sized within a TileMatrix
|
|
466
|
-
*
|
|
467
|
-
* @param parentBounds Bounding box of the parent tile in CRS coordinates
|
|
468
|
-
* as `[minX, minY, maxX, maxY]`
|
|
469
|
-
* @param childMatrix The TileMatrix definition for the child zoom level
|
|
470
|
-
*
|
|
471
|
-
* @returns An object containing inclusive index ranges:
|
|
472
|
-
* `{ minCol, maxCol, minRow, maxRow }`, identifying all child tiles
|
|
473
|
-
* that spatially overlap the parent tile
|
|
413
|
+
* Overview levels follow the descriptor ordering: index 0 = coarsest, higher = finer.
|
|
474
414
|
*/
|
|
475
|
-
function
|
|
476
|
-
const [pMinX, pMinY, pMaxX, pMaxY] = parentBounds;
|
|
477
|
-
const { tileWidth, tileHeight, cellSize, matrixWidth, matrixHeight, pointOfOrigin, } = childMatrix;
|
|
478
|
-
const childTileWidthCRS = tileWidth * cellSize;
|
|
479
|
-
const childTileHeightCRS = tileHeight * cellSize;
|
|
480
|
-
// Note: we assume top left origin
|
|
481
|
-
const originX = pointOfOrigin[0];
|
|
482
|
-
const originY = pointOfOrigin[1];
|
|
483
|
-
// Convert CRS bounds → tile indices
|
|
484
|
-
let minCol = Math.floor((pMinX - originX) / childTileWidthCRS);
|
|
485
|
-
let maxCol = Math.floor((pMaxX - originX) / childTileWidthCRS);
|
|
486
|
-
let minRow = Math.floor((originY - pMaxY) / childTileHeightCRS);
|
|
487
|
-
let maxRow = Math.floor((originY - pMinY) / childTileHeightCRS);
|
|
488
|
-
// Clamp to matrix bounds
|
|
489
|
-
minCol = Math.max(0, Math.min(matrixWidth - 1, minCol));
|
|
490
|
-
maxCol = Math.max(0, Math.min(matrixWidth - 1, maxCol));
|
|
491
|
-
minRow = Math.max(0, Math.min(matrixHeight - 1, minRow));
|
|
492
|
-
maxRow = Math.max(0, Math.min(matrixHeight - 1, maxRow));
|
|
493
|
-
return { minCol, maxCol, minRow, maxRow };
|
|
494
|
-
}
|
|
495
|
-
/**
|
|
496
|
-
* Get tile indices visible in viewport
|
|
497
|
-
* Uses frustum culling similar to OSM implementation
|
|
498
|
-
*
|
|
499
|
-
* Overviews follow TileMatrixSet ordering: index 0 = coarsest, higher = finer
|
|
500
|
-
*/
|
|
501
|
-
export function getTileIndices(metadata, opts) {
|
|
415
|
+
export function getTileIndices(descriptor, opts) {
|
|
502
416
|
const { viewport, maxZ, zRange, wgs84Bounds } = opts;
|
|
503
417
|
// Only define `project` function for Globe viewports, same as upstream
|
|
504
418
|
const project = viewport instanceof _GlobeViewport && viewport.resolution
|
|
@@ -537,9 +451,7 @@ export function getTileIndices(metadata, opts) {
|
|
|
537
451
|
// In our case we want LOD to be evaluated at **all** levels, so we set the
|
|
538
452
|
// minZ to 0
|
|
539
453
|
const minZ = 0;
|
|
540
|
-
const
|
|
541
|
-
const [minLng, minLat] = lowerLeft;
|
|
542
|
-
const [maxLng, maxLat] = upperRight;
|
|
454
|
+
const [minLng, minLat, maxLng, maxLat] = wgs84Bounds;
|
|
543
455
|
const bottomLeft = lngLatToWorld([minLng, minLat]);
|
|
544
456
|
const topRight = lngLatToWorld([maxLng, maxLat]);
|
|
545
457
|
const bounds = [
|
|
@@ -548,19 +460,15 @@ export function getTileIndices(metadata, opts) {
|
|
|
548
460
|
topRight[0],
|
|
549
461
|
topRight[1],
|
|
550
462
|
];
|
|
551
|
-
// Start from coarsest
|
|
552
|
-
const
|
|
553
|
-
// Create root tiles at coarsest level
|
|
463
|
+
// Start from coarsest level
|
|
464
|
+
const rootLevel = descriptor.levels[0];
|
|
465
|
+
// Create root tiles at coarsest level.
|
|
554
466
|
// In contrary to OSM tiling, we might have more than one tile at the
|
|
555
|
-
// coarsest level (z=0)
|
|
467
|
+
// coarsest level (z=0).
|
|
556
468
|
const roots = [];
|
|
557
|
-
for (let y = 0; y <
|
|
558
|
-
for (let x = 0; x <
|
|
559
|
-
roots.push(new RasterTileNode(x, y, 0, {
|
|
560
|
-
metadata,
|
|
561
|
-
projectTo3857: opts.projectTo3857,
|
|
562
|
-
projectTo4326: opts.projectTo4326,
|
|
563
|
-
}));
|
|
469
|
+
for (let y = 0; y < rootLevel.matrixHeight; y++) {
|
|
470
|
+
for (let x = 0; x < rootLevel.matrixWidth; x++) {
|
|
471
|
+
roots.push(new RasterTileNode(x, y, 0, { descriptor }));
|
|
564
472
|
}
|
|
565
473
|
}
|
|
566
474
|
// Traverse and update visibility
|
|
@@ -602,10 +510,58 @@ function getMetersPerPixelAtBoundingVolume(boundingVolume, zoom) {
|
|
|
602
510
|
return getMetersPerPixel(lat, zoom);
|
|
603
511
|
}
|
|
604
512
|
/**
|
|
605
|
-
*
|
|
513
|
+
* Compute the axis-aligned bounding box of a rotated tile rectangle.
|
|
514
|
+
*/
|
|
515
|
+
function cornersToBounds({ topLeft, topRight, bottomLeft, bottomRight, }) {
|
|
516
|
+
const xs = [topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]];
|
|
517
|
+
const ys = [topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]];
|
|
518
|
+
return [Math.min(...xs), Math.min(...ys), Math.max(...xs), Math.max(...ys)];
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Bilinearly interpolate a 2D point over a unit square.
|
|
522
|
+
*
|
|
523
|
+
* Given four corner points of a quadrilateral, this evaluates the bilinear
|
|
524
|
+
* interpolation at normalized coordinates `(x, y)` ∈ [0, 1]². The mapping is:
|
|
525
|
+
*
|
|
526
|
+
* p(x, y) =
|
|
527
|
+
* p00 * (1 - x) * (1 - y) +
|
|
528
|
+
* p10 * x * (1 - y) +
|
|
529
|
+
* p01 * (1 - x) * y +
|
|
530
|
+
* p11 * x * y
|
|
531
|
+
*
|
|
532
|
+
* where:
|
|
533
|
+
* - `p00` corresponds to (x=0, y=0) (top-left)
|
|
534
|
+
* - `p10` corresponds to (x=1, y=0) (top-right)
|
|
535
|
+
* - `p01` corresponds to (x=0, y=1) (bottom-left)
|
|
536
|
+
* - `p11` corresponds to (x=1, y=1) (bottom-right)
|
|
537
|
+
*
|
|
538
|
+
* This performs interpolation in Euclidean space (component-wise on x/y),
|
|
539
|
+
* producing a bilinear mapping from the unit square to the quadrilateral
|
|
540
|
+
* defined by the four input points.
|
|
541
|
+
*
|
|
542
|
+
* @param p00 - Point at (0, 0), typically top-left.
|
|
543
|
+
* @param p10 - Point at (1, 0), typically top-right.
|
|
544
|
+
* @param p01 - Point at (0, 1), typically bottom-left.
|
|
545
|
+
* @param p11 - Point at (1, 1), typically bottom-right.
|
|
546
|
+
* @param x - Normalized horizontal coordinate in [0, 1].
|
|
547
|
+
* @param y - Normalized vertical coordinate in [0, 1].
|
|
548
|
+
* @returns Interpolated 2D point `[x, y]`.
|
|
549
|
+
*
|
|
550
|
+
* @remarks
|
|
551
|
+
* - Reduces to linear interpolation along edges when `x = 0/1` or `y = 0/1`.
|
|
552
|
+
* - Produces an affine mapping only if the four points form a parallelogram;
|
|
553
|
+
* otherwise the interior mapping is bilinear (not affine).
|
|
554
|
+
* - No CRS or geodesic behavior is implied; inputs are treated as Cartesian
|
|
555
|
+
* coordinates.
|
|
606
556
|
*/
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
557
|
+
function bilerpPoint(p00, p10, p01, p11, x, y) {
|
|
558
|
+
const w00 = (1 - x) * (1 - y);
|
|
559
|
+
const w10 = x * (1 - y);
|
|
560
|
+
const w01 = (1 - x) * y;
|
|
561
|
+
const w11 = x * y;
|
|
562
|
+
return [
|
|
563
|
+
p00[0] * w00 + p10[0] * w10 + p01[0] * w01 + p11[0] * w11,
|
|
564
|
+
p00[1] * w00 + p10[1] * w10 + p01[1] * w01 + p11[1] * w11,
|
|
565
|
+
];
|
|
566
|
+
}
|
|
611
567
|
//# sourceMappingURL=raster-tile-traversal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raster-tile-traversal.js","sourceRoot":"","sources":["../../src/raster-tileset/raster-tile-traversal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EACL,aAAa,EACb,iCAAiC,EACjC,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAUrE;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,sEAAsE;AACtE,eAAe;AACf,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,+EAA+E;AAC/E,4EAA4E;AAC5E,6CAA6C;AAC7C,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,gEAAgE;AAEhE,+DAA+D;AAC/D,MAAM,YAAY,GAAuB;IACvC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS;IACrB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW;IACnB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc;IACtB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY;IACpB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe;CACxB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;IACvC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY;IACtB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW;IACrB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa;IACvB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc;CACzB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC;AAChE,MAAM,4BAA4B,GAAG,uBAAuB,GAAG,CAAC,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAE/C,oBAAoB;AACpB,uDAAuD;AACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IACzB,yBAAyB;IACzB,CAAC,CAAS;IAEV,0BAA0B;IAC1B,CAAC,CAAS;IAEV,uDAAuD;IACvD,CAAC,CAAS;IAEF,QAAQ,CAAgB;IAEhC;;;;;OAKG;IACK,YAAY,CAAW;IAE/B;;;;OAIG;IACK,QAAQ,CAAW;IAE3B,4CAA4C;IACpC,SAAS,CAA2B;IAEpC,aAAa,CAAqB;IAClC,aAAa,CAAqB;IAE1C,YACE,CAAS,EACT,CAAS,EACT,CAAS,EACT,EACE,QAAQ,EACR,aAAa,EACb,aAAa,GAKd;QAED,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,gDAAgD;IAChD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,4CAA4C;gBAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,4DAA4D;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAE,CAAC;YAExD,yCAAyC;YACzC,MAAM,YAAY,GAAG,0BAA0B,CAAC,YAAY,EAAE;gBAC5D,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;aACV,CAAC,CAAC;YAEH,qCAAqC;YACrC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,wBAAwB,CACjE,YAAY,EACZ,WAAW,CACZ,CAAC;YAEF,MAAM,QAAQ,GAAqB,EAAE,CAAC;YAEtC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,QAAQ,CAAC,IAAI,CACX,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;wBAC/B,QAAQ;wBACR,aAAa;wBACb,aAAa;qBACd,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,MAcN;QACC,cAAc;QACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,IAAI,EACJ,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAC5C,OAAO,EACP,MAAM,GACP,GAAG,MAAM,CAAC;QAEX,oCAAoC;QACpC,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAClE,eAAe,EACf,OAAO,CACR,CAAC;QAEF,0BAA0B;QAC1B,wEAAwE;QACxE,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,kBAAkB;QAClB,+DAA+D;QAC/D,gEAAgE;QAChE,MAAM,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,kEAAkE;QAClE,4EAA4E;QAC5E,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACzC,MAAM,oBAAoB,GAAG,iCAAiC,CAC5D,cAAc,EACd,QAAQ,CAAC,IAAI,CACd,CAAC;YACF,6DAA6D;YAE7D,MAAM,kBAAkB,GACtB,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;YAEvD,yDAAyD;YAEzD,2EAA2E;YAE3E,iEAAiE;YAEjE,iDAAiD;YACjD,yBAAyB;YACzB,wEAAwE;YAExE,eAAe;YACf,wCAAwC;YACxC,sCAAsC;YACtC,KAAK;YAEL,eAAe;YACf,kDAAkD;YAClD,gDAAgD;YAChD,KAAK;YAEL,IACE,kBAAkB,IAAI,oBAAoB;gBAC1C,IAAI,CAAC,CAAC,IAAI,IAAI;gBACd,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EACrC,CAAC;gBACD,2EAA2E;gBAC3E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,EAAE;QACF,qEAAqE;QACrE,0EAA0E;QAC1E,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YAEtB,IAAI,eAAe,GAAG,KAAK,CAAC;YAE5B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzB,eAAe,GAAG,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC;YACpC,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,SAA2B,EAAE;QACvC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAc,EAAE,iBAAyB;QACpD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;QACxC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,iBAAiB,CAAC;QAEnE,MAAM,MAAM,GACV,QAAQ,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC;QAE3E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CACf,MAAc,EACd,OAA6C;QAE7C,uEAAuE;QACvE,gEAAgE;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,EAAE,iDAAiD,CAAC,CAAC;YACjE,sEAAsE;YACtE,+DAA+D;QACjE,CAAC;QAED,0EAA0E;QAC1E,eAAe;QAEf,uEAAuE;QACvE,oEAAoE;QACpE,WAAW;QAEX,kEAAkE;QAClE,qDAAqD;QACrD,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACK,yBAAyB,CAAC,MAAc;QAI9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;QAE5B,MAAM,aAAa,GAAG,0BAA0B,CAAC,UAAU,EAAE;YAC3D,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,+BAA+B,CACvD,YAAY,EACZ,aAAa,EACb,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,CACnB,CAAC;QAEF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACxD,4BAA4B,CAAC,EAAE,CAAC,CACjC,CAAC;QAEF,MAAM,iBAAiB,GAA+B,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,oBAAoB,EAAE,CAAC;YACrC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAE3C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,iEAAiE;gBACjE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,mCAAmC;QACnC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEpC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,iBAAiB,GAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO;YACL,cAAc,EAAE,iCAAiC,CAAC,iBAAiB,CAAC;YACpE,iBAAiB;SAClB,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,SAAS,0BAA0B,CACjC,UAAsB,EACtB,EACE,CAAC,EACD,CAAC,GAIF;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/C,OAAO;QACL,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;KACrB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,wBAAwB,CAC/B,aAAiC,EACjC,aAAiC;IAEjC,OAAO,CAAC,CAAS,EAAE,CAAS,EAAoB,EAAE;QAChD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,oBAAoB,EACrB,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CACpC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QAC5C,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC,GAAG,GAAG,CAAC;QACxD,MAAM,KAAK,GACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;QACnE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,+BAA+B,CACtC,SAA6B,EAC7B,UAA4C,EAC5C,aAAiC,EACjC,aAAiC;IAEjC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC;IAC5C,MAAM,oBAAoB,GAAG,wBAAwB,CACnD,aAAa,EACb,aAAa,CACd,CAAC;IACF,MAAM,iBAAiB,GAAuB,EAAE,CAAC;IAEjD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACzC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAmB;IAI5D,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,4BAA4B,EAC7B,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAC1C,CAAC;IAEF,OAAO;QACL,CAAC,CAAC,GAAG,uBAAuB,GAAG,GAAG,CAAC,GAAG,SAAS;QAC/C,CAAC,QAAQ,GAAG,uBAAuB,GAAG,GAAG,CAAC,GAAG,SAAS;KACvD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAS,wBAAwB,CAC/B,YAA8C,EAC9C,WAAuB;IAOvB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC;IAElD,MAAM,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,aAAa,GACd,GAAG,WAAW,CAAC;IAEhB,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC/C,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,CAAC;IAEjD,kCAAkC;IAClC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC,oCAAoC;IACpC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAC/D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAE/D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,CAAC;IAChE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,CAAC;IAEhE,yBAAyB;IACzB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAuB,EACvB,IAOC;IAED,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAErD,uEAAuE;IACvE,MAAM,OAAO,GACX,QAAQ,YAAY,cAAc,IAAI,QAAQ,CAAC,UAAU;QACvD,CAAC,CAAC,QAAQ,CAAC,eAAe;QAC1B,CAAC,CAAC,IAAI,CAAC;IAEX,+CAA+C;IAC/C,wBAAwB;IACxB,MAAM,MAAM,GAAY,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CACpE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CACvE,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAEhD,6CAA6C;IAC7C,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEhE,8EAA8E;IAC9E,iEAAiE;IACjE,EAAE;IACF,kBAAkB;IAClB,EAAE;IACF,QAAQ;IACR,eAAe;IACf,gFAAgF;IAChF,MAAM;IACN,EAAE;IACF,8BAA8B;IAC9B,EAAE;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,iEAAiE;IACjE,EAAE;IACF,oEAAoE;IACpE,kEAAkE;IAClE,EAAE;IACF,2EAA2E;IAC3E,yDAAyD;IACzD,EAAE;IACF,2EAA2E;IAC3E,YAAY;IACZ,MAAM,IAAI,GAAG,CAAC,CAAC;IAEf,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;IAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAW;QACrB,UAAU,CAAC,CAAC,CAAC;QACb,UAAU,CAAC,CAAC,CAAC;QACb,QAAQ,CAAC,CAAC,CAAC;QACX,QAAQ,CAAC,CAAC,CAAC;KACZ,CAAC;IAEF,+BAA+B;IAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC;IAE7C,sCAAsC;IACtC,qEAAqE;IACrE,uBAAuB;IACvB,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CACR,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBAC1B,QAAQ;gBACR,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,eAAe,GAAG;QACtB,QAAQ;QACR,OAAO;QACP,aAAa;QACb,eAAe,EAAE,CAAC,YAAY,EAAE,YAAY,CAAW;QACvD,IAAI;QACJ,IAAI;QACJ,MAAM;KACP,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC;IAED,yBAAyB;IACzB,MAAM,aAAa,GAAqB,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,QAAgB,EAAE,IAAY;IACvD,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACxC,OAAO,CACL,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QAC3D,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CACxC,cAAmC,EACnC,IAAY;IAEZ,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,0BAA0B;IAC1B,cAAc;CACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"raster-tile-traversal.js","sourceRoot":"","sources":["../../src/raster-tileset/raster-tile-traversal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* RasterTileset2D - Generic tile traversal over a tile pyramid with Frustum
|
|
3
|
+
* Culling
|
|
3
4
|
*
|
|
4
5
|
* This version properly implements frustum culling and bounding volume calculations
|
|
5
6
|
* following the pattern from deck.gl's OSM tile indexing.
|
|
@@ -7,9 +8,9 @@
|
|
|
7
8
|
import type { Viewport } from "@deck.gl/core";
|
|
8
9
|
import type { GeoBoundingBox, _Tileset2DProps as Tileset2DProps } from "@deck.gl/geo-layers";
|
|
9
10
|
import { _Tileset2D as Tileset2D } from "@deck.gl/geo-layers";
|
|
10
|
-
import type { TileMatrix, TileMatrixSet } from "@developmentseed/morecantile";
|
|
11
11
|
import type { Matrix4 } from "@math.gl/core";
|
|
12
|
-
import type {
|
|
12
|
+
import type { TilesetDescriptor } from "./tileset-interface";
|
|
13
|
+
import type { Corners, ProjectedBoundingBox, ProjectionFunction, TileIndex, ZRange } from "./types";
|
|
13
14
|
/** Type returned by `getTileMetadata` */
|
|
14
15
|
export type TileMetadata = {
|
|
15
16
|
/**
|
|
@@ -27,28 +28,15 @@ export type TileMetadata = {
|
|
|
27
28
|
* This preserves rotation/skew information that would be lost in the
|
|
28
29
|
* axis-aligned bbox.
|
|
29
30
|
*/
|
|
30
|
-
projectedCorners:
|
|
31
|
-
topLeft: Point;
|
|
32
|
-
topRight: Point;
|
|
33
|
-
bottomLeft: Point;
|
|
34
|
-
bottomRight: Point;
|
|
35
|
-
};
|
|
31
|
+
projectedCorners: Corners;
|
|
36
32
|
/**
|
|
37
33
|
* Tile width in pixels.
|
|
38
|
-
*
|
|
39
|
-
* Note this may differ between levels in some TileMatrixSets.
|
|
40
34
|
*/
|
|
41
35
|
tileWidth: number;
|
|
42
36
|
/**
|
|
43
37
|
* Tile height in pixels.
|
|
44
|
-
*
|
|
45
|
-
* Note this may differ between levels in some TileMatrixSets.
|
|
46
38
|
*/
|
|
47
39
|
tileHeight: number;
|
|
48
|
-
/**
|
|
49
|
-
* A reference to the underlying TileMatrix.
|
|
50
|
-
*/
|
|
51
|
-
tileMatrix: TileMatrix;
|
|
52
40
|
};
|
|
53
41
|
/**
|
|
54
42
|
* A generic tileset implementation organized according to the OGC
|
|
@@ -57,14 +45,12 @@ export type TileMetadata = {
|
|
|
57
45
|
*
|
|
58
46
|
* Handles tile lifecycle, caching, and viewport-based loading.
|
|
59
47
|
*/
|
|
60
|
-
export declare class
|
|
61
|
-
private
|
|
48
|
+
export declare class RasterTileset2D extends Tileset2D {
|
|
49
|
+
private descriptor;
|
|
62
50
|
private wgs84Bounds;
|
|
63
|
-
private projectTo3857;
|
|
64
51
|
private projectTo4326;
|
|
65
|
-
constructor(opts: Tileset2DProps,
|
|
52
|
+
constructor(opts: Tileset2DProps, descriptor: TilesetDescriptor, { projectTo4326, }: {
|
|
66
53
|
projectTo4326: ProjectionFunction;
|
|
67
|
-
projectTo3857: ProjectionFunction;
|
|
68
54
|
});
|
|
69
55
|
/**
|
|
70
56
|
* Get tile indices visible in viewport
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raster-tileset-2d.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/raster-tileset-2d.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"raster-tileset-2d.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/raster-tileset-2d.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EACV,cAAc,EACd,eAAe,IAAI,cAAc,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAEV,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,oBAAoB,CAAC;IAEpC;;;;;;OAMG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAqB;gBAGxC,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,iBAAiB,EAC7B,EACE,aAAa,GACd,EAAE;QACD,aAAa,EAAE,kBAAkB,CAAC;KACnC;IAYH;;;;;OAKG;IACM,cAAc,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,QAAQ,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,SAAS,EAAE;IAkBN,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAInC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAiC3C,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIrC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY;CAmDzD"}
|