@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.
Files changed (69) hide show
  1. package/dist/gpu-modules/composite-bands.d.ts +85 -0
  2. package/dist/gpu-modules/composite-bands.d.ts.map +1 -0
  3. package/dist/gpu-modules/composite-bands.js +141 -0
  4. package/dist/gpu-modules/composite-bands.js.map +1 -0
  5. package/dist/gpu-modules/cutline-bbox.d.ts +70 -0
  6. package/dist/gpu-modules/cutline-bbox.d.ts.map +1 -0
  7. package/dist/gpu-modules/cutline-bbox.js +100 -0
  8. package/dist/gpu-modules/cutline-bbox.js.map +1 -0
  9. package/dist/gpu-modules/index.d.ts +6 -0
  10. package/dist/gpu-modules/index.d.ts.map +1 -1
  11. package/dist/gpu-modules/index.js +3 -0
  12. package/dist/gpu-modules/index.js.map +1 -1
  13. package/dist/gpu-modules/linear-rescale.d.ts +39 -0
  14. package/dist/gpu-modules/linear-rescale.d.ts.map +1 -0
  15. package/dist/gpu-modules/linear-rescale.js +40 -0
  16. package/dist/gpu-modules/linear-rescale.js.map +1 -0
  17. package/dist/gpu-modules/types.d.ts +10 -1
  18. package/dist/gpu-modules/types.d.ts.map +1 -1
  19. package/dist/index.d.ts +6 -10
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +4 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/layer-utils.d.ts +28 -0
  24. package/dist/layer-utils.d.ts.map +1 -0
  25. package/dist/layer-utils.js +56 -0
  26. package/dist/layer-utils.js.map +1 -0
  27. package/dist/mesh-layer/mesh-layer.d.ts +15 -3
  28. package/dist/mesh-layer/mesh-layer.d.ts.map +1 -1
  29. package/dist/mesh-layer/mesh-layer.js +25 -3
  30. package/dist/mesh-layer/mesh-layer.js.map +1 -1
  31. package/dist/multi-raster-tileset/index.d.ts +5 -0
  32. package/dist/multi-raster-tileset/index.d.ts.map +1 -0
  33. package/dist/multi-raster-tileset/index.js +3 -0
  34. package/dist/multi-raster-tileset/index.js.map +1 -0
  35. package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts +75 -0
  36. package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts.map +1 -0
  37. package/dist/multi-raster-tileset/multi-tileset-descriptor.js +97 -0
  38. package/dist/multi-raster-tileset/multi-tileset-descriptor.js.map +1 -0
  39. package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts +129 -0
  40. package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts.map +1 -0
  41. package/dist/multi-raster-tileset/secondary-tile-resolver.js +88 -0
  42. package/dist/multi-raster-tileset/secondary-tile-resolver.js.map +1 -0
  43. package/dist/raster-layer.d.ts +30 -12
  44. package/dist/raster-layer.d.ts.map +1 -1
  45. package/dist/raster-layer.js +20 -28
  46. package/dist/raster-layer.js.map +1 -1
  47. package/dist/raster-tileset/index.d.ts +4 -1
  48. package/dist/raster-tileset/index.d.ts.map +1 -1
  49. package/dist/raster-tileset/index.js +2 -1
  50. package/dist/raster-tileset/index.js.map +1 -1
  51. package/dist/raster-tileset/raster-tile-traversal.d.ts +35 -51
  52. package/dist/raster-tileset/raster-tile-traversal.d.ts.map +1 -1
  53. package/dist/raster-tileset/raster-tile-traversal.js +128 -172
  54. package/dist/raster-tileset/raster-tile-traversal.js.map +1 -1
  55. package/dist/raster-tileset/raster-tileset-2d.d.ts +8 -22
  56. package/dist/raster-tileset/raster-tileset-2d.d.ts.map +1 -1
  57. package/dist/raster-tileset/raster-tileset-2d.js +18 -81
  58. package/dist/raster-tileset/raster-tileset-2d.js.map +1 -1
  59. package/dist/raster-tileset/tile-matrix-set.d.ts +20 -0
  60. package/dist/raster-tileset/tile-matrix-set.d.ts.map +1 -0
  61. package/dist/raster-tileset/tile-matrix-set.js +121 -0
  62. package/dist/raster-tileset/tile-matrix-set.js.map +1 -0
  63. package/dist/raster-tileset/tileset-interface.d.ts +78 -0
  64. package/dist/raster-tileset/tileset-interface.d.ts.map +1 -0
  65. package/dist/raster-tileset/tileset-interface.js +2 -0
  66. package/dist/raster-tileset/tileset-interface.js.map +1 -0
  67. package/dist/raster-tileset/types.d.ts +10 -18
  68. package/dist/raster-tileset/types.d.ts.map +1 -1
  69. package/package.json +14 -14
