@deck.gl/aggregation-layers 9.4.0-alpha.1 → 9.4.0-beta.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.
- package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.d.ts.map +1 -1
- package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js +1 -3
- package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js.map +1 -1
- package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.js +0 -1
- package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.js.map +1 -1
- package/dist/dist.dev.js +642 -38
- package/dist/grid-layer/grid-cell-layer.d.ts.map +1 -1
- package/dist/grid-layer/grid-cell-layer.js +3 -2
- package/dist/grid-layer/grid-cell-layer.js.map +1 -1
- package/dist/grid-layer/grid-cell-layer.wgsl.d.ts +3 -0
- package/dist/grid-layer/grid-cell-layer.wgsl.d.ts.map +1 -0
- package/dist/grid-layer/grid-cell-layer.wgsl.js +114 -0
- package/dist/grid-layer/grid-cell-layer.wgsl.js.map +1 -0
- package/dist/grid-layer/grid-layer-uniforms.d.ts +1 -0
- package/dist/grid-layer/grid-layer-uniforms.d.ts.map +1 -1
- package/dist/grid-layer/grid-layer-uniforms.js +14 -0
- package/dist/grid-layer/grid-layer-uniforms.js.map +1 -1
- package/dist/heatmap-layer/heatmap-layer-uniforms.d.ts +2 -0
- package/dist/heatmap-layer/heatmap-layer-uniforms.d.ts.map +1 -1
- package/dist/heatmap-layer/heatmap-layer-uniforms.js +19 -0
- package/dist/heatmap-layer/heatmap-layer-uniforms.js.map +1 -1
- package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -1
- package/dist/heatmap-layer/heatmap-layer.js +59 -12
- package/dist/heatmap-layer/heatmap-layer.js.map +1 -1
- package/dist/heatmap-layer/max.wgsl.d.ts +3 -0
- package/dist/heatmap-layer/max.wgsl.d.ts.map +1 -0
- package/dist/heatmap-layer/max.wgsl.js +48 -0
- package/dist/heatmap-layer/max.wgsl.js.map +1 -0
- package/dist/heatmap-layer/triangle-layer-uniforms.d.ts +1 -0
- package/dist/heatmap-layer/triangle-layer-uniforms.d.ts.map +1 -1
- package/dist/heatmap-layer/triangle-layer-uniforms.js +16 -0
- package/dist/heatmap-layer/triangle-layer-uniforms.js.map +1 -1
- package/dist/heatmap-layer/triangle-layer.d.ts.map +1 -1
- package/dist/heatmap-layer/triangle-layer.js +3 -2
- package/dist/heatmap-layer/triangle-layer.js.map +1 -1
- package/dist/heatmap-layer/triangle-layer.wgsl.d.ts +3 -0
- package/dist/heatmap-layer/triangle-layer.wgsl.d.ts.map +1 -0
- package/dist/heatmap-layer/triangle-layer.wgsl.js +65 -0
- package/dist/heatmap-layer/triangle-layer.wgsl.js.map +1 -0
- package/dist/heatmap-layer/weights.wgsl.d.ts +3 -0
- package/dist/heatmap-layer/weights.wgsl.d.ts.map +1 -0
- package/dist/heatmap-layer/weights.wgsl.js +64 -0
- package/dist/heatmap-layer/weights.wgsl.js.map +1 -0
- package/dist/hexagon-layer/hexagon-cell-layer.d.ts.map +1 -1
- package/dist/hexagon-layer/hexagon-cell-layer.js +2 -2
- package/dist/hexagon-layer/hexagon-cell-layer.js.map +1 -1
- package/dist/hexagon-layer/hexagon-cell-layer.wgsl.d.ts +3 -0
- package/dist/hexagon-layer/hexagon-cell-layer.wgsl.d.ts.map +1 -0
- package/dist/hexagon-layer/hexagon-cell-layer.wgsl.js +120 -0
- package/dist/hexagon-layer/hexagon-cell-layer.wgsl.js.map +1 -0
- package/dist/hexagon-layer/hexagon-layer-uniforms.d.ts +1 -0
- package/dist/hexagon-layer/hexagon-layer-uniforms.d.ts.map +1 -1
- package/dist/hexagon-layer/hexagon-layer-uniforms.js +13 -0
- package/dist/hexagon-layer/hexagon-layer-uniforms.js.map +1 -1
- package/dist/index.cjs +13268 -1488
- package/dist/index.cjs.map +3 -4
- package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts +1 -6
- package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -1
- package/dist/screen-grid-layer/screen-grid-cell-layer.js +3 -2
- package/dist/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
- package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.d.ts +3 -0
- package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.d.ts.map +1 -0
- package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.js +76 -0
- package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.js.map +1 -0
- package/dist/screen-grid-layer/screen-grid-layer-uniforms.d.ts +1 -0
- package/dist/screen-grid-layer/screen-grid-layer-uniforms.d.ts.map +1 -1
- package/dist/screen-grid-layer/screen-grid-layer-uniforms.js +12 -0
- package/dist/screen-grid-layer/screen-grid-layer-uniforms.js.map +1 -1
- package/dist.min.js +545 -35
- package/dist.webgl-only/common/aggregation-layer.js +68 -0
- package/dist.webgl-only/common/aggregation-layer.js.map +1 -0
- package/dist.webgl-only/common/aggregator/aggregator.js +5 -0
- package/dist.webgl-only/common/aggregator/aggregator.js.map +1 -0
- package/dist.webgl-only/common/aggregator/cpu-aggregator/aggregate.js +69 -0
- package/dist.webgl-only/common/aggregator/cpu-aggregator/aggregate.js.map +1 -0
- package/dist.webgl-only/common/aggregator/cpu-aggregator/cpu-aggregator.js +141 -0
- package/dist.webgl-only/common/aggregator/cpu-aggregator/cpu-aggregator.js.map +1 -0
- package/dist.webgl-only/common/aggregator/cpu-aggregator/sort-bins.js +44 -0
- package/dist.webgl-only/common/aggregator/cpu-aggregator/sort-bins.js.map +1 -0
- package/dist.webgl-only/common/aggregator/cpu-aggregator/vertex-accessor.js +56 -0
- package/dist.webgl-only/common/aggregator/cpu-aggregator/vertex-accessor.js.map +1 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.js +22 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.js.map +1 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/bin-sorter-uniforms.js +18 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/bin-sorter-uniforms.js.map +1 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/utils.js +24 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/utils.js.map +1 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js +222 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js.map +1 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-aggregator.js +203 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-aggregator.js.map +1 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-bin-sorter.js +225 -0
- package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-bin-sorter.js.map +1 -0
- package/dist.webgl-only/common/aggregator/index.js +6 -0
- package/dist.webgl-only/common/aggregator/index.js.map +1 -0
- package/dist.webgl-only/common/types.js +5 -0
- package/dist.webgl-only/common/types.js.map +1 -0
- package/dist.webgl-only/common/utils/bounds-utils.js +21 -0
- package/dist.webgl-only/common/utils/bounds-utils.js.map +1 -0
- package/dist.webgl-only/common/utils/color-utils.js +65 -0
- package/dist.webgl-only/common/utils/color-utils.js.map +1 -0
- package/dist.webgl-only/common/utils/prop-utils.js +13 -0
- package/dist.webgl-only/common/utils/prop-utils.js.map +1 -0
- package/dist.webgl-only/common/utils/scale-utils.js +181 -0
- package/dist.webgl-only/common/utils/scale-utils.js.map +1 -0
- package/dist.webgl-only/contour-layer/bin-options-uniforms.js +18 -0
- package/dist.webgl-only/contour-layer/bin-options-uniforms.js.map +1 -0
- package/dist.webgl-only/contour-layer/contour-layer.js +282 -0
- package/dist.webgl-only/contour-layer/contour-layer.js.map +1 -0
- package/dist.webgl-only/contour-layer/contour-utils.js +60 -0
- package/dist.webgl-only/contour-layer/contour-utils.js.map +1 -0
- package/dist.webgl-only/contour-layer/marching-squares-codes.js +341 -0
- package/dist.webgl-only/contour-layer/marching-squares-codes.js.map +1 -0
- package/dist.webgl-only/contour-layer/marching-squares.js +151 -0
- package/dist.webgl-only/contour-layer/marching-squares.js.map +1 -0
- package/dist.webgl-only/contour-layer/value-reader.js +47 -0
- package/dist.webgl-only/contour-layer/value-reader.js.map +1 -0
- package/dist.webgl-only/grid-layer/bin-options-uniforms.js +18 -0
- package/dist.webgl-only/grid-layer/bin-options-uniforms.js.map +1 -0
- package/dist.webgl-only/grid-layer/grid-cell-layer-vertex.glsl.js +51 -0
- package/dist.webgl-only/grid-layer/grid-cell-layer-vertex.glsl.js.map +1 -0
- package/dist.webgl-only/grid-layer/grid-cell-layer.js +95 -0
- package/dist.webgl-only/grid-layer/grid-cell-layer.js.map +1 -0
- package/dist.webgl-only/grid-layer/grid-cell-layer.wgsl.js +5 -0
- package/dist.webgl-only/grid-layer/grid-cell-layer.wgsl.js.map +1 -0
- package/dist.webgl-only/grid-layer/grid-layer-uniforms.js +26 -0
- package/dist.webgl-only/grid-layer/grid-layer-uniforms.js.map +1 -0
- package/dist.webgl-only/grid-layer/grid-layer.js +362 -0
- package/dist.webgl-only/grid-layer/grid-layer.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/aggregation-layer.js +140 -0
- package/dist.webgl-only/heatmap-layer/aggregation-layer.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/heatmap-layer-uniforms.js +36 -0
- package/dist.webgl-only/heatmap-layer/heatmap-layer-uniforms.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/heatmap-layer-utils.js +67 -0
- package/dist.webgl-only/heatmap-layer/heatmap-layer-utils.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/heatmap-layer.js +513 -0
- package/dist.webgl-only/heatmap-layer/heatmap-layer.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/max-fs.glsl.js +13 -0
- package/dist.webgl-only/heatmap-layer/max-fs.glsl.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/max-vs.glsl.js +18 -0
- package/dist.webgl-only/heatmap-layer/max-vs.glsl.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/max.wgsl.js +5 -0
- package/dist.webgl-only/heatmap-layer/max.wgsl.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer-fragment.glsl.js +34 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer-fragment.glsl.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer-uniforms.js +25 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer-uniforms.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer-vertex.glsl.js +28 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer-vertex.glsl.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer.js +49 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer.wgsl.js +5 -0
- package/dist.webgl-only/heatmap-layer/triangle-layer.wgsl.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/weights-fs.glsl.js +21 -0
- package/dist.webgl-only/heatmap-layer/weights-fs.glsl.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/weights-vs.glsl.js +21 -0
- package/dist.webgl-only/heatmap-layer/weights-vs.glsl.js.map +1 -0
- package/dist.webgl-only/heatmap-layer/weights.wgsl.js +5 -0
- package/dist.webgl-only/heatmap-layer/weights.wgsl.js.map +1 -0
- package/dist.webgl-only/hexagon-layer/bin-options-uniforms.js +18 -0
- package/dist.webgl-only/hexagon-layer/bin-options-uniforms.js.map +1 -0
- package/dist.webgl-only/hexagon-layer/hexagon-cell-layer-vertex.glsl.js +55 -0
- package/dist.webgl-only/hexagon-layer/hexagon-cell-layer-vertex.glsl.js.map +1 -0
- package/dist.webgl-only/hexagon-layer/hexagon-cell-layer.js +90 -0
- package/dist.webgl-only/hexagon-layer/hexagon-cell-layer.js.map +1 -0
- package/dist.webgl-only/hexagon-layer/hexagon-cell-layer.wgsl.js +5 -0
- package/dist.webgl-only/hexagon-layer/hexagon-cell-layer.wgsl.js.map +1 -0
- package/dist.webgl-only/hexagon-layer/hexagon-layer-uniforms.js +24 -0
- package/dist.webgl-only/hexagon-layer/hexagon-layer-uniforms.js.map +1 -0
- package/dist.webgl-only/hexagon-layer/hexagon-layer.js +360 -0
- package/dist.webgl-only/hexagon-layer/hexagon-layer.js.map +1 -0
- package/dist.webgl-only/hexagon-layer/hexbin.js +70 -0
- package/dist.webgl-only/hexagon-layer/hexbin.js.map +1 -0
- package/dist.webgl-only/index.cjs +15625 -0
- package/dist.webgl-only/index.cjs.map +6 -0
- package/dist.webgl-only/index.js +11 -0
- package/dist.webgl-only/index.js.map +1 -0
- package/dist.webgl-only/screen-grid-layer/bin-options-uniforms.js +16 -0
- package/dist.webgl-only/screen-grid-layer/bin-options-uniforms.js.map +1 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-cell-layer.js +88 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-cell-layer.js.map +1 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-cell-layer.wgsl.js +5 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-cell-layer.wgsl.js.map +1 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-layer-fragment.glsl.js +16 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +1 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-layer-uniforms.js +22 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-layer-uniforms.js.map +1 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-layer-vertex.glsl.js +31 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +1 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-layer.js +194 -0
- package/dist.webgl-only/screen-grid-layer/screen-grid-layer.js.map +1 -0
- package/package.json +14 -5
- package/src/common/aggregator/gpu-aggregator/webgl-aggregation-transform.ts +1 -3
- package/src/common/aggregator/gpu-aggregator/webgl-bin-sorter.ts +0 -1
- package/src/grid-layer/grid-cell-layer.ts +3 -2
- package/src/grid-layer/grid-cell-layer.wgsl.ts +114 -0
- package/src/grid-layer/grid-layer-uniforms.ts +15 -0
- package/src/heatmap-layer/heatmap-layer-uniforms.ts +20 -0
- package/src/heatmap-layer/heatmap-layer.ts +67 -13
- package/src/heatmap-layer/max.wgsl.ts +48 -0
- package/src/heatmap-layer/triangle-layer-uniforms.ts +17 -0
- package/src/heatmap-layer/triangle-layer.ts +3 -2
- package/src/heatmap-layer/triangle-layer.wgsl.ts +65 -0
- package/src/heatmap-layer/weights.wgsl.ts +64 -0
- package/src/hexagon-layer/hexagon-cell-layer.ts +2 -3
- package/src/hexagon-layer/hexagon-cell-layer.wgsl.ts +120 -0
- package/src/hexagon-layer/hexagon-layer-uniforms.ts +14 -0
- package/src/screen-grid-layer/screen-grid-cell-layer.ts +4 -4
- package/src/screen-grid-layer/screen-grid-cell-layer.wgsl.ts +76 -0
- package/src/screen-grid-layer/screen-grid-layer-uniforms.ts +13 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { CompositeLayer, AttributeManager, _compareProps as compareProps } from '@deck.gl/core';
|
|
5
|
+
import { filterProps } from "../common/utils/prop-utils.js";
|
|
6
|
+
/** Legacy AggregationLayer, to be removed in v9.1 */
|
|
7
|
+
class AggregationLayer extends CompositeLayer {
|
|
8
|
+
initializeAggregationLayer(dimensions) {
|
|
9
|
+
super.initializeState(this.context);
|
|
10
|
+
this.setState({
|
|
11
|
+
// Layer props , when changed doesn't require updating aggregation
|
|
12
|
+
ignoreProps: filterProps(this.constructor._propTypes, dimensions.data.props),
|
|
13
|
+
dimensions
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
updateState(opts) {
|
|
17
|
+
super.updateState(opts);
|
|
18
|
+
const { changeFlags } = opts;
|
|
19
|
+
if (changeFlags.extensionsChanged) {
|
|
20
|
+
const shaders = this.getShaders({});
|
|
21
|
+
if (shaders && shaders.defines) {
|
|
22
|
+
shaders.defines.NON_INSTANCED_MODEL = 1;
|
|
23
|
+
}
|
|
24
|
+
this.updateShaders(shaders);
|
|
25
|
+
}
|
|
26
|
+
// Explictly call to update attributes as 'CompositeLayer' doesn't call this
|
|
27
|
+
this._updateAttributes();
|
|
28
|
+
}
|
|
29
|
+
updateAttributes(changedAttributes) {
|
|
30
|
+
// Super classes, can refer to state.changedAttributes to determine what
|
|
31
|
+
// attributes changed
|
|
32
|
+
this.setState({ changedAttributes });
|
|
33
|
+
}
|
|
34
|
+
getAttributes() {
|
|
35
|
+
return this.getAttributeManager().getAttributes();
|
|
36
|
+
}
|
|
37
|
+
getModuleSettings() {
|
|
38
|
+
// For regular layer draw this happens during draw cycle (_drawLayersInViewport) not during update cycle
|
|
39
|
+
// For aggregation layers this is called during updateState to update aggregation data
|
|
40
|
+
// NOTE: it is similar to LayerPass._getShaderModuleProps() but doesn't inlcude `effects` it is not needed for aggregation
|
|
41
|
+
const { viewport, mousePosition, device } = this.context;
|
|
42
|
+
const moduleSettings = Object.assign(Object.create(this.props), {
|
|
43
|
+
viewport,
|
|
44
|
+
mousePosition,
|
|
45
|
+
picking: {
|
|
46
|
+
isActive: 0
|
|
47
|
+
},
|
|
48
|
+
// @ts-expect-error TODO - assuming WebGL context
|
|
49
|
+
devicePixelRatio: device.canvasContext.cssToDeviceRatio()
|
|
50
|
+
});
|
|
51
|
+
return moduleSettings;
|
|
52
|
+
}
|
|
53
|
+
updateShaders(shaders) {
|
|
54
|
+
// Default implemention is empty, subclasses can update their Model objects if needed
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Checks if aggregation is dirty
|
|
58
|
+
* @param {Object} updateOpts - object {props, oldProps, changeFlags}
|
|
59
|
+
* @param {Object} params - object {dimension, compareAll}
|
|
60
|
+
* @param {Object} params.dimension - {props, accessors} array of props and/or accessors
|
|
61
|
+
* @param {Boolean} params.compareAll - when `true` it will include non layer props for comparision
|
|
62
|
+
* @returns {Boolean} - returns true if dimensions' prop or accessor is changed
|
|
63
|
+
**/
|
|
64
|
+
isAggregationDirty(updateOpts, params = {}) {
|
|
65
|
+
const { props, oldProps, changeFlags } = updateOpts;
|
|
66
|
+
const { compareAll = false, dimension } = params;
|
|
67
|
+
const { ignoreProps } = this.state;
|
|
68
|
+
const { props: dataProps, accessors = [] } = dimension;
|
|
69
|
+
const { updateTriggersChanged } = changeFlags;
|
|
70
|
+
if (changeFlags.dataChanged) {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
if (updateTriggersChanged) {
|
|
74
|
+
if (updateTriggersChanged.all) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
for (const accessor of accessors) {
|
|
78
|
+
if (updateTriggersChanged[accessor]) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (compareAll) {
|
|
84
|
+
if (changeFlags.extensionsChanged) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
// Compare non layer props too (like extension props)
|
|
88
|
+
// ignoreprops refers to all Layer props other than aggregation props that need to be comapred
|
|
89
|
+
return compareProps({
|
|
90
|
+
oldProps,
|
|
91
|
+
newProps: props,
|
|
92
|
+
ignoreProps,
|
|
93
|
+
propTypes: this.constructor._propTypes
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// Compare props of the dimension
|
|
97
|
+
for (const name of dataProps) {
|
|
98
|
+
if (props[name] !== oldProps[name]) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Checks if an attribute is changed
|
|
106
|
+
* @param {String} name - name of the attribute
|
|
107
|
+
* @returns {Boolean} - `true` if attribute `name` is changed, `false` otherwise,
|
|
108
|
+
* If `name` is not passed or `undefiend`, `true` if any attribute is changed, `false` otherwise
|
|
109
|
+
**/
|
|
110
|
+
isAttributeChanged(name) {
|
|
111
|
+
const { changedAttributes } = this.state;
|
|
112
|
+
if (!name) {
|
|
113
|
+
// if name not specified return true if any attribute is changed
|
|
114
|
+
return !isObjectEmpty(changedAttributes);
|
|
115
|
+
}
|
|
116
|
+
return changedAttributes && changedAttributes[name] !== undefined;
|
|
117
|
+
}
|
|
118
|
+
// Private
|
|
119
|
+
// override Composite layer private method to create AttributeManager instance
|
|
120
|
+
_getAttributeManager() {
|
|
121
|
+
return new AttributeManager(this.context.device, {
|
|
122
|
+
id: this.props.id,
|
|
123
|
+
stats: this.context.stats
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
AggregationLayer.layerName = 'AggregationLayer';
|
|
128
|
+
export default AggregationLayer;
|
|
129
|
+
// Helper methods
|
|
130
|
+
// Returns true if given object is empty, false otherwise.
|
|
131
|
+
function isObjectEmpty(obj) {
|
|
132
|
+
let isEmpty = true;
|
|
133
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
134
|
+
for (const key in obj) {
|
|
135
|
+
isEmpty = false;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
return isEmpty;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=aggregation-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregation-layer.js","sourceRoot":"","sources":["../../src/heatmap-layer/aggregation-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const uniformBlockWGSL = null;
|
|
5
|
+
const uniformBlock = `\
|
|
6
|
+
layout(std140) uniform weightUniforms {
|
|
7
|
+
vec4 commonBounds;
|
|
8
|
+
float radiusPixels;
|
|
9
|
+
float textureWidth;
|
|
10
|
+
float weightsScale;
|
|
11
|
+
} weight;
|
|
12
|
+
`;
|
|
13
|
+
export const weightUniforms = {
|
|
14
|
+
name: 'weight',
|
|
15
|
+
source: uniformBlockWGSL,
|
|
16
|
+
vs: uniformBlock,
|
|
17
|
+
uniformTypes: {
|
|
18
|
+
commonBounds: 'vec4<f32>',
|
|
19
|
+
radiusPixels: 'f32',
|
|
20
|
+
textureWidth: 'f32',
|
|
21
|
+
weightsScale: 'f32'
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
export const maxWeightUniforms = {
|
|
25
|
+
name: 'maxWeight',
|
|
26
|
+
source: null,
|
|
27
|
+
vs: `\
|
|
28
|
+
layout(std140) uniform maxWeightUniforms {
|
|
29
|
+
float textureSize;
|
|
30
|
+
} maxWeight;
|
|
31
|
+
`,
|
|
32
|
+
uniformTypes: {
|
|
33
|
+
textureSize: 'f32'
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=heatmap-layer-uniforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap-layer-uniforms.js","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer-uniforms.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAKpC,MAAM,gBAAgB,QASpB;AAEF,MAAM,YAAY,GAAG;;;;;;;CAOpB,CAAC;AASF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,gBAAgB;IACxB,EAAE,EAAE,YAAY;IAChB,YAAY,EAAE;QACZ,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;KACpB;CAC2C,CAAC;AAO/C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,WAAW;IACjB,MAAM,MAOP;IACC,EAAE,EAAE;;;;CAIL;IACC,YAAY,EAAE;QACZ,WAAW,EAAE,KAAK;KACnB;CAC8C,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
export function getBounds(points) {
|
|
5
|
+
// Now build bounding box in world space (aligned to world coordiante system)
|
|
6
|
+
const x = points.map(p => p[0]);
|
|
7
|
+
const y = points.map(p => p[1]);
|
|
8
|
+
const xMin = Math.min.apply(null, x);
|
|
9
|
+
const xMax = Math.max.apply(null, x);
|
|
10
|
+
const yMin = Math.min.apply(null, y);
|
|
11
|
+
const yMax = Math.max.apply(null, y);
|
|
12
|
+
return [xMin, yMin, xMax, yMax];
|
|
13
|
+
}
|
|
14
|
+
// true if currentBounds contains targetBounds, false otherwise
|
|
15
|
+
export function boundsContain(currentBounds, targetBounds) {
|
|
16
|
+
if (targetBounds[0] >= currentBounds[0] &&
|
|
17
|
+
targetBounds[2] <= currentBounds[2] &&
|
|
18
|
+
targetBounds[1] >= currentBounds[1] &&
|
|
19
|
+
targetBounds[3] <= currentBounds[3]) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const scratchArray = new Float32Array(12);
|
|
25
|
+
// For given rectangle bounds generates two triangles vertices that coverit completely
|
|
26
|
+
export function packVertices(points, dimensions = 2) {
|
|
27
|
+
let index = 0;
|
|
28
|
+
for (const point of points) {
|
|
29
|
+
for (let i = 0; i < dimensions; i++) {
|
|
30
|
+
scratchArray[index++] = point[i] || 0;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return scratchArray;
|
|
34
|
+
}
|
|
35
|
+
// Expands boundingBox:[xMin, yMin, xMax, yMax] to match aspect ratio of given width and height
|
|
36
|
+
export function scaleToAspectRatio(boundingBox, width, height) {
|
|
37
|
+
const [xMin, yMin, xMax, yMax] = boundingBox;
|
|
38
|
+
const currentWidth = xMax - xMin;
|
|
39
|
+
const currentHeight = yMax - yMin;
|
|
40
|
+
let newWidth = currentWidth;
|
|
41
|
+
let newHeight = currentHeight;
|
|
42
|
+
if (currentWidth / currentHeight < width / height) {
|
|
43
|
+
// expand bounding box width
|
|
44
|
+
newWidth = (width / height) * currentHeight;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
newHeight = (height / width) * currentWidth;
|
|
48
|
+
}
|
|
49
|
+
if (newWidth < width) {
|
|
50
|
+
newWidth = width;
|
|
51
|
+
newHeight = height;
|
|
52
|
+
}
|
|
53
|
+
const xCenter = (xMax + xMin) / 2;
|
|
54
|
+
const yCenter = (yMax + yMin) / 2;
|
|
55
|
+
return [
|
|
56
|
+
xCenter - newWidth / 2,
|
|
57
|
+
yCenter - newHeight / 2,
|
|
58
|
+
xCenter + newWidth / 2,
|
|
59
|
+
yCenter + newHeight / 2
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
// Get texture coordiante of point inside a bounding box
|
|
63
|
+
export function getTextureCoordinates(point, bounds) {
|
|
64
|
+
const [xMin, yMin, xMax, yMax] = bounds;
|
|
65
|
+
return [(point[0] - xMin) / (xMax - xMin), (point[1] - yMin) / (yMax - yMin)];
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=heatmap-layer-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap-layer-utils.js","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,MAAM,UAAU,SAAS,CAAC,MAAkB;IAC1C,6EAA6E;IAC7E,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAErC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,aAAa,CAAC,aAAuB,EAAE,YAAsB;IAC3E,IACE,YAAY,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QACnC,YAAY,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QACnC,YAAY,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QACnC,YAAY,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;AAE1C,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,MAAkB,EAAE,aAAqB,CAAC;IACrE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAChC,WAA6C,EAC7C,KAAa,EACb,MAAc;IAEd,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC;IAE7C,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAElC,IAAI,QAAQ,GAAG,YAAY,CAAC;IAC5B,IAAI,SAAS,GAAG,aAAa,CAAC;IAC9B,IAAI,YAAY,GAAG,aAAa,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC;QAClD,4BAA4B;QAC5B,QAAQ,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC;IAC9C,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;QACrB,QAAQ,GAAG,KAAK,CAAC;QACjB,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAElC,OAAO;QACL,OAAO,GAAG,QAAQ,GAAG,CAAC;QACtB,OAAO,GAAG,SAAS,GAAG,CAAC;QACvB,OAAO,GAAG,QAAQ,GAAG,CAAC;QACtB,OAAO,GAAG,SAAS,GAAG,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,qBAAqB,CAAC,KAAe,EAAE,MAAgB;IACrE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;IACxC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAChF,CAAC"}
|