@deck.gl/extensions 8.9.8 → 8.9.9
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/dist.dev.js +19 -7
- package/dist/es5/terrain/height-map-builder.js +6 -0
- package/dist/es5/terrain/height-map-builder.js.map +1 -1
- package/dist/es5/terrain/shader-module.js +1 -1
- package/dist/es5/terrain/shader-module.js.map +1 -1
- package/dist/es5/terrain/terrain-cover.js +12 -8
- package/dist/es5/terrain/terrain-cover.js.map +1 -1
- package/dist/es5/utils/projection-utils.js +2 -0
- package/dist/es5/utils/projection-utils.js.map +1 -1
- package/dist/esm/terrain/height-map-builder.js +6 -0
- package/dist/esm/terrain/height-map-builder.js.map +1 -1
- package/dist/esm/terrain/shader-module.js +1 -1
- package/dist/esm/terrain/shader-module.js.map +1 -1
- package/dist/esm/terrain/terrain-cover.js +12 -8
- package/dist/esm/terrain/terrain-cover.js.map +1 -1
- package/dist/esm/utils/projection-utils.js +2 -0
- package/dist/esm/utils/projection-utils.js.map +1 -1
- package/dist.min.js +17 -16
- package/package.json +2 -2
- package/src/terrain/height-map-builder.ts +5 -0
- package/src/terrain/shader-module.ts +1 -0
- package/src/terrain/terrain-cover.ts +24 -19
- package/src/utils/projection-utils.ts +2 -0
- package/typed/terrain/height-map-builder.d.ts.map +1 -1
- package/typed/terrain/shader-module.d.ts.map +1 -1
- package/typed/terrain/terrain-cover.d.ts.map +1 -1
- package/typed/utils/projection-utils.d.ts.map +1 -1
|
@@ -60,6 +60,7 @@ commonPos = geometry.position.xyz;
|
|
|
60
60
|
if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
|
|
61
61
|
vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
|
|
62
62
|
position = vec4(texCoords * 2.0 - 1.0, 0.0, 1.0);
|
|
63
|
+
commonPos.z += project_uCommonOrigin.z;
|
|
63
64
|
}
|
|
64
65
|
if (terrain_mode == TERRAIN_MODE_USE_HEIGHT_MAP) {
|
|
65
66
|
vec3 anchor = geometry.worldPosition;
|
|
@@ -5,11 +5,8 @@ import type {Layer, Viewport} from '@deck.gl/core';
|
|
|
5
5
|
import {createRenderTarget} from './utils';
|
|
6
6
|
import {joinLayerBounds, makeViewport, getRenderBounds, Bounds} from '../utils/projection-utils';
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
type NonGeoBoundingBox = {left: number; top: number; right: number; bottom: number};
|
|
11
|
-
type Tile2DHeader = {
|
|
12
|
-
bbox: GeoBoundingBox | NonGeoBoundingBox;
|
|
8
|
+
type TileHeader = {
|
|
9
|
+
boundingBox: [min: number[], max: number[]];
|
|
13
10
|
};
|
|
14
11
|
|
|
15
12
|
/**
|
|
@@ -31,7 +28,7 @@ export class TerrainCover {
|
|
|
31
28
|
private fbo?: Framebuffer;
|
|
32
29
|
private pickingFbo?: Framebuffer;
|
|
33
30
|
private layers: string[] = [];
|
|
34
|
-
private tile:
|
|
31
|
+
private tile: TileHeader | null;
|
|
35
32
|
/** Cached version of targetLayer.getBounds() */
|
|
36
33
|
private targetBounds: [number[], number[]] | null = null;
|
|
37
34
|
/** targetBounds in cartesian space */
|
|
@@ -111,7 +108,21 @@ export class TerrainCover {
|
|
|
111
108
|
const targetLayer = this.targetLayer;
|
|
112
109
|
let shouldRedraw = false;
|
|
113
110
|
|
|
114
|
-
if (this.
|
|
111
|
+
if (this.tile && 'boundingBox' in this.tile) {
|
|
112
|
+
if (!this.targetBounds) {
|
|
113
|
+
shouldRedraw = true;
|
|
114
|
+
this.targetBounds = this.tile.boundingBox;
|
|
115
|
+
|
|
116
|
+
const bottomLeftCommon = viewport.projectPosition(this.targetBounds[0]);
|
|
117
|
+
const topRightCommon = viewport.projectPosition(this.targetBounds[1]);
|
|
118
|
+
this.targetBoundsCommon = [
|
|
119
|
+
bottomLeftCommon[0],
|
|
120
|
+
bottomLeftCommon[1],
|
|
121
|
+
topRightCommon[0],
|
|
122
|
+
topRightCommon[1]
|
|
123
|
+
];
|
|
124
|
+
}
|
|
125
|
+
} else if (this.targetBounds !== targetLayer.getBounds()) {
|
|
115
126
|
// console.log('bounds changed', this.bounds, '>>', newBounds);
|
|
116
127
|
shouldRedraw = true;
|
|
117
128
|
this.targetBounds = targetLayer.getBounds();
|
|
@@ -188,18 +199,18 @@ export class TerrainCover {
|
|
|
188
199
|
* Remove layers that do not overlap with the current terrain cover.
|
|
189
200
|
* This implementation only has effect when a TileLayer is overlaid on top of a TileLayer
|
|
190
201
|
*/
|
|
191
|
-
function getIntersectingLayers(sourceTile:
|
|
202
|
+
function getIntersectingLayers(sourceTile: TileHeader, layers: Layer[]): Layer[] {
|
|
192
203
|
return layers.filter(layer => {
|
|
193
204
|
const tile = getTile(layer);
|
|
194
205
|
if (tile) {
|
|
195
|
-
return intersect(sourceTile.
|
|
206
|
+
return intersect(sourceTile.boundingBox, tile.boundingBox);
|
|
196
207
|
}
|
|
197
208
|
return true;
|
|
198
209
|
});
|
|
199
210
|
}
|
|
200
211
|
|
|
201
212
|
/** If layer is the descendent of a TileLayer, return the corresponding tile. */
|
|
202
|
-
function getTile(layer: Layer):
|
|
213
|
+
function getTile(layer: Layer): TileHeader | null {
|
|
203
214
|
while (layer) {
|
|
204
215
|
// @ts-expect-error tile may not exist
|
|
205
216
|
const {tile} = layer.props;
|
|
@@ -211,15 +222,9 @@ function getTile(layer: Layer): Tile2DHeader | null {
|
|
|
211
222
|
return null;
|
|
212
223
|
}
|
|
213
224
|
|
|
214
|
-
function intersect(
|
|
215
|
-
b1
|
|
216
|
-
|
|
217
|
-
): boolean {
|
|
218
|
-
if ('west' in b1 && 'west' in b2) {
|
|
219
|
-
return b1.west < b2.east && b2.west < b1.east && b1.south < b2.north && b2.south < b1.north;
|
|
220
|
-
}
|
|
221
|
-
if ('left' in b1 && 'left' in b2) {
|
|
222
|
-
return b1.left < b2.right && b2.left < b1.right && b1.top < b2.bottom && b2.top < b1.bottom;
|
|
225
|
+
function intersect(b1?: [number[], number[]], b2?: [number[], number[]]): boolean {
|
|
226
|
+
if (b1 && b2) {
|
|
227
|
+
return b1[0][0] < b2[1][0] && b2[0][0] < b1[1][0] && b1[0][1] < b2[1][1] && b2[0][1] < b1[1][1];
|
|
223
228
|
}
|
|
224
229
|
return false;
|
|
225
230
|
}
|
|
@@ -90,6 +90,7 @@ export function makeViewport(opts: {
|
|
|
90
90
|
// Geospatial viewports may not be web-mercator
|
|
91
91
|
return isGeospatial
|
|
92
92
|
? new WebMercatorViewport({
|
|
93
|
+
id: viewport.id,
|
|
93
94
|
x: border,
|
|
94
95
|
y: border,
|
|
95
96
|
width,
|
|
@@ -100,6 +101,7 @@ export function makeViewport(opts: {
|
|
|
100
101
|
orthographic: true
|
|
101
102
|
})
|
|
102
103
|
: new OrthographicViewport({
|
|
104
|
+
id: viewport.id,
|
|
103
105
|
x: border,
|
|
104
106
|
y: border,
|
|
105
107
|
width,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"height-map-builder.d.ts","sourceRoot":"","sources":["../../src/terrain/height-map-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAiD,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAGjG,OAAO,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AAInD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,6CAA6C;IAC7C,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACvC,2DAA2D;IAC3D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE7B,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;IAC5B,SAAS,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACpC,2BAA2B;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,6BAA6B;IAC7B,OAAO,CAAC,YAAY,CAAuC;IAC3D,mDAAmD;IACnD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,YAAY,CAAyB;IAE7C,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,qBAAqB,GAAG,OAAO;gBAI1C,EAAE,EAAE,qBAAqB;IAIrC;;OAEG;IACH,oBAAoB,IAAI,WAAW,GAAG,IAAI;IAU1C,yEAAyE;IACzE,YAAY,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAE;QAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAC,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"height-map-builder.d.ts","sourceRoot":"","sources":["../../src/terrain/height-map-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAiD,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAGjG,OAAO,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AAInD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,6CAA6C;IAC7C,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACvC,2DAA2D;IAC3D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE7B,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;IAC5B,SAAS,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACpC,2BAA2B;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,6BAA6B;IAC7B,OAAO,CAAC,YAAY,CAAuC;IAC3D,mDAAmD;IACnD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,YAAY,CAAyB;IAE7C,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,qBAAqB,GAAG,OAAO;gBAI1C,EAAE,EAAE,qBAAqB;IAIrC;;OAEG;IACH,oBAAoB,IAAI,WAAW,GAAG,IAAI;IAU1C,yEAAyE;IACzE,YAAY,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAE;QAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAC,GAAG,OAAO;IAiEhF,MAAM;CAMP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader-module.d.ts","sourceRoot":"","sources":["../../src/terrain/shader-module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAElD,8DAA8D;AAC9D,oBAAY,qBAAqB,GAAG;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,YAAY;;IAEvB,6EAA6E;;IAE7E,2EAA2E;;IAE3E,6FAA6F;;IAE7F,0EAA0E;;IAE1E,mEAAmE;;CAEpE,CAAC;AAMF,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"shader-module.d.ts","sourceRoot":"","sources":["../../src/terrain/shader-module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAElD,8DAA8D;AAC9D,oBAAY,qBAAqB,GAAG;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,YAAY;;IAEvB,6EAA6E;;IAE7E,2EAA2E;;IAE3E,6FAA6F;;IAE7F,0EAA0E;;IAE1E,mEAAmE;;CAEpE,CAAC;AAMF,eAAO,MAAM,aAAa,qCA4Hc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terrain-cover.d.ts","sourceRoot":"","sources":["../../src/terrain/terrain-cover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAiD,MAAM,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"terrain-cover.d.ts","sourceRoot":"","sources":["../../src/terrain/terrain-cover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAiD,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAMjG;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,OAAO,CAAQ;IACxB,sDAAsD;IACtD,WAAW,EAAE,KAAK,CAAC;IACnB,6CAA6C;IAC7C,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACvC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE7B,OAAO,CAAC,GAAG,CAAC,CAAc;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,IAAI,CAAoB;IAChC,gDAAgD;IAChD,OAAO,CAAC,YAAY,CAAqC;IACzD,sCAAsC;IACtC,OAAO,CAAC,kBAAkB,CAAuB;gBAErC,WAAW,EAAE,KAAK;IAK9B,IAAI,EAAE,WAEL;IAED,4EAA4E;IAC5E,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,YAAY,CAAC,EACX,WAAW,EACX,QAAQ,EACR,MAAM,EACN,gBAAgB,EACjB,EAAE;QACD,WAAW,CAAC,EAAE,KAAK,CAAC;QACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,GAAG,OAAO;IAqBX,wEAAwE;IACxE,OAAO,CAAC,aAAa;IAuBrB,4FAA4F;IAC5F,OAAO,CAAC,eAAe;IAsDvB,oBAAoB,IAAI,WAAW,GAAG,IAAI;IAU1C,qBAAqB,IAAI,WAAW,GAAG,IAAI;IAU3C,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE;IAI5B,MAAM;CAWP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection-utils.d.ts","sourceRoot":"","sources":["../../src/utils/projection-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEnD,sCAAsC;AACtC,oBAAY,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAM9E,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,
|
|
1
|
+
{"version":3,"file":"projection-utils.d.ts","sourceRoot":"","sources":["../../src/utils/projection-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEnD,sCAAsC;AACtC,oBAAY,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAM9E,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,CA2DlB;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"}
|