@@ -1,8 +1,22 @@
1
- import type { CompositeLayerProps, Layer, UpdateParameters } from "@deck.gl/core";
1
+ import type { CompositeLayerProps, DefaultProps, Layer, TextureSource, UpdateParameters } from "@deck.gl/core";
2
2
  import { CompositeLayer } from "@deck.gl/core";
3
3
  import type { ReprojectionFns } from "@developmentseed/raster-reproject";
4
4
  import { RasterReprojector } from "@developmentseed/raster-reproject";
5
5
  import type { RasterModule } from "./gpu-modules/types";
6
+ /**
7
+ * The result returned by a `renderTile` function.
8
+ *
9
+ * Must contain at least one of `image` or `renderPipeline`. If both are
10
+ * provided, `image` is prepended as a `CreateTexture` module so the pipeline
11
+ * can operate on it.
12
+ */
13
+ export type RenderTileResult = {
14
+ image: TextureSource;
15
+ renderPipeline?: RasterModule[];
16
+ } | {
17
+ renderPipeline: RasterModule[];
18
+ image?: TextureSource;
19
+ };
6
20
  /**
7
21
  * Props for {@link RasterLayer}.
8
22
  */
@@ -20,14 +34,23 @@ export interface RasterLayerProps extends CompositeLayerProps {
20
34
  */
21
35
  reprojectionFns: ReprojectionFns;
22
36
  /**
23
- * Render pipeline for visualizing textures.
37
+ * The image to display. Accepts any luma.gl `TextureSource` (e.g. a URL,
38
+ * `HTMLImageElement`, `ImageData`, etc.). deck.gl manages the texture
39
+ * lifecycle automatically.
24
40
  *
25
- * Can be:
41
+ * If `renderPipeline` is also provided, `image` is prepended as a
42
+ * `CreateTexture` module so the pipeline can operate on it.
26
43
  *
27
- * - ImageData representing RGBA pixel data
28
- * - Sequence of shader modules to be composed into a shader program
44
+ * @default null
29
45
  */
30
- renderPipeline: ImageData | RasterModule[];
46
+ image?: TextureSource | null;
47
+ /**
48
+ * Sequence of shader modules to be composed into a render pipeline.
49
+ *
50
+ * If `image` is also provided, it is automatically prepended as a
51
+ * `CreateTexture` module.
52
+ */
53
+ renderPipeline?: RasterModule[] | null;
31
54
  /**
32
55
  * Maximum reprojection error in pixels for mesh refinement.
33
56
  * Lower values create denser meshes with higher accuracy.
@@ -50,10 +73,7 @@ export interface RasterLayerProps extends CompositeLayerProps {
50
73
  */
51
74
  export declare class RasterLayer extends CompositeLayer<RasterLayerProps> {
52
75
  static layerName: string;
53
- static defaultProps: {
54
- debug: boolean;
55
- debugOpacity: number;
56
- };
76
+ static defaultProps: DefaultProps<RasterLayerProps>;
57
77
  state: {
58
78
  reprojector?: RasterReprojector;
59
79
  mesh?: {
@@ -66,8 +86,6 @@ export declare class RasterLayer extends CompositeLayer<RasterLayerProps> {
66
86
  updateState(params: UpdateParameters<this>): void;
67
87
  protected _generateMesh(): void;
68
88
  renderDebugLayer(): Layer | null;
69
- /** Create assembled render pipeline from the renderPipeline prop input. */
70
- protected _createRenderPipeline(): RasterModule[];
71
89
  renderLayers(): Layer<{}>[] | null;
72
90
  }
73
91
  //# sourceMappingURL=raster-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raster-layer.d.ts","sourceRoot":"","sources":["../src/raster-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,KAAK,EACL,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAmCxD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;;;;OAOG;IACH,cAAc,EAAE,SAAS,GAAG,YAAY,EAAE,CAAC;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oFAAoF;IACpF,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAC/D,OAAgB,SAAS,SAAiB;IAC1C,OAAgB,YAAY;;;MAAgB;IAEpC,KAAK,EAAE;QACb,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,IAAI,CAAC,EAAE;YACL,SAAS,EAAE,YAAY,CAAC;YACxB,OAAO,EAAE,WAAW,CAAC;YACrB,SAAS,EAAE,YAAY,CAAC;SACzB,CAAC;KACH,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAkBnD,SAAS,CAAC,aAAa,IAAI,IAAI;IAiC/B,gBAAgB,IAAI,KAAK,GAAG,IAAI;IA6DhC,2EAA2E;IAC3E,SAAS,CAAC,qBAAqB,IAAI,YAAY,EAAE;IAqBjD,YAAY;CAmDb"}
1
+ {"version":3,"file":"raster-layer.d.ts","sourceRoot":"","sources":["../src/raster-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,KAAK,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAmCxD;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,GACzD;IAAE,cAAc,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAE7B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oFAAoF;IACpF,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAWD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAC/D,OAAgB,SAAS,SAAiB;IAC1C,OAAgB,YAAY,iCAAgB;IAEpC,KAAK,EAAE;QACb,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,IAAI,CAAC,EAAE;YACL,SAAS,EAAE,YAAY,CAAC;YACxB,OAAO,EAAE,WAAW,CAAC;YACrB,SAAS,EAAE,YAAY,CAAC;SACzB,CAAC;KACH,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IA8BnD,SAAS,CAAC,aAAa,IAAI,IAAI;IAiC/B,gBAAgB,IAAI,KAAK,GAAG,IAAI;IA6DhC,YAAY;CAoDb"}
@@ -1,7 +1,6 @@
1
1
  import { CompositeLayer } from "@deck.gl/core";
2
2
  import { PolygonLayer } from "@deck.gl/layers";
3
3
  import { RasterReprojector } from "@developmentseed/raster-reproject";
4
- import { CreateTexture } from "./gpu-modules/create-texture";
5
4
  import { MeshTextureLayer } from "./mesh-layer/mesh-layer";
6
5
  const DEFAULT_MAX_ERROR = 0.125;
7
6
  const DEBUG_COLORS = [
@@ -29,6 +28,10 @@ const DEBUG_COLORS = [
29
28
  [0, 204, 255], // cyan
30
29
  ];
31
30
  const defaultProps = {
31
+ // A prop with `type: "image"` gets converted to a texture automatically by
32
+ // deck.gl (as long as async: true)
33
+ image: { type: "image", value: null, async: true },
34
+ renderPipeline: { type: "array", value: [], compare: true },
32
35
  debug: false,
33
36
  debugOpacity: 0.5,
34
37
  };
@@ -50,11 +53,21 @@ export class RasterLayer extends CompositeLayer {
50
53
  updateState(params) {
51
54
  super.updateState(params);
52
55
  const { props, oldProps, changeFlags } = params;
53
- // Regenerate mesh if key properties change
56
+ // Regenerate mesh if key properties change.
57
+ // Compare reprojectionFns members individually since callers may create a
58
+ // new wrapper object on every render even when the functions are stable.
59
+ const reprojectionFnsChanged = props.reprojectionFns.forwardTransform !==
60
+ oldProps.reprojectionFns?.forwardTransform ||
61
+ props.reprojectionFns.inverseTransform !==
62
+ oldProps.reprojectionFns?.inverseTransform ||
63
+ props.reprojectionFns.forwardReproject !==
64
+ oldProps.reprojectionFns?.forwardReproject ||
65
+ props.reprojectionFns.inverseReproject !==
66
+ oldProps.reprojectionFns?.inverseReproject;
54
67
  const needsMeshUpdate = Boolean(changeFlags.dataChanged) ||
55
68
  props.width !== oldProps.width ||
56
69
  props.height !== oldProps.height ||
57
- props.reprojectionFns !== oldProps.reprojectionFns ||
70
+ reprojectionFnsChanged ||
58
71
  props.maxError !== oldProps.maxError;
59
72
  if (needsMeshUpdate) {
60
73
  this._generateMesh();
@@ -122,38 +135,17 @@ export class RasterLayer extends CompositeLayer {
122
135
  pickable: false,
123
136
  }));
124
137
  }
125
- /** Create assembled render pipeline from the renderPipeline prop input. */
126
- _createRenderPipeline() {
127
- if (this.props.renderPipeline instanceof ImageData) {
128
- const imageData = this.props.renderPipeline;
129
- const texture = this.context.device.createTexture({
130
- format: "rgba8unorm",
131
- width: imageData.width,
132
- height: imageData.height,
133
- data: imageData.data,
134
- });
135
- const wrapper = {
136
- module: CreateTexture,
137
- props: {
138
- textureName: texture,
139
- },
140
- };
141
- return [wrapper];
142
- }
143
- else {
144
- return this.props.renderPipeline;
145
- }
146
- }
147
138
  renderLayers() {
148
139
  const { mesh } = this.state;
149
- const { debug } = this.props;
150
- if (!mesh) {
140
+ const { debug, image, renderPipeline } = this.props;
141
+ if (!mesh || (!image && (renderPipeline?.length ?? 0) === 0)) {
151
142
  return null;
152
143
  }
153
144
  const { indices, positions, texCoords } = mesh;
154
145
  const meshLayer = new MeshTextureLayer(this.getSubLayerProps({
155
146
  id: "raster",
156
- renderPipeline: this._createRenderPipeline(),
147
+ image,
148
+ renderPipeline,
157
149
  // Dummy data because we're only rendering _one_ instance of this mesh
158
150
  // https://github.com/visgl/deck.gl/blob/93111b667b919148da06ff1918410cf66381904f/modules/geo-layers/src/terrain-layer/terrain-layer.ts#L241
159
151
  data: [1],
@@ -1 +1 @@
1
- {"version":3,"file":"raster-layer.js","sourceRoot":"","sources":["../src/raster-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raster-layer.js","sourceRoot":"","sources":["../src/raster-layer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  export type { TileMetadata } from "./raster-tileset-2d.js";
2
- export { TileMatrixSetTileset } from "./raster-tileset-2d.js";
2
+ export { RasterTileset2D } from "./raster-tileset-2d.js";
3
+ export { TileMatrixSetAdaptor } from "./tile-matrix-set.js";
4
+ export type { TilesetDescriptor, TilesetLevel } from "./tileset-interface.js";
5
+ export type { Bounds, CornerBounds, Corners, ProjectionFunction, } from "./types.js";
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EACV,MAAM,EACN,YAAY,EACZ,OAAO,EACP,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
@@ -1,2 +1,3 @@
1
- export { TileMatrixSetTileset } from "./raster-tileset-2d.js";
1
+ export { RasterTileset2D } from "./raster-tileset-2d.js";
2
+ export { TileMatrixSetAdaptor } from "./tile-matrix-set.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,6 +1,5 @@
1
1
  /**
2
- * This file implements tile traversal for generic 2D tilesets defined by
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,26 +7,29 @@
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 4 child tiles
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 type { Viewport } from "@deck.gl/core";
18
- import type { TileMatrix, TileMatrixSet } from "@developmentseed/morecantile";
19
20
  import type { OrientedBoundingBox } from "@math.gl/culling";
20
21
  import { CullingVolume } from "@math.gl/culling";
21
- import type { Bounds, CornerBounds, ProjectionFunction, TileIndex, ZRange } from "./types.js";
22
+ import type { TilesetDescriptor, TilesetLevel } from "./tileset-interface.js";
23
+ import type { Bounds, TileIndex, ZRange } from "./types.js";
22
24
  /**
23
- * Raster Tile Node - represents a single tile in the TileMatrixSet structure
25
+ * Raster Tile Node - represents a single tile in a tileset pyramid.
24
26
  *
25
27
  * Akin to the upstream OSMNode class.
26
28
  *
27
29
  * This node class uses the following coordinate system:
28
30
  *
29
- * - x: tile column (0 to TileMatrix.matrixWidth, left to right)
30
- * - y: tile row (0 to TileMatrix.matrixHeight, top to bottom)
31
+ * - x: tile column (0 to TilesetLevel.matrixWidth, left to right)
32
+ * - y: tile row (0 to TilesetLevel.matrixHeight, top to bottom)
31
33
  * - z: overview level. This assumes ordering where: 0 = coarsest, higher = finer
32
34
  */
33
35
  export declare class RasterTileNode {
@@ -37,7 +39,7 @@ export declare class RasterTileNode {
37
39
  y: number;
38
40
  /** Zoom index assumed to be (higher = finer detail) */
39
41
  z: number;
40
- private metadata;
42
+ private descriptor;
41
43
  /**
42
44
  * Flag indicating whether any descendant of this tile is visible.
43
45
  *
@@ -53,29 +55,32 @@ export declare class RasterTileNode {
53
55
  private selected?;
54
56
  /** A cache of the children of this node. */
55
57
  private _children?;
56
- private projectTo3857;
57
- private projectTo4326;
58
- constructor(x: number, y: number, z: number, { metadata, projectTo3857, projectTo4326, }: {
59
- metadata: TileMatrixSet;
60
- projectTo3857: ProjectionFunction;
61
- projectTo4326: ProjectionFunction;
58
+ /**
59
+ * A cached bounding volume for this tile, used for frustum culling
60
+ *
61
+ * This stores the result of `getBoundingVolume`.
62
+ */
63
+ private _boundingVolume?;
64
+ constructor(x: number, y: number, z: number, { descriptor }: {
65
+ descriptor: TilesetDescriptor;
62
66
  });
63
- /** Get overview info for this tile's z level */
64
- get tileMatrix(): TileMatrix;
67
+ /** Get the level info for this tile's z index. */
68
+ get level(): TilesetLevel;
65
69
  /** Get the children of this node.
66
70
  *
67
71
  * Find all tiles at level this.z + 1 whose spatial extent overlaps this tile.
68
72
  *
69
- * A TileMatrixSet is not a quadtree, but rather a stack of independent grids. We can't cleanly find child tiles by decimation directly.
70
- *
73
+ * A tileset pyramid is not guaranteed to be a quadtree it is a stack of
74
+ * independent grids. We find children by mapping the parent tile's CRS bounds
75
+ * into the child grid using {@link TilesetLevel.crsBoundsToTileRange}.
71
76
  */
72
77
  get children(): RasterTileNode[] | null;
73
78
  /**
74
79
  * Recursively traverse the tile pyramid to determine if this tile (or its
75
80
  * descendants) should be rendered.
76
81
  *
77
- * I.e. Given this tile node, should I render this tile, or should I recurse
78
- * into its children?”
82
+ * I.e. "Given this tile node, should I render this tile, or should I recurse
83
+ * into its children?"
79
84
  *
80
85
  * The algorithm performs:
81
86
  * 1. Visibility culling - reject tiles outside the view frustum
@@ -93,9 +98,9 @@ export declare class RasterTileNode {
93
98
  project: ((xyz: number[]) => number[]) | null;
94
99
  cullingVolume: CullingVolume;
95
100
  elevationBounds: ZRange;
96
- /** Minimum (coarsest) COG overview level */
101
+ /** Minimum (coarsest) overview level */
97
102
  minZ: number;
98
- /** Maximum (finest) COG overview level */
103
+ /** Maximum (finest) overview level */
99
104
  maxZ?: number;
100
105
  /** Optional geographic bounds filter */
101
106
  bounds?: Bounds;
@@ -105,7 +110,7 @@ export declare class RasterTileNode {
105
110
  * Recursively traverses the entire tree and gathers tiles where selected=true.
106
111
  *
107
112
  * @param result - Accumulator array for selected tiles
108
- * @returns Array of selected OSMNode tiles
113
+ * @returns Array of selected RasterTileNode tiles
109
114
  */
110
115
  getSelected(result?: RasterTileNode[]): RasterTileNode[];
111
116
  /**
@@ -135,38 +140,17 @@ export declare class RasterTileNode {
135
140
  private _getGenericBoundingVolume;
136
141
  }
137
142
  /**
138
- * Compute the projected tile bounds in the tile matrix's CRS.
139
- *
140
- * Because it's a linear transformation from the tile index to projected bounds,
141
- * we don't need to sample this for each of the reference points. We only need
142
- * the corners.
143
+ * Get tile indices visible in viewport.
143
144
  *
144
- * @return The bounding box as [minX, minY, maxX, maxY] in projected CRS.
145
- */
146
- declare function computeProjectedTileBounds(tileMatrix: TileMatrix, { x, y, }: {
147
- x: number;
148
- y: number;
149
- }): [number, number, number, number];
150
- /**
151
- * Get tile indices visible in viewport
152
- * Uses frustum culling similar to OSM implementation
145
+ * Uses frustum culling driven by a {@link TilesetDescriptor}, which abstracts
146
+ * over OGC TileMatrixSet grids and Zarr multiscale pyramids.
153
147
  *
154
- * Overviews follow TileMatrixSet ordering: index 0 = coarsest, higher = finer
148
+ * Overview levels follow the descriptor ordering: index 0 = coarsest, higher = finer.
155
149
  */
156
- export declare function getTileIndices(metadata: TileMatrixSet, opts: {
150
+ export declare function getTileIndices(descriptor: TilesetDescriptor, opts: {
157
151
  viewport: Viewport;
158
152
  maxZ: number;
159
153
  zRange: ZRange | null;
160
- projectTo3857: ProjectionFunction;
161
- projectTo4326: ProjectionFunction;
162
- wgs84Bounds: CornerBounds;
154
+ wgs84Bounds: Bounds;
163
155
  }): TileIndex[];
164
- /**
165
- * Exports only for use in testing
166
- */
167
- export declare const __TEST_EXPORTS: {
168
- computeProjectedTileBounds: typeof computeProjectedTileBounds;
169
- RasterTileNode: typeof RasterTileNode;
170
- };
171
- export {};
172
156
  //# sourceMappingURL=raster-tile-traversal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raster-tile-traversal.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/raster-tile-traversal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raster-tile-traversal.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/raster-tile-traversal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,aAAa,EAGd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EACV,MAAM,EAIN,SAAS,EACT,MAAM,EACP,MAAM,YAAY,CAAC;AAiEpB;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,yBAAyB;IACzB,CAAC,EAAE,MAAM,CAAC;IAEV,0BAA0B;IAC1B,CAAC,EAAE,MAAM,CAAC;IAEV,uDAAuD;IACvD,CAAC,EAAE,MAAM,CAAC;IAEV,OAAO,CAAC,UAAU,CAAoB;IAEtC;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAC,CAAU;IAE/B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAU;IAE3B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAAC,CAA0B;IAE5C;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAC,CAItB;gBAGA,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,iBAAiB,CAAA;KAAE;IAQnD,kDAAkD;IAClD,IAAI,KAAK,IAAI,YAAY,CAExB;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ,IAAI,cAAc,EAAE,GAAG,IAAI,CA+BtC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,QAAQ,EAAE,QAAQ,CAAC;QAEnB,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;QAE9C,aAAa,EAAE,aAAa,CAAC;QAE7B,eAAe,EAAE,MAAM,CAAC;QACxB,wCAAwC;QACxC,IAAI,EAAE,MAAM,CAAC;QACb,sCAAsC;QACtC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,wCAAwC;QACxC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO;IAiFX;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,GAAE,cAAc,EAAO,GAAG,cAAc,EAAE;IAY5D;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO;IAUhE;;;;;;OAMG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,GAAG,IAAI,GAC5C;QAAE,cAAc,EAAE,mBAAmB,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAgCrE;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;CAiDlC;AA4GD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE;IACJ,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,GACA,SAAS,EAAE,CA4Fb"}