@deck.gl/aggregation-layers 8.8.0-alpha.6 → 8.8.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.
Files changed (229) hide show
  1. package/dist/dist.dev.js +757 -645
  2. package/dist/es5/aggregation-layer.js +19 -7
  3. package/dist/es5/aggregation-layer.js.map +1 -1
  4. package/dist/es5/contour-layer/contour-layer.js +5 -5
  5. package/dist/es5/contour-layer/contour-layer.js.map +1 -1
  6. package/dist/es5/contour-layer/contour-utils.js +1 -1
  7. package/dist/es5/contour-layer/contour-utils.js.map +1 -1
  8. package/dist/es5/contour-layer/marching-squares-codes.js.map +1 -1
  9. package/dist/es5/contour-layer/marching-squares.js.map +1 -1
  10. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js +5 -3
  11. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js.map +1 -1
  12. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +1 -1
  13. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js +8 -8
  14. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js.map +1 -1
  15. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js +12 -12
  16. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js.map +1 -1
  17. package/dist/es5/grid-aggregation-layer.js +25 -12
  18. package/dist/es5/grid-aggregation-layer.js.map +1 -1
  19. package/dist/es5/grid-layer/grid-layer.js +18 -9
  20. package/dist/es5/grid-layer/grid-layer.js.map +1 -1
  21. package/dist/es5/heatmap-layer/heatmap-layer-utils.js.map +1 -1
  22. package/dist/es5/heatmap-layer/heatmap-layer.js +17 -6
  23. package/dist/es5/heatmap-layer/heatmap-layer.js.map +1 -1
  24. package/dist/es5/heatmap-layer/max-vs.glsl.js +1 -1
  25. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js +1 -1
  26. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js +1 -1
  27. package/dist/es5/heatmap-layer/triangle-layer.js +7 -7
  28. package/dist/es5/heatmap-layer/triangle-layer.js.map +1 -1
  29. package/dist/es5/heatmap-layer/weights-fs.glsl.js +1 -1
  30. package/dist/es5/heatmap-layer/weights-vs.glsl.js +1 -1
  31. package/dist/es5/hexagon-layer/hexagon-layer.js +16 -5
  32. package/dist/es5/hexagon-layer/hexagon-layer.js.map +1 -1
  33. package/dist/es5/index.js.map +1 -1
  34. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js +26 -19
  35. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
  36. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js +1 -1
  37. package/dist/es5/screen-grid-layer/screen-grid-layer.js +18 -8
  38. package/dist/es5/screen-grid-layer/screen-grid-layer.js.map +1 -1
  39. package/dist/es5/types.js +2 -0
  40. package/dist/es5/types.js.map +1 -0
  41. package/dist/es5/utils/bin-sorter.js +9 -0
  42. package/dist/es5/utils/bin-sorter.js.map +1 -1
  43. package/dist/esm/aggregation-layer.js +12 -5
  44. package/dist/esm/aggregation-layer.js.map +1 -1
  45. package/dist/esm/contour-layer/contour-layer.js +6 -3
  46. package/dist/esm/contour-layer/contour-layer.js.map +1 -1
  47. package/dist/esm/contour-layer/contour-utils.js +1 -1
  48. package/dist/esm/contour-layer/contour-utils.js.map +1 -1
  49. package/dist/esm/contour-layer/marching-squares-codes.js.map +1 -1
  50. package/dist/esm/contour-layer/marching-squares.js.map +1 -1
  51. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js +6 -3
  52. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js.map +1 -1
  53. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +1 -1
  54. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +1 -1
  55. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +1 -1
  56. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js +8 -6
  57. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js.map +1 -1
  58. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js +11 -9
  59. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js.map +1 -1
  60. package/dist/esm/grid-aggregation-layer.js +13 -5
  61. package/dist/esm/grid-aggregation-layer.js.map +1 -1
  62. package/dist/esm/grid-layer/grid-layer.js +15 -8
  63. package/dist/esm/grid-layer/grid-layer.js.map +1 -1
  64. package/dist/esm/heatmap-layer/heatmap-layer-utils.js.map +1 -1
  65. package/dist/esm/heatmap-layer/heatmap-layer.js +22 -13
  66. package/dist/esm/heatmap-layer/heatmap-layer.js.map +1 -1
  67. package/dist/esm/heatmap-layer/max-fs.glsl.js.map +1 -1
  68. package/dist/esm/heatmap-layer/max-vs.glsl.js +1 -1
  69. package/dist/esm/heatmap-layer/max-vs.glsl.js.map +1 -1
  70. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +1 -1
  71. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js.map +1 -1
  72. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +1 -1
  73. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js.map +1 -1
  74. package/dist/esm/heatmap-layer/triangle-layer.js +6 -5
  75. package/dist/esm/heatmap-layer/triangle-layer.js.map +1 -1
  76. package/dist/esm/heatmap-layer/weights-fs.glsl.js +1 -1
  77. package/dist/esm/heatmap-layer/weights-fs.glsl.js.map +1 -1
  78. package/dist/esm/heatmap-layer/weights-vs.glsl.js +1 -1
  79. package/dist/esm/heatmap-layer/weights-vs.glsl.js.map +1 -1
  80. package/dist/esm/hexagon-layer/hexagon-layer.js +11 -2
  81. package/dist/esm/hexagon-layer/hexagon-layer.js.map +1 -1
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js +16 -10
  84. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
  85. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +1 -1
  86. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js +1 -1
  87. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +1 -1
  88. package/dist/esm/screen-grid-layer/screen-grid-layer.js +15 -7
  89. package/dist/esm/screen-grid-layer/screen-grid-layer.js.map +1 -1
  90. package/dist/esm/types.js +2 -0
  91. package/dist/esm/types.js.map +1 -0
  92. package/dist/esm/utils/bin-sorter.js +16 -0
  93. package/dist/esm/utils/bin-sorter.js.map +1 -1
  94. package/dist.min.js +1 -1
  95. package/package.json +6 -4
  96. package/src/{aggregation-layer.js → aggregation-layer.ts} +32 -15
  97. package/src/contour-layer/{contour-layer.js → contour-layer.ts} +95 -15
  98. package/src/contour-layer/{contour-utils.js → contour-utils.ts} +11 -5
  99. package/src/contour-layer/{marching-squares-codes.js → marching-squares-codes.ts} +0 -0
  100. package/src/contour-layer/{marching-squares.js → marching-squares.ts} +6 -6
  101. package/src/cpu-grid-layer/cpu-grid-layer.ts +310 -0
  102. package/src/gpu-grid-layer/{gpu-grid-cell-layer-fragment.glsl.js → gpu-grid-cell-layer-fragment.glsl.ts} +0 -0
  103. package/src/gpu-grid-layer/{gpu-grid-cell-layer-vertex.glsl.js → gpu-grid-cell-layer-vertex.glsl.ts} +0 -0
  104. package/src/gpu-grid-layer/{gpu-grid-cell-layer.js → gpu-grid-cell-layer.ts} +22 -14
  105. package/src/gpu-grid-layer/{gpu-grid-layer.js → gpu-grid-layer.ts} +122 -17
  106. package/src/{grid-aggregation-layer.js → grid-aggregation-layer.ts} +25 -13
  107. package/src/grid-layer/{grid-layer.js → grid-layer.ts} +38 -13
  108. package/src/heatmap-layer/{heatmap-layer-utils.js → heatmap-layer-utils.ts} +5 -5
  109. package/src/heatmap-layer/{heatmap-layer.js → heatmap-layer.ts} +138 -29
  110. package/src/heatmap-layer/{max-fs.glsl.js → max-fs.glsl.ts} +0 -0
  111. package/src/heatmap-layer/{max-vs.glsl.js → max-vs.glsl.ts} +0 -0
  112. package/src/heatmap-layer/{triangle-layer-fragment.glsl.js → triangle-layer-fragment.glsl.ts} +0 -0
  113. package/src/heatmap-layer/{triangle-layer-vertex.glsl.js → triangle-layer-vertex.glsl.ts} +0 -0
  114. package/src/heatmap-layer/{triangle-layer.js → triangle-layer.ts} +20 -10
  115. package/src/heatmap-layer/{weights-fs.glsl.js → weights-fs.glsl.ts} +0 -0
  116. package/src/heatmap-layer/{weights-vs.glsl.js → weights-vs.glsl.ts} +0 -0
  117. package/src/hexagon-layer/{hexagon-layer.js → hexagon-layer.ts} +174 -9
  118. package/src/index.ts +9 -0
  119. package/src/screen-grid-layer/{screen-grid-cell-layer.js → screen-grid-cell-layer.ts} +31 -14
  120. package/src/screen-grid-layer/{screen-grid-layer-fragment.glsl.js → screen-grid-layer-fragment.glsl.ts} +0 -0
  121. package/src/screen-grid-layer/{screen-grid-layer-vertex.glsl.js → screen-grid-layer-vertex.glsl.ts} +0 -0
  122. package/src/screen-grid-layer/{screen-grid-layer.js → screen-grid-layer.ts} +117 -15
  123. package/src/types.ts +10 -0
  124. package/src/utils/{bin-sorter.js → bin-sorter.ts} +26 -11
  125. package/typed/aggregation-layer.d.ts +16 -11
  126. package/typed/aggregation-layer.d.ts.map +1 -1
  127. package/typed/aggregation-layer.js +151 -0
  128. package/typed/contour-layer/contour-layer.d.ts +92 -36
  129. package/typed/contour-layer/contour-layer.d.ts.map +1 -1
  130. package/typed/contour-layer/contour-layer.js +234 -0
  131. package/typed/contour-layer/contour-utils.d.ts +8 -9
  132. package/typed/contour-layer/contour-utils.d.ts.map +1 -1
  133. package/typed/contour-layer/contour-utils.js +64 -0
  134. package/typed/contour-layer/marching-squares-codes.d.ts +2 -2
  135. package/typed/contour-layer/marching-squares-codes.d.ts.map +1 -1
  136. package/typed/contour-layer/marching-squares-codes.js +337 -0
  137. package/typed/contour-layer/marching-squares.d.ts +6 -6
  138. package/typed/contour-layer/marching-squares.d.ts.map +1 -1
  139. package/typed/contour-layer/marching-squares.js +147 -0
  140. package/typed/cpu-grid-layer/cpu-grid-layer.d.ts +221 -126
  141. package/typed/cpu-grid-layer/cpu-grid-layer.d.ts.map +1 -1
  142. package/typed/cpu-grid-layer/cpu-grid-layer.js +129 -0
  143. package/typed/cpu-grid-layer/grid-aggregator.js +141 -0
  144. package/typed/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts +1 -1
  145. package/typed/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts.map +1 -1
  146. package/typed/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +34 -0
  147. package/typed/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts +1 -1
  148. package/typed/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts.map +1 -1
  149. package/typed/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +141 -0
  150. package/typed/gpu-grid-layer/gpu-grid-cell-layer.d.ts +67 -81
  151. package/typed/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +1 -1
  152. package/typed/gpu-grid-layer/gpu-grid-cell-layer.js +143 -0
  153. package/typed/gpu-grid-layer/gpu-grid-layer.d.ts +131 -62
  154. package/typed/gpu-grid-layer/gpu-grid-layer.d.ts.map +1 -1
  155. package/typed/gpu-grid-layer/gpu-grid-layer.js +289 -0
  156. package/typed/grid-aggregation-layer.d.ts +19 -6
  157. package/typed/grid-aggregation-layer.d.ts.map +1 -1
  158. package/typed/grid-aggregation-layer.js +172 -0
  159. package/typed/grid-layer/grid-layer.d.ts +109 -90
  160. package/typed/grid-layer/grid-layer.d.ts.map +1 -1
  161. package/typed/grid-layer/grid-layer.js +60 -0
  162. package/typed/heatmap-layer/heatmap-layer-utils.d.ts +6 -6
  163. package/typed/heatmap-layer/heatmap-layer-utils.d.ts.map +1 -1
  164. package/typed/heatmap-layer/heatmap-layer-utils.js +78 -0
  165. package/typed/heatmap-layer/heatmap-layer.d.ts +147 -82
  166. package/typed/heatmap-layer/heatmap-layer.d.ts.map +1 -1
  167. package/typed/heatmap-layer/heatmap-layer.js +478 -0
  168. package/typed/heatmap-layer/max-fs.glsl.d.ts +1 -1
  169. package/typed/heatmap-layer/max-fs.glsl.d.ts.map +1 -1
  170. package/typed/heatmap-layer/max-fs.glsl.js +7 -0
  171. package/typed/heatmap-layer/max-vs.glsl.d.ts +1 -1
  172. package/typed/heatmap-layer/max-vs.glsl.d.ts.map +1 -1
  173. package/typed/heatmap-layer/max-vs.glsl.js +12 -0
  174. package/typed/heatmap-layer/triangle-layer-fragment.glsl.d.ts +1 -1
  175. package/typed/heatmap-layer/triangle-layer-fragment.glsl.d.ts.map +1 -1
  176. package/typed/heatmap-layer/triangle-layer-fragment.glsl.js +58 -0
  177. package/typed/heatmap-layer/triangle-layer-vertex.glsl.d.ts +1 -1
  178. package/typed/heatmap-layer/triangle-layer-vertex.glsl.d.ts.map +1 -1
  179. package/typed/heatmap-layer/triangle-layer-vertex.glsl.js +51 -0
  180. package/typed/heatmap-layer/triangle-layer.d.ts +25 -8
  181. package/typed/heatmap-layer/triangle-layer.d.ts.map +1 -1
  182. package/typed/heatmap-layer/triangle-layer.js +67 -0
  183. package/typed/heatmap-layer/weights-fs.glsl.d.ts +1 -1
  184. package/typed/heatmap-layer/weights-fs.glsl.d.ts.map +1 -1
  185. package/typed/heatmap-layer/weights-fs.glsl.js +19 -0
  186. package/typed/heatmap-layer/weights-vs.glsl.d.ts +1 -1
  187. package/typed/heatmap-layer/weights-vs.glsl.d.ts.map +1 -1
  188. package/typed/heatmap-layer/weights-vs.glsl.js +23 -0
  189. package/typed/hexagon-layer/hexagon-aggregator.js +112 -0
  190. package/typed/hexagon-layer/hexagon-layer.d.ts +232 -125
  191. package/typed/hexagon-layer/hexagon-layer.d.ts.map +1 -1
  192. package/typed/hexagon-layer/hexagon-layer.js +171 -0
  193. package/typed/index.d.ts +7 -0
  194. package/typed/index.d.ts.map +1 -1
  195. package/typed/index.js +33 -0
  196. package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts +46 -25
  197. package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -1
  198. package/typed/screen-grid-layer/screen-grid-cell-layer.js +159 -0
  199. package/typed/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts +1 -1
  200. package/typed/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts.map +1 -1
  201. package/typed/screen-grid-layer/screen-grid-layer-fragment.glsl.js +37 -0
  202. package/typed/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts +1 -1
  203. package/typed/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts.map +1 -1
  204. package/typed/screen-grid-layer/screen-grid-layer-vertex.glsl.js +83 -0
  205. package/typed/screen-grid-layer/screen-grid-layer.d.ts +113 -30
  206. package/typed/screen-grid-layer/screen-grid-layer.d.ts.map +1 -1
  207. package/typed/screen-grid-layer/screen-grid-layer.js +216 -0
  208. package/typed/types.d.ts +11 -0
  209. package/typed/types.d.ts.map +1 -0
  210. package/typed/types.js +1 -0
  211. package/typed/utils/aggregation-operation-utils.js +94 -0
  212. package/typed/utils/bin-sorter.d.ts +27 -21
  213. package/typed/utils/bin-sorter.d.ts.map +1 -1
  214. package/typed/utils/bin-sorter.js +167 -0
  215. package/typed/utils/color-utils.js +53 -0
  216. package/typed/utils/cpu-aggregator.js +417 -0
  217. package/typed/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +39 -0
  218. package/typed/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +53 -0
  219. package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +31 -0
  220. package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +77 -0
  221. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +41 -0
  222. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +1 -0
  223. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +562 -0
  224. package/typed/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +36 -0
  225. package/typed/utils/grid-aggregation-utils.js +114 -0
  226. package/typed/utils/prop-utils.js +28 -0
  227. package/typed/utils/resource-utils.js +40 -0
  228. package/typed/utils/scale-utils.js +184 -0
  229. package/src/cpu-grid-layer/cpu-grid-layer.js +0 -153
