@deck.gl/core 9.3.0-alpha.3 → 9.3.0-alpha.5

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 (75) hide show
  1. package/dist/controllers/terrain-controller.d.ts +7 -6
  2. package/dist/controllers/terrain-controller.d.ts.map +1 -1
  3. package/dist/controllers/terrain-controller.js +58 -39
  4. package/dist/controllers/terrain-controller.js.map +1 -1
  5. package/dist/dist.dev.js +3076 -1197
  6. package/dist/index.cjs +525 -212
  7. package/dist/index.cjs.map +4 -4
  8. package/dist/lib/attribute/gl-utils.d.ts +1 -2
  9. package/dist/lib/attribute/gl-utils.d.ts.map +1 -1
  10. package/dist/lib/attribute/gl-utils.js +2 -2
  11. package/dist/lib/attribute/gl-utils.js.map +1 -1
  12. package/dist/lib/deck-picker.d.ts +3 -2
  13. package/dist/lib/deck-picker.d.ts.map +1 -1
  14. package/dist/lib/deck-picker.js +74 -17
  15. package/dist/lib/deck-picker.js.map +1 -1
  16. package/dist/lib/deck.d.ts +62 -0
  17. package/dist/lib/deck.d.ts.map +1 -1
  18. package/dist/lib/deck.js +219 -77
  19. package/dist/lib/deck.js.map +1 -1
  20. package/dist/lib/init.js +2 -2
  21. package/dist/lib/layer.d.ts.map +1 -1
  22. package/dist/lib/layer.js +60 -9
  23. package/dist/lib/layer.js.map +1 -1
  24. package/dist/lib/view-manager.js +1 -1
  25. package/dist/lib/view-manager.js.map +1 -1
  26. package/dist/passes/pick-layers-pass.d.ts.map +1 -1
  27. package/dist/passes/pick-layers-pass.js +7 -2
  28. package/dist/passes/pick-layers-pass.js.map +1 -1
  29. package/dist/passes/screen-pass-uniforms.d.ts +1 -1
  30. package/dist/passes/screen-pass-uniforms.js +1 -1
  31. package/dist/shaderlib/color/color.d.ts +1 -4
  32. package/dist/shaderlib/color/color.d.ts.map +1 -1
  33. package/dist/shaderlib/color/color.js +0 -12
  34. package/dist/shaderlib/color/color.js.map +1 -1
  35. package/dist/shaderlib/misc/layer-uniforms.d.ts +3 -2
  36. package/dist/shaderlib/misc/layer-uniforms.d.ts.map +1 -1
  37. package/dist/shaderlib/misc/layer-uniforms.js +10 -1
  38. package/dist/shaderlib/misc/layer-uniforms.js.map +1 -1
  39. package/dist/shaderlib/picking/picking.d.ts +3 -2
  40. package/dist/shaderlib/picking/picking.d.ts.map +1 -1
  41. package/dist/shaderlib/picking/picking.js +29 -0
  42. package/dist/shaderlib/picking/picking.js.map +1 -1
  43. package/dist/shaderlib/project/project.glsl.js +1 -1
  44. package/dist/shaderlib/project/project.wgsl.d.ts.map +1 -1
  45. package/dist/shaderlib/project/project.wgsl.js +4 -6
  46. package/dist/shaderlib/project/project.wgsl.js.map +1 -1
  47. package/dist/shaderlib/shadow/shadow.d.ts +2 -2
  48. package/dist/shaderlib/shadow/shadow.js +1 -1
  49. package/dist/transitions/gpu-interpolation-transition.js +2 -2
  50. package/dist/transitions/gpu-interpolation-transition.js.map +1 -1
  51. package/dist/transitions/gpu-spring-transition.js +1 -1
  52. package/dist/transitions/gpu-transition-utils.d.ts.map +1 -1
  53. package/dist/transitions/gpu-transition-utils.js +3 -4
  54. package/dist/transitions/gpu-transition-utils.js.map +1 -1
  55. package/dist/utils/typed-array-manager.js.map +1 -1
  56. package/dist.min.js +506 -234
  57. package/package.json +6 -7
  58. package/src/controllers/terrain-controller.ts +60 -51
  59. package/src/lib/attribute/gl-utils.ts +2 -2
  60. package/src/lib/deck-picker.ts +98 -17
  61. package/src/lib/deck.ts +334 -86
  62. package/src/lib/layer.ts +98 -8
  63. package/src/lib/view-manager.ts +1 -1
  64. package/src/passes/pick-layers-pass.ts +6 -2
  65. package/src/passes/screen-pass-uniforms.ts +1 -1
  66. package/src/shaderlib/color/color.ts +0 -12
  67. package/src/shaderlib/misc/layer-uniforms.ts +11 -1
  68. package/src/shaderlib/picking/picking.ts +30 -0
  69. package/src/shaderlib/project/project.glsl.ts +1 -1
  70. package/src/shaderlib/project/project.wgsl.ts +4 -6
  71. package/src/shaderlib/shadow/shadow.ts +1 -1
  72. package/src/transitions/gpu-interpolation-transition.ts +2 -2
  73. package/src/transitions/gpu-spring-transition.ts +1 -1
  74. package/src/transitions/gpu-transition-utils.ts +4 -5
  75. package/src/utils/typed-array-manager.ts +3 -3
