@developmentseed/deck.gl-raster 0.1.0-beta.5 → 0.1.0-beta.6

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 (45) hide show
  1. package/package.json +2 -2
  2. package/dist/index.cjs +0 -4
  3. package/dist/index.cjs.map +0 -1
  4. package/dist/index.d.cts +0 -2
  5. package/dist/layer.d.ts +0 -72
  6. package/dist/layer.d.ts.map +0 -1
  7. package/dist/layer.js +0 -88
  8. package/dist/layer.js.map +0 -1
  9. package/dist/mesh.d.ts +0 -1
  10. package/dist/mesh.d.ts.map +0 -1
  11. package/dist/mesh.js +0 -2
  12. package/dist/mesh.js.map +0 -1
  13. package/dist/raster-debug-layer.d.ts +0 -51
  14. package/dist/raster-debug-layer.d.ts.map +0 -1
  15. package/dist/raster-debug-layer.js +0 -102
  16. package/dist/raster-debug-layer.js.map +0 -1
  17. package/dist/raster-tileset-bak/index.d.ts +0 -1
  18. package/dist/raster-tileset-bak/index.d.ts.map +0 -1
  19. package/dist/raster-tileset-bak/index.js +0 -2
  20. package/dist/raster-tileset-bak/index.js.map +0 -1
  21. package/dist/raster-tileset-bak/raster-tile-traversal.d.ts +0 -104
  22. package/dist/raster-tileset-bak/raster-tile-traversal.d.ts.map +0 -1
  23. package/dist/raster-tileset-bak/raster-tile-traversal.js +0 -390
  24. package/dist/raster-tileset-bak/raster-tile-traversal.js.map +0 -1
  25. package/dist/raster-tileset-bak/raster-tileset-2d.d.ts +0 -43
  26. package/dist/raster-tileset-bak/raster-tileset-2d.d.ts.map +0 -1
  27. package/dist/raster-tileset-bak/raster-tileset-2d.js +0 -288
  28. package/dist/raster-tileset-bak/raster-tileset-2d.js.map +0 -1
  29. package/dist/src/index.d.ts +0 -1
  30. package/dist/src/index.d.ts.map +0 -1
  31. package/dist/src/index.js +0 -2
  32. package/dist/src/index.js.map +0 -1
  33. package/dist/src/layer.d.ts +0 -1
  34. package/dist/src/layer.d.ts.map +0 -1
  35. package/dist/src/layer.js +0 -3
  36. package/dist/src/layer.js.map +0 -1
  37. package/dist/src/mesh.d.ts +0 -1
  38. package/dist/src/mesh.d.ts.map +0 -1
  39. package/dist/src/mesh.js +0 -2
  40. package/dist/src/mesh.js.map +0 -1
  41. package/dist/tests/placeholder.test.d.ts +0 -2
  42. package/dist/tests/placeholder.test.d.ts.map +0 -1
  43. package/dist/tests/placeholder.test.js +0 -7
  44. package/dist/tests/placeholder.test.js.map +0 -1
  45. package/dist/tsconfig.tsbuildinfo +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@developmentseed/deck.gl-raster",
3
- "version": "0.1.0-beta.5",
3
+ "version": "0.1.0-beta.6",
4
4
  "description": "Georeferenced image data visualization in deck.gl",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -51,7 +51,7 @@
51
51
  "@math.gl/core": "^4.1.0",
52
52
  "@math.gl/culling": "^4.1.0",
53
53
  "@math.gl/web-mercator": "^4.1.0",
54
- "@developmentseed/raster-reproject": "^0.1.0-beta.5"
54
+ "@developmentseed/raster-reproject": "^0.1.0-beta.6"
55
55
  },