@@ -1,93 +1,112 @@
1
- declare class GridLayer extends CompositeLayer<any> {
2
- constructor(...propObjects: Partial<any>[]);
3
- canUseGPUAggregation(props: any): boolean;
4
- }
5
- declare namespace GridLayer {
6
- export const layerName: string;
7
- export { defaultProps };
8
- }
9
- export default GridLayer;
10
- import { CompositeLayer } from '@deck.gl/core/typed';
11
- declare const defaultProps: {
12
- gpuAggregation: boolean;
13
- colorDomain: null;
14
- colorRange: number[][];
15
- getColorValue: {
16
- type: string;
17
- value: null;
18
- };
19
- getColorWeight: {
20
- type: string;
21
- value: number;
22
- };
23
- colorAggregation: string;
24
- lowerPercentile: {
25
- type: string;
26
- min: number;
27
- max: number;
28
- value: number;
29
- };
30
- upperPercentile: {
31
- type: string;
32
- min: number;
33
- max: number;
34
- value: number;
35
- };
36
- colorScaleType: string;
37
- onSetColorDomain: () => void;
38
- elevationDomain: null;
39
- elevationRange: number[];
40
- getElevationValue: {
41
- type: string;
42
- value: null;
43
- };
44
- getElevationWeight: {
45
- type: string;
46
- value: number;
47
- };
48
- elevationAggregation: string;
49
- elevationLowerPercentile: {
50
- type: string;
51
- min: number;
52
- max: number;
53
- value: number;
54
- };
55
- elevationUpperPercentile: {
56
- type: string;
57
- min: number;
58
- max: number;
59
- value: number;
60
- };
61
- elevationScale: {
62
- type: string;
63
- min: number;
64
- value: number;
65
- };
66
- elevationScaleType: string;
67
- onSetElevationDomain: () => void;
68
- gridAggregator: typeof import("../cpu-grid-layer/grid-aggregator").pointToDensityGridDataCPU;
69
- cellSize: {
70
- type: string;
71
- min: number;
72
- max: number;
73
- value: number;
74
- };
75
- coverage: {
76
- type: string;
77
- min: number;
78
- max: number;
79
- value: number;
80
- };
81
- getPosition: {
82
- type: string;
83
- value: (x: any) => any;
1
+ import { CompositeLayer, CompositeLayerProps, Layer, UpdateParameters } from '@deck.gl/core/typed';
2
+ import { _GPUGridLayerProps } from '../gpu-grid-layer/gpu-grid-layer';
3
+ import { _CPUGridLayerProps } from '../cpu-grid-layer/cpu-grid-layer';
4
+ /** All properties supported by GridLayer. */
5
+ export declare type GridLayerProps<DataT = any> = _GridLayerProps<DataT> & CompositeLayerProps<DataT>;
6
+ /** Properties added by GridLayer. */
7
+ declare type _GridLayerProps<DataT = any> = _CPUGridLayerProps<DataT> & _GPUGridLayerProps<DataT> & {
8
+ /**
9
+ * Whether the aggregation should be performed in high-precision 64-bit mode.
10
+ * @default false
11
+ */
12
+ fp64?: boolean;
13
+ /**
14
+ * When set to true, aggregation is performed on GPU, provided other conditions are met.
15
+ * @default false
16
+ */
17
+ gpuAggregation?: boolean;
18
+ };
19
+ export default class GridLayer<DataT = any, ExtraPropsT = {}> extends CompositeLayer<ExtraPropsT & Required<_GridLayerProps<DataT>>> {
20
+ static layerName: string;
21
+ static defaultProps: {
22
+ gpuAggregation: boolean;
23
+ colorDomain: null;
24
+ colorRange: number[][];
25
+ getColorValue: {
26
+ type: string;
27
+ value: null;
28
+ };
29
+ getColorWeight: {
30
+ type: string;
31
+ value: number;
32
+ };
33
+ colorAggregation: string;
34
+ lowerPercentile: {
35
+ type: string;
36
+ min: number;
37
+ max: number;
38
+ value: number;
39
+ };
40
+ upperPercentile: {
41
+ type: string;
42
+ min: number;
43
+ max: number;
44
+ value: number;
45
+ };
46
+ colorScaleType: string;
47
+ onSetColorDomain: () => void;
48
+ elevationDomain: null;
49
+ elevationRange: number[];
50
+ getElevationValue: {
51
+ type: string;
52
+ value: null;
53
+ };
54
+ getElevationWeight: {
55
+ type: string;
56
+ value: number;
57
+ };
58
+ elevationAggregation: string;
59
+ elevationLowerPercentile: {
60
+ type: string;
61
+ min: number;
62
+ max: number;
63
+ value: number;
64
+ };
65
+ elevationUpperPercentile: {
66
+ type: string;
67
+ min: number;
68
+ max: number;
69
+ value: number;
70
+ };
71
+ elevationScale: {
72
+ type: string;
73
+ min: number;
74
+ value: number;
75
+ };
76
+ elevationScaleType: string;
77
+ onSetElevationDomain: () => void;
78
+ gridAggregator: typeof import("../cpu-grid-layer/grid-aggregator").pointToDensityGridDataCPU;
79
+ cellSize: {
80
+ type: string;
81
+ min: number;
82
+ max: number;
83
+ value: number;
84
+ };
85
+ coverage: {
86
+ type: string;
87
+ min: number;
88
+ max: number;
89
+ value: number;
90
+ };
91
+ getPosition: {
92
+ type: string;
93
+ value: (x: any) => any;
94
+ };
95
+ extruded: boolean;
96
+ material: boolean;
97
+ _filterData: {
98
+ type: string;
99
+ value: null;
100
+ optional: boolean;
101
+ };
84
102
  };
85
- extruded: boolean;
86
- material: boolean;
87
- _filterData: {
88
- type: string;
89
- value: null;
90
- optional: boolean;
103
+ state: CompositeLayer['state'] & {
104
+ useGPUAggregation: boolean;
91
105
  };
92
- };
106
+ initializeState(): void;
107
+ updateState({ props }: UpdateParameters<this>): void;
108
+ renderLayers(): Layer;
109
+ canUseGPUAggregation(props: GridLayer['props']): boolean;
110
+ }
111
+ export {};
93
112
  //# sourceMappingURL=grid-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-layer.d.ts","sourceRoot":"","sources":["../../src/grid-layer/grid-layer.js"],"names":[],"mappings":"AAWA;IAS6B,4CACf;IAuBZ,0CA6BC;CACF;;;;;;;AArED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIE"}
1
+ {"version":3,"file":"grid-layer.d.ts","sourceRoot":"","sources":["../../src/grid-layer/grid-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE3F,OAAqB,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;AAClF,OAAqB,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;AAQlF,6CAA6C;AAC7C,oBAAY,cAAc,CAAC,KAAK,GAAG,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAE9F,qCAAqC;AACrC,aAAK,eAAe,CAAC,KAAK,GAAG,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,GAC3D,kBAAkB,CAAC,KAAK,CAAC,GAAG;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE,WAAW,GAAG,EAAE,CAAE,SAAQ,cAAc,CAClF,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC/C;IACC,MAAM,CAAC,SAAS,SAAe;IAC/B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAgB;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;IAM3C,YAAY,IAAI,KAAK;IAoBrB,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;CA8B/C"}
@@ -0,0 +1,60 @@
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 = {
6
+ ...GPUGridLayer.defaultProps,
7
+ ...CPUGridLayer.defaultProps,
8
+ gpuAggregation: false
9
+ };
10
+ export default class GridLayer extends CompositeLayer {
11
+ initializeState() {
12
+ this.state = {
13
+ useGPUAggregation: true
14
+ };
15
+ }
16
+ updateState({ props }) {
17
+ this.setState({
18
+ useGPUAggregation: this.canUseGPUAggregation(props)
19
+ });
20
+ }
21
+ renderLayers() {
22
+ const { data, updateTriggers } = this.props;
23
+ const id = this.state.useGPUAggregation ? 'GPU' : 'CPU';
24
+ const LayerType = this.state.useGPUAggregation
25
+ ? this.getSubLayerClass('GPU', GPUGridLayer)
26
+ : this.getSubLayerClass('CPU', CPUGridLayer);
27
+ return new LayerType(this.props, this.getSubLayerProps({
28
+ id,
29
+ updateTriggers
30
+ }), {
31
+ data
32
+ });
33
+ }
34
+ // Private methods
35
+ canUseGPUAggregation(props) {
36
+ const { gpuAggregation, lowerPercentile, upperPercentile, getColorValue, getElevationValue, colorScaleType } = props;
37
+ if (!gpuAggregation) {
38
+ // cpu aggregation is requested
39
+ return false;
40
+ }
41
+ if (!GPUGridAggregator.isSupported(this.context.gl)) {
42
+ return false;
43
+ }
44
+ if (lowerPercentile !== 0 || upperPercentile !== 100) {
45
+ // percentile calculations requires sorting not supported on GPU
46
+ return false;
47
+ }
48
+ if (getColorValue !== null || getElevationValue !== null) {
49
+ // accessor for custom color or elevation calculation is specified
50
+ return false;
51
+ }
52
+ if (colorScaleType === 'quantile' || colorScaleType === 'ordinal') {
53
+ // quantile and ordinal scales are not supported on GPU
54
+ return false;
55
+ }
56
+ return true;
57
+ }
58
+ }
59
+ GridLayer.layerName = 'GridLayer';
60
+ GridLayer.defaultProps = defaultProps;
@@ -1,9 +1,9 @@
1
- export function getBounds(points: any): number[];
2
- export function boundsContain(currentBounds: any, targetBounds: any): boolean;
3
- export function packVertices(points: any, dimensions?: number): Float32Array;
4
- export function scaleToAspectRatio(boundingBox: any, width: any, height: any): number[];
5
- export function getTextureCoordinates(point: any, bounds: any): number[];
6
- export function getTextureParams({ gl, floatTargetSupport }: {
1
+ export declare function getBounds(points: number[][]): number[];
2
+ export declare function boundsContain(currentBounds: number[], targetBounds: number[]): boolean;
3
+ export declare function packVertices(points: number[][], dimensions?: number): Float32Array;
4
+ export declare function scaleToAspectRatio(boundingBox: number[], width: number, height: number): number[];
5
+ export declare function getTextureCoordinates(point: number[], bounds: number[]): number[];
6
+ export declare function getTextureParams({ gl, floatTargetSupport }: {
7
7
  gl: any;
8
8
  floatTargetSupport: any;
9
9
  }): {
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap-layer-utils.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer-utils.js"],"names":[],"mappings":"AAGA,iDAWC;AAGD,8EAUC;AAKD,6EAQC;AAGD,wFA6BC;AAGD,yEAGC;AAGD;;;;;;EAWC"}
1
+ {"version":3,"file":"heatmap-layer-utils.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer-utils.ts"],"names":[],"mappings":"AAGA,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;AAGD,wBAAgB,gBAAgB,CAAC,EAAC,EAAE,EAAE,kBAAkB,EAAC;;;CAAA;;;EAWxD"}
@@ -0,0 +1,78 @@
1
+ import GL from '@luma.gl/constants';
2
+ import { isWebGL2 } from '@luma.gl/core';
3
+ export function getBounds(points) {
4
+ // Now build bounding box in world space (aligned to world coordiante system)
5
+ const x = points.map(p => p[0]);
6
+ const y = points.map(p => p[1]);
7
+ const xMin = Math.min.apply(null, x);
8
+ const xMax = Math.max.apply(null, x);
9
+ const yMin = Math.min.apply(null, y);
10
+ const yMax = Math.max.apply(null, y);
11
+ return [xMin, yMin, xMax, yMax];
12
+ }
13
+ // true if currentBounds contains targetBounds, false otherwise
14
+ export function boundsContain(currentBounds, targetBounds) {
15
+ if (targetBounds[0] >= currentBounds[0] &&
16
+ targetBounds[2] <= currentBounds[2] &&
17
+ targetBounds[1] >= currentBounds[1] &&
18
+ targetBounds[3] <= currentBounds[3]) {
19
+ return true;
20
+ }
21
+ return false;
22
+ }
23
+ const scratchArray = new Float32Array(12);
24
+ // For given rectangle bounds generates two triangles vertices that coverit completely
25
+ export function packVertices(points, dimensions = 2) {
26
+ let index = 0;
27
+ for (const point of points) {
28
+ for (let i = 0; i < dimensions; i++) {
29
+ scratchArray[index++] = point[i] || 0;
30
+ }
31
+ }
32
+ return scratchArray;
33
+ }
34
+ // Expands boundingBox:[xMin, yMin, xMax, yMax] to match aspect ratio of given width and height
35
+ export function scaleToAspectRatio(boundingBox, width, height) {
36
+ const [xMin, yMin, xMax, yMax] = boundingBox;
37
+ const currentWidth = xMax - xMin;
38
+ const currentHeight = yMax - yMin;
39
+ let newWidth = currentWidth;
40
+ let newHeight = currentHeight;
41
+ if (currentWidth / currentHeight < width / height) {
42
+ // expand bounding box width
43
+ newWidth = (width / height) * currentHeight;
44
+ }
45
+ else {
46
+ newHeight = (height / width) * currentWidth;
47
+ }
48
+ if (newWidth < width) {
49
+ newWidth = width;
50
+ newHeight = height;
51
+ }
52
+ const xCenter = (xMax + xMin) / 2;
53
+ const yCenter = (yMax + yMin) / 2;
54
+ return [
55
+ xCenter - newWidth / 2,
56
+ yCenter - newHeight / 2,
57
+ xCenter + newWidth / 2,
58
+ yCenter + newHeight / 2
59
+ ];
60
+ }
61
+ // Get texture coordiante of point inside a bounding box
62
+ export function getTextureCoordinates(point, bounds) {
63
+ const [xMin, yMin, xMax, yMax] = bounds;
64
+ return [(point[0] - xMin) / (xMax - xMin), (point[1] - yMin) / (yMax - yMin)];
65
+ }
66
+ // Returns format and type for creating texture objects
67
+ export function getTextureParams({ gl, floatTargetSupport }) {
68
+ return floatTargetSupport
69
+ ? {
70
+ // format: should be RGBA32F on WebGL2 (float textures), RGBA in WebGL1 for float or non float textures
71
+ format: isWebGL2(gl) ? GL.RGBA32F : GL.RGBA,
72
+ type: GL.FLOAT
73
+ }
74
+ : {
75
+ format: GL.RGBA,
76
+ type: GL.UNSIGNED_BYTE
77
+ };
78
+ }
@@ -1,96 +1,161 @@
1
- declare class HeatmapLayer extends AggregationLayer {
2
- _updateHeatmapState(opts: any): void;
3
- _getChangeFlags(opts: any): {
4
- dataChanged: boolean;
5
- viewportChanged: any;
6
- viewportZoomChanged: boolean;
1
+ import { Buffer, Texture2D } from '@luma.gl/core';
2
+ import { Accessor, AccessorFunction, AttributeManager, ChangeFlags, Color, Layer, LayerContext, LayersList, Position, UpdateParameters } from '@deck.gl/core/typed';
3
+ import AggregationLayer, { AggregationLayerProps } from '../aggregation-layer';
4
+ export declare type HeatmapLayerProps<DataT> = _HeatmapLayerProps<DataT> & AggregationLayerProps<DataT>;
5
+ declare type _HeatmapLayerProps<DataT = any> = {
6
+ /**
7
+ * Radius of the circle in pixels, to which the weight of an object is distributed.
8
+ *
9
+ * @default 30
10
+ */
11
+ radiusPixels?: number;
12
+ /**
13
+ * Specified as an array of colors [color1, color2, ...].
14
+ *
15
+ * @default `6-class YlOrRd` - [colorbrewer](http://colorbrewer2.org/#type=sequential&scheme=YlOrRd&n=6)
16
+ */
17
+ colorRange?: Color[];
18
+ /**
19
+ * Value that is multiplied with the total weight at a pixel to obtain the final weight.
20
+ *
21
+ * @default 1
22
+ */
23
+ intensity?: number;
24
+ /**
25
+ * Ratio of the fading weight to the max weight, between `0` and `1`.
26
+ *
27
+ * For example, `0.1` affects all pixels with weight under 10% of the max.
28
+ *
29
+ * Ignored when `colorDomain` is specified.
30
+ * @default 0.05
31
+ */
32
+ threshold?: number;
33
+ /**
34
+ * Controls how weight values are mapped to the `colorRange`, as an array of two numbers [`minValue`, `maxValue`].
35
+ *
36
+ * @default null
37
+ */
38
+ colorDomain?: [number, number] | null;
39
+ /**
40
+ * Defines the type of aggregation operation
41
+ *
42
+ * V valid values are 'SUM', 'MEAN'.
43
+ *
44
+ * @default 'SUM'
45
+ */
46
+ aggregation?: 'SUM' | 'MEAN';
47
+ /**
48
+ * Specifies the size of weight texture.
49
+ * @default 2048
50
+ */
51
+ weightsTextureSize?: number;
52
+ /**
53
+ * Interval in milliseconds during which changes to the viewport don't trigger aggregation.
54
+ *
55
+ * @default 500
56
+ */
57
+ debounceTimeout?: number;
58
+ /**
59
+ * Method called to retrieve the position of each object.
60
+ *
61
+ * @default d => d.position
62
+ */
63
+ getPosition?: AccessorFunction<DataT, Position>;
64
+ /**
65
+ * The weight of each object.
66
+ *
67
+ * @default 1
68
+ */
69
+ getWeight?: Accessor<DataT, number>;
70
+ };
71
+ export default class HeatmapLayer<DataT = any, ExtraPropsT = {}> extends AggregationLayer<ExtraPropsT & Required<_HeatmapLayerProps<DataT>>> {
72
+ static layerName: string;
73
+ static defaultProps: {
74
+ getPosition: {
75
+ type: string;
76
+ value: (x: any) => any;
77
+ };
78
+ getWeight: {
79
+ type: string;
80
+ value: number;
81
+ };
82
+ intensity: {
83
+ type: string;
84
+ min: number;
85
+ value: number;
86
+ };
87
+ radiusPixels: {
88
+ type: string;
89
+ min: number;
90
+ max: number;
91
+ value: number;
92
+ };
93
+ colorRange: number[][];
94
+ threshold: {
95
+ type: string;
96
+ min: number;
97
+ max: number;
98
+ value: number;
99
+ };
100
+ colorDomain: {
101
+ type: string;
102
+ value: null;
103
+ optional: boolean;
104
+ };
105
+ aggregation: string;
106
+ weightsTextureSize: {
107
+ type: string;
108
+ min: number;
109
+ max: number;
110
+ value: number;
111
+ };
112
+ debounceTimeout: {
113
+ type: string;
114
+ min: number;
115
+ max: number;
116
+ value: number;
117
+ };
118
+ };
119
+ state: AggregationLayer['state'] & {
120
+ supported: boolean;
121
+ colorDomain?: number[];
122
+ isWeightMapDirty?: boolean;
123
+ weightsTexture?: Texture2D;
124
+ zoom?: number;
125
+ worldBounds?: number[];
126
+ normalizedCommonBounds?: number[];
127
+ updateTimer?: any;
128
+ triPositionBuffer?: Buffer;
129
+ triTexCoordBuffer?: Buffer;
130
+ };
131
+ initializeState(): void;
132
+ shouldUpdateState({ changeFlags }: UpdateParameters<this>): boolean;
133
+ updateState(opts: UpdateParameters<this>): void;
134
+ _updateHeatmapState(opts: UpdateParameters<this>): void;
135
+ renderLayers(): LayersList | Layer;
136
+ finalizeState(context: LayerContext): void;
137
+ _getAttributeManager(): AttributeManager;
138
+ _getChangeFlags(opts: UpdateParameters<this>): Partial<ChangeFlags> & {
139
+ boundsChanged?: boolean | undefined;
140
+ viewportZoomChanged?: boolean | undefined;
7
141
  };
8
142
  _createTextures(): void;
9
143
  _setupAttributes(): void;
10
144
  _setupTextureParams(): void;
145
+ getShaders(type: any): any;
11
146
  _createWeightsTransform(shaders?: {}): void;
12
147
  _setupResources(): void;
148
+ updateShaders(shaderOptions: any): void;
13
149
  _updateMaxWeightValue(): void;
14
- _updateBounds(forceUpdate?: boolean): boolean;
150
+ _updateBounds(forceUpdate?: any): boolean;
15
151
  _updateTextureRenderingBounds(): void;
16
152
  _updateColorTexture(opts: any): void;
17
153
  _updateWeightmap(): void;
18
154
  _debouncedUpdateWeightmap(fromTimer?: boolean): void;
19
- _worldToCommonBounds(worldBounds: any, opts?: {}): number[];
155
+ _worldToCommonBounds(worldBounds: any, opts?: {
156
+ useLayerCoordinateSystem?: boolean;
157
+ }): number[];
20
158
  _commonToWorldBounds(commonBounds: any): number[];
21
159
  }
22
- declare namespace HeatmapLayer {
23
- export const layerName: string;
24
- export { defaultProps };
25
- }
26
- export default HeatmapLayer;
27
- import AggregationLayer from "../aggregation-layer";
28
- declare namespace defaultProps {
29
- export namespace getPosition {
30
- const type: string;
31
- function value(x: any): any;
32
- }
33
- export namespace getWeight {
34
- const type_1: string;
35
- export { type_1 as type };
36
- const value_1: number;
37
- export { value_1 as value };
38
- }
39
- export namespace intensity {
40
- const type_2: string;
41
- export { type_2 as type };
42
- export const min: number;
43
- const value_2: number;
44
- export { value_2 as value };
45
- }
46
- export namespace radiusPixels {
47
- const type_3: string;
48
- export { type_3 as type };
49
- const min_1: number;
50
- export { min_1 as min };
51
- export const max: number;
52
- const value_3: number;
53
- export { value_3 as value };
54
- }
55
- export { defaultColorRange as colorRange };
56
- export namespace threshold {
57
- const type_4: string;
58
- export { type_4 as type };
59
- const min_2: number;
60
- export { min_2 as min };
61
- const max_1: number;
62
- export { max_1 as max };
63
- const value_4: number;
64
- export { value_4 as value };
65
- }
66
- export namespace colorDomain {
67
- const type_5: string;
68
- export { type_5 as type };
69
- const value_5: null;
70
- export { value_5 as value };
71
- export const optional: boolean;
72
- }
73
- export const aggregation: string;
74
- export namespace weightsTextureSize {
75
- const type_6: string;
76
- export { type_6 as type };
77
- const min_3: number;
78
- export { min_3 as min };
79
- const max_2: number;
80
- export { max_2 as max };
81
- const value_6: number;
82
- export { value_6 as value };
83
- }
84
- export namespace debounceTimeout {
85
- const type_7: string;
86
- export { type_7 as type };
87
- const min_4: number;
88
- export { min_4 as min };
89
- const max_3: number;
90
- export { max_3 as max };
91
- const value_7: number;
92
- export { value_7 as value };
93
- }
94
- }
95
- import { defaultColorRange } from "../utils/color-utils";
160
+ export {};
96
161
  //# sourceMappingURL=heatmap-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap-layer.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer.js"],"names":[],"mappings":"AAuFA;IA6BE,qCA4BC;IA+ED;;;;MAiBC;IAED,wBAcC;IAED,yBAOC;IAED,4BAcC;IAgBD,4CAcC;IAED,wBAkCC;IAQD,8BAUC;IAGD,8CAgDC;IAED,sCAaC;IAED,qCAmBC;IAED,yBAmDC;IAED,qDAiBC;IAKD,4DAsCC;IAID,kDAOC;CACF;;;;;;;;;;QAzgBwC,4BAAe"}
1
+ {"version":3,"file":"heatmap-layer.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer.ts"],"names":[],"mappings":"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"}