@deck.gl/extensions 9.4.0-beta.4 → 9.4.1

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.
@@ -1,10 +1,37 @@
1
- import type { Layer, Viewport } from '@deck.gl/core';
1
+ import type { CoordinateSystem, Layer, ProjectUniforms, Viewport } from '@deck.gl/core';
2
+ import type { NumericArray } from '@math.gl/core';
2
3
  /** Bounds in CARTESIAN coordinates */
3
4
  export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
4
5
  /** Project lng/lat to absolute Mercator common space. */
5
6
  export declare function lngLatToMercatorCommon(lngLat: number[]): [number, number];
6
7
  /** Returns a Mercator viewport for bounds computation, bypassing GlobeView. */
7
8
  export declare function getMercatorReferenceViewport(viewport: Viewport): Viewport;
9
+ /** False only for GlobeViewport, whose common space is a sphere. The single globe check in this module. */
10
+ export declare function isFlatViewport(viewport: Viewport): boolean;
11
+ /** Per-call overrides of the layer's coordinateSystem, coordinateOrigin and modelMatrix */
12
+ export type FlatProjectOptions = {
13
+ fromCoordinateSystem?: CoordinateSystem;
14
+ fromCoordinateOrigin?: [number, number, number];
15
+ modelMatrix?: NumericArray | null;
16
+ };
17
+ /**
18
+ * CPU counterpart of `project_common_position_to_flat(project_position(position))`, relative to
19
+ * `getFlatCommonOrigin()`. Always pair with the GPU function: a raw `layer.projectPosition()`
20
+ * disagrees with it under globe or auto-offset.
21
+ */
22
+ export declare function projectToFlatCommon(layer: Layer, position: number[], opts?: FlatProjectOptions): [number, number, number];
23
+ /**
24
+ * Projects `[minX, minY, maxX, maxY]` into flat common bounds. Lng/lat bounds with
25
+ * `minX - maxX > 180` take the shorter arc across the antimeridian, so `maxX` may exceed TILE_SIZE;
26
+ * test against them with `project_common_position_to_flat_wrapped()` about the bounds centre.
27
+ * Otherwise edges are re-ordered, so `[right, top, left, bottom]` input still works.
28
+ */
29
+ export declare function projectBoundsToFlatCommon(layer: Layer, bounds: Readonly<[number, number, number, number]>, opts?: FlatProjectOptions): Bounds;
30
+ /**
31
+ * Origin of `project_common_position_to_flat()` results: `project.commonOrigin` on flat viewports,
32
+ * `[0, 0]` under globe, where commonOrigin is a sphere position and must never be re-added.
33
+ */
34
+ export declare function getFlatCommonOrigin(projectUniforms: ProjectUniforms, viewport: Viewport): [number, number];
8
35
  export declare function joinLayerBounds(
9
36
  /** The layers to combine */
10
37
  layers: Layer[],
@@ -1 +1 @@
1
- {"version":3,"file":"projection-utils.d.ts","sourceRoot":"","sources":["../../src/utils/projection-utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEnD,sCAAsC;AACtC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAW9E,yDAAyD;AACzD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGzE;AAED,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAEzE;AAMD,wBAAgB,eAAe;AAC7B,4BAA4B;AAC5B,MAAM,EAAE,KAAK,EAAE;AACf,yEAAyE;AACzE,QAAQ,EAAE,QAAQ,GACjB,MAAM,GAAG,IAAI,CAoBf;AAID,mHAAmH;AACnH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,QAAQ,EAAE,QAAQ,CAAC;CACpB,GAAG,QAAQ,GAAG,IAAI,CA8DlB;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA0BvF;AAMD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB,MAAM,CA+BR"}
1
+ {"version":3,"file":"projection-utils.d.ts","sourceRoot":"","sources":["../../src/utils/projection-utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEtF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAOhD,sCAAsC;AACtC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAW9E,yDAAyD;AACzD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGzE;AAED,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAEzE;AAMD,2GAA2G;AAC3G,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE1D;AAED,2FAA2F;AAC3F,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACxC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,GAAE,kBAAuB,GAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAc1B;AAiCD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAClD,IAAI,CAAC,EAAE,kBAAkB,GACxB,MAAM,CAWR;AAeD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,GACjB,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlB;AAMD,wBAAgB,eAAe;AAC7B,4BAA4B;AAC5B,MAAM,EAAE,KAAK,EAAE;AACf,yEAAyE;AACzE,QAAQ,EAAE,QAAQ,GACjB,MAAM,GAAG,IAAI,CAoBf;AAID,mHAAmH;AACnH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,QAAQ,EAAE,QAAQ,CAAC;CACpB,GAAG,QAAQ,GAAG,IAAI,CA8DlB;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA0BvF;AAMD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB,MAAM,CAqCR"}
@@ -1,7 +1,12 @@
1
1
  // deck.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { WebMercatorViewport, OrthographicViewport } from '@deck.gl/core';
4
+ import { WebMercatorViewport, OrthographicViewport, _GlobeViewport } from '@deck.gl/core';
5
+ import { vec3, vec4 } from '@math.gl/core';
6
+ /** TILE_SIZE in the project shader module */
7
+ const TILE_SIZE = 512;
8
+ /** GLOBE_RADIUS / EARTH_RADIUS in the project shader module */
9
+ const GLOBE_METERS_TO_COMMON = 256 / 6370972;
5
10
  /** Fixed Mercator viewport for projection-independent coordinate conversion */
6
11
  const MERCATOR_REFERENCE_VIEWPORT = new WebMercatorViewport({
7
12
  width: 1,
@@ -19,6 +24,92 @@ export function lngLatToMercatorCommon(lngLat) {
19
24
  export function getMercatorReferenceViewport(viewport) {
20
25
  return viewport.isGeospatial ? MERCATOR_REFERENCE_VIEWPORT : viewport;
21
26
  }
27
+ // Flat common space: Mercator (geospatial) or cartesian (OrthographicView). CPU counterparts of
28
+ // project_common_position_to_flat(). Adding a non-flat projection: update the flatten branch in
29
+ // core project.glsl.ts / project.wgsl.ts, isFlatViewport(), and test/render/view-presets.ts.
30
+ /** False only for GlobeViewport, whose common space is a sphere. The single globe check in this module. */
31
+ export function isFlatViewport(viewport) {
32
+ return !(viewport instanceof _GlobeViewport);
33
+ }
34
+ /**
35
+ * CPU counterpart of `project_common_position_to_flat(project_position(position))`, relative to
36
+ * `getFlatCommonOrigin()`. Always pair with the GPU function: a raw `layer.projectPosition()`
37
+ * disagrees with it under globe or auto-offset.
38
+ */
39
+ export function projectToFlatCommon(layer, position, opts = {}) {
40
+ // Same resolution as Layer.projectPosition so multi-view setups stay consistent
41
+ const viewport = getLayerViewport(layer);
42
+ if (isFlatViewport(viewport)) {
43
+ return layer.projectPosition(position, opts);
44
+ }
45
+ if (getSourceCoordinateSystem(layer, opts) === 'meter-offsets') {
46
+ return projectGlobeMeterOffsetsToFlatCommon(layer, viewport, position, opts);
47
+ }
48
+ return layer.projectPosition(position, {
49
+ ...opts,
50
+ viewport: getMercatorReferenceViewport(viewport),
51
+ autoOffset: false
52
+ });
53
+ }
54
+ /**
55
+ * Mirrors the shader's GLOBE + METER_OFFSETS path: a linear offset in the tangent plane at the
56
+ * origin. Do not go through lng/lat; the error grows with the square of the offset (~200 m at 300 km).
57
+ */
58
+ function projectGlobeMeterOffsetsToFlatCommon(layer, viewport, position, opts) {
59
+ const origin = opts.fromCoordinateOrigin ?? layer.props.coordinateOrigin;
60
+ const modelMatrix = opts.modelMatrix === undefined ? layer.props.modelMatrix : opts.modelMatrix;
61
+ let [x, y, z = 0] = position;
62
+ if (modelMatrix) {
63
+ [x, y, z] = vec4.transformMat4([], [x, y, z, 1], modelMatrix);
64
+ }
65
+ // project.commonOrigin: sphere position of the coordinate origin
66
+ const originCommon = viewport.projectPosition(origin);
67
+ // project_get_orientation_matrix(commonOrigin)
68
+ const uz = vec3.normalize([], originCommon);
69
+ const ux = Math.abs(uz[2]) === 1 ? [1, 0, 0] : vec3.normalize([], [uz[1], -uz[0], 0]);
70
+ const uy = vec3.cross([], uz, ux);
71
+ // enuMatrix * vec3(-x, -y, z) * metersToCommon
72
+ const displaced = [0, 1, 2].map(i => originCommon[i] + (ux[i] * -x + uy[i] * -y + uz[i] * z) * GLOBE_METERS_TO_COMMON);
73
+ // project_globe_to_mercator_
74
+ const lngLatZ = viewport.unprojectPosition(displaced);
75
+ return MERCATOR_REFERENCE_VIEWPORT.projectPosition(lngLatZ);
76
+ }
77
+ /**
78
+ * Projects `[minX, minY, maxX, maxY]` into flat common bounds. Lng/lat bounds with
79
+ * `minX - maxX > 180` take the shorter arc across the antimeridian, so `maxX` may exceed TILE_SIZE;
80
+ * test against them with `project_common_position_to_flat_wrapped()` about the bounds centre.
81
+ * Otherwise edges are re-ordered, so `[right, top, left, bottom]` input still works.
82
+ */
83
+ export function projectBoundsToFlatCommon(layer, bounds, opts) {
84
+ const a = projectToFlatCommon(layer, [bounds[0], bounds[1], 0], opts);
85
+ const b = projectToFlatCommon(layer, [bounds[2], bounds[3], 0], opts);
86
+ if (bounds[0] - bounds[2] > 180 &&
87
+ getLayerViewport(layer).isGeospatial &&
88
+ getSourceCoordinateSystem(layer, opts) === 'lnglat') {
89
+ b[0] += TILE_SIZE;
90
+ }
91
+ return [Math.min(a[0], b[0]), Math.min(a[1], b[1]), Math.max(a[0], b[0]), Math.max(a[1], b[1])];
92
+ }
93
+ function getLayerViewport(layer) {
94
+ return layer.internalState?.viewport || layer.context.viewport;
95
+ }
96
+ /** The coordinate system `position` is expressed in, with `default` resolved */
97
+ function getSourceCoordinateSystem(layer, opts = {}) {
98
+ const coordinateSystem = opts.fromCoordinateSystem ?? layer.props.coordinateSystem;
99
+ if (coordinateSystem === 'default') {
100
+ return getLayerViewport(layer).isGeospatial ? 'lnglat' : 'cartesian';
101
+ }
102
+ return coordinateSystem;
103
+ }
104
+ /**
105
+ * Origin of `project_common_position_to_flat()` results: `project.commonOrigin` on flat viewports,
106
+ * `[0, 0]` under globe, where commonOrigin is a sphere position and must never be re-added.
107
+ */
108
+ export function getFlatCommonOrigin(projectUniforms, viewport) {
109
+ return isFlatViewport(viewport)
110
+ ? [projectUniforms.commonOrigin[0], projectUniforms.commonOrigin[1]]
111
+ : [0, 0];
112
+ }
22
113
  /*
23
114
  * Compute the union of bounds from multiple layers
24
115
  * Returns bounds in CARTESIAN coordinates
@@ -144,6 +235,11 @@ export function getRenderBounds(layerBounds, viewport, zRange) {
144
235
  if (!layerBounds) {
145
236
  return [0, 0, 1, 1];
146
237
  }
238
+ // layerBounds are flat (Mercator) but getViewportBounds() would return sphere coordinates for a
239
+ // non-flat viewport; the two cannot be intersected. Render the full layer extent instead.
240
+ if (!isFlatViewport(viewport)) {
241
+ return layerBounds;
242
+ }
147
243
  const viewportBounds = getViewportBounds(viewport, zRange);
148
244
  // Expand viewport bounds by 2X. Heurestically chosen to avoid masking
149
245
  // errors when mask is partially out of view
@@ -1 +1 @@
1
- {"version":3,"file":"projection-utils.js","sourceRoot":"","sources":["../../src/utils/projection-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection-utils.js","sourceRoot":"","sources":["../../src/utils/projection-utils.ts"],"names":[],"mappings":"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"}