@@ -1,7 +1,6 @@
1
1
  import MapController from "./map-controller.js";
2
2
  import { MapState, MapStateProps } from "./map-controller.js";
3
3
  import type { ControllerProps, InteractionState } from "./controller.js";
4
- import type { MjolnirGestureEvent, MjolnirWheelEvent } from 'mjolnir.js';
5
4
  /**
6
5
  * Controller that extends MapController with terrain-aware behavior.
7
6
  * The camera smoothly follows terrain elevation during pan/zoom.
@@ -11,18 +10,20 @@ export default class TerrainController extends MapController {
11
10
  private _terrainAltitude?;
12
11
  /** Raw (unsmoothed) terrain altitude from latest pick */
13
12
  private _terrainAltitudeTarget?;
13
+ /** rAF handle for periodic terrain altitude picking */
14
+ private _pickFrameId;
15
+ /** Timestamp of last pick */
16
+ private _lastPickTime;
14
17
  setProps(props: ControllerProps & MapStateProps & {
15
18
  rotationPivot?: 'center' | '2d' | '3d';
16
19
  getAltitude?: (pos: [number, number]) => number | undefined;
17
20
  }): void;
21
+ finalize(): void;
18
22
  protected updateViewport(newControllerState: MapState, extraProps?: Record<string, any> | null, interactionState?: InteractionState): void;
19
- protected _onPanStart(event: MjolnirGestureEvent): boolean;
20
- protected _onWheel(event: MjolnirWheelEvent): boolean;
21
- protected _onDoubleClick(event: MjolnirGestureEvent): boolean;
22
23
  private _pickTerrainCenterAltitude;
23
24
  /**
24
- * Utility function to return viewport that looks the same, but with
25
- * a position shifted to [0, 0, altitude]
25
+ * Compute viewport adjustments to keep the view visually the same
26
+ * when shifting position to [0, 0, altitude].
26
27
  */
27
28
  private _rebaseViewport;
