@deck.gl/aggregation-layers 9.0.0-beta.1 → 9.0.0-beta.10
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/aggregation-layer.js +153 -0
- package/{typed → dist}/contour-layer/contour-layer.d.ts +1 -1
- package/dist/contour-layer/contour-layer.d.ts.map +1 -0
- package/dist/contour-layer/contour-layer.js +240 -0
- package/dist/contour-layer/contour-utils.js +64 -0
- package/dist/contour-layer/marching-squares-codes.js +337 -0
- package/dist/contour-layer/marching-squares.js +147 -0
- package/{typed → dist}/cpu-grid-layer/cpu-grid-layer.d.ts +3 -3
- package/dist/cpu-grid-layer/cpu-grid-layer.d.ts.map +1 -0
- package/dist/cpu-grid-layer/cpu-grid-layer.js +129 -0
- package/dist/cpu-grid-layer/grid-aggregator.js +141 -0
- package/dist/dist.dev.js +1439 -10866
- package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +30 -0
- package/dist/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +112 -0
- package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer.d.ts +1 -1
- package/dist/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +1 -0
- package/dist/gpu-grid-layer/gpu-grid-cell-layer.js +145 -0
- package/{typed → dist}/gpu-grid-layer/gpu-grid-layer.d.ts +4 -4
- package/dist/gpu-grid-layer/gpu-grid-layer.d.ts.map +1 -0
- package/dist/gpu-grid-layer/gpu-grid-layer.js +288 -0
- package/{typed → dist}/grid-aggregation-layer.d.ts +3 -3
- package/dist/grid-aggregation-layer.d.ts.map +1 -0
- package/dist/grid-aggregation-layer.js +172 -0
- package/{typed → dist}/grid-layer/grid-layer.d.ts +2 -2
- package/dist/grid-layer/grid-layer.d.ts.map +1 -0
- package/dist/grid-layer/grid-layer.js +63 -0
- package/{typed → dist}/heatmap-layer/heatmap-layer-utils.d.ts +0 -9
- package/dist/heatmap-layer/heatmap-layer-utils.d.ts.map +1 -0
- package/dist/heatmap-layer/heatmap-layer-utils.js +63 -0
- package/{typed → dist}/heatmap-layer/heatmap-layer.d.ts +5 -6
- package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -0
- package/dist/heatmap-layer/heatmap-layer.js +455 -0
- package/dist/heatmap-layer/max-fs.glsl.js +9 -0
- package/dist/heatmap-layer/max-vs.glsl.d.ts +3 -0
- package/{typed → dist}/heatmap-layer/max-vs.glsl.d.ts.map +1 -1
- package/dist/heatmap-layer/max-vs.glsl.js +15 -0
- package/dist/heatmap-layer/triangle-layer-fragment.glsl.d.ts +3 -0
- package/dist/heatmap-layer/triangle-layer-fragment.glsl.js +51 -0
- package/dist/heatmap-layer/triangle-layer-vertex.glsl.js +47 -0
- package/{typed → dist}/heatmap-layer/triangle-layer.d.ts +10 -2
- package/dist/heatmap-layer/triangle-layer.d.ts.map +1 -0
- package/dist/heatmap-layer/triangle-layer.js +59 -0
- package/dist/heatmap-layer/weights-fs.glsl.js +17 -0
- package/dist/heatmap-layer/weights-vs.glsl.d.ts +3 -0
- package/{typed → dist}/heatmap-layer/weights-vs.glsl.d.ts.map +1 -1
- package/dist/heatmap-layer/weights-vs.glsl.js +21 -0
- package/dist/hexagon-layer/hexagon-aggregator.js +112 -0
- package/{typed → dist}/hexagon-layer/hexagon-layer.d.ts +4 -4
- package/dist/hexagon-layer/hexagon-layer.d.ts.map +1 -0
- package/dist/hexagon-layer/hexagon-layer.js +173 -0
- package/dist/index.cjs +4327 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/{typed → dist}/screen-grid-layer/screen-grid-cell-layer.d.ts +2 -3
- package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -0
- package/dist/screen-grid-layer/screen-grid-cell-layer.js +163 -0
- package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.js +35 -0
- package/dist/screen-grid-layer/screen-grid-layer-vertex.glsl.js +72 -0
- package/{typed → dist}/screen-grid-layer/screen-grid-layer.d.ts +1 -4
- package/dist/screen-grid-layer/screen-grid-layer.d.ts.map +1 -0
- package/dist/screen-grid-layer/screen-grid-layer.js +209 -0
- package/dist/types.js +1 -0
- package/dist/utils/aggregation-operation-utils.js +94 -0
- package/{typed → dist}/utils/bin-sorter.d.ts +1 -1
- package/dist/utils/bin-sorter.js +167 -0
- package/dist/utils/color-utils.js +53 -0
- package/dist/utils/cpu-aggregator.js +421 -0
- package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +36 -0
- package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +42 -0
- package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +30 -0
- package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +61 -0
- package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +41 -0
- package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +1 -0
- package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts.map +1 -1
- package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +555 -0
- package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +32 -0
- package/dist/utils/grid-aggregation-utils.js +114 -0
- package/dist/utils/prop-utils.js +28 -0
- package/dist/utils/resource-utils.js +38 -0
- package/dist/utils/scale-utils.js +184 -0
- package/dist.min.js +299 -555
- package/package.json +19 -14
- package/src/contour-layer/contour-layer.ts +2 -3
- package/src/cpu-grid-layer/cpu-grid-layer.ts +1 -2
- package/src/gpu-grid-layer/gpu-grid-cell-layer.ts +1 -1
- package/src/gpu-grid-layer/gpu-grid-layer.ts +2 -2
- package/src/heatmap-layer/heatmap-layer-utils.ts +0 -23
- package/src/heatmap-layer/heatmap-layer.ts +92 -128
- package/src/heatmap-layer/max-vs.glsl.ts +11 -5
- package/src/heatmap-layer/triangle-layer-fragment.glsl.ts +2 -2
- package/src/heatmap-layer/triangle-layer.ts +17 -23
- package/src/heatmap-layer/weights-vs.glsl.ts +4 -2
- package/src/hexagon-layer/hexagon-layer.ts +2 -3
- package/src/screen-grid-layer/screen-grid-cell-layer.ts +0 -4
- package/src/screen-grid-layer/screen-grid-layer.ts +1 -11
- package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts +14 -28
- package/dist/es5/aggregation-layer.js +0 -215
- package/dist/es5/aggregation-layer.js.map +0 -1
- package/dist/es5/contour-layer/contour-layer.js +0 -353
- package/dist/es5/contour-layer/contour-layer.js.map +0 -1
- package/dist/es5/contour-layer/contour-utils.js +0 -110
- package/dist/es5/contour-layer/contour-utils.js.map +0 -1
- package/dist/es5/contour-layer/marching-squares-codes.js +0 -152
- package/dist/es5/contour-layer/marching-squares-codes.js.map +0 -1
- package/dist/es5/contour-layer/marching-squares.js +0 -168
- package/dist/es5/contour-layer/marching-squares.js.map +0 -1
- package/dist/es5/cpu-grid-layer/cpu-grid-layer.js +0 -235
- package/dist/es5/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
- package/dist/es5/cpu-grid-layer/grid-aggregator.js +0 -180
- package/dist/es5/cpu-grid-layer/grid-aggregator.js.map +0 -1
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -9
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -9
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js +0 -247
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
- package/dist/es5/gpu-grid-layer/gpu-grid-layer.js +0 -424
- package/dist/es5/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
- package/dist/es5/grid-aggregation-layer.js +0 -280
- package/dist/es5/grid-aggregation-layer.js.map +0 -1
- package/dist/es5/grid-layer/grid-layer.js +0 -125
- package/dist/es5/grid-layer/grid-layer.js.map +0 -1
- package/dist/es5/heatmap-layer/heatmap-layer-utils.js +0 -122
- package/dist/es5/heatmap-layer/heatmap-layer-utils.js.map +0 -1
- package/dist/es5/heatmap-layer/heatmap-layer.js +0 -672
- package/dist/es5/heatmap-layer/heatmap-layer.js.map +0 -1
- package/dist/es5/heatmap-layer/max-fs.glsl.js +0 -9
- package/dist/es5/heatmap-layer/max-fs.glsl.js.map +0 -1
- package/dist/es5/heatmap-layer/max-vs.glsl.js +0 -9
- package/dist/es5/heatmap-layer/max-vs.glsl.js.map +0 -1
- package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js +0 -9
- package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
- package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js +0 -9
- package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
- package/dist/es5/heatmap-layer/triangle-layer.js +0 -122
- package/dist/es5/heatmap-layer/triangle-layer.js.map +0 -1
- package/dist/es5/heatmap-layer/weights-fs.glsl.js +0 -9
- package/dist/es5/heatmap-layer/weights-fs.glsl.js.map +0 -1
- package/dist/es5/heatmap-layer/weights-vs.glsl.js +0 -9
- package/dist/es5/heatmap-layer/weights-vs.glsl.js.map +0 -1
- package/dist/es5/hexagon-layer/hexagon-aggregator.js +0 -118
- package/dist/es5/hexagon-layer/hexagon-aggregator.js.map +0 -1
- package/dist/es5/hexagon-layer/hexagon-layer.js +0 -289
- package/dist/es5/hexagon-layer/hexagon-layer.js.map +0 -1
- package/dist/es5/index.js +0 -104
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js +0 -244
- package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
- package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -9
- package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
- package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -9
- package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
- package/dist/es5/screen-grid-layer/screen-grid-layer.js +0 -317
- package/dist/es5/screen-grid-layer/screen-grid-layer.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/types.js.map +0 -1
- package/dist/es5/utils/aggregation-operation-utils.js +0 -123
- package/dist/es5/utils/aggregation-operation-utils.js.map +0 -1
- package/dist/es5/utils/bin-sorter.js +0 -248
- package/dist/es5/utils/bin-sorter.js.map +0 -1
- package/dist/es5/utils/color-utils.js +0 -39
- package/dist/es5/utils/color-utils.js.map +0 -1
- package/dist/es5/utils/cpu-aggregator.js +0 -496
- package/dist/es5/utils/cpu-aggregator.js.map +0 -1
- package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -9
- package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
- package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -9
- package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
- package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -9
- package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
- package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -9
- package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
- package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -63
- package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
- package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
- package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
- package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -732
- package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
- package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
- package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -9
- package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
- package/dist/es5/utils/grid-aggregation-utils.js +0 -118
- package/dist/es5/utils/grid-aggregation-utils.js.map +0 -1
- package/dist/es5/utils/prop-utils.js +0 -19
- package/dist/es5/utils/prop-utils.js.map +0 -1
- package/dist/es5/utils/resource-utils.js +0 -59
- package/dist/es5/utils/resource-utils.js.map +0 -1
- package/dist/es5/utils/scale-utils.js +0 -254
- package/dist/es5/utils/scale-utils.js.map +0 -1
- package/dist/esm/aggregation-layer.js +0 -156
- package/dist/esm/aggregation-layer.js.map +0 -1
- package/dist/esm/contour-layer/contour-layer.js +0 -316
- package/dist/esm/contour-layer/contour-layer.js.map +0 -1
- package/dist/esm/contour-layer/contour-utils.js +0 -81
- package/dist/esm/contour-layer/contour-utils.js.map +0 -1
- package/dist/esm/contour-layer/marching-squares-codes.js +0 -219
- package/dist/esm/contour-layer/marching-squares-codes.js.map +0 -1
- package/dist/esm/contour-layer/marching-squares.js +0 -151
- package/dist/esm/contour-layer/marching-squares.js.map +0 -1
- package/dist/esm/cpu-grid-layer/cpu-grid-layer.js +0 -186
- package/dist/esm/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
- package/dist/esm/cpu-grid-layer/grid-aggregator.js +0 -142
- package/dist/esm/cpu-grid-layer/grid-aggregator.js.map +0 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -16
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -122
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js +0 -196
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-layer.js +0 -399
- package/dist/esm/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
- package/dist/esm/grid-aggregation-layer.js +0 -240
- package/dist/esm/grid-aggregation-layer.js.map +0 -1
- package/dist/esm/grid-layer/grid-layer.js +0 -80
- package/dist/esm/grid-layer/grid-layer.js.map +0 -1
- package/dist/esm/heatmap-layer/heatmap-layer-utils.js +0 -68
- package/dist/esm/heatmap-layer/heatmap-layer-utils.js.map +0 -1
- package/dist/esm/heatmap-layer/heatmap-layer.js +0 -626
- package/dist/esm/heatmap-layer/heatmap-layer.js.map +0 -1
- package/dist/esm/heatmap-layer/max-fs.glsl.js +0 -10
- package/dist/esm/heatmap-layer/max-fs.glsl.js.map +0 -1
- package/dist/esm/heatmap-layer/max-vs.glsl.js +0 -14
- package/dist/esm/heatmap-layer/max-vs.glsl.js.map +0 -1
- package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +0 -43
- package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
- package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +0 -33
- package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
- package/dist/esm/heatmap-layer/triangle-layer.js +0 -80
- package/dist/esm/heatmap-layer/triangle-layer.js.map +0 -1
- package/dist/esm/heatmap-layer/weights-fs.glsl.js +0 -22
- package/dist/esm/heatmap-layer/weights-fs.glsl.js.map +0 -1
- package/dist/esm/heatmap-layer/weights-vs.glsl.js +0 -25
- package/dist/esm/heatmap-layer/weights-vs.glsl.js.map +0 -1
- package/dist/esm/hexagon-layer/hexagon-aggregator.js +0 -87
- package/dist/esm/hexagon-layer/hexagon-aggregator.js.map +0 -1
- package/dist/esm/hexagon-layer/hexagon-layer.js +0 -232
- package/dist/esm/hexagon-layer/hexagon-layer.js.map +0 -1
- package/dist/esm/index.js +0 -13
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js +0 -203
- package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
- package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -21
- package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
- package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -66
- package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
- package/dist/esm/screen-grid-layer/screen-grid-layer.js +0 -285
- package/dist/esm/screen-grid-layer/screen-grid-layer.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils/aggregation-operation-utils.js +0 -91
- package/dist/esm/utils/aggregation-operation-utils.js.map +0 -1
- package/dist/esm/utils/bin-sorter.js +0 -165
- package/dist/esm/utils/bin-sorter.js.map +0 -1
- package/dist/esm/utils/color-utils.js +0 -28
- package/dist/esm/utils/color-utils.js.map +0 -1
- package/dist/esm/utils/cpu-aggregator.js +0 -487
- package/dist/esm/utils/cpu-aggregator.js.map +0 -1
- package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -21
- package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
- package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -35
- package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
- package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -16
- package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
- package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -60
- package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
- package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -42
- package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
- package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
- package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
- package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -720
- package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
- package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
- package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -19
- package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
- package/dist/esm/utils/grid-aggregation-utils.js +0 -109
- package/dist/esm/utils/grid-aggregation-utils.js.map +0 -1
- package/dist/esm/utils/prop-utils.js +0 -12
- package/dist/esm/utils/prop-utils.js.map +0 -1
- package/dist/esm/utils/resource-utils.js +0 -44
- package/dist/esm/utils/resource-utils.js.map +0 -1
- package/dist/esm/utils/scale-utils.js +0 -192
- package/dist/esm/utils/scale-utils.js.map +0 -1
- package/typed/contour-layer/contour-layer.d.ts.map +0 -1
- package/typed/cpu-grid-layer/cpu-grid-layer.d.ts.map +0 -1
- package/typed/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +0 -1
- package/typed/gpu-grid-layer/gpu-grid-layer.d.ts.map +0 -1
- package/typed/grid-aggregation-layer.d.ts.map +0 -1
- package/typed/grid-layer/grid-layer.d.ts.map +0 -1
- package/typed/heatmap-layer/heatmap-layer-utils.d.ts.map +0 -1
- package/typed/heatmap-layer/heatmap-layer.d.ts.map +0 -1
- package/typed/heatmap-layer/max-vs.glsl.d.ts +0 -3
- package/typed/heatmap-layer/triangle-layer-fragment.glsl.d.ts +0 -3
- package/typed/heatmap-layer/triangle-layer.d.ts.map +0 -1
- package/typed/heatmap-layer/weights-vs.glsl.d.ts +0 -3
- package/typed/hexagon-layer/hexagon-layer.d.ts.map +0 -1
- package/typed/index.d.ts +0 -20
- package/typed/index.d.ts.map +0 -1
- package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts.map +0 -1
- package/typed/screen-grid-layer/screen-grid-layer.d.ts.map +0 -1
- /package/{typed → dist}/aggregation-layer.d.ts +0 -0
- /package/{typed → dist}/aggregation-layer.d.ts.map +0 -0
- /package/{typed → dist}/contour-layer/contour-utils.d.ts +0 -0
- /package/{typed → dist}/contour-layer/contour-utils.d.ts.map +0 -0
- /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts +0 -0
- /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts.map +0 -0
- /package/{typed → dist}/contour-layer/marching-squares.d.ts +0 -0
- /package/{typed → dist}/contour-layer/marching-squares.d.ts.map +0 -0
- /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts +0 -0
- /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts.map +0 -0
- /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts +0 -0
- /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts.map +0 -0
- /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts +0 -0
- /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts.map +0 -0
- /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts +0 -0
- /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts.map +0 -0
- /package/{typed → dist}/heatmap-layer/triangle-layer-fragment.glsl.d.ts.map +0 -0
- /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts +0 -0
- /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts.map +0 -0
- /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts +0 -0
- /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts.map +0 -0
- /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts +0 -0
- /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts.map +0 -0
- /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts +0 -0
- /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts.map +0 -0
- /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts +0 -0
- /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts.map +0 -0
- /package/{typed → dist}/types.d.ts +0 -0
- /package/{typed → dist}/types.d.ts.map +0 -0
- /package/{typed → dist}/utils/aggregation-operation-utils.d.ts +0 -0
- /package/{typed → dist}/utils/aggregation-operation-utils.d.ts.map +0 -0
- /package/{typed → dist}/utils/bin-sorter.d.ts.map +0 -0
- /package/{typed → dist}/utils/color-utils.d.ts +0 -0
- /package/{typed → dist}/utils/color-utils.d.ts.map +0 -0
- /package/{typed → dist}/utils/cpu-aggregator.d.ts +0 -0
- /package/{typed → dist}/utils/cpu-aggregator.d.ts.map +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts.map +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts.map +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts.map +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts.map +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts.map +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts.map +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts +0 -0
- /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts.map +0 -0
- /package/{typed → dist}/utils/grid-aggregation-utils.d.ts +0 -0
- /package/{typed → dist}/utils/grid-aggregation-utils.d.ts.map +0 -0
- /package/{typed → dist}/utils/prop-utils.d.ts +0 -0
- /package/{typed → dist}/utils/prop-utils.d.ts.map +0 -0
- /package/{typed → dist}/utils/resource-utils.d.ts +0 -0
- /package/{typed → dist}/utils/resource-utils.d.ts.map +0 -0
- /package/{typed → dist}/utils/scale-utils.d.ts +0 -0
- /package/{typed → dist}/utils/scale-utils.d.ts.map +0 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
// Copyright (c) 2015 - 2017 Uber Technologies, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
// in the Software without restriction, including without limitation the rights
|
|
6
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
// furnished to do so, subject to the following conditions:
|
|
9
|
+
//
|
|
10
|
+
// The above copyright notice and this permission notice shall be included in
|
|
11
|
+
// all copies or substantial portions of the Software.
|
|
12
|
+
//
|
|
13
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
+
// THE SOFTWARE.
|
|
20
|
+
import { GL } from '@luma.gl/constants';
|
|
21
|
+
import { log } from '@deck.gl/core';
|
|
22
|
+
import AggregationLayer from "./aggregation-layer.js";
|
|
23
|
+
import GPUGridAggregator from "./utils/gpu-grid-aggregation/gpu-grid-aggregator.js";
|
|
24
|
+
import BinSorter from "./utils/bin-sorter.js";
|
|
25
|
+
import { pointToDensityGridDataCPU } from "./cpu-grid-layer/grid-aggregator.js";
|
|
26
|
+
export default class GridAggregationLayer extends AggregationLayer {
|
|
27
|
+
static { this.layerName = 'GridAggregationLayer'; }
|
|
28
|
+
initializeAggregationLayer({ dimensions }) {
|
|
29
|
+
super.initializeAggregationLayer(dimensions);
|
|
30
|
+
this.setState({
|
|
31
|
+
// CPU aggregation results
|
|
32
|
+
layerData: {},
|
|
33
|
+
gpuGridAggregator: new GPUGridAggregator(this.context.device, {
|
|
34
|
+
id: `${this.id}-gpu-aggregator`
|
|
35
|
+
}),
|
|
36
|
+
cpuGridAggregator: pointToDensityGridDataCPU
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
updateState(opts) {
|
|
40
|
+
// get current attributes
|
|
41
|
+
super.updateState(opts);
|
|
42
|
+
this.updateAggregationState(opts);
|
|
43
|
+
const { aggregationDataDirty, aggregationWeightsDirty, gpuAggregation } = this.state;
|
|
44
|
+
if (this.getNumInstances() <= 0) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
let aggregationDirty = false;
|
|
48
|
+
// CPU aggregation is two steps
|
|
49
|
+
// 1. Create bins (based on cellSize and position) 2. Aggregate weights for each bin
|
|
50
|
+
// For GPU aggregation both above steps are combined into one step
|
|
51
|
+
// step-1
|
|
52
|
+
if (aggregationDataDirty || (gpuAggregation && aggregationWeightsDirty)) {
|
|
53
|
+
this._updateAggregation(opts);
|
|
54
|
+
aggregationDirty = true;
|
|
55
|
+
}
|
|
56
|
+
// step-2 (Applicalbe for CPU aggregation only)
|
|
57
|
+
if (!gpuAggregation && (aggregationDataDirty || aggregationWeightsDirty)) {
|
|
58
|
+
this._updateWeightBins();
|
|
59
|
+
this._uploadAggregationResults();
|
|
60
|
+
aggregationDirty = true;
|
|
61
|
+
}
|
|
62
|
+
this.setState({ aggregationDirty });
|
|
63
|
+
}
|
|
64
|
+
finalizeState(context) {
|
|
65
|
+
const { count } = this.state.weights;
|
|
66
|
+
if (count && count.aggregationBuffer) {
|
|
67
|
+
count.aggregationBuffer.delete();
|
|
68
|
+
}
|
|
69
|
+
this.state.gpuGridAggregator?.delete();
|
|
70
|
+
super.finalizeState(context);
|
|
71
|
+
}
|
|
72
|
+
updateShaders(shaders) {
|
|
73
|
+
if (this.state.gpuAggregation) {
|
|
74
|
+
this.state.gpuGridAggregator.updateShaders(shaders);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Methods that can be overriden by subclasses for customizations
|
|
78
|
+
updateAggregationState(opts) {
|
|
79
|
+
// Sublayers should implement this method.
|
|
80
|
+
log.assert(false);
|
|
81
|
+
}
|
|
82
|
+
allocateResources(numRow, numCol) {
|
|
83
|
+
if (this.state.numRow !== numRow || this.state.numCol !== numCol) {
|
|
84
|
+
const dataBytes = numCol * numRow * 4 * 4;
|
|
85
|
+
const { weights } = this.state;
|
|
86
|
+
for (const name in weights) {
|
|
87
|
+
const weight = weights[name];
|
|
88
|
+
if (weight.aggregationBuffer) {
|
|
89
|
+
weight.aggregationBuffer.delete();
|
|
90
|
+
}
|
|
91
|
+
weight.aggregationBuffer = this.context.device.createBuffer({
|
|
92
|
+
byteLength: dataBytes,
|
|
93
|
+
// @ts-expect-error legacy
|
|
94
|
+
accessor: {
|
|
95
|
+
size: 4,
|
|
96
|
+
type: 5126,
|
|
97
|
+
divisor: 1
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
updateResults({ aggregationData, maxMinData, maxData, minData }) {
|
|
104
|
+
const { count } = this.state.weights;
|
|
105
|
+
if (count) {
|
|
106
|
+
count.aggregationData = aggregationData;
|
|
107
|
+
count.maxMinData = maxMinData;
|
|
108
|
+
count.maxData = maxData;
|
|
109
|
+
count.minData = minData;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Private
|
|
113
|
+
_updateAggregation(opts) {
|
|
114
|
+
const { cpuGridAggregator, gpuGridAggregator, gridOffset, posOffset, translation = [0, 0], scaling = [0, 0, 0], boundingBox, projectPoints, gpuAggregation, numCol, numRow } = this.state;
|
|
115
|
+
const { props } = opts;
|
|
116
|
+
const { viewport } = this.context;
|
|
117
|
+
const attributes = this.getAttributes();
|
|
118
|
+
const vertexCount = this.getNumInstances();
|
|
119
|
+
if (!gpuAggregation) {
|
|
120
|
+
const result = cpuGridAggregator(props, {
|
|
121
|
+
gridOffset,
|
|
122
|
+
projectPoints,
|
|
123
|
+
attributes,
|
|
124
|
+
viewport,
|
|
125
|
+
posOffset,
|
|
126
|
+
boundingBox
|
|
127
|
+
});
|
|
128
|
+
this.setState({
|
|
129
|
+
layerData: result
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const { weights } = this.state;
|
|
134
|
+
gpuGridAggregator.run({
|
|
135
|
+
weights,
|
|
136
|
+
cellSize: [gridOffset.xOffset, gridOffset.yOffset],
|
|
137
|
+
numCol,
|
|
138
|
+
numRow,
|
|
139
|
+
translation,
|
|
140
|
+
scaling,
|
|
141
|
+
vertexCount,
|
|
142
|
+
projectPoints,
|
|
143
|
+
attributes,
|
|
144
|
+
moduleSettings: this.getModuleSettings()
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
_updateWeightBins() {
|
|
149
|
+
const { getValue } = this.state;
|
|
150
|
+
const sortedBins = new BinSorter(this.state.layerData.data || [], { getValue });
|
|
151
|
+
this.setState({ sortedBins });
|
|
152
|
+
}
|
|
153
|
+
_uploadAggregationResults() {
|
|
154
|
+
const { numCol, numRow } = this.state;
|
|
155
|
+
const { data } = this.state.layerData;
|
|
156
|
+
const { aggregatedBins, minValue, maxValue, totalCount } = this.state.sortedBins;
|
|
157
|
+
const ELEMENTCOUNT = 4;
|
|
158
|
+
const aggregationSize = numCol * numRow * ELEMENTCOUNT;
|
|
159
|
+
const aggregationData = new Float32Array(aggregationSize).fill(0);
|
|
160
|
+
for (const bin of aggregatedBins) {
|
|
161
|
+
const { lonIdx, latIdx } = data[bin.i];
|
|
162
|
+
const { value, counts } = bin;
|
|
163
|
+
const cellIndex = (lonIdx + latIdx * numCol) * ELEMENTCOUNT;
|
|
164
|
+
aggregationData[cellIndex] = value;
|
|
165
|
+
aggregationData[cellIndex + ELEMENTCOUNT - 1] = counts;
|
|
166
|
+
}
|
|
167
|
+
const maxMinData = new Float32Array([maxValue, 0, 0, minValue]);
|
|
168
|
+
const maxData = new Float32Array([maxValue, 0, 0, totalCount]);
|
|
169
|
+
const minData = new Float32Array([minValue, 0, 0, totalCount]);
|
|
170
|
+
this.updateResults({ aggregationData, maxMinData, maxData, minData });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CompositeLayer, CompositeLayerProps, Layer, UpdateParameters, DefaultProps } from '@deck.gl/core';
|
|
2
|
-
import { GPUGridLayerProps } from
|
|
3
|
-
import { CPUGridLayerProps } from
|
|
2
|
+
import { GPUGridLayerProps } from "../gpu-grid-layer/gpu-grid-layer.js";
|
|
3
|
+
import { CPUGridLayerProps } from "../cpu-grid-layer/cpu-grid-layer.js";
|
|
4
4
|
/** All properties supported by GridLayer. */
|
|
5
5
|
export type GridLayerProps<DataT = unknown> = _GridLayerProps<DataT> & CompositeLayerProps;
|
|
6
6
|
/** Properties added by GridLayer. */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-layer.d.ts","sourceRoot":"","sources":["../../src/grid-layer/grid-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,gBAAgB,EAChB,YAAY,EACb,MAAM,eAAe,CAAC;AAEvB,OAAqB,EAAC,iBAAiB,EAAC,4CAAyC;AACjF,OAAqB,EAAC,iBAAiB,EAAC,4CAAyC;AAQjF,6CAA6C;AAC7C,MAAM,MAAM,cAAc,CAAC,KAAK,GAAG,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAE3F,qCAAqC;AACrC,KAAK,eAAe,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK,CAAC,GACpD,iBAAiB,CAAC,KAAK,CAAC,GAAG;IACzB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEJ,gIAAgI;AAChI,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE,WAAW,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc,CAC7F,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC/C;IACC,MAAM,CAAC,SAAS,SAAe;IAC/B,MAAM,CAAC,YAAY,wCAAgB;IAEnC,KAAK,EAAG,cAAc,CAAC,OAAO,CAAC,GAAG;QAChC,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IAEF,eAAe;IAMf,WAAW,CAAC,EAAC,KAAK,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAQ3C,YAAY,IAAI,KAAK;IAoBrB,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;CA8B/C"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { CompositeLayer } from '@deck.gl/core';
|
|
2
|
+
import GPUGridAggregator from "../utils/gpu-grid-aggregation/gpu-grid-aggregator.js";
|
|
3
|
+
import GPUGridLayer from "../gpu-grid-layer/gpu-grid-layer.js";
|
|
4
|
+
import CPUGridLayer from "../cpu-grid-layer/cpu-grid-layer.js";
|
|
5
|
+
const defaultProps = {
|
|
6
|
+
...GPUGridLayer.defaultProps,
|
|
7
|
+
...CPUGridLayer.defaultProps,
|
|
8
|
+
gpuAggregation: false
|
|
9
|
+
};
|
|
10
|
+
/** Aggregate data into a grid-based heatmap. The color and height of a cell are determined based on the objects it contains. */
|
|
11
|
+
export default class GridLayer extends CompositeLayer {
|
|
12
|
+
static { this.layerName = 'GridLayer'; }
|
|
13
|
+
static { this.defaultProps = defaultProps; }
|
|
14
|
+
initializeState() {
|
|
15
|
+
this.state = {
|
|
16
|
+
useGPUAggregation: false // TODO(v9): Re-enable GPU aggregation.
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
updateState({ props }) {
|
|
20
|
+
this.setState({
|
|
21
|
+
// TODO(v9): Re-enable GPU aggregation.
|
|
22
|
+
// useGPUAggregation: this.canUseGPUAggregation(props)
|
|
23
|
+
useGPUAggregation: false
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
renderLayers() {
|
|
27
|
+
const { data, updateTriggers } = this.props;
|
|
28
|
+
const id = this.state.useGPUAggregation ? 'GPU' : 'CPU';
|
|
29
|
+
const LayerType = this.state.useGPUAggregation
|
|
30
|
+
? this.getSubLayerClass('GPU', GPUGridLayer)
|
|
31
|
+
: this.getSubLayerClass('CPU', CPUGridLayer);
|
|
32
|
+
return new LayerType(this.props, this.getSubLayerProps({
|
|
33
|
+
id,
|
|
34
|
+
updateTriggers
|
|
35
|
+
}), {
|
|
36
|
+
data
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
// Private methods
|
|
40
|
+
canUseGPUAggregation(props) {
|
|
41
|
+
const { gpuAggregation, lowerPercentile, upperPercentile, getColorValue, getElevationValue, colorScaleType } = props;
|
|
42
|
+
if (!gpuAggregation) {
|
|
43
|
+
// cpu aggregation is requested
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (!GPUGridAggregator.isSupported(this.context.device)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
if (lowerPercentile !== 0 || upperPercentile !== 100) {
|
|
50
|
+
// percentile calculations requires sorting not supported on GPU
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (getColorValue !== null || getElevationValue !== null) {
|
|
54
|
+
// accessor for custom color or elevation calculation is specified
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
if (colorScaleType === 'quantile' || colorScaleType === 'ordinal') {
|
|
58
|
+
// quantile and ordinal scales are not supported on GPU
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
import { Device } from '@luma.gl/core';
|
|
2
|
-
import { GL } from '@luma.gl/constants';
|
|
3
1
|
export declare function getBounds(points: number[][]): number[];
|
|
4
2
|
export declare function boundsContain(currentBounds: number[], targetBounds: number[]): boolean;
|
|
5
3
|
export declare function packVertices(points: number[][], dimensions?: number): Float32Array;
|
|
6
4
|
export declare function scaleToAspectRatio(boundingBox: number[], width: number, height: number): number[];
|
|
7
5
|
export declare function getTextureCoordinates(point: number[], bounds: number[]): number[];
|
|
8
|
-
export declare function getTextureParams({ device, floatTargetSupport }: {
|
|
9
|
-
device: Device;
|
|
10
|
-
floatTargetSupport?: boolean;
|
|
11
|
-
}): {
|
|
12
|
-
format: GL;
|
|
13
|
-
type: GL;
|
|
14
|
-
};
|
|
15
6
|
//# sourceMappingURL=heatmap-layer-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap-layer-utils.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAWtD;AAGD,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAUtF;AAKD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAE,MAAU,GAAG,YAAY,CAQrF;AAGD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA6BjG;AAGD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAGtE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export function getBounds(points) {
|
|
2
|
+
// Now build bounding box in world space (aligned to world coordiante system)
|
|
3
|
+
const x = points.map(p => p[0]);
|
|
4
|
+
const y = points.map(p => p[1]);
|
|
5
|
+
const xMin = Math.min.apply(null, x);
|
|
6
|
+
const xMax = Math.max.apply(null, x);
|
|
7
|
+
const yMin = Math.min.apply(null, y);
|
|
8
|
+
const yMax = Math.max.apply(null, y);
|
|
9
|
+
return [xMin, yMin, xMax, yMax];
|
|
10
|
+
}
|
|
11
|
+
// true if currentBounds contains targetBounds, false otherwise
|
|
12
|
+
export function boundsContain(currentBounds, targetBounds) {
|
|
13
|
+
if (targetBounds[0] >= currentBounds[0] &&
|
|
14
|
+
targetBounds[2] <= currentBounds[2] &&
|
|
15
|
+
targetBounds[1] >= currentBounds[1] &&
|
|
16
|
+
targetBounds[3] <= currentBounds[3]) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
const scratchArray = new Float32Array(12);
|
|
22
|
+
// For given rectangle bounds generates two triangles vertices that coverit completely
|
|
23
|
+
export function packVertices(points, dimensions = 2) {
|
|
24
|
+
let index = 0;
|
|
25
|
+
for (const point of points) {
|
|
26
|
+
for (let i = 0; i < dimensions; i++) {
|
|
27
|
+
scratchArray[index++] = point[i] || 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return scratchArray;
|
|
31
|
+
}
|
|
32
|
+
// Expands boundingBox:[xMin, yMin, xMax, yMax] to match aspect ratio of given width and height
|
|
33
|
+
export function scaleToAspectRatio(boundingBox, width, height) {
|
|
34
|
+
const [xMin, yMin, xMax, yMax] = boundingBox;
|
|
35
|
+
const currentWidth = xMax - xMin;
|
|
36
|
+
const currentHeight = yMax - yMin;
|
|
37
|
+
let newWidth = currentWidth;
|
|
38
|
+
let newHeight = currentHeight;
|
|
39
|
+
if (currentWidth / currentHeight < width / height) {
|
|
40
|
+
// expand bounding box width
|
|
41
|
+
newWidth = (width / height) * currentHeight;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
newHeight = (height / width) * currentWidth;
|
|
45
|
+
}
|
|
46
|
+
if (newWidth < width) {
|
|
47
|
+
newWidth = width;
|
|
48
|
+
newHeight = height;
|
|
49
|
+
}
|
|
50
|
+
const xCenter = (xMax + xMin) / 2;
|
|
51
|
+
const yCenter = (yMax + yMin) / 2;
|
|
52
|
+
return [
|
|
53
|
+
xCenter - newWidth / 2,
|
|
54
|
+
yCenter - newHeight / 2,
|
|
55
|
+
xCenter + newWidth / 2,
|
|
56
|
+
yCenter + newHeight / 2
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
// Get texture coordiante of point inside a bounding box
|
|
60
|
+
export function getTextureCoordinates(point, bounds) {
|
|
61
|
+
const [xMin, yMin, xMax, yMax] = bounds;
|
|
62
|
+
return [(point[0] - xMin) / (xMax - xMin), (point[1] - yMin) / (yMax - yMin)];
|
|
63
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Buffer, Texture, TextureFormat } from '@luma.gl/core';
|
|
2
|
-
import { GL } from '@luma.gl/constants';
|
|
3
2
|
import { TextureTransform } from '@luma.gl/engine';
|
|
4
3
|
import { Accessor, AccessorFunction, AttributeManager, ChangeFlags, Color, Layer, LayerContext, LayersList, Position, UpdateParameters, DefaultProps } from '@deck.gl/core';
|
|
5
|
-
import AggregationLayer, { AggregationLayerProps } from
|
|
4
|
+
import AggregationLayer, { AggregationLayerProps } from "../aggregation-layer.js";
|
|
6
5
|
export type HeatmapLayerProps<DataT = unknown> = _HeatmapLayerProps<DataT> & AggregationLayerProps<DataT>;
|
|
7
6
|
type _HeatmapLayerProps<DataT> = {
|
|
8
7
|
/**
|
|
@@ -75,7 +74,6 @@ export default class HeatmapLayer<DataT = any, ExtraPropsT extends {} = {}> exte
|
|
|
75
74
|
static layerName: string;
|
|
76
75
|
static defaultProps: DefaultProps<HeatmapLayerProps<unknown>>;
|
|
77
76
|
state: AggregationLayer<DataT>['state'] & {
|
|
78
|
-
supported: boolean;
|
|
79
77
|
colorDomain?: number[];
|
|
80
78
|
isWeightMapDirty?: boolean;
|
|
81
79
|
weightsTexture?: Texture;
|
|
@@ -91,7 +89,6 @@ export default class HeatmapLayer<DataT = any, ExtraPropsT extends {} = {}> exte
|
|
|
91
89
|
maxWeightTransform?: TextureTransform;
|
|
92
90
|
textureSize: number;
|
|
93
91
|
format: TextureFormat;
|
|
94
|
-
type: GL;
|
|
95
92
|
weightsScale: number;
|
|
96
93
|
visibleWorldBounds: number[];
|
|
97
94
|
viewportCorners: number[][];
|
|
@@ -110,8 +107,10 @@ export default class HeatmapLayer<DataT = any, ExtraPropsT extends {} = {}> exte
|
|
|
110
107
|
_createTextures(): void;
|
|
111
108
|
_setupAttributes(): void;
|
|
112
109
|
_setupTextureParams(): void;
|
|
113
|
-
|
|
114
|
-
|
|
110
|
+
_createWeightsTransform(shaders: {
|
|
111
|
+
vs: string;
|
|
112
|
+
fs?: string;
|
|
113
|
+
}): void;
|
|
115
114
|
_setupResources(): void;
|
|
116
115
|
updateShaders(shaderOptions: any): void;
|
|
117
116
|
_updateMaxWeightValue(): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap-layer.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer.ts"],"names":[],"mappings":"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"}
|