@deck.gl/aggregation-layers 9.0.0-beta.1 → 9.0.0-beta.11
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/{typed → dist}/aggregation-layer.d.ts +2 -2
- package/dist/aggregation-layer.d.ts.map +1 -0
- 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 +1442 -10868
- 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 +4328 -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 +164 -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/aggregation-layer.ts +3 -2
- 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 +91 -127
- 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 +3 -6
- package/src/screen-grid-layer/screen-grid-layer.ts +1 -11
- package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts +16 -30
- 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/aggregation-layer.d.ts.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}/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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/grid-aggregation-layer.ts"],"names":["GL","log","AggregationLayer","GPUGridAggregator","BinSorter","pointToDensityGridDataCPU","GridAggregationLayer","state","initializeAggregationLayer","dimensions","setState","layerData","gpuGridAggregator","context","device","id","cpuGridAggregator","updateState","opts","updateAggregationState","aggregationDataDirty","aggregationWeightsDirty","gpuAggregation","getNumInstances","aggregationDirty","_updateAggregation","_updateWeightBins","_uploadAggregationResults","finalizeState","count","weights","aggregationBuffer","delete","updateShaders","shaders","assert","allocateResources","numRow","numCol","dataBytes","name","weight","createBuffer","byteLength","accessor","size","type","divisor","updateResults","aggregationData","maxMinData","maxData","minData","gridOffset","posOffset","translation","scaling","boundingBox","projectPoints","props","viewport","attributes","getAttributes","vertexCount","result","run","cellSize","xOffset","yOffset","moduleSettings","getModuleSettings","getValue","sortedBins","data","aggregatedBins","minValue","maxValue","totalCount","ELEMENTCOUNT","aggregationSize","Float32Array","fill","bin","lonIdx","latIdx","i","value","counts","cellIndex","layerName"],"mappings":"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","sourcesContent":["// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {GL} from '@luma.gl/constants';\nimport {LayerContext, log, UpdateParameters, Accessor} from '@deck.gl/core';\nimport AggregationLayer, {AggregationLayerProps} from './aggregation-layer';\nimport GPUGridAggregator from './utils/gpu-grid-aggregation/gpu-grid-aggregator';\nimport BinSorter from './utils/bin-sorter';\nimport {pointToDensityGridDataCPU} from './cpu-grid-layer/grid-aggregator';\nimport type {Buffer} from '@luma.gl/core';\n\nexport type GridAggregationLayerProps<DataT> = AggregationLayerProps<DataT>;\n\nexport default abstract class GridAggregationLayer<\n DataT,\n ExtraPropsT extends {} = {}\n> extends AggregationLayer<DataT, ExtraPropsT> {\n static layerName = 'GridAggregationLayer';\n\n state!: AggregationLayer<DataT>['state'] & {\n aggregationDataDirty?: boolean;\n aggregationWeightsDirty?: boolean;\n aggregationDirty?: boolean;\n gpuAggregation?: any;\n getValue?: () => any;\n sortedBins?: BinSorter;\n weights: {\n [key: string]: {\n aggregationBuffer?: Buffer;\n maxMinBuffer?: Buffer;\n aggregationData: Float32Array | null;\n maxMinData: Float32Array;\n maxData: Float32Array;\n minData: Float32Array;\n getWeight: Accessor<DataT, number>;\n operation: number;\n };\n };\n cpuGridAggregator?: Function;\n gpuGridAggregator?: GPUGridAggregator;\n layerData: any;\n numRow: number;\n numCol: number;\n gridOffset: {xOffset: number; yOffset: number};\n posOffset: number[];\n gridOrigin: number[];\n translation: number[];\n scaling: number[];\n boundingBox: {xMin: number; yMin: number; xMax: number; yMax: number};\n projectPoints?: (p: [number, number]) => [number, number];\n };\n\n initializeAggregationLayer({dimensions}) {\n super.initializeAggregationLayer(dimensions);\n this.setState({\n // CPU aggregation results\n layerData: {},\n gpuGridAggregator: new GPUGridAggregator(this.context.device, {\n id: `${this.id}-gpu-aggregator`\n }),\n cpuGridAggregator: pointToDensityGridDataCPU\n });\n }\n\n updateState(opts: UpdateParameters<this>) {\n // get current attributes\n super.updateState(opts);\n\n this.updateAggregationState(opts);\n\n const {aggregationDataDirty, aggregationWeightsDirty, gpuAggregation} = this.state;\n if (this.getNumInstances() <= 0) {\n return;\n }\n let aggregationDirty = false;\n // CPU aggregation is two steps\n // 1. Create bins (based on cellSize and position) 2. Aggregate weights for each bin\n // For GPU aggregation both above steps are combined into one step\n\n // step-1\n if (aggregationDataDirty || (gpuAggregation && aggregationWeightsDirty)) {\n this._updateAggregation(opts);\n aggregationDirty = true;\n }\n // step-2 (Applicalbe for CPU aggregation only)\n if (!gpuAggregation && (aggregationDataDirty || aggregationWeightsDirty)) {\n this._updateWeightBins();\n this._uploadAggregationResults();\n aggregationDirty = true;\n }\n\n this.setState({aggregationDirty});\n }\n\n finalizeState(context: LayerContext) {\n const {count} = this.state.weights;\n if (count && count.aggregationBuffer) {\n count.aggregationBuffer.delete();\n }\n this.state.gpuGridAggregator?.delete();\n super.finalizeState(context);\n }\n\n updateShaders(shaders: any): void {\n if (this.state.gpuAggregation) {\n this.state.gpuGridAggregator!.updateShaders(shaders);\n }\n }\n\n // Methods that can be overriden by subclasses for customizations\n\n updateAggregationState(opts: UpdateParameters<this>) {\n // Sublayers should implement this method.\n log.assert(false);\n }\n\n allocateResources(numRow, numCol) {\n if (this.state.numRow !== numRow || this.state.numCol !== numCol) {\n const dataBytes = numCol * numRow * 4 * 4;\n const {weights} = this.state;\n for (const name in weights) {\n const weight = weights[name];\n if (weight.aggregationBuffer) {\n weight.aggregationBuffer.delete();\n }\n weight.aggregationBuffer = this.context.device.createBuffer({\n byteLength: dataBytes,\n // @ts-expect-error legacy\n accessor: {\n size: 4,\n type: GL.FLOAT,\n divisor: 1\n }\n });\n }\n }\n }\n\n updateResults({aggregationData, maxMinData, maxData, minData}) {\n const {count} = this.state.weights;\n if (count) {\n count.aggregationData = aggregationData;\n count.maxMinData = maxMinData;\n count.maxData = maxData;\n count.minData = minData;\n }\n }\n\n // Private\n\n _updateAggregation(opts) {\n const {\n cpuGridAggregator,\n gpuGridAggregator,\n gridOffset,\n posOffset,\n translation = [0, 0],\n scaling = [0, 0, 0],\n boundingBox,\n projectPoints,\n gpuAggregation,\n numCol,\n numRow\n } = this.state;\n const {props} = opts;\n const {viewport} = this.context;\n const attributes = this.getAttributes();\n const vertexCount = this.getNumInstances();\n\n if (!gpuAggregation) {\n const result = cpuGridAggregator!(props, {\n gridOffset,\n projectPoints,\n attributes,\n viewport,\n posOffset,\n boundingBox\n });\n this.setState({\n layerData: result\n });\n } else {\n const {weights} = this.state;\n gpuGridAggregator!.run({\n weights,\n cellSize: [gridOffset.xOffset, gridOffset.yOffset],\n numCol,\n numRow,\n translation,\n scaling,\n vertexCount,\n projectPoints,\n attributes,\n moduleSettings: this.getModuleSettings()\n });\n }\n }\n\n _updateWeightBins() {\n const {getValue} = this.state;\n\n const sortedBins = new BinSorter(this.state.layerData.data || [], {getValue});\n this.setState({sortedBins});\n }\n\n _uploadAggregationResults(): void {\n const {numCol, numRow} = this.state;\n const {data} = this.state.layerData;\n const {aggregatedBins, minValue, maxValue, totalCount} = this.state.sortedBins!;\n\n const ELEMENTCOUNT = 4;\n const aggregationSize = numCol * numRow * ELEMENTCOUNT;\n const aggregationData = new Float32Array(aggregationSize).fill(0);\n for (const bin of aggregatedBins) {\n const {lonIdx, latIdx} = data[bin.i];\n const {value, counts} = bin;\n const cellIndex = (lonIdx + latIdx * numCol) * ELEMENTCOUNT;\n aggregationData[cellIndex] = value;\n aggregationData[cellIndex + ELEMENTCOUNT - 1] = counts;\n }\n const maxMinData = new Float32Array([maxValue, 0, 0, minValue]);\n const maxData = new Float32Array([maxValue, 0, 0, totalCount]);\n const minData = new Float32Array([minValue, 0, 0, totalCount]);\n this.updateResults({aggregationData, maxMinData, maxData, minData});\n }\n}\n"],"file":"grid-aggregation-layer.js"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { CompositeLayer } from '@deck.gl/core';
|
|
2
|
-
import GPUGridAggregator from '../utils/gpu-grid-aggregation/gpu-grid-aggregator';
|
|
3
|
-
import GPUGridLayer from '../gpu-grid-layer/gpu-grid-layer';
|
|
4
|
-
import CPUGridLayer from '../cpu-grid-layer/cpu-grid-layer';
|
|
5
|
-
const defaultProps = { ...GPUGridLayer.defaultProps,
|
|
6
|
-
...CPUGridLayer.defaultProps,
|
|
7
|
-
gpuAggregation: false
|
|
8
|
-
};
|
|
9
|
-
export default class GridLayer extends CompositeLayer {
|
|
10
|
-
constructor(...args) {
|
|
11
|
-
super(...args);
|
|
12
|
-
this.state = void 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
initializeState() {
|
|
16
|
-
this.state = {
|
|
17
|
-
useGPUAggregation: false
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
updateState({
|
|
22
|
-
props
|
|
23
|
-
}) {
|
|
24
|
-
this.setState({
|
|
25
|
-
useGPUAggregation: false
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
renderLayers() {
|
|
30
|
-
const {
|
|
31
|
-
data,
|
|
32
|
-
updateTriggers
|
|
33
|
-
} = this.props;
|
|
34
|
-
const id = this.state.useGPUAggregation ? 'GPU' : 'CPU';
|
|
35
|
-
const LayerType = this.state.useGPUAggregation ? this.getSubLayerClass('GPU', GPUGridLayer) : this.getSubLayerClass('CPU', CPUGridLayer);
|
|
36
|
-
return new LayerType(this.props, this.getSubLayerProps({
|
|
37
|
-
id,
|
|
38
|
-
updateTriggers
|
|
39
|
-
}), {
|
|
40
|
-
data
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
canUseGPUAggregation(props) {
|
|
45
|
-
const {
|
|
46
|
-
gpuAggregation,
|
|
47
|
-
lowerPercentile,
|
|
48
|
-
upperPercentile,
|
|
49
|
-
getColorValue,
|
|
50
|
-
getElevationValue,
|
|
51
|
-
colorScaleType
|
|
52
|
-
} = props;
|
|
53
|
-
|
|
54
|
-
if (!gpuAggregation) {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (!GPUGridAggregator.isSupported(this.context.device)) {
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (lowerPercentile !== 0 || upperPercentile !== 100) {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (getColorValue !== null || getElevationValue !== null) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (colorScaleType === 'quantile' || colorScaleType === 'ordinal') {
|
|
71
|
-
return false;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
GridLayer.layerName = 'GridLayer';
|
|
79
|
-
GridLayer.defaultProps = defaultProps;
|
|
80
|
-
//# sourceMappingURL=grid-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/grid-layer/grid-layer.ts"],"names":["CompositeLayer","GPUGridAggregator","GPUGridLayer","CPUGridLayer","defaultProps","gpuAggregation","GridLayer","state","initializeState","useGPUAggregation","updateState","props","setState","renderLayers","data","updateTriggers","id","LayerType","getSubLayerClass","getSubLayerProps","canUseGPUAggregation","lowerPercentile","upperPercentile","getColorValue","getElevationValue","colorScaleType","isSupported","context","device","layerName"],"mappings":"AAAA,SACEA,cADF,QAMO,eANP;AAOA,OAAOC,iBAAP,MAA8B,mDAA9B;AACA,OAAOC,YAAP,MAA8C,kCAA9C;AACA,OAAOC,YAAP,MAA8C,kCAA9C;AAEA,MAAMC,YAA0C,GAAG,EACjD,GAAGF,YAAY,CAACE,YADiC;AAEjD,KAAGD,YAAY,CAACC,YAFiC;AAGjDC,EAAAA,cAAc,EAAE;AAHiC,CAAnD;AA0BA,eAAe,MAAMC,SAAN,SAAkEN,cAAlE,CAEb;AAAA;AAAA;AAAA,SAIAO,KAJA;AAAA;;AAQAC,EAAAA,eAAe,GAAG;AAChB,SAAKD,KAAL,GAAa;AACXE,MAAAA,iBAAiB,EAAE;AADR,KAAb;AAGD;;AAEDC,EAAAA,WAAW,CAAC;AAACC,IAAAA;AAAD,GAAD,EAAkC;AAC3C,SAAKC,QAAL,CAAc;AAGZH,MAAAA,iBAAiB,EAAE;AAHP,KAAd;AAKD;;AAEDI,EAAAA,YAAY,GAAU;AACpB,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA;AAAP,QAAyB,KAAKJ,KAApC;AACA,UAAMK,EAAE,GAAG,KAAKT,KAAL,CAAWE,iBAAX,GAA+B,KAA/B,GAAuC,KAAlD;AACA,UAAMQ,SAAS,GAAG,KAAKV,KAAL,CAAWE,iBAAX,GACd,KAAKS,gBAAL,CAAsB,KAAtB,EAA6BhB,YAA7B,CADc,GAEd,KAAKgB,gBAAL,CAAsB,KAAtB,EAA6Bf,YAA7B,CAFJ;AAGA,WAAO,IAAIc,SAAJ,CACL,KAAKN,KADA,EAEL,KAAKQ,gBAAL,CAAsB;AACpBH,MAAAA,EADoB;AAEpBD,MAAAA;AAFoB,KAAtB,CAFK,EAML;AACED,MAAAA;AADF,KANK,CAAP;AAUD;;AAIDM,EAAAA,oBAAoB,CAACT,KAAD,EAA4B;AAC9C,UAAM;AACJN,MAAAA,cADI;AAEJgB,MAAAA,eAFI;AAGJC,MAAAA,eAHI;AAIJC,MAAAA,aAJI;AAKJC,MAAAA,iBALI;AAMJC,MAAAA;AANI,QAOFd,KAPJ;;AAQA,QAAI,CAACN,cAAL,EAAqB;AAEnB,aAAO,KAAP;AACD;;AACD,QAAI,CAACJ,iBAAiB,CAACyB,WAAlB,CAA8B,KAAKC,OAAL,CAAaC,MAA3C,CAAL,EAAyD;AACvD,aAAO,KAAP;AACD;;AACD,QAAIP,eAAe,KAAK,CAApB,IAAyBC,eAAe,KAAK,GAAjD,EAAsD;AAEpD,aAAO,KAAP;AACD;;AACD,QAAIC,aAAa,KAAK,IAAlB,IAA0BC,iBAAiB,KAAK,IAApD,EAA0D;AAExD,aAAO,KAAP;AACD;;AACD,QAAIC,cAAc,KAAK,UAAnB,IAAiCA,cAAc,KAAK,SAAxD,EAAmE;AAEjE,aAAO,KAAP;AACD;;AACD,WAAO,IAAP;AACD;;AAvED;AAFmBnB,S,CAGZuB,S,GAAY,W;AAHAvB,S,CAIZF,Y,GAAeA,Y","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport GPUGridAggregator from '../utils/gpu-grid-aggregation/gpu-grid-aggregator';\nimport GPUGridLayer, {GPUGridLayerProps} from '../gpu-grid-layer/gpu-grid-layer';\nimport CPUGridLayer, {CPUGridLayerProps} from '../cpu-grid-layer/cpu-grid-layer';\n\nconst defaultProps: DefaultProps<GridLayerProps> = {\n ...GPUGridLayer.defaultProps,\n ...CPUGridLayer.defaultProps,\n gpuAggregation: false\n};\n\n/** All properties supported by GridLayer. */\nexport type GridLayerProps<DataT = unknown> = _GridLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by GridLayer. */\ntype _GridLayerProps<DataT> = CPUGridLayerProps<DataT> &\n GPUGridLayerProps<DataT> & {\n /**\n * Whether the aggregation should be performed in high-precision 64-bit mode.\n * @default false\n */\n fp64?: boolean;\n\n /**\n * When set to true, aggregation is performed on GPU, provided other conditions are met.\n * @default false\n */\n gpuAggregation?: boolean;\n };\n\n/** Aggregate data into a grid-based heatmap. The color and height of a cell are determined based on the objects it contains. */\nexport default class GridLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_GridLayerProps<DataT>>\n> {\n static layerName = 'GridLayer';\n static defaultProps = defaultProps;\n\n state!: CompositeLayer['state'] & {\n useGPUAggregation: boolean;\n };\n\n initializeState() {\n this.state = {\n useGPUAggregation: false // TODO(v9): Re-enable GPU aggregation.\n };\n }\n\n updateState({props}: UpdateParameters<this>) {\n this.setState({\n // TODO(v9): Re-enable GPU aggregation.\n // useGPUAggregation: this.canUseGPUAggregation(props)\n useGPUAggregation: false\n });\n }\n\n renderLayers(): Layer {\n const {data, updateTriggers} = this.props;\n const id = this.state.useGPUAggregation ? 'GPU' : 'CPU';\n const LayerType = this.state.useGPUAggregation\n ? this.getSubLayerClass('GPU', GPUGridLayer)\n : this.getSubLayerClass('CPU', CPUGridLayer);\n return new LayerType(\n this.props,\n this.getSubLayerProps({\n id,\n updateTriggers\n }),\n {\n data\n }\n );\n }\n\n // Private methods\n\n canUseGPUAggregation(props: GridLayer['props']) {\n const {\n gpuAggregation,\n lowerPercentile,\n upperPercentile,\n getColorValue,\n getElevationValue,\n colorScaleType\n } = props;\n if (!gpuAggregation) {\n // cpu aggregation is requested\n return false;\n }\n if (!GPUGridAggregator.isSupported(this.context.device)) {\n return false;\n }\n if (lowerPercentile !== 0 || upperPercentile !== 100) {\n // percentile calculations requires sorting not supported on GPU\n return false;\n }\n if (getColorValue !== null || getElevationValue !== null) {\n // accessor for custom color or elevation calculation is specified\n return false;\n }\n if (colorScaleType === 'quantile' || colorScaleType === 'ordinal') {\n // quantile and ordinal scales are not supported on GPU\n return false;\n }\n return true;\n }\n}\n"],"file":"grid-layer.js"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { GL } from '@luma.gl/constants';
|
|
2
|
-
export function getBounds(points) {
|
|
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
|
-
export function boundsContain(currentBounds, targetBounds) {
|
|
12
|
-
if (targetBounds[0] >= currentBounds[0] && targetBounds[2] <= currentBounds[2] && targetBounds[1] >= currentBounds[1] && targetBounds[3] <= currentBounds[3]) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
const scratchArray = new Float32Array(12);
|
|
19
|
-
export function packVertices(points, dimensions = 2) {
|
|
20
|
-
let index = 0;
|
|
21
|
-
|
|
22
|
-
for (const point of points) {
|
|
23
|
-
for (let i = 0; i < dimensions; i++) {
|
|
24
|
-
scratchArray[index++] = point[i] || 0;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return scratchArray;
|
|
29
|
-
}
|
|
30
|
-
export function scaleToAspectRatio(boundingBox, width, height) {
|
|
31
|
-
const [xMin, yMin, xMax, yMax] = boundingBox;
|
|
32
|
-
const currentWidth = xMax - xMin;
|
|
33
|
-
const currentHeight = yMax - yMin;
|
|
34
|
-
let newWidth = currentWidth;
|
|
35
|
-
let newHeight = currentHeight;
|
|
36
|
-
|
|
37
|
-
if (currentWidth / currentHeight < width / height) {
|
|
38
|
-
newWidth = width / height * currentHeight;
|
|
39
|
-
} else {
|
|
40
|
-
newHeight = height / width * currentWidth;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (newWidth < width) {
|
|
44
|
-
newWidth = width;
|
|
45
|
-
newHeight = height;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const xCenter = (xMax + xMin) / 2;
|
|
49
|
-
const yCenter = (yMax + yMin) / 2;
|
|
50
|
-
return [xCenter - newWidth / 2, yCenter - newHeight / 2, xCenter + newWidth / 2, yCenter + newHeight / 2];
|
|
51
|
-
}
|
|
52
|
-
export function getTextureCoordinates(point, bounds) {
|
|
53
|
-
const [xMin, yMin, xMax, yMax] = bounds;
|
|
54
|
-
return [(point[0] - xMin) / (xMax - xMin), (point[1] - yMin) / (yMax - yMin)];
|
|
55
|
-
}
|
|
56
|
-
export function getTextureParams({
|
|
57
|
-
device,
|
|
58
|
-
floatTargetSupport
|
|
59
|
-
}) {
|
|
60
|
-
return floatTargetSupport ? {
|
|
61
|
-
format: device.info.type === 'webgl2' ? 34836 : 6408,
|
|
62
|
-
type: 5126
|
|
63
|
-
} : {
|
|
64
|
-
format: 6408,
|
|
65
|
-
type: 5121
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=heatmap-layer-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/heatmap-layer/heatmap-layer-utils.ts"],"names":["GL","getBounds","points","x","map","p","y","xMin","Math","min","apply","xMax","max","yMin","yMax","boundsContain","currentBounds","targetBounds","scratchArray","Float32Array","packVertices","dimensions","index","point","i","scaleToAspectRatio","boundingBox","width","height","currentWidth","currentHeight","newWidth","newHeight","xCenter","yCenter","getTextureCoordinates","bounds","getTextureParams","device","floatTargetSupport","format","info","type"],"mappings":"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","sourcesContent":["import {Device} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\n\nexport function getBounds(points: number[][]): number[] {\n // Now build bounding box in world space (aligned to world coordiante system)\n const x = points.map(p => p[0]);\n const y = points.map(p => p[1]);\n\n const xMin = Math.min.apply(null, x);\n const xMax = Math.max.apply(null, x);\n const yMin = Math.min.apply(null, y);\n const yMax = Math.max.apply(null, y);\n\n return [xMin, yMin, xMax, yMax];\n}\n\n// true if currentBounds contains targetBounds, false otherwise\nexport function boundsContain(currentBounds: number[], targetBounds: number[]): boolean {\n if (\n targetBounds[0] >= currentBounds[0] &&\n targetBounds[2] <= currentBounds[2] &&\n targetBounds[1] >= currentBounds[1] &&\n targetBounds[3] <= currentBounds[3]\n ) {\n return true;\n }\n return false;\n}\n\nconst scratchArray = new Float32Array(12);\n\n// For given rectangle bounds generates two triangles vertices that coverit completely\nexport function packVertices(points: number[][], dimensions: number = 2): Float32Array {\n let index = 0;\n for (const point of points) {\n for (let i = 0; i < dimensions; i++) {\n scratchArray[index++] = point[i] || 0;\n }\n }\n return scratchArray;\n}\n\n// Expands boundingBox:[xMin, yMin, xMax, yMax] to match aspect ratio of given width and height\nexport function scaleToAspectRatio(boundingBox: number[], width: number, height: number): number[] {\n const [xMin, yMin, xMax, yMax] = boundingBox;\n\n const currentWidth = xMax - xMin;\n const currentHeight = yMax - yMin;\n\n let newWidth = currentWidth;\n let newHeight = currentHeight;\n if (currentWidth / currentHeight < width / height) {\n // expand bounding box width\n newWidth = (width / height) * currentHeight;\n } else {\n newHeight = (height / width) * currentWidth;\n }\n\n if (newWidth < width) {\n newWidth = width;\n newHeight = height;\n }\n\n const xCenter = (xMax + xMin) / 2;\n const yCenter = (yMax + yMin) / 2;\n\n return [\n xCenter - newWidth / 2,\n yCenter - newHeight / 2,\n xCenter + newWidth / 2,\n yCenter + newHeight / 2\n ];\n}\n\n// Get texture coordiante of point inside a bounding box\nexport function getTextureCoordinates(point: number[], bounds: number[]) {\n const [xMin, yMin, xMax, yMax] = bounds;\n return [(point[0] - xMin) / (xMax - xMin), (point[1] - yMin) / (yMax - yMin)];\n}\n\n// Returns format and type for creating texture objects\nexport function getTextureParams({\n device,\n floatTargetSupport\n}: {\n device: Device;\n floatTargetSupport?: boolean;\n}) {\n return floatTargetSupport\n ? {\n // format: should be RGBA32F on WebGL2 (float textures), RGBA in WebGL1 for float or non float textures\n format: device.info.type === 'webgl2' ? GL.RGBA32F : GL.RGBA,\n type: GL.FLOAT\n }\n : {\n format: GL.RGBA,\n type: GL.UNSIGNED_BYTE\n };\n}\n"],"file":"heatmap-layer-utils.js"}
|