28
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"terrain-controller.d.ts","sourceRoot":"","sources":["../../src/controllers/terrain-controller.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,4BAAyB;AAC7C,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,4BAAyB;AACzD,OAAO,KAAK,EAAC,eAAe,EAAE,gBAAgB,EAAC,wBAAqB;AACpE,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAEvE;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAAC,CAAqB;IAC9C,yDAAyD;IACzD,OAAO,CAAC,sBAAsB,CAAC,CAAqB;IAEpD,QAAQ,CACN,KAAK,EAAE,eAAe,GACpB,aAAa,GAAG;QACd,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;QACvC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;KAC7D;IAoBL,SAAS,CAAC,cAAc,CACtB,kBAAkB,EAAE,QAAQ,EAC5B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,EAC7C,gBAAgB,GAAE,gBAAqB,GACtC,IAAI;IA6BP,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAK1D,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAKrD,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAK7D,OAAO,CAAC,0BAA0B;IAYlC;;;OAGG;IACH,OAAO,CAAC,eAAe;CAqCxB"}
1
+ {"version":3,"file":"terrain-controller.d.ts","sourceRoot":"","sources":["../../src/controllers/terrain-controller.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,4BAAyB;AAC7C,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,4BAAyB;AACzD,OAAO,KAAK,EAAC,eAAe,EAAE,gBAAgB,EAAC,wBAAqB;AAGpE;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAAC,CAAqB;IAC9C,yDAAyD;IACzD,OAAO,CAAC,sBAAsB,CAAC,CAAqB;IACpD,uDAAuD;IACvD,OAAO,CAAC,YAAY,CAAuB;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,aAAa,CAAa;IAElC,QAAQ,CACN,KAAK,EAAE,eAAe,GACpB,aAAa,GAAG;QACd,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;QACvC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;KAC7D;IA0CL,QAAQ;IAQR,SAAS,CAAC,cAAc,CACtB,kBAAkB,EAAE,QAAQ,EAC5B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,EAC7C,gBAAgB,GAAE,gBAAqB,GACtC,IAAI;IAqBP,OAAO,CAAC,0BAA0B;IAWlC;;;OAGG;IACH,OAAO,CAAC,eAAe;CAoCxB"}
@@ -13,34 +13,66 @@ export default class TerrainController extends MapController {
13
13
  this._terrainAltitude = undefined;
14
14
  /** Raw (unsmoothed) terrain altitude from latest pick */
15
15
  this._terrainAltitudeTarget = undefined;
16
+ /** rAF handle for periodic terrain altitude picking */
17
+ this._pickFrameId = null;
18
+ /** Timestamp of last pick */
19
+ this._lastPickTime = 0;
16
20
  }
17
21
  setProps(props) {
18
22
  super.setProps({ rotationPivot: '3d', ...props });
19
- // Drive smoothing animation when terrain altitude hasn't converged yet.
20
- if (this._terrainAltitude !== undefined &&
21
- this._terrainAltitudeTarget !== undefined &&
22
- Math.abs(this._terrainAltitudeTarget - this._terrainAltitude) > 0.01) {
23
- this.updateViewport(new this.ControllerState({
24
- makeViewport: this.makeViewport,
25
- ...this.props,
26
- ...this.state
27
- }));
23
+ // Periodically pick terrain altitude at the viewport center using rAF.
24
+ // Keeps the altitude cache warm so interactions don't need expensive
25
+ // synchronous GPU readbacks. rAF naturally pauses when tab is backgrounded.
26
+ if (this._pickFrameId === null) {
27
+ const loop = () => {
28
+ const now = Date.now();
29
+ if (now - this._lastPickTime > 500 && !this.isDragging()) {
30
+ this._lastPickTime = now;
31
+ this._pickTerrainCenterAltitude();
32
+ // On first successful pick, rebase viewport to terrain altitude.
33
+ // Runs from rAF (outside React render) so onViewStateChange won't loop.
34
+ if (this._terrainAltitude === undefined && this._terrainAltitudeTarget !== undefined) {
35
+ this._terrainAltitude = this._terrainAltitudeTarget;
36
+ const controllerState = new this.ControllerState({
37
+ makeViewport: this.makeViewport,
38
+ ...this.props,
39
+ ...this.state
40
+ });
41
+ const rebaseProps = this._rebaseViewport(this._terrainAltitudeTarget, controllerState);
42
+ if (rebaseProps) {
43
+ // Build a controllerState that includes the rebase adjustments so
44
+ // internal state matches the rebased viewState after React round-trip.
45
+ const rebasedState = new this.ControllerState({
46
+ makeViewport: this.makeViewport,
47
+ ...this.props,
48
+ ...this.state,
49
+ ...rebaseProps
50
+ });
51
+ super.updateViewport(rebasedState);
52
+ }
53
+ }
54
+ }
55
+ this._pickFrameId = requestAnimationFrame(loop);
56
+ };
57
+ this._pickFrameId = requestAnimationFrame(loop);
28
58
  }
29
59
  }
60
+ finalize() {
61
+ if (this._pickFrameId !== null) {
62
+ cancelAnimationFrame(this._pickFrameId);
63
+ this._pickFrameId = null;
64
+ }
65
+ super.finalize();
66
+ }
30
67
  updateViewport(newControllerState, extraProps = null, interactionState = {}) {
31
- const SMOOTHING = 0.05;
32
- // No interactions yet, do not update
33
- if (this._terrainAltitudeTarget === undefined)
34
- return;
68
+ // Not initialized yet — pass through to MapController
35
69
  if (this._terrainAltitude === undefined) {
36
- // First interaction, rebase to avoid jump
37
- this._terrainAltitude = this._terrainAltitudeTarget;
38
- extraProps = this._rebaseViewport(this._terrainAltitudeTarget, newControllerState, extraProps);
39
- }
40
- else {
41
- // Standard interaction, smoothly blend target into actual altitude
42
- this._terrainAltitude += (this._terrainAltitudeTarget - this._terrainAltitude) * SMOOTHING;
70
+ super.updateViewport(newControllerState, extraProps, interactionState);
71
+ return;
43
72
  }
73
+ // Smoothly blend toward target altitude
74
+ const SMOOTHING = 0.05;
75
+ this._terrainAltitude += (this._terrainAltitudeTarget - this._terrainAltitude) * SMOOTHING;
44
76
  const viewportProps = newControllerState.getViewportProps();
45
77
  const pos = viewportProps.position || [0, 0, 0];
46
78
  extraProps = {
@@ -49,20 +81,7 @@ export default class TerrainController extends MapController {
49
81
  };
50
82
  super.updateViewport(newControllerState, extraProps, interactionState);
51
83
  }
52
- _onPanStart(event) {
53
- this._pickTerrainCenterAltitude();
54
- return super._onPanStart(event);
55
- }
56
- _onWheel(event) {
57
- this._pickTerrainCenterAltitude();
58
- return super._onWheel(event);
59
- }
60
- _onDoubleClick(event) {
61
- this._pickTerrainCenterAltitude();
62
- return super._onDoubleClick(event);
63
- }
64
84
  _pickTerrainCenterAltitude() {
65
- // TODO use async picking?
66
85
  if (!this.pickPosition) {
67
86
  return;
68
87
  }
@@ -73,10 +92,10 @@ export default class TerrainController extends MapController {
73
92
  }
74
93
  }
75
94
  /**
76
- * Utility function to return viewport that looks the same, but with
77
- * a position shifted to [0, 0, altitude]
95
+ * Compute viewport adjustments to keep the view visually the same
96
+ * when shifting position to [0, 0, altitude].
78
97
  */
79
- _rebaseViewport(altitude, newControllerState, extraProps) {
98
+ _rebaseViewport(altitude, newControllerState) {
80
99
  const viewportProps = newControllerState.getViewportProps();
81
100
  const oldViewport = this.makeViewport({ ...viewportProps, position: [0, 0, 0] });
82
101
  const oldCameraPos = oldViewport.cameraPosition;
@@ -84,7 +103,7 @@ export default class TerrainController extends MapController {
84
103
  const cameraHeightAboveOldCenter = oldCameraPos[2];
85
104
  const newCameraHeightAboveCenter = cameraHeightAboveOldCenter - centerZOffset;
86
105
  if (newCameraHeightAboveCenter <= 0) {
87
- return extraProps;
106
+ return null;
88
107
  }
89
108
  const zoomDelta = Math.log2(cameraHeightAboveOldCenter / newCameraHeightAboveCenter);
90
109
  const newZoom = viewportProps.zoom + zoomDelta;
@@ -100,9 +119,9 @@ export default class TerrainController extends MapController {
100
119
  'panByPosition3D' in newViewport &&
101
120
  typeof newViewport.panByPosition3D === 'function') {
102
121
  const adjusted = newViewport.panByPosition3D(worldPoint, screenCenter);
103
- return { ...extraProps, position: [0, 0, altitude], zoom: newZoom, ...adjusted };
122
+ return { position: [0, 0, altitude], zoom: newZoom, ...adjusted };
104
123
  }
105
- return extraProps;
124
+ return null;
106
125
  }
107
126
  }
108
127
  //# sourceMappingURL=terrain-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terrain-controller.js","sourceRoot":"","sources":["../../src/controllers/terrain-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terrain-controller.js","sourceRoot":"","sources":["../../src/controllers/terrain-controller.ts"],"names":[],"mappings":"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"}