56
56
  "volta": {
57
57
  "extends": "../../package.json"
package/dist/index.cjs DELETED
@@ -1,4 +0,0 @@
1
- 'use strict';
2
-
3
- //# sourceMappingURL=index.cjs.map
4
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
package/dist/index.d.cts DELETED
@@ -1,2 +0,0 @@
1
-
2
- export { }
package/dist/layer.d.ts DELETED
@@ -1,72 +0,0 @@
1
- import { CompositeLayer } from "@deck.gl/core";
2
- import { SimpleMeshLayer } from "@deck.gl/mesh-layers";
3
- import type { CompositeLayerProps } from "@deck.gl/core";
4
- import type { SimpleMeshLayerProps } from "@deck.gl/mesh-layers";
5
- import { RasterReprojector, type ReprojectionFns } from "@developmentseed/raster-reproject";
6
- export interface RasterLayerProps extends CompositeLayerProps {
7
- /**
8
- * Width of the input raster image in pixels
9
- */
10
- width: number;
11
- /**
12
- * Height of the input raster image in pixels
13
- */
14
- height: number;
15
- /**
16
- * Reprojection functions for converting between pixel, input CRS, and output CRS coordinates
17
- */
18
- reprojectionFns: ReprojectionFns;
19
- /**
20
- * Texture to apply to the mesh. Can be:
21
- * - URL or Data URL string
22
- * - WebGL2-compatible pixel source (Image, ImageData, Canvas, etc.)
23
- * - Luma.gl Texture instance
24
- * - Plain object: {width, height, data}
25
- */
26
- texture?: SimpleMeshLayerProps["texture"];
27
- /**
28
- * Maximum reprojection error in pixels for mesh refinement.
29
- * Lower values create denser meshes with higher accuracy.
30
- * @default 1
31
- */
32
- maxError?: number;
33
- /**
34
- * Material properties for lighting effects
35
- */
36
- material?: SimpleMeshLayerProps["material"];
37
- /**
38
- * Whether to render in wireframe mode (for debugging)
39
- * @default false
40
- */
41
- wireframe?: boolean;
42
- }
43
- /**
44
- * RasterLayer renders georeferenced raster data with client-side reprojection.
45
- *
46
- * This is a composite layer that uses raster-reproject to generate an adaptive mesh
47
- * that accurately represents the reprojected raster, then renders it using SimpleMeshLayer.
48
- */
49
- export declare class RasterLayer extends CompositeLayer<RasterLayerProps> {
50
- static layerName: string;
51
- static defaultProps: {
52
- maxError: number;
53
- wireframe: boolean;
54
- };
55
- state: {
56
- reprojector?: RasterReprojector;
57
- mesh?: {
58
- positions: Float32Array;
59
- indices: Uint32Array;
60
- texCoords: Float32Array;
61
- };
62
- };
63
- initializeState(): void;
64
- updateState({ props, oldProps, changeFlags, }: {
65
- props: RasterLayerProps;
66
- oldProps: RasterLayerProps;
67
- changeFlags: any;
68
- }): void;
69
- _generateMesh(): void;
70
- renderLayers(): SimpleMeshLayer<any, {}> | null;
71
- }
72
- //# sourceMappingURL=layer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAC;AAE3C,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;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAE5C;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAOD;;;;;GAKG;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;IAOvB,WAAW,CAAC,EACnB,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE;QACD,KAAK,EAAE,gBAAgB,CAAC;QACxB,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,WAAW,EAAE,GAAG,CAAC;KAClB,GAAG,IAAI;IAcR,aAAa,IAAI,IAAI;IA8CrB,YAAY;CAwBb"}
package/dist/layer.js DELETED
@@ -1,88 +0,0 @@
1
- import { CompositeLayer } from "@deck.gl/core";
2
- import { SimpleMeshLayer } from "@deck.gl/mesh-layers";
3
- import { RasterReprojector, } from "@developmentseed/raster-reproject";
4
- const defaultProps = {
5
- maxError: 1,
6
- wireframe: false,
7
- };
8
- /**
9
- * RasterLayer renders georeferenced raster data with client-side reprojection.
10
- *
11
- * This is a composite layer that uses raster-reproject to generate an adaptive mesh
12
- * that accurately represents the reprojected raster, then renders it using SimpleMeshLayer.
13
- */
14
- export class RasterLayer extends CompositeLayer {
15
- static layerName = "RasterLayer";
16
- static defaultProps = defaultProps;
17
- initializeState() {
18
- this.setState({
19
- reprojector: undefined,
20
- mesh: undefined,
21
- });
22
- }
23
- updateState({ props, oldProps, changeFlags, }) {
24
- // Regenerate mesh if key properties change
25
- const needsUpdate = changeFlags.dataChanged ||
26
- props.width !== oldProps.width ||
27
- props.height !== oldProps.height ||
28
- props.reprojectionFns !== oldProps.reprojectionFns ||
29
- props.maxError !== oldProps.maxError;
30
- if (needsUpdate) {
31
- this._generateMesh();
32
- }
33
- }
34
- _generateMesh() {
35
- const { width, height, reprojectionFns, maxError = 1 } = this.props;
36
- // Create reprojector instance
37
- const reprojector = new RasterReprojector(reprojectionFns, width, height);
38
- // Refine mesh to desired error threshold
39
- reprojector.run(maxError);
40
- // Extract mesh data
41
- const numVertices = reprojector.uvs.length / 2;
42
- const positions = new Float32Array(numVertices * 3);
43
- const texCoords = new Float32Array(numVertices * 2);
44
- // Convert UV coordinates and exact output positions to mesh format
45
- for (let i = 0; i < numVertices; i++) {
46
- const uvIdx = i * 2;
47
- const posIdx = i * 3;
48
- // Use exact output positions (already in output CRS)
49
- positions[posIdx] = reprojector.exactOutputPositions[uvIdx]; // x
50
- positions[posIdx + 1] = reprojector.exactOutputPositions[uvIdx + 1]; // y
51
- positions[posIdx + 2] = 0; // z (flat on the ground)
52
- // Texture coordinates (UV)
53
- texCoords[uvIdx] = reprojector.uvs[uvIdx]; // u
54
- texCoords[uvIdx + 1] = reprojector.uvs[uvIdx + 1]; // v
55
- }
56
- // Triangle indices are already in the correct format
57
- const indices = new Uint32Array(reprojector.triangles);
58
- this.setState({
59
- reprojector,
60
- mesh: {
61
- positions,
62
- indices,
63
- texCoords,
64
- },
65
- });
66
- }
67
- renderLayers() {
68
- const { mesh } = this.state;
69
- const { texture, material, wireframe } = this.props;
70
- if (!mesh) {
71
- return null;
72
- }
73
- return new SimpleMeshLayer(this.getSubLayerProps({
74
- id: "mesh",
75
- data: [{ position: [0, 0, 0] }], // Single instance at origin since mesh positions are already in world coordinates
76
- mesh: {
77
- positions: { value: mesh.positions, size: 3 },
78
- texCoords: { value: mesh.texCoords, size: 2 },
79
- indices: { value: mesh.indices, size: 1 },
80
- },
81
- texture,
82
- material,
83
- wireframe,
84
- getPosition: (d) => d.position,
85
- }));
86
- }
87
- }
88
- //# sourceMappingURL=layer.js.map
package/dist/layer.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"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"}
package/dist/mesh.d.ts DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=mesh.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../src/mesh.ts"],"names":[],"mappings":""}
package/dist/mesh.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=mesh.js.map
package/dist/mesh.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../src/mesh.ts"],"names":[],"mappings":""}
@@ -1,51 +0,0 @@
1
- import type { CompositeLayerProps, UpdateParameters } from "@deck.gl/core";
2
- import { CompositeLayer } from "@deck.gl/core";
3
- import type { PolygonLayerProps } from "@deck.gl/layers";
4
- import { PolygonLayer } from "@deck.gl/layers";
5
- import type { ReprojectionFns } from "@developmentseed/raster-reproject";
6
- import { RasterReprojector } from "@developmentseed/raster-reproject";
7
- type ParsedTriangle = {
8
- idx: number;
9
- geom: number[][];
10
- };
11
- export interface RasterDebugLayerProps extends Omit<CompositeLayerProps, "data">, Pick<PolygonLayerProps, "getFillColor" | "getLineColor" | "lineWidthMinPixels" | "filled" | "stroked" | "opacity"> {
12
- /**
13
- * Width of the input raster image in pixels
14
- */
15
- width: number;
16
- /**
17
- * Height of the input raster image in pixels
18
- */
19
- height: number;
20
- /**
21
- * Reprojection functions for converting between pixel, input CRS, and output CRS coordinates
22
- */
23
- reprojectionFns: ReprojectionFns;
24
- /**
25
- * Maximum reprojection error in pixels for mesh refinement.
26
- * Lower values create denser meshes with higher accuracy.
27
- * @default 0.125
28
- */
29
- maxError?: number;
30
- }
31
- /**
32
- * RasterDebugLayer renders a PolygonLayer of the triangles that make up a
33
- * generated mesh for raster reprojection.
34
- */
35
- export declare class RasterDebugLayer extends CompositeLayer<RasterDebugLayerProps> {
36
- static layerName: string;
37
- static defaultProps: {
38
- maxError: number;
39
- debugMesh: boolean;
40
- };
41
- state: {
42
- reprojector?: RasterReprojector;
43
- triangles?: ParsedTriangle[];
44
- };
45
- initializeState(): void;
46
- updateState(params: UpdateParameters<this>): void;
47
- _generateMesh(): void;
48
- renderLayers(): PolygonLayer<any, {}> | null;
49
- }
50
- export {};
51
- //# sourceMappingURL=raster-debug-layer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"raster-debug-layer.d.ts","sourceRoot":"","sources":["../src/raster-debug-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE,KAAK,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAAC;AA2BxD,MAAM,WAAW,qBACf,SACE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EACjC,IAAI,CACF,iBAAiB,EACf,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,QAAQ,GACR,SAAS,GACT,SAAS,CACZ;IACH;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,qBAAqB,CAAC;IACzE,OAAgB,SAAS,SAAsB;IAC/C,OAAgB,YAAY;;;MAAgB;IAEpC,KAAK,EAAE;QACb,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;KAC9B,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAiBnD,aAAa,IAAI,IAAI;IAkBrB,YAAY;CAoBb"}
@@ -1,102 +0,0 @@
1
- import { CompositeLayer } from "@deck.gl/core";
2
- import { PolygonLayer } from "@deck.gl/layers";
3
- import { RasterReprojector } from "@developmentseed/raster-reproject";
4
- const DEFAULT_MAX_ERROR = 0.125;
5
- const DEBUG_COLORS = [
6
- [252, 73, 163], // pink
7
- [255, 51, 204], // magenta-pink
8
- [204, 102, 255], // purple-ish
9
- [153, 51, 255], // deep purple
10
- [102, 204, 255], // sky blue
11
- [51, 153, 255], // clear blue
12
- [102, 255, 204], // teal
13
- [51, 255, 170], // aqua-teal
14
- [0, 255, 0], // lime green
15
- [51, 204, 51], // stronger green
16
- [255, 204, 102], // light orange
17
- [255, 179, 71], // golden-orange
18
- [255, 102, 102], // salmon
19
- [255, 80, 80], // red-salmon
20
- [255, 0, 0], // red
21
- [204, 0, 0], // crimson
22
- [255, 128, 0], // orange
23
- [255, 153, 51], // bright orange
24
- [255, 255, 102], // yellow
25
- [255, 255, 51], // lemon
26
- [0, 255, 255], // turquoise
27
- [0, 204, 255], // cyan
28
- ];
29
- const defaultProps = {
30
- maxError: DEFAULT_MAX_ERROR,
31
- debugMesh: false,
32
- };
33
- /**
34
- * RasterDebugLayer renders a PolygonLayer of the triangles that make up a
35
- * generated mesh for raster reprojection.
36
- */
37
- export class RasterDebugLayer extends CompositeLayer {
38
- static layerName = "RasterDebugLayer";
39
- static defaultProps = defaultProps;
40
- initializeState() {
41
- this.setState({});
42
- }
43
- updateState(params) {
44
- super.updateState(params);
45
- const { props, oldProps } = params;
46
- // Regenerate mesh if key properties change
47
- const needsUpdate = props.width !== oldProps.width ||
48
- props.height !== oldProps.height ||
49
- props.reprojectionFns !== oldProps.reprojectionFns ||
50
- props.maxError !== oldProps.maxError;
51
- if (needsUpdate) {
52
- this._generateMesh();
53
- }
54
- }
55
- _generateMesh() {
56
- const { width, height, reprojectionFns, maxError = DEFAULT_MAX_ERROR, } = this.props;
57
- const reprojector = new RasterReprojector(reprojectionFns, width, height);
58
- reprojector.run(maxError);
59
- const triangles = reprojectorToTriangles(reprojector);
60
- this.setState({
61
- reprojector,
62
- triangles,
63
- });
64
- }
65
- renderLayers() {
66
- const { triangles } = this.state;
67
- if (!triangles) {
68
- return null;
69
- }
70
- return new PolygonLayer(this.getSubLayerProps({
71
- id: "polygon",
72
- data: triangles,
73
- getPolygon: (d) => d.geom,
74
- getFillColor: (d) => DEBUG_COLORS[d.idx % DEBUG_COLORS.length],
75
- getLineColor: [0, 0, 0],
76
- getLineWidth: 0,
77
- lineWidthMinPixels: 1,
78
- }));
79
- }
80
- }
81
- function reprojectorToTriangles(reprojector) {
82
- const positions = reprojector.exactOutputPositions;
83
- const triangles = reprojector.triangles;
84
- const trianglePolygons = [];
85
- for (let triangleIdx = 0; triangleIdx < triangles.length / 3; ++triangleIdx) {
86
- const a = triangles[triangleIdx * 3];
87
- const b = triangles[triangleIdx * 3 + 1];
88
- const c = triangles[triangleIdx * 3 + 2];
89
- const coords = [
90
- [positions[a * 2], positions[a * 2 + 1]],
91
- [positions[b * 2], positions[b * 2 + 1]],
92
- [positions[c * 2], positions[c * 2 + 1]],
93
- [positions[a * 2], positions[a * 2 + 1]],
94
- ];
95
- trianglePolygons.push({
96
- idx: triangleIdx,
97
- geom: coords,
98
- });
99
- }
100
- return trianglePolygons;
101
- }
102
- //# sourceMappingURL=raster-debug-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"raster-debug-layer.js","sourceRoot":"","sources":["../src/raster-debug-layer.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/raster-tileset-bak/index.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/raster-tileset-bak/index.ts"],"names":[],"mappings":""}
@@ -1,104 +0,0 @@
1
- /**
2
- * This file implements tile traversal for generic 2D tilesets defined by COG
3
- * tile layouts.
4
- *
5
- * The main algorithm works as follows:
6
- * 1. Start at the root tile(s) (z=0, covers the entire image, but not
7
- * necessarily the whole world)
8
- * 2. Test if each tile is visible using viewport frustum culling
9
- * 3. For visible tiles, compute distance-based LOD (Level of Detail)
10
- * 4. If LOD is insufficient, recursively subdivide into 4 child tiles
11
- * 5. Select tiles at appropriate zoom levels based on distance from camera
12
- *
13
- * The result is a set of tiles at varying zoom levels that efficiently
14
- * cover the visible area with appropriate detail.
15
- */
16
- import { Viewport } from "@deck.gl/core";
17
- import { CullingVolume } from "@math.gl/culling";
18
- import type { TileMatrixSet, TileMatrix, TileIndex, ZRange } from "../raster-tileset/types.js";
19
- /**
20
- * Raster Tile Node - similar to OSMNode but for a generic raster tileset's
21
- * tile structure.
22
- *
23
- * Represents a single tile in the COG internal tiling pyramid.
24
- *
25
- * COG tile nodes use the following coordinate system:
26
- *
27
- * - x: tile column (0 to TileMatrix.tilesX, left to right)
28
- * - y: tile row (0 to TileMatrix.tilesY, top to bottom)
29
- * - z: overview level. This uses TileMatrixSet ordering where: 0 = coarsest, higher = finer
30
- */
31
- export declare class RasterTileNode {
32
- /** Index across a row */
33
- x: number;
34
- /** Index down a column */
35
- y: number;
36
- /** TileMatrixSet-style zoom index (higher = finer detail) */
37
- z: number;
38
- private metadata;
39
- /**
40
- * Flag indicating whether any descendant of this tile is visible.
41
- *
42
- * Used to prevent loading parent tiles when children are visible (avoids
43
- * overdraw).
44
- */
45
- private childVisible?;
46
- /**
47
- * Flag indicating this tile should be rendered
48
- *
49
- * Set to `true` when this is the appropriate LOD for its distance from camera.
50
- */
51
- private selected?;
52
- /** A cache of the children of this node. */
53
- private _children?;
54
- constructor(x: number, y: number, z: number, metadata: TileMatrixSet);
55
- /** Get overview info for this tile's z level */
56
- get overview(): TileMatrix;
57
- /** Get the children of this node. */
58
- get children(): RasterTileNode[];
59
- /**
60
- * Update tile visibility using frustum culling
61
- * This follows the pattern from OSMNode
62
- */
63
- update(params: {
64
- viewport: Viewport;
65
- project: ((xyz: number[]) => number[]) | null;
66
- cullingVolume: CullingVolume;
67
- elevationBounds: ZRange;
68
- /** Minimum (coarsest) COG overview level */
69
- minZ: number;
70
- /** Maximum (finest) COG overview level */
71
- maxZ?: number;
72
- }): boolean;
73
- /**
74
- * Collect all tiles marked as selected in the tree.
75
- * Recursively traverses the entire tree and gathers tiles where selected=true.
76
- *
77
- * @param result - Accumulator array for selected tiles
78
- * @returns Array of selected OSMNode tiles
79
- */
80
- getSelected(result?: RasterTileNode[]): RasterTileNode[];
81
- /**
82
- * Calculate the 3D bounding volume for this tile in deck.gl's common
83
- * coordinate space for frustum culling.
84
- *
85
- */
86
- getBoundingVolume(zRange: ZRange, project: ((xyz: number[]) => number[]) | null): import("@math.gl/culling").OrientedBoundingBox;
87
- /**
88
- * Convert COG coordinates to lng/lat
89
- * This is a placeholder - needs proper projection library (proj4js)
90
- */
91
- private cogCoordsToLngLat;
92
- }
93
- /**
94
- * Get tile indices visible in viewport
95
- * Uses frustum culling similar to OSM implementation
96
- *
97
- * Overviews follow TileMatrixSet ordering: index 0 = coarsest, higher = finer
98
- */
99
- export declare function getTileIndices(metadata: TileMatrixSet, opts: {
100
- viewport: Viewport;
101
- maxZ: number;
102
- zRange: ZRange | null;
103
- }): TileIndex[];
104
- //# sourceMappingURL=raster-tile-traversal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"raster-tile-traversal.d.ts","sourceRoot":"","sources":["../../src/raster-tileset-bak/raster-tile-traversal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,QAAQ,EAET,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EAGd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,EACP,MAAM,4BAA4B,CAAC;AA8CpC;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,yBAAyB;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,0BAA0B;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;IAEV,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAC,CAAU;IAE/B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAU;IAE3B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAAC,CAAmB;gBAEzB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;IAOpE,gDAAgD;IAChD,IAAI,QAAQ,IAAI,UAAU,CAEzB;IAED,qCAAqC;IACrC,IAAI,QAAQ,IAAI,cAAc,EAAE,CAsC/B;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;QAC9C,aAAa,EAAE,aAAa,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC;QACxB,4CAA4C;QAC5C,IAAI,EAAE,MAAM,CAAC;QACb,0CAA0C;QAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO;IAiHX;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,GAAE,cAAc,EAAO,GAAG,cAAc,EAAE;IAY5D;;;;OAIG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,GAAG,IAAI;IAwH/C;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAI1B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE;IACJ,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GACA,SAAS,EAAE,CAmEb"}