@deck.gl/extensions 9.0.0-beta.2 → 9.0.0-beta.3
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/brushing/brushing-extension.js +80 -0
- package/dist/{esm/brushing → brushing}/shader-module.js +24 -30
- package/dist/clip/clip-extension.js +117 -0
- package/{typed → dist}/collision-filter/collision-filter-effect.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-effect.js +193 -0
- package/dist/collision-filter/collision-filter-extension.js +49 -0
- package/{typed → dist}/collision-filter/collision-filter-pass.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-pass.js +25 -0
- package/dist/{esm/collision-filter → collision-filter}/shader-module.js +17 -24
- package/dist/data-filter/aggregator.js +104 -0
- package/{typed → dist}/data-filter/data-filter-extension.d.ts.map +1 -1
- package/dist/data-filter/data-filter-extension.js +162 -0
- package/dist/data-filter/shader-module.js +159 -0
- package/dist/dist.dev.js +1762 -13033
- package/dist/fill-style/fill-style-extension.js +118 -0
- package/dist/{esm/fill-style → fill-style}/shaders.glsl.js +37 -43
- package/dist/fp64/fp64-extension.js +35 -0
- package/dist/{esm/fp64 → fp64}/project64.glsl.js +19 -1
- package/dist/fp64/project64.js +50 -0
- package/dist/index.cjs +2724 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.js +11 -0
- package/{typed → dist}/mask/mask-effect.d.ts.map +1 -1
- package/dist/mask/mask-effect.js +194 -0
- package/dist/mask/mask-extension.js +57 -0
- package/{typed → dist}/mask/mask-pass.d.ts.map +1 -1
- package/dist/mask/mask-pass.js +44 -0
- package/dist/{esm/mask → mask}/shader-module.js +18 -21
- package/dist/path-style/path-style-extension.js +111 -0
- package/dist/{esm/path-style → path-style}/shaders.glsl.js +20 -13
- package/dist/terrain/height-map-builder.js +104 -0
- package/dist/terrain/shader-module.js +139 -0
- package/dist/terrain/terrain-cover.js +187 -0
- package/{typed → dist}/terrain/terrain-effect.d.ts.map +1 -1
- package/dist/terrain/terrain-effect.js +184 -0
- package/dist/terrain/terrain-extension.js +44 -0
- package/{typed → dist}/terrain/terrain-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-pass.js +61 -0
- package/{typed → dist}/terrain/terrain-picking-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-picking-pass.js +66 -0
- package/dist/terrain/utils.js +21 -0
- package/{typed → dist}/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +50 -0
- package/dist/utils/projection-utils.js +153 -0
- package/dist.min.js +73 -205
- package/package.json +19 -12
- package/src/collision-filter/collision-filter-effect.ts +12 -8
- package/src/collision-filter/collision-filter-pass.ts +1 -3
- package/src/data-filter/data-filter-extension.ts +3 -5
- package/src/mask/mask-effect.ts +0 -1
- package/src/mask/mask-pass.ts +1 -3
- package/src/terrain/terrain-effect.ts +8 -2
- package/src/terrain/terrain-pass.ts +2 -5
- package/src/terrain/terrain-picking-pass.ts +1 -3
- package/src/utils/debug.ts +1 -2
- package/dist/es5/brushing/brushing-extension.js +0 -108
- package/dist/es5/brushing/brushing-extension.js.map +0 -1
- package/dist/es5/brushing/shader-module.js +0 -50
- package/dist/es5/brushing/shader-module.js.map +0 -1
- package/dist/es5/clip/clip-extension.js +0 -98
- package/dist/es5/clip/clip-extension.js.map +0 -1
- package/dist/es5/collision-filter/collision-filter-effect.js +0 -294
- package/dist/es5/collision-filter/collision-filter-effect.js.map +0 -1
- package/dist/es5/collision-filter/collision-filter-extension.js +0 -109
- package/dist/es5/collision-filter/collision-filter-extension.js.map +0 -1
- package/dist/es5/collision-filter/collision-filter-pass.js +0 -79
- package/dist/es5/collision-filter/collision-filter-pass.js.map +0 -1
- package/dist/es5/collision-filter/shader-module.js +0 -39
- package/dist/es5/collision-filter/shader-module.js.map +0 -1
- package/dist/es5/data-filter/aggregator.js +0 -79
- package/dist/es5/data-filter/aggregator.js.map +0 -1
- package/dist/es5/data-filter/data-filter-extension.js +0 -236
- package/dist/es5/data-filter/data-filter-extension.js.map +0 -1
- package/dist/es5/data-filter/shader-module.js +0 -122
- package/dist/es5/data-filter/shader-module.js.map +0 -1
- package/dist/es5/fill-style/fill-style-extension.js +0 -190
- package/dist/es5/fill-style/fill-style-extension.js.map +0 -1
- package/dist/es5/fill-style/shaders.glsl.js +0 -59
- package/dist/es5/fill-style/shaders.glsl.js.map +0 -1
- package/dist/es5/fp64/fp64-extension.js +0 -55
- package/dist/es5/fp64/fp64-extension.js.map +0 -1
- package/dist/es5/fp64/project64.glsl.js +0 -9
- package/dist/es5/fp64/project64.glsl.js.map +0 -1
- package/dist/es5/fp64/project64.js +0 -52
- package/dist/es5/fp64/project64.js.map +0 -1
- package/dist/es5/index.js +0 -88
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/mask/mask-effect.js +0 -279
- package/dist/es5/mask/mask-effect.js.map +0 -1
- package/dist/es5/mask/mask-extension.js +0 -113
- package/dist/es5/mask/mask-extension.js.map +0 -1
- package/dist/es5/mask/mask-pass.js +0 -106
- package/dist/es5/mask/mask-pass.js.map +0 -1
- package/dist/es5/mask/shader-module.js +0 -38
- package/dist/es5/mask/shader-module.js.map +0 -1
- package/dist/es5/path-style/path-style-extension.js +0 -169
- package/dist/es5/path-style/path-style-extension.js.map +0 -1
- package/dist/es5/path-style/shaders.glsl.js +0 -25
- package/dist/es5/path-style/shaders.glsl.js.map +0 -1
- package/dist/es5/terrain/height-map-builder.js +0 -111
- package/dist/es5/terrain/height-map-builder.js.map +0 -1
- package/dist/es5/terrain/shader-module.js +0 -86
- package/dist/es5/terrain/shader-module.js.map +0 -1
- package/dist/es5/terrain/terrain-cover.js +0 -256
- package/dist/es5/terrain/terrain-cover.js.map +0 -1
- package/dist/es5/terrain/terrain-effect.js +0 -326
- package/dist/es5/terrain/terrain-effect.js.map +0 -1
- package/dist/es5/terrain/terrain-extension.js +0 -94
- package/dist/es5/terrain/terrain-extension.js.map +0 -1
- package/dist/es5/terrain/terrain-pass.js +0 -121
- package/dist/es5/terrain/terrain-pass.js.map +0 -1
- package/dist/es5/terrain/terrain-picking-pass.js +0 -124
- package/dist/es5/terrain/terrain-picking-pass.js.map +0 -1
- package/dist/es5/terrain/utils.js +0 -35
- package/dist/es5/terrain/utils.js.map +0 -1
- package/dist/es5/utils/debug.js +0 -71
- package/dist/es5/utils/debug.js.map +0 -1
- package/dist/es5/utils/projection-utils.js +0 -168
- package/dist/es5/utils/projection-utils.js.map +0 -1
- package/dist/esm/brushing/brushing-extension.js +0 -68
- package/dist/esm/brushing/brushing-extension.js.map +0 -1
- package/dist/esm/brushing/shader-module.js.map +0 -1
- package/dist/esm/clip/clip-extension.js +0 -86
- package/dist/esm/clip/clip-extension.js.map +0 -1
- package/dist/esm/collision-filter/collision-filter-effect.js +0 -246
- package/dist/esm/collision-filter/collision-filter-effect.js.map +0 -1
- package/dist/esm/collision-filter/collision-filter-extension.js +0 -75
- package/dist/esm/collision-filter/collision-filter-extension.js.map +0 -1
- package/dist/esm/collision-filter/collision-filter-pass.js +0 -32
- package/dist/esm/collision-filter/collision-filter-pass.js.map +0 -1
- package/dist/esm/collision-filter/shader-module.js.map +0 -1
- package/dist/esm/data-filter/aggregator.js +0 -102
- package/dist/esm/data-filter/aggregator.js.map +0 -1
- package/dist/esm/data-filter/data-filter-extension.js +0 -189
- package/dist/esm/data-filter/data-filter-extension.js.map +0 -1
- package/dist/esm/data-filter/shader-module.js +0 -164
- package/dist/esm/data-filter/shader-module.js.map +0 -1
- package/dist/esm/fill-style/fill-style-extension.js +0 -156
- package/dist/esm/fill-style/fill-style-extension.js.map +0 -1
- package/dist/esm/fill-style/shaders.glsl.js.map +0 -1
- package/dist/esm/fp64/fp64-extension.js +0 -20
- package/dist/esm/fp64/fp64-extension.js.map +0 -1
- package/dist/esm/fp64/project64.glsl.js.map +0 -1
- package/dist/esm/fp64/project64.js +0 -43
- package/dist/esm/fp64/project64.js.map +0 -1
- package/dist/esm/index.js +0 -11
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/mask/mask-effect.js +0 -228
- package/dist/esm/mask/mask-effect.js.map +0 -1
- package/dist/esm/mask/mask-extension.js +0 -83
- package/dist/esm/mask/mask-extension.js.map +0 -1
- package/dist/esm/mask/mask-pass.js +0 -58
- package/dist/esm/mask/mask-pass.js.map +0 -1
- package/dist/esm/mask/shader-module.js.map +0 -1
- package/dist/esm/path-style/path-style-extension.js +0 -130
- package/dist/esm/path-style/path-style-extension.js.map +0 -1
- package/dist/esm/path-style/shaders.glsl.js.map +0 -1
- package/dist/esm/terrain/height-map-builder.js +0 -86
- package/dist/esm/terrain/height-map-builder.js.map +0 -1
- package/dist/esm/terrain/shader-module.js +0 -127
- package/dist/esm/terrain/shader-module.js.map +0 -1
- package/dist/esm/terrain/terrain-cover.js +0 -212
- package/dist/esm/terrain/terrain-cover.js.map +0 -1
- package/dist/esm/terrain/terrain-effect.js +0 -219
- package/dist/esm/terrain/terrain-effect.js.map +0 -1
- package/dist/esm/terrain/terrain-extension.js +0 -59
- package/dist/esm/terrain/terrain-extension.js.map +0 -1
- package/dist/esm/terrain/terrain-pass.js +0 -71
- package/dist/esm/terrain/terrain-pass.js.map +0 -1
- package/dist/esm/terrain/terrain-picking-pass.js +0 -73
- package/dist/esm/terrain/terrain-picking-pass.js.map +0 -1
- package/dist/esm/terrain/utils.js +0 -19
- package/dist/esm/terrain/utils.js.map +0 -1
- package/dist/esm/utils/debug.js +0 -61
- package/dist/esm/utils/debug.js.map +0 -1
- package/dist/esm/utils/projection-utils.js +0 -134
- package/dist/esm/utils/projection-utils.js.map +0 -1
- /package/{typed → dist}/brushing/brushing-extension.d.ts +0 -0
- /package/{typed → dist}/brushing/brushing-extension.d.ts.map +0 -0
- /package/{typed → dist}/brushing/shader-module.d.ts +0 -0
- /package/{typed → dist}/brushing/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/clip/clip-extension.d.ts +0 -0
- /package/{typed → dist}/clip/clip-extension.d.ts.map +0 -0
- /package/{typed → dist}/collision-filter/collision-filter-effect.d.ts +0 -0
- /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts +0 -0
- /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts.map +0 -0
- /package/{typed → dist}/collision-filter/collision-filter-pass.d.ts +0 -0
- /package/{typed → dist}/collision-filter/shader-module.d.ts +0 -0
- /package/{typed → dist}/collision-filter/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/data-filter/aggregator.d.ts +0 -0
- /package/{typed → dist}/data-filter/aggregator.d.ts.map +0 -0
- /package/{typed → dist}/data-filter/data-filter-extension.d.ts +0 -0
- /package/{typed → dist}/data-filter/shader-module.d.ts +0 -0
- /package/{typed → dist}/data-filter/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/fill-style/fill-style-extension.d.ts +0 -0
- /package/{typed → dist}/fill-style/fill-style-extension.d.ts.map +0 -0
- /package/{typed → dist}/fill-style/shaders.glsl.d.ts +0 -0
- /package/{typed → dist}/fill-style/shaders.glsl.d.ts.map +0 -0
- /package/{typed → dist}/fp64/fp64-extension.d.ts +0 -0
- /package/{typed → dist}/fp64/fp64-extension.d.ts.map +0 -0
- /package/{typed → dist}/fp64/project64.d.ts +0 -0
- /package/{typed → dist}/fp64/project64.d.ts.map +0 -0
- /package/{typed → dist}/fp64/project64.glsl.d.ts +0 -0
- /package/{typed → dist}/fp64/project64.glsl.d.ts.map +0 -0
- /package/{typed → dist}/index.d.ts +0 -0
- /package/{typed → dist}/index.d.ts.map +0 -0
- /package/{typed → dist}/mask/mask-effect.d.ts +0 -0
- /package/{typed → dist}/mask/mask-extension.d.ts +0 -0
- /package/{typed → dist}/mask/mask-extension.d.ts.map +0 -0
- /package/{typed → dist}/mask/mask-pass.d.ts +0 -0
- /package/{typed → dist}/mask/shader-module.d.ts +0 -0
- /package/{typed → dist}/mask/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/path-style/path-style-extension.d.ts +0 -0
- /package/{typed → dist}/path-style/path-style-extension.d.ts.map +0 -0
- /package/{typed → dist}/path-style/shaders.glsl.d.ts +0 -0
- /package/{typed → dist}/path-style/shaders.glsl.d.ts.map +0 -0
- /package/{typed → dist}/terrain/height-map-builder.d.ts +0 -0
- /package/{typed → dist}/terrain/height-map-builder.d.ts.map +0 -0
- /package/{typed → dist}/terrain/shader-module.d.ts +0 -0
- /package/{typed → dist}/terrain/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/terrain/terrain-cover.d.ts +0 -0
- /package/{typed → dist}/terrain/terrain-cover.d.ts.map +0 -0
- /package/{typed → dist}/terrain/terrain-effect.d.ts +0 -0
- /package/{typed → dist}/terrain/terrain-extension.d.ts +0 -0
- /package/{typed → dist}/terrain/terrain-extension.d.ts.map +0 -0
- /package/{typed → dist}/terrain/terrain-pass.d.ts +0 -0
- /package/{typed → dist}/terrain/terrain-picking-pass.d.ts +0 -0
- /package/{typed → dist}/terrain/utils.d.ts +0 -0
- /package/{typed → dist}/terrain/utils.d.ts.map +0 -0
- /package/{typed → dist}/utils/debug.d.ts +0 -0
- /package/{typed → dist}/utils/projection-utils.d.ts +0 -0
- /package/{typed → dist}/utils/projection-utils.d.ts.map +0 -0
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { WebMercatorViewport, OrthographicViewport } from '@deck.gl/core';
|
|
2
|
-
export function joinLayerBounds(layers, viewport) {
|
|
3
|
-
const bounds = [Infinity, Infinity, -Infinity, -Infinity];
|
|
4
|
-
|
|
5
|
-
for (const layer of layers) {
|
|
6
|
-
const layerBounds = layer.getBounds();
|
|
7
|
-
|
|
8
|
-
if (layerBounds) {
|
|
9
|
-
const bottomLeftCommon = layer.projectPosition(layerBounds[0], {
|
|
10
|
-
viewport,
|
|
11
|
-
autoOffset: false
|
|
12
|
-
});
|
|
13
|
-
const topRightCommon = layer.projectPosition(layerBounds[1], {
|
|
14
|
-
viewport,
|
|
15
|
-
autoOffset: false
|
|
16
|
-
});
|
|
17
|
-
bounds[0] = Math.min(bounds[0], bottomLeftCommon[0]);
|
|
18
|
-
bounds[1] = Math.min(bounds[1], bottomLeftCommon[1]);
|
|
19
|
-
bounds[2] = Math.max(bounds[2], topRightCommon[0]);
|
|
20
|
-
bounds[3] = Math.max(bounds[3], topRightCommon[1]);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (Number.isFinite(bounds[0])) {
|
|
25
|
-
return bounds;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
const MAX_VIEWPORT_SIZE = 2048;
|
|
31
|
-
export function makeViewport(opts) {
|
|
32
|
-
const {
|
|
33
|
-
bounds,
|
|
34
|
-
viewport,
|
|
35
|
-
border = 0
|
|
36
|
-
} = opts;
|
|
37
|
-
const {
|
|
38
|
-
isGeospatial
|
|
39
|
-
} = viewport;
|
|
40
|
-
|
|
41
|
-
if (bounds[2] <= bounds[0] || bounds[3] <= bounds[1]) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const centerWorld = viewport.unprojectPosition([(bounds[0] + bounds[2]) / 2, (bounds[1] + bounds[3]) / 2, 0]);
|
|
46
|
-
let {
|
|
47
|
-
width,
|
|
48
|
-
height,
|
|
49
|
-
zoom
|
|
50
|
-
} = opts;
|
|
51
|
-
|
|
52
|
-
if (zoom === undefined) {
|
|
53
|
-
width = width - border * 2;
|
|
54
|
-
height = height - border * 2;
|
|
55
|
-
const scale = Math.min(width / (bounds[2] - bounds[0]), height / (bounds[3] - bounds[1]));
|
|
56
|
-
zoom = Math.min(Math.log2(scale), 20);
|
|
57
|
-
} else if (!width || !height) {
|
|
58
|
-
const scale = 2 ** zoom;
|
|
59
|
-
width = Math.round(Math.abs(bounds[2] - bounds[0]) * scale);
|
|
60
|
-
height = Math.round(Math.abs(bounds[3] - bounds[1]) * scale);
|
|
61
|
-
const maxSize = MAX_VIEWPORT_SIZE - border * 2;
|
|
62
|
-
|
|
63
|
-
if (width > maxSize || height > maxSize) {
|
|
64
|
-
const r = maxSize / Math.max(width, height);
|
|
65
|
-
width = Math.round(width * r);
|
|
66
|
-
height = Math.round(height * r);
|
|
67
|
-
zoom += Math.log2(r);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return isGeospatial ? new WebMercatorViewport({
|
|
72
|
-
id: viewport.id,
|
|
73
|
-
x: border,
|
|
74
|
-
y: border,
|
|
75
|
-
width,
|
|
76
|
-
height,
|
|
77
|
-
longitude: centerWorld[0],
|
|
78
|
-
latitude: centerWorld[1],
|
|
79
|
-
zoom,
|
|
80
|
-
orthographic: true
|
|
81
|
-
}) : new OrthographicViewport({
|
|
82
|
-
id: viewport.id,
|
|
83
|
-
x: border,
|
|
84
|
-
y: border,
|
|
85
|
-
width,
|
|
86
|
-
height,
|
|
87
|
-
target: centerWorld,
|
|
88
|
-
zoom,
|
|
89
|
-
flipY: false
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
export function getViewportBounds(viewport, zRange) {
|
|
93
|
-
let viewportBoundsWorld;
|
|
94
|
-
|
|
95
|
-
if (zRange && zRange.length === 2) {
|
|
96
|
-
const [minZ, maxZ] = zRange;
|
|
97
|
-
const bounds0 = viewport.getBounds({
|
|
98
|
-
z: minZ
|
|
99
|
-
});
|
|
100
|
-
const bounds1 = viewport.getBounds({
|
|
101
|
-
z: maxZ
|
|
102
|
-
});
|
|
103
|
-
viewportBoundsWorld = [Math.min(bounds0[0], bounds1[0]), Math.min(bounds0[1], bounds1[1]), Math.max(bounds0[2], bounds1[2]), Math.max(bounds0[3], bounds1[3])];
|
|
104
|
-
} else {
|
|
105
|
-
viewportBoundsWorld = viewport.getBounds();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const viewportBottomLeftCommon = viewport.projectPosition(viewportBoundsWorld.slice(0, 2));
|
|
109
|
-
const viewportTopRightCommon = viewport.projectPosition(viewportBoundsWorld.slice(2, 4));
|
|
110
|
-
return [viewportBottomLeftCommon[0], viewportBottomLeftCommon[1], viewportTopRightCommon[0], viewportTopRightCommon[1]];
|
|
111
|
-
}
|
|
112
|
-
export function getRenderBounds(layerBounds, viewport, zRange) {
|
|
113
|
-
if (!layerBounds) {
|
|
114
|
-
return [0, 0, 1, 1];
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
const viewportBounds = getViewportBounds(viewport, zRange);
|
|
118
|
-
const paddedBounds = doubleBounds(viewportBounds);
|
|
119
|
-
|
|
120
|
-
if (layerBounds[2] - layerBounds[0] <= paddedBounds[2] - paddedBounds[0] && layerBounds[3] - layerBounds[1] <= paddedBounds[3] - paddedBounds[1]) {
|
|
121
|
-
return layerBounds;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return [Math.max(layerBounds[0], paddedBounds[0]), Math.max(layerBounds[1], paddedBounds[1]), Math.min(layerBounds[2], paddedBounds[2]), Math.min(layerBounds[3], paddedBounds[3])];
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function doubleBounds(bounds) {
|
|
128
|
-
const dx = bounds[2] - bounds[0];
|
|
129
|
-
const dy = bounds[3] - bounds[1];
|
|
130
|
-
const centerX = (bounds[0] + bounds[2]) / 2;
|
|
131
|
-
const centerY = (bounds[1] + bounds[3]) / 2;
|
|
132
|
-
return [centerX - dx, centerY - dy, centerX + dx, centerY + dy];
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=projection-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/projection-utils.ts"],"names":["WebMercatorViewport","OrthographicViewport","joinLayerBounds","layers","viewport","bounds","Infinity","layer","layerBounds","getBounds","bottomLeftCommon","projectPosition","autoOffset","topRightCommon","Math","min","max","Number","isFinite","MAX_VIEWPORT_SIZE","makeViewport","opts","border","isGeospatial","centerWorld","unprojectPosition","width","height","zoom","undefined","scale","log2","round","abs","maxSize","r","id","x","y","longitude","latitude","orthographic","target","flipY","getViewportBounds","zRange","viewportBoundsWorld","length","minZ","maxZ","bounds0","z","bounds1","viewportBottomLeftCommon","slice","viewportTopRightCommon","getRenderBounds","viewportBounds","paddedBounds","doubleBounds","dx","dy","centerX","centerY"],"mappings":"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","sourcesContent":["import {WebMercatorViewport, OrthographicViewport} from '@deck.gl/core';\nimport type {Layer, Viewport} from '@deck.gl/core';\n\n/** Bounds in CARTESIAN coordinates */\nexport type Bounds = [minX: number, minY: number, maxX: number, maxY: number];\n\n/*\n * Compute the union of bounds from multiple layers\n * Returns bounds in CARTESIAN coordinates\n */\nexport function joinLayerBounds(\n /** The layers to combine */\n layers: Layer[],\n /** A Viewport instance that is used to determine the type of the view */\n viewport: Viewport\n): Bounds | null {\n // Join the bounds of layer data\n const bounds: Bounds = [Infinity, Infinity, -Infinity, -Infinity];\n for (const layer of layers) {\n const layerBounds = layer.getBounds();\n if (layerBounds) {\n const bottomLeftCommon = layer.projectPosition(layerBounds[0], {viewport, autoOffset: false});\n const topRightCommon = layer.projectPosition(layerBounds[1], {viewport, autoOffset: false});\n\n bounds[0] = Math.min(bounds[0], bottomLeftCommon[0]);\n bounds[1] = Math.min(bounds[1], bottomLeftCommon[1]);\n bounds[2] = Math.max(bounds[2], topRightCommon[0]);\n bounds[3] = Math.max(bounds[3], topRightCommon[1]);\n }\n }\n\n if (Number.isFinite(bounds[0])) {\n return bounds;\n }\n return null;\n}\n\nconst MAX_VIEWPORT_SIZE = 2048;\n\n/** Construct a viewport that just covers the target bounds. Used for rendering to common space indexed texture. */\nexport function makeViewport(opts: {\n /** The cartesian bounds of layers that will render into this texture */\n bounds: Bounds;\n /** Target width. If not specified, will be deduced from zoom */\n width?: number;\n /** Target height. If not specified, will be deduced from zoom */\n height?: number;\n /** Target zoom. If not specified, will be deduced from width and height */\n zoom?: number;\n /** Border around the viewport in pixels */\n border?: number;\n /** A viewport used to determine the output type */\n viewport: Viewport;\n}): Viewport | null {\n const {bounds, viewport, border = 0} = opts;\n const {isGeospatial} = viewport;\n\n if (bounds[2] <= bounds[0] || bounds[3] <= bounds[1]) {\n return null;\n }\n\n const centerWorld = viewport.unprojectPosition([\n (bounds[0] + bounds[2]) / 2,\n (bounds[1] + bounds[3]) / 2,\n 0\n ]);\n\n let {width, height, zoom} = opts;\n if (zoom === undefined) {\n // Use width and height to determine zoom\n width = width! - border * 2;\n height = height! - border * 2;\n const scale = Math.min(width / (bounds[2] - bounds[0]), height / (bounds[3] - bounds[1]));\n zoom = Math.min(Math.log2(scale), 20);\n } else if (!width || !height) {\n // Use zoom to determine width and height\n const scale = 2 ** zoom;\n width = Math.round(Math.abs(bounds[2] - bounds[0]) * scale);\n height = Math.round(Math.abs(bounds[3] - bounds[1]) * scale);\n const maxSize = MAX_VIEWPORT_SIZE - border * 2;\n if (width > maxSize || height > maxSize) {\n const r = maxSize / Math.max(width, height);\n width = Math.round(width * r);\n height = Math.round(height * r);\n zoom += Math.log2(r);\n }\n }\n\n // TODO - find a more generic way to construct this viewport\n // Geospatial viewports may not be web-mercator\n return isGeospatial\n ? new WebMercatorViewport({\n id: viewport.id,\n x: border,\n y: border,\n width,\n height,\n longitude: centerWorld[0],\n latitude: centerWorld[1],\n zoom,\n orthographic: true\n })\n : new OrthographicViewport({\n id: viewport.id,\n x: border,\n y: border,\n width,\n height,\n target: centerWorld,\n zoom,\n flipY: false\n });\n}\n\n/** Returns viewport bounds in CARTESIAN coordinates */\nexport function getViewportBounds(viewport: Viewport, zRange?: [number, number]): Bounds {\n // Viewport bounds in world coordinates\n let viewportBoundsWorld: Bounds;\n if (zRange && zRange.length === 2) {\n const [minZ, maxZ] = zRange;\n const bounds0 = viewport.getBounds({z: minZ});\n const bounds1 = viewport.getBounds({z: maxZ});\n viewportBoundsWorld = [\n Math.min(bounds0[0], bounds1[0]),\n Math.min(bounds0[1], bounds1[1]),\n Math.max(bounds0[2], bounds1[2]),\n Math.max(bounds0[3], bounds1[3])\n ];\n } else {\n viewportBoundsWorld = viewport.getBounds();\n }\n\n // Viewport bounds in cartesian coordinates\n const viewportBottomLeftCommon = viewport.projectPosition(viewportBoundsWorld.slice(0, 2));\n const viewportTopRightCommon = viewport.projectPosition(viewportBoundsWorld.slice(2, 4));\n return [\n viewportBottomLeftCommon[0],\n viewportBottomLeftCommon[1],\n viewportTopRightCommon[0],\n viewportTopRightCommon[1]\n ];\n}\n\n/*\n * Determine the common space bounds that best cover the given data for the given viewport\n * Returns bounds in CARTESIAN coordinates\n */\nexport function getRenderBounds(\n layerBounds: Bounds,\n viewport: Viewport,\n zRange?: [number, number]\n): Bounds {\n if (!layerBounds) {\n return [0, 0, 1, 1];\n }\n\n const viewportBounds = getViewportBounds(viewport, zRange);\n // Expand viewport bounds by 2X. Heurestically chosen to avoid masking\n // errors when mask is partially out of view\n const paddedBounds = doubleBounds(viewportBounds);\n\n // When bounds of the layers are smaller than the viewport bounds simply use\n // mask bounds, so as to maximize resolution & avoid rerenders\n if (\n layerBounds[2] - layerBounds[0] <= paddedBounds[2] - paddedBounds[0] &&\n layerBounds[3] - layerBounds[1] <= paddedBounds[3] - paddedBounds[1]\n ) {\n return layerBounds;\n }\n\n // As viewport shrinks, to avoid pixelation along mask edges\n // we need to reduce the bounds and only render the visible portion\n // of the mask.\n // We pad the viewport bounds to capture the section\n // of the mask just outside the viewport to correctly maskByInstance.\n // Intersect mask & padded viewport bounds\n return [\n Math.max(layerBounds[0], paddedBounds[0]),\n Math.max(layerBounds[1], paddedBounds[1]),\n Math.min(layerBounds[2], paddedBounds[2]),\n Math.min(layerBounds[3], paddedBounds[3])\n ];\n}\n\nfunction doubleBounds(bounds: Bounds): Bounds {\n const dx = bounds[2] - bounds[0];\n const dy = bounds[3] - bounds[1];\n const centerX = (bounds[0] + bounds[2]) / 2;\n const centerY = (bounds[1] + bounds[3]) / 2;\n return [centerX - dx, centerY - dy, centerX + dx, centerY + dy];\n}\n"],"file":"projection-utils.js"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|