@deck.gl/aggregation-layers 9.0.34 → 9.1.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 (318) hide show
  1. package/dist/common/aggregation-layer.d.ts +30 -0
  2. package/dist/common/aggregation-layer.d.ts.map +1 -0
  3. package/dist/common/aggregation-layer.js +69 -0
  4. package/dist/common/aggregator/aggregator.d.ts +76 -0
  5. package/dist/common/aggregator/aggregator.d.ts.map +1 -0
  6. package/dist/common/aggregator/aggregator.js +4 -0
  7. package/dist/common/aggregator/cpu-aggregator/aggregate.d.ts +27 -0
  8. package/dist/common/aggregator/cpu-aggregator/aggregate.d.ts.map +1 -0
  9. package/dist/common/aggregator/cpu-aggregator/aggregate.js +66 -0
  10. package/dist/common/aggregator/cpu-aggregator/cpu-aggregator.d.ts +70 -0
  11. package/dist/common/aggregator/cpu-aggregator/cpu-aggregator.d.ts.map +1 -0
  12. package/dist/common/aggregator/cpu-aggregator/cpu-aggregator.js +139 -0
  13. package/dist/common/aggregator/cpu-aggregator/sort-bins.d.ts +15 -0
  14. package/dist/common/aggregator/cpu-aggregator/sort-bins.d.ts.map +1 -0
  15. package/dist/common/aggregator/cpu-aggregator/sort-bins.js +43 -0
  16. package/dist/common/aggregator/cpu-aggregator/vertex-accessor.d.ts +21 -0
  17. package/dist/common/aggregator/cpu-aggregator/vertex-accessor.d.ts.map +1 -0
  18. package/dist/common/aggregator/cpu-aggregator/vertex-accessor.js +55 -0
  19. package/dist/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.d.ts +18 -0
  20. package/dist/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.d.ts.map +1 -0
  21. package/dist/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.js +20 -0
  22. package/dist/common/aggregator/gpu-aggregator/bin-sorter-uniforms.d.ts +14 -0
  23. package/dist/common/aggregator/gpu-aggregator/bin-sorter-uniforms.d.ts.map +1 -0
  24. package/dist/common/aggregator/gpu-aggregator/bin-sorter-uniforms.js +17 -0
  25. package/dist/common/aggregator/gpu-aggregator/utils.d.ts +6 -0
  26. package/dist/common/aggregator/gpu-aggregator/utils.d.ts.map +1 -0
  27. package/dist/common/aggregator/gpu-aggregator/utils.js +24 -0
  28. package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.d.ts +24 -0
  29. package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.d.ts.map +1 -0
  30. package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js +215 -0
  31. package/dist/common/aggregator/gpu-aggregator/webgl-aggregator.d.ts +81 -0
  32. package/dist/common/aggregator/gpu-aggregator/webgl-aggregator.d.ts.map +1 -0
  33. package/dist/common/aggregator/gpu-aggregator/webgl-aggregator.js +201 -0
  34. package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.d.ts +38 -0
  35. package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.d.ts.map +1 -0
  36. package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.js +223 -0
  37. package/dist/common/aggregator/index.d.ts +6 -0
  38. package/dist/common/aggregator/index.d.ts.map +1 -0
  39. package/dist/common/aggregator/index.js +5 -0
  40. package/dist/common/types.d.ts +11 -0
  41. package/dist/common/types.d.ts.map +1 -0
  42. package/dist/common/types.js +4 -0
  43. package/dist/common/utils/bounds-utils.d.ts +10 -0
  44. package/dist/common/utils/bounds-utils.d.ts.map +1 -0
  45. package/dist/common/utils/bounds-utils.js +20 -0
  46. package/dist/common/utils/color-utils.d.ts +10 -0
  47. package/dist/common/utils/color-utils.d.ts.map +1 -0
  48. package/dist/common/utils/color-utils.js +65 -0
  49. package/dist/common/utils/prop-utils.d.ts.map +1 -0
  50. package/dist/common/utils/prop-utils.js +12 -0
  51. package/dist/common/utils/scale-utils.d.ts +46 -0
  52. package/dist/common/utils/scale-utils.d.ts.map +1 -0
  53. package/dist/common/utils/scale-utils.js +180 -0
  54. package/dist/contour-layer/bin-options-uniforms.d.ts +13 -0
  55. package/dist/contour-layer/bin-options-uniforms.d.ts.map +1 -0
  56. package/dist/contour-layer/bin-options-uniforms.js +17 -0
  57. package/dist/contour-layer/contour-layer.d.ts +42 -50
  58. package/dist/contour-layer/contour-layer.d.ts.map +1 -1
  59. package/dist/contour-layer/contour-layer.js +232 -192
  60. package/dist/contour-layer/contour-utils.d.ts +36 -15
  61. package/dist/contour-layer/contour-utils.d.ts.map +1 -1
  62. package/dist/contour-layer/contour-utils.js +24 -29
  63. package/dist/contour-layer/marching-squares-codes.d.ts.map +1 -1
  64. package/dist/contour-layer/marching-squares-codes.js +3 -0
  65. package/dist/contour-layer/marching-squares.d.ts +22 -6
  66. package/dist/contour-layer/marching-squares.d.ts.map +1 -1
  67. package/dist/contour-layer/marching-squares.js +71 -68
  68. package/dist/contour-layer/value-reader.d.ts +10 -0
  69. package/dist/contour-layer/value-reader.d.ts.map +1 -0
  70. package/dist/contour-layer/value-reader.js +46 -0
  71. package/dist/dist.dev.js +4842 -4081
  72. package/dist/grid-layer/bin-options-uniforms.d.ts +13 -0
  73. package/dist/grid-layer/bin-options-uniforms.d.ts.map +1 -0
  74. package/dist/grid-layer/bin-options-uniforms.js +17 -0
  75. package/dist/grid-layer/grid-cell-layer-vertex.glsl.d.ts +3 -0
  76. package/dist/grid-layer/grid-cell-layer-vertex.glsl.d.ts.map +1 -0
  77. package/dist/grid-layer/grid-cell-layer-vertex.glsl.js +51 -0
  78. package/dist/grid-layer/grid-cell-layer.d.ts +32 -0
  79. package/dist/grid-layer/grid-cell-layer.d.ts.map +1 -0
  80. package/dist/grid-layer/grid-cell-layer.js +93 -0
  81. package/dist/grid-layer/grid-layer-uniforms.d.ts +21 -0
  82. package/dist/grid-layer/grid-layer-uniforms.d.ts.map +1 -0
  83. package/dist/grid-layer/grid-layer-uniforms.js +23 -0
  84. package/dist/grid-layer/grid-layer.d.ts +175 -13
  85. package/dist/grid-layer/grid-layer.d.ts.map +1 -1
  86. package/dist/grid-layer/grid-layer.js +342 -46
  87. package/dist/{aggregation-layer.d.ts → heatmap-layer/aggregation-layer.d.ts} +1 -0
  88. package/dist/heatmap-layer/aggregation-layer.d.ts.map +1 -0
  89. package/dist/{aggregation-layer.js → heatmap-layer/aggregation-layer.js} +6 -21
  90. package/dist/heatmap-layer/heatmap-layer-uniforms.d.ts +30 -0
  91. package/dist/heatmap-layer/heatmap-layer-uniforms.d.ts.map +1 -0
  92. package/dist/heatmap-layer/heatmap-layer-uniforms.js +32 -0
  93. package/dist/heatmap-layer/heatmap-layer-utils.d.ts +1 -1
  94. package/dist/heatmap-layer/heatmap-layer-utils.d.ts.map +1 -1
  95. package/dist/heatmap-layer/heatmap-layer-utils.js +3 -0
  96. package/dist/heatmap-layer/heatmap-layer.d.ts +6 -4
  97. package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -1
  98. package/dist/heatmap-layer/heatmap-layer.js +43 -33
  99. package/dist/heatmap-layer/max-fs.glsl.d.ts.map +1 -1
  100. package/dist/heatmap-layer/max-fs.glsl.js +3 -0
  101. package/dist/heatmap-layer/max-vs.glsl.d.ts +1 -1
  102. package/dist/heatmap-layer/max-vs.glsl.d.ts.map +1 -1
  103. package/dist/heatmap-layer/max-vs.glsl.js +6 -4
  104. package/dist/heatmap-layer/triangle-layer-fragment.glsl.d.ts +1 -1
  105. package/dist/heatmap-layer/triangle-layer-fragment.glsl.d.ts.map +1 -1
  106. package/dist/heatmap-layer/triangle-layer-fragment.glsl.js +5 -23
  107. package/dist/heatmap-layer/triangle-layer-uniforms.d.ts +22 -0
  108. package/dist/heatmap-layer/triangle-layer-uniforms.d.ts.map +1 -0
  109. package/dist/heatmap-layer/triangle-layer-uniforms.js +22 -0
  110. package/dist/heatmap-layer/triangle-layer-vertex.glsl.d.ts +1 -1
  111. package/dist/heatmap-layer/triangle-layer-vertex.glsl.d.ts.map +1 -1
  112. package/dist/heatmap-layer/triangle-layer-vertex.glsl.js +10 -30
  113. package/dist/heatmap-layer/triangle-layer.d.ts +4 -10
  114. package/dist/heatmap-layer/triangle-layer.d.ts.map +1 -1
  115. package/dist/heatmap-layer/triangle-layer.js +17 -30
  116. package/dist/heatmap-layer/weights-fs.glsl.d.ts.map +1 -1
  117. package/dist/heatmap-layer/weights-fs.glsl.js +3 -0
  118. package/dist/heatmap-layer/weights-vs.glsl.d.ts +1 -1
  119. package/dist/heatmap-layer/weights-vs.glsl.d.ts.map +1 -1
  120. package/dist/heatmap-layer/weights-vs.glsl.js +6 -7
  121. package/dist/hexagon-layer/bin-options-uniforms.d.ts +14 -0
  122. package/dist/hexagon-layer/bin-options-uniforms.d.ts.map +1 -0
  123. package/dist/hexagon-layer/bin-options-uniforms.js +17 -0
  124. package/dist/hexagon-layer/hexagon-cell-layer-vertex.glsl.d.ts +3 -0
  125. package/dist/hexagon-layer/hexagon-cell-layer-vertex.glsl.d.ts.map +1 -0
  126. package/dist/hexagon-layer/hexagon-cell-layer-vertex.glsl.js +55 -0
  127. package/dist/hexagon-layer/hexagon-cell-layer.d.ts +29 -0
  128. package/dist/hexagon-layer/hexagon-cell-layer.d.ts.map +1 -0
  129. package/dist/hexagon-layer/hexagon-cell-layer.js +94 -0
  130. package/dist/hexagon-layer/hexagon-layer-uniforms.d.ts +19 -0
  131. package/dist/hexagon-layer/hexagon-layer-uniforms.d.ts.map +1 -0
  132. package/dist/hexagon-layer/hexagon-layer-uniforms.js +21 -0
  133. package/dist/hexagon-layer/hexagon-layer.d.ts +84 -54
  134. package/dist/hexagon-layer/hexagon-layer.d.ts.map +1 -1
  135. package/dist/hexagon-layer/hexagon-layer.js +307 -123
  136. package/dist/hexagon-layer/hexbin.d.ts +17 -0
  137. package/dist/hexagon-layer/hexbin.d.ts.map +1 -0
  138. package/dist/hexagon-layer/hexbin.js +69 -0
  139. package/dist/index.cjs +3025 -2946
  140. package/dist/index.cjs.map +4 -4
  141. package/dist/index.d.ts +7 -13
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +5 -27
  144. package/dist/screen-grid-layer/bin-options-uniforms.d.ts +11 -0
  145. package/dist/screen-grid-layer/bin-options-uniforms.d.ts.map +1 -0
  146. package/dist/screen-grid-layer/bin-options-uniforms.js +15 -0
  147. package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts +11 -16
  148. package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -1
  149. package/dist/screen-grid-layer/screen-grid-cell-layer.js +52 -134
  150. package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts +1 -1
  151. package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts.map +1 -1
  152. package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.js +4 -24
  153. package/dist/screen-grid-layer/screen-grid-layer-uniforms.d.ts +17 -0
  154. package/dist/screen-grid-layer/screen-grid-layer-uniforms.d.ts.map +1 -0
  155. package/dist/screen-grid-layer/screen-grid-layer-uniforms.js +19 -0
  156. package/dist/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts +1 -1
  157. package/dist/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts.map +1 -1
  158. package/dist/screen-grid-layer/screen-grid-layer-vertex.glsl.js +21 -62
  159. package/dist/screen-grid-layer/screen-grid-layer.d.ts +33 -40
  160. package/dist/screen-grid-layer/screen-grid-layer.d.ts.map +1 -1
  161. package/dist/screen-grid-layer/screen-grid-layer.js +157 -174
  162. package/dist.min.js +401 -382
  163. package/package.json +10 -9
  164. package/src/common/aggregation-layer.ts +107 -0
  165. package/src/common/aggregator/aggregator.ts +88 -0
  166. package/src/common/aggregator/cpu-aggregator/aggregate.ts +101 -0
  167. package/src/common/aggregator/cpu-aggregator/cpu-aggregator.ts +203 -0
  168. package/src/common/aggregator/cpu-aggregator/sort-bins.ts +63 -0
  169. package/src/common/aggregator/cpu-aggregator/vertex-accessor.ts +86 -0
  170. package/src/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.ts +33 -0
  171. package/src/common/aggregator/gpu-aggregator/bin-sorter-uniforms.ts +27 -0
  172. package/src/common/aggregator/gpu-aggregator/utils.ts +27 -0
  173. package/src/common/aggregator/gpu-aggregator/webgl-aggregation-transform.ts +247 -0
  174. package/src/common/aggregator/gpu-aggregator/webgl-aggregator.ts +274 -0
  175. package/src/common/aggregator/gpu-aggregator/webgl-bin-sorter.ts +258 -0
  176. package/src/common/aggregator/index.ts +10 -0
  177. package/src/{types.ts → common/types.ts} +10 -4
  178. package/src/common/utils/bounds-utils.ts +34 -0
  179. package/src/common/utils/color-utils.ts +86 -0
  180. package/src/common/utils/prop-utils.ts +13 -0
  181. package/src/common/utils/scale-utils.ts +236 -0
  182. package/src/contour-layer/bin-options-uniforms.ts +26 -0
  183. package/src/contour-layer/contour-layer.ts +300 -265
  184. package/src/contour-layer/contour-utils.ts +68 -39
  185. package/src/contour-layer/marching-squares-codes.ts +4 -0
  186. package/src/contour-layer/marching-squares.ts +93 -82
  187. package/src/contour-layer/value-reader.ts +65 -0
  188. package/src/grid-layer/bin-options-uniforms.ts +26 -0
  189. package/src/grid-layer/grid-cell-layer-vertex.glsl.ts +68 -0
  190. package/src/grid-layer/grid-cell-layer.ts +141 -0
  191. package/src/grid-layer/grid-layer-uniforms.ts +37 -0
  192. package/src/grid-layer/grid-layer.ts +614 -73
  193. package/src/{aggregation-layer.ts → heatmap-layer/aggregation-layer.ts} +6 -21
  194. package/src/heatmap-layer/heatmap-layer-uniforms.ts +50 -0
  195. package/src/heatmap-layer/heatmap-layer-utils.ts +9 -1
  196. package/src/heatmap-layer/heatmap-layer.ts +59 -36
  197. package/src/heatmap-layer/max-fs.glsl.ts +4 -0
  198. package/src/heatmap-layer/max-vs.glsl.ts +7 -4
  199. package/src/heatmap-layer/triangle-layer-fragment.glsl.ts +5 -23
  200. package/src/heatmap-layer/triangle-layer-uniforms.ts +37 -0
  201. package/src/heatmap-layer/triangle-layer-vertex.glsl.ts +10 -30
  202. package/src/heatmap-layer/triangle-layer.ts +26 -31
  203. package/src/heatmap-layer/weights-fs.glsl.ts +4 -0
  204. package/src/heatmap-layer/weights-vs.glsl.ts +7 -7
  205. package/src/hexagon-layer/bin-options-uniforms.ts +27 -0
  206. package/src/hexagon-layer/hexagon-cell-layer-vertex.glsl.ts +73 -0
  207. package/src/hexagon-layer/hexagon-cell-layer.ts +141 -0
  208. package/src/hexagon-layer/hexagon-layer-uniforms.ts +34 -0
  209. package/src/hexagon-layer/hexagon-layer.ts +454 -186
  210. package/src/hexagon-layer/hexbin.ts +79 -0
  211. package/src/index.ts +21 -34
  212. package/src/screen-grid-layer/bin-options-uniforms.ts +23 -0
  213. package/src/screen-grid-layer/screen-grid-cell-layer.ts +71 -156
  214. package/src/screen-grid-layer/screen-grid-layer-fragment.glsl.ts +4 -24
  215. package/src/screen-grid-layer/screen-grid-layer-uniforms.ts +31 -0
  216. package/src/screen-grid-layer/screen-grid-layer-vertex.glsl.ts +21 -64
  217. package/src/screen-grid-layer/screen-grid-layer.ts +194 -222
  218. package/dist/aggregation-layer.d.ts.map +0 -1
  219. package/dist/cpu-grid-layer/cpu-grid-layer.d.ts +0 -158
  220. package/dist/cpu-grid-layer/cpu-grid-layer.d.ts.map +0 -1
  221. package/dist/cpu-grid-layer/cpu-grid-layer.js +0 -130
  222. package/dist/cpu-grid-layer/grid-aggregator.d.ts +0 -35
  223. package/dist/cpu-grid-layer/grid-aggregator.d.ts.map +0 -1
  224. package/dist/cpu-grid-layer/grid-aggregator.js +0 -141
  225. package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts +0 -3
  226. package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts.map +0 -1
  227. package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -30
  228. package/dist/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts +0 -3
  229. package/dist/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts.map +0 -1
  230. package/dist/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -112
  231. package/dist/gpu-grid-layer/gpu-grid-cell-layer.d.ts +0 -48
  232. package/dist/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +0 -1
  233. package/dist/gpu-grid-layer/gpu-grid-cell-layer.js +0 -146
  234. package/dist/gpu-grid-layer/gpu-grid-layer.d.ts +0 -99
  235. package/dist/gpu-grid-layer/gpu-grid-layer.d.ts.map +0 -1
  236. package/dist/gpu-grid-layer/gpu-grid-layer.js +0 -289
  237. package/dist/grid-aggregation-layer.d.ts +0 -67
  238. package/dist/grid-aggregation-layer.d.ts.map +0 -1
  239. package/dist/grid-aggregation-layer.js +0 -173
  240. package/dist/hexagon-layer/hexagon-aggregator.d.ts +0 -27
  241. package/dist/hexagon-layer/hexagon-aggregator.d.ts.map +0 -1
  242. package/dist/hexagon-layer/hexagon-aggregator.js +0 -112
  243. package/dist/types.d.ts +0 -12
  244. package/dist/types.d.ts.map +0 -1
  245. package/dist/types.js +0 -1
  246. package/dist/utils/aggregation-operation-utils.d.ts +0 -19
  247. package/dist/utils/aggregation-operation-utils.d.ts.map +0 -1
  248. package/dist/utils/aggregation-operation-utils.js +0 -94
  249. package/dist/utils/bin-sorter.d.ts +0 -52
  250. package/dist/utils/bin-sorter.d.ts.map +0 -1
  251. package/dist/utils/bin-sorter.js +0 -167
  252. package/dist/utils/color-utils.d.ts +0 -3
  253. package/dist/utils/color-utils.d.ts.map +0 -1
  254. package/dist/utils/color-utils.js +0 -53
  255. package/dist/utils/cpu-aggregator.d.ts +0 -169
  256. package/dist/utils/cpu-aggregator.d.ts.map +0 -1
  257. package/dist/utils/cpu-aggregator.js +0 -421
  258. package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts +0 -3
  259. package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts.map +0 -1
  260. package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -36
  261. package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts +0 -3
  262. package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts.map +0 -1
  263. package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -42
  264. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts +0 -3
  265. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts.map +0 -1
  266. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -30
  267. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts +0 -3
  268. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts.map +0 -1
  269. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -61
  270. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts +0 -38
  271. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts.map +0 -1
  272. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -41
  273. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts +0 -1
  274. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts.map +0 -1
  275. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -1
  276. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts +0 -76
  277. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts.map +0 -1
  278. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -555
  279. package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts +0 -3
  280. package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts.map +0 -1
  281. package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -32
  282. package/dist/utils/grid-aggregation-utils.d.ts +0 -30
  283. package/dist/utils/grid-aggregation-utils.d.ts.map +0 -1
  284. package/dist/utils/grid-aggregation-utils.js +0 -114
  285. package/dist/utils/prop-utils.d.ts.map +0 -1
  286. package/dist/utils/prop-utils.js +0 -28
  287. package/dist/utils/resource-utils.d.ts +0 -14
  288. package/dist/utils/resource-utils.d.ts.map +0 -1
  289. package/dist/utils/resource-utils.js +0 -38
  290. package/dist/utils/scale-utils.d.ts +0 -15
  291. package/dist/utils/scale-utils.d.ts.map +0 -1
  292. package/dist/utils/scale-utils.js +0 -184
  293. package/src/cpu-grid-layer/cpu-grid-layer.ts +0 -329
  294. package/src/cpu-grid-layer/grid-aggregator.ts +0 -184
  295. package/src/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.ts +0 -35
  296. package/src/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.ts +0 -143
  297. package/src/gpu-grid-layer/gpu-grid-cell-layer.ts +0 -201
  298. package/src/gpu-grid-layer/gpu-grid-layer.ts +0 -455
  299. package/src/grid-aggregation-layer.ts +0 -243
  300. package/src/hexagon-layer/hexagon-aggregator.ts +0 -127
  301. package/src/utils/aggregation-operation-utils.ts +0 -118
  302. package/src/utils/bin-sorter.ts +0 -218
  303. package/src/utils/color-utils.ts +0 -57
  304. package/src/utils/cpu-aggregator.ts +0 -503
  305. package/src/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.ts +0 -40
  306. package/src/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.ts +0 -54
  307. package/src/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.ts +0 -35
  308. package/src/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.ts +0 -79
  309. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.ts +0 -46
  310. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.ts +0 -0
  311. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  312. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts +0 -690
  313. package/src/utils/gpu-grid-aggregation/transform-mean-vs.glsl.ts +0 -38
  314. package/src/utils/grid-aggregation-utils.ts +0 -147
  315. package/src/utils/prop-utils.ts +0 -29
  316. package/src/utils/resource-utils.ts +0 -53
  317. package/src/utils/scale-utils.js +0 -219
  318. /package/dist/{utils → common/utils}/prop-utils.d.ts +0 -0
@@ -1,62 +1,358 @@
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";
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { log, createIterable, project32, Viewport } from '@deck.gl/core';
5
+ import { WebGLAggregator, CPUAggregator } from "../common/aggregator/index.js";
6
+ import AggregationLayer from "../common/aggregation-layer.js";
7
+ import { defaultColorRange } from "../common/utils/color-utils.js";
8
+ import { AttributeWithScale } from "../common/utils/scale-utils.js";
9
+ import { getBinIdRange } from "../common/utils/bounds-utils.js";
10
+ import { GridCellLayer } from "./grid-cell-layer.js";
11
+ import { binOptionsUniforms } from "./bin-options-uniforms.js";
12
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
13
+ function noop() { }
5
14
  const defaultProps = {
6
- ...GPUGridLayer.defaultProps,
7
- ...CPUGridLayer.defaultProps,
8
- gpuAggregation: false
15
+ gpuAggregation: false,
16
+ // color
17
+ colorDomain: null,
18
+ colorRange: defaultColorRange,
19
+ getColorValue: { type: 'accessor', value: null }, // default value is calculated from `getColorWeight` and `colorAggregation`
20
+ getColorWeight: { type: 'accessor', value: 1 },
21
+ colorAggregation: 'SUM',
22
+ lowerPercentile: { type: 'number', min: 0, max: 100, value: 0 },
23
+ upperPercentile: { type: 'number', min: 0, max: 100, value: 100 },
24
+ colorScaleType: 'quantize',
25
+ onSetColorDomain: noop,
26
+ // elevation
27
+ elevationDomain: null,
28
+ elevationRange: [0, 1000],
29
+ getElevationValue: { type: 'accessor', value: null }, // default value is calculated from `getElevationWeight` and `elevationAggregation`
30
+ getElevationWeight: { type: 'accessor', value: 1 },
31
+ elevationAggregation: 'SUM',
32
+ elevationScale: { type: 'number', min: 0, value: 1 },
33
+ elevationLowerPercentile: { type: 'number', min: 0, max: 100, value: 0 },
34
+ elevationUpperPercentile: { type: 'number', min: 0, max: 100, value: 100 },
35
+ elevationScaleType: 'linear',
36
+ onSetElevationDomain: noop,
37
+ // grid
38
+ cellSize: { type: 'number', min: 0, value: 1000 },
39
+ coverage: { type: 'number', min: 0, max: 1, value: 1 },
40
+ getPosition: { type: 'accessor', value: (x) => x.position },
41
+ gridAggregator: { type: 'function', optional: true, value: null },
42
+ extruded: false,
43
+ // Optional material for 'lighting' shader module
44
+ material: true
9
45
  };
10
46
  /** Aggregate data into a grid-based heatmap. The color and height of a cell are determined based on the objects it contains. */
11
- class GridLayer extends CompositeLayer {
12
- initializeState() {
13
- this.state = {
14
- useGPUAggregation: false // TODO(v9): Re-enable GPU aggregation.
15
- };
47
+ class GridLayer extends AggregationLayer {
48
+ getAggregatorType() {
49
+ const { gpuAggregation, gridAggregator, getColorValue, getElevationValue } = this.props;
50
+ if (gpuAggregation && (gridAggregator || getColorValue || getElevationValue)) {
51
+ // If these features are desired by the app, the user should explicitly use CPU aggregation
52
+ log.warn('Features not supported by GPU aggregation, falling back to CPU')();
53
+ return 'cpu';
54
+ }
55
+ if (
56
+ // GPU aggregation is requested
57
+ gpuAggregation &&
58
+ // GPU aggregation is supported by the device
59
+ WebGLAggregator.isSupported(this.context.device)) {
60
+ return 'gpu';
61
+ }
62
+ return 'cpu';
16
63
  }
17
- updateState({ props }) {
18
- this.setState({
19
- // TODO(v9): Re-enable GPU aggregation.
20
- // useGPUAggregation: this.canUseGPUAggregation(props)
21
- useGPUAggregation: false
64
+ createAggregator(type) {
65
+ if (type === 'cpu') {
66
+ const { gridAggregator, cellSize } = this.props;
67
+ return new CPUAggregator({
68
+ dimensions: 2,
69
+ getBin: {
70
+ sources: ['positions'],
71
+ getValue: ({ positions }, index, opts) => {
72
+ if (gridAggregator) {
73
+ return gridAggregator(positions, cellSize);
74
+ }
75
+ const viewport = this.state.aggregatorViewport;
76
+ // project to common space
77
+ const p = viewport.projectPosition(positions);
78
+ const { cellSizeCommon, cellOriginCommon } = opts;
79
+ return [
80
+ Math.floor((p[0] - cellOriginCommon[0]) / cellSizeCommon[0]),
81
+ Math.floor((p[1] - cellOriginCommon[1]) / cellSizeCommon[1])
82
+ ];
83
+ }
84
+ },
85
+ getValue: [
86
+ { sources: ['colorWeights'], getValue: ({ colorWeights }) => colorWeights },
87
+ { sources: ['elevationWeights'], getValue: ({ elevationWeights }) => elevationWeights }
88
+ ]
89
+ });
90
+ }
91
+ return new WebGLAggregator(this.context.device, {
92
+ dimensions: 2,
93
+ channelCount: 2,
94
+ bufferLayout: this.getAttributeManager().getBufferLayouts({ isInstanced: false }),
95
+ ...super.getShaders({
96
+ modules: [project32, binOptionsUniforms],
97
+ vs: /* glsl */ `
98
+ in vec3 positions;
99
+ in vec3 positions64Low;
100
+ in float colorWeights;
101
+ in float elevationWeights;
102
+
103
+ void getBin(out ivec2 binId) {
104
+ vec3 positionCommon = project_position(positions, positions64Low);
105
+ vec2 gridCoords = floor(positionCommon.xy / binOptions.cellSizeCommon);
106
+ binId = ivec2(gridCoords);
107
+ }
108
+ void getValue(out vec2 value) {
109
+ value = vec2(colorWeights, elevationWeights);
110
+ }
111
+ `
112
+ })
22
113
  });
23
114
  }
24
- renderLayers() {
25
- const { data, updateTriggers } = this.props;
26
- const id = this.state.useGPUAggregation ? 'GPU' : 'CPU';
27
- const LayerType = this.state.useGPUAggregation
28
- ? this.getSubLayerClass('GPU', GPUGridLayer)
29
- : this.getSubLayerClass('CPU', CPUGridLayer);
30
- return new LayerType(this.props, this.getSubLayerProps({
31
- id,
32
- updateTriggers
33
- }), {
34
- data
115
+ initializeState() {
116
+ super.initializeState();
117
+ const attributeManager = this.getAttributeManager();
118
+ attributeManager.add({
119
+ positions: {
120
+ size: 3,
121
+ accessor: 'getPosition',
122
+ type: 'float64',
123
+ fp64: this.use64bitPositions()
124
+ },
125
+ colorWeights: { size: 1, accessor: 'getColorWeight' },
126
+ elevationWeights: { size: 1, accessor: 'getElevationWeight' }
35
127
  });
36
128
  }
37
- // Private methods
38
- canUseGPUAggregation(props) {
39
- const { gpuAggregation, lowerPercentile, upperPercentile, getColorValue, getElevationValue, colorScaleType } = props;
40
- if (!gpuAggregation) {
41
- // cpu aggregation is requested
42
- return false;
129
+ updateState(params) {
130
+ const aggregatorChanged = super.updateState(params);
131
+ const { props, oldProps, changeFlags } = params;
132
+ const { aggregator } = this.state;
133
+ if ((changeFlags.dataChanged || !this.state.dataAsArray) &&
134
+ (props.getColorValue || props.getElevationValue)) {
135
+ // Convert data to array
136
+ this.state.dataAsArray = Array.from(createIterable(props.data).iterable);
137
+ }
138
+ if (aggregatorChanged ||
139
+ changeFlags.dataChanged ||
140
+ props.cellSize !== oldProps.cellSize ||
141
+ props.getColorValue !== oldProps.getColorValue ||
142
+ props.getElevationValue !== oldProps.getElevationValue ||
143
+ props.colorAggregation !== oldProps.colorAggregation ||
144
+ props.elevationAggregation !== oldProps.elevationAggregation) {
145
+ this._updateBinOptions();
146
+ const { cellSizeCommon, cellOriginCommon, binIdRange, dataAsArray } = this.state;
147
+ aggregator.setProps({
148
+ // @ts-expect-error only used by GPUAggregator
149
+ binIdRange,
150
+ pointCount: this.getNumInstances(),
151
+ operations: [props.colorAggregation, props.elevationAggregation],
152
+ binOptions: {
153
+ cellSizeCommon,
154
+ cellOriginCommon
155
+ },
156
+ onUpdate: this._onAggregationUpdate.bind(this)
157
+ });
158
+ if (dataAsArray) {
159
+ const { getColorValue, getElevationValue } = this.props;
160
+ aggregator.setProps({
161
+ // @ts-expect-error only used by CPUAggregator
162
+ customOperations: [
163
+ getColorValue &&
164
+ ((indices) => getColorValue(indices.map(i => dataAsArray[i]), { indices, data: props.data })),
165
+ getElevationValue &&
166
+ ((indices) => getElevationValue(indices.map(i => dataAsArray[i]), { indices, data: props.data }))
167
+ ]
168
+ });
169
+ }
170
+ }
171
+ if (changeFlags.updateTriggersChanged && changeFlags.updateTriggersChanged.getColorValue) {
172
+ aggregator.setNeedsUpdate(0);
173
+ }
174
+ if (changeFlags.updateTriggersChanged && changeFlags.updateTriggersChanged.getElevationValue) {
175
+ aggregator.setNeedsUpdate(1);
176
+ }
177
+ return aggregatorChanged;
178
+ }
179
+ _updateBinOptions() {
180
+ const bounds = this.getBounds();
181
+ const cellSizeCommon = [1, 1];
182
+ let cellOriginCommon = [0, 0];
183
+ let binIdRange = [
184
+ [0, 1],
185
+ [0, 1]
186
+ ];
187
+ let viewport = this.context.viewport;
188
+ if (bounds && Number.isFinite(bounds[0][0])) {
189
+ let centroid = [(bounds[0][0] + bounds[1][0]) / 2, (bounds[0][1] + bounds[1][1]) / 2];
190
+ const { cellSize } = this.props;
191
+ const { unitsPerMeter } = viewport.getDistanceScales(centroid);
192
+ cellSizeCommon[0] = unitsPerMeter[0] * cellSize;
193
+ cellSizeCommon[1] = unitsPerMeter[1] * cellSize;
194
+ // Offset common space to center at the origin of the grid cell where the data center is in
195
+ // This improves precision without affecting the cell positions
196
+ const centroidCommon = viewport.projectFlat(centroid);
197
+ cellOriginCommon = [
198
+ Math.floor(centroidCommon[0] / cellSizeCommon[0]) * cellSizeCommon[0],
199
+ Math.floor(centroidCommon[1] / cellSizeCommon[1]) * cellSizeCommon[1]
200
+ ];
201
+ centroid = viewport.unprojectFlat(cellOriginCommon);
202
+ const ViewportType = viewport.constructor;
203
+ // We construct a viewport for the GPU aggregator's project module
204
+ // This viewport is determined by data
205
+ // removes arbitrary precision variance that depends on initial view state
206
+ viewport = viewport.isGeospatial
207
+ ? new ViewportType({ longitude: centroid[0], latitude: centroid[1], zoom: 12 })
208
+ : new Viewport({ position: [centroid[0], centroid[1], 0], zoom: 12 });
209
+ // Round to the nearest 32-bit float to match CPU and GPU results
210
+ cellOriginCommon = [Math.fround(viewport.center[0]), Math.fround(viewport.center[1])];
211
+ binIdRange = getBinIdRange({
212
+ dataBounds: bounds,
213
+ getBinId: (p) => {
214
+ const positionCommon = viewport.projectFlat(p);
215
+ return [
216
+ Math.floor((positionCommon[0] - cellOriginCommon[0]) / cellSizeCommon[0]),
217
+ Math.floor((positionCommon[1] - cellOriginCommon[1]) / cellSizeCommon[1])
218
+ ];
219
+ }
220
+ });
43
221
  }
44
- if (!GPUGridAggregator.isSupported(this.context.device)) {
45
- return false;
222
+ this.setState({ cellSizeCommon, cellOriginCommon, binIdRange, aggregatorViewport: viewport });
223
+ }
224
+ draw(opts) {
225
+ // Replaces render time viewport with our own
226
+ if (opts.shaderModuleProps.project) {
227
+ opts.shaderModuleProps.project.viewport = this.state.aggregatorViewport;
228
+ }
229
+ super.draw(opts);
230
+ }
231
+ _onAggregationUpdate({ channel }) {
232
+ const props = this.getCurrentLayer().props;
233
+ const { aggregator } = this.state;
234
+ if (channel === 0) {
235
+ const result = aggregator.getResult(0);
236
+ this.setState({
237
+ colors: new AttributeWithScale(result, aggregator.binCount)
238
+ });
239
+ props.onSetColorDomain(aggregator.getResultDomain(0));
46
240
  }
47
- if (lowerPercentile !== 0 || upperPercentile !== 100) {
48
- // percentile calculations requires sorting not supported on GPU
49
- return false;
241
+ else if (channel === 1) {
242
+ const result = aggregator.getResult(1);
243
+ this.setState({
244
+ elevations: new AttributeWithScale(result, aggregator.binCount)
245
+ });
246
+ props.onSetElevationDomain(aggregator.getResultDomain(1));
50
247
  }
51
- if (getColorValue !== null || getElevationValue !== null) {
52
- // accessor for custom color or elevation calculation is specified
53
- return false;
248
+ }
249
+ onAttributeChange(id) {
250
+ const { aggregator } = this.state;
251
+ switch (id) {
252
+ case 'positions':
253
+ aggregator.setNeedsUpdate();
254
+ this._updateBinOptions();
255
+ const { cellSizeCommon, cellOriginCommon, binIdRange } = this.state;
256
+ aggregator.setProps({
257
+ // @ts-expect-error only used by GPUAggregator
258
+ binIdRange,
259
+ binOptions: {
260
+ cellSizeCommon,
261
+ cellOriginCommon
262
+ }
263
+ });
264
+ break;
265
+ case 'colorWeights':
266
+ aggregator.setNeedsUpdate(0);
267
+ break;
268
+ case 'elevationWeights':
269
+ aggregator.setNeedsUpdate(1);
270
+ break;
271
+ default:
272
+ // This should not happen
273
+ }
274
+ }
275
+ renderLayers() {
276
+ const { aggregator, cellOriginCommon, cellSizeCommon } = this.state;
277
+ const { elevationScale, colorRange, elevationRange, extruded, coverage, material, transitions, colorScaleType, lowerPercentile, upperPercentile, colorDomain, elevationScaleType, elevationLowerPercentile, elevationUpperPercentile, elevationDomain } = this.props;
278
+ const CellLayerClass = this.getSubLayerClass('cells', GridCellLayer);
279
+ const binAttribute = aggregator.getBins();
280
+ const colors = this.state.colors?.update({
281
+ scaleType: colorScaleType,
282
+ lowerPercentile,
283
+ upperPercentile
284
+ });
285
+ const elevations = this.state.elevations?.update({
286
+ scaleType: elevationScaleType,
287
+ lowerPercentile: elevationLowerPercentile,
288
+ upperPercentile: elevationUpperPercentile
289
+ });
290
+ if (!colors || !elevations) {
291
+ return null;
54
292
  }
55
- if (colorScaleType === 'quantile' || colorScaleType === 'ordinal') {
56
- // quantile and ordinal scales are not supported on GPU
57
- return false;
293
+ return new CellLayerClass(this.getSubLayerProps({
294
+ id: 'cells'
295
+ }), {
296
+ data: {
297
+ length: aggregator.binCount,
298
+ attributes: {
299
+ getBin: binAttribute,
300
+ getColorValue: colors.attribute,
301
+ getElevationValue: elevations.attribute
302
+ }
303
+ },
304
+ // Data has changed shallowly, but we likely don't need to update the attributes
305
+ dataComparator: (data, oldData) => data.length === oldData.length,
306
+ updateTriggers: {
307
+ getBin: [binAttribute],
308
+ getColorValue: [colors.attribute],
309
+ getElevationValue: [elevations.attribute]
310
+ },
311
+ cellOriginCommon,
312
+ cellSizeCommon,
313
+ elevationScale,
314
+ colorRange,
315
+ colorScaleType,
316
+ elevationRange,
317
+ extruded,
318
+ coverage,
319
+ material,
320
+ colorDomain: colors.domain || colorDomain || aggregator.getResultDomain(0),
321
+ elevationDomain: elevations.domain || elevationDomain || aggregator.getResultDomain(1),
322
+ colorCutoff: colors.cutoff,
323
+ elevationCutoff: elevations.cutoff,
324
+ transitions: transitions && {
325
+ getFillColor: transitions.getColorValue || transitions.getColorWeight,
326
+ getElevation: transitions.getElevationValue || transitions.getElevationWeight
327
+ },
328
+ // Extensions are already handled by the GPUAggregator, do not pass it down
329
+ extensions: []
330
+ });
331
+ }
332
+ getPickingInfo(params) {
333
+ const info = params.info;
334
+ const { index } = info;
335
+ if (index >= 0) {
336
+ const bin = this.state.aggregator.getBin(index);
337
+ let object;
338
+ if (bin) {
339
+ object = {
340
+ col: bin.id[0],
341
+ row: bin.id[1],
342
+ colorValue: bin.value[0],
343
+ elevationValue: bin.value[1],
344
+ count: bin.count
345
+ };
346
+ if (bin.pointIndices) {
347
+ object.pointIndices = bin.pointIndices;
348
+ object.points = Array.isArray(this.props.data)
349
+ ? bin.pointIndices.map(i => this.props.data[i])
350
+ : [];
351
+ }
352
+ }
353
+ info.object = object;
58
354
  }
59
- return true;
355
+ return info;
60
356
  }
61
357
  }
62
358
  GridLayer.layerName = 'GridLayer';
@@ -2,6 +2,7 @@ import { CompositeLayer, AttributeManager, LayerDataSource, UpdateParameters, Co
2
2
  export type AggregationLayerProps<DataT> = CompositeLayerProps & {
3
3
  data: LayerDataSource<DataT>;
4
4
  };
5
+ /** Legacy AggregationLayer, to be removed in v9.1 */
5
6
  export default abstract class AggregationLayer<DataT, ExtraPropsT extends {} = {}> extends CompositeLayer<Required<AggregationLayer<DataT>> & ExtraPropsT> {
6
7
  static layerName: string;
7
8
  state: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregation-layer.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/aggregation-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,EAEf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACV,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,mBAAmB,GAAG;IAC/D,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;CAC9B,CAAC;AAEF,qDAAqD;AACrD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,gBAAgB,CAC5C,KAAK,EACL,WAAW,SAAS,EAAE,GAAG,EAAE,CAC3B,SAAQ,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC;IACvE,MAAM,CAAC,SAAS,SAAsB;IAEtC,KAAK,EAAG;QACN,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,UAAU,CAAC,EAAE,GAAG,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACzC,CAAC;IAEF,0BAA0B,CAAC,UAAU,EAAE,GAAG;IAU1C,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAexC,gBAAgB,CAAC,iBAAiB,KAAA;IAMlC,aAAa,IAAI;QAAC,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;KAAC;IAI1C,iBAAiB;IAiBjB,aAAa,CAAC,OAAO,KAAA;IAIrB;;;;;;;QAOI;IACJ,kBAAkB,CAChB,UAAU,KAAA,EACV,MAAM,GAAE;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,GAAG,CAAA;KAAM,GACnD,MAAM,GAAG,OAAO;IAyCnB;;;;;QAKI;IACJ,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;IAYhC,oBAAoB;CAMrB"}
@@ -1,24 +1,9 @@
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.
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
20
4
  import { CompositeLayer, AttributeManager, _compareProps as compareProps } from '@deck.gl/core';
21
- import { filterProps } from "./utils/prop-utils.js";
5
+ import { filterProps } from "../common/utils/prop-utils.js";
6
+ /** Legacy AggregationLayer, to be removed in v9.1 */
22
7
  class AggregationLayer extends CompositeLayer {
23
8
  initializeAggregationLayer(dimensions) {
24
9
  super.initializeState(this.context);
@@ -52,7 +37,7 @@ class AggregationLayer extends CompositeLayer {
52
37
  getModuleSettings() {
53
38
  // For regular layer draw this happens during draw cycle (_drawLayersInViewport) not during update cycle
54
39
  // For aggregation layers this is called during updateState to update aggregation data
55
- // NOTE: it is similar to LayerPass._getModuleParameters() but doesn't inlcude `effects` it is not needed for aggregation
40
+ // NOTE: it is similar to LayerPass._getShaderModuleProps() but doesn't inlcude `effects` it is not needed for aggregation
56
41
  const { viewport, mousePosition, device } = this.context;
57
42
  const moduleSettings = Object.assign(Object.create(this.props), {
58
43
  viewport,
@@ -0,0 +1,30 @@
1
+ import { Texture } from '@luma.gl/core';
2
+ export type WeightProps = {
3
+ commonBounds: [number, number, number, number];
4
+ radiusPixels: number;
5
+ textureWidth: number;
6
+ weightsScale: number;
7
+ weightsTexture: Texture;
8
+ };
9
+ export declare const weightUniforms: {
10
+ readonly name: "weight";
11
+ readonly vs: "uniform weightUniforms {\n vec4 commonBounds;\n float radiusPixels;\n float textureWidth;\n float weightsScale;\n} weight;\n";
12
+ readonly uniformTypes: {
13
+ readonly commonBounds: "vec4<f32>";
14
+ readonly radiusPixels: "f32";
15
+ readonly textureWidth: "f32";
16
+ readonly weightsScale: "f32";
17
+ };
18
+ };
19
+ export type MaxWeightProps = {
20
+ inTexture: Texture;
21
+ textureSize: number;
22
+ };
23
+ export declare const maxWeightUniforms: {
24
+ readonly name: "maxWeight";
25
+ readonly vs: "uniform maxWeightUniforms {\n float textureSize;\n} maxWeight;\n";
26
+ readonly uniformTypes: {
27
+ readonly textureSize: "f32";
28
+ };
29
+ };
30
+ //# sourceMappingURL=heatmap-layer-uniforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heatmap-layer-uniforms.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer-uniforms.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAWtC,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;CASmB,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;CAUmB,CAAC"}
@@ -0,0 +1,32 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const uniformBlock = `\
5
+ uniform weightUniforms {
6
+ vec4 commonBounds;
7
+ float radiusPixels;
8
+ float textureWidth;
9
+ float weightsScale;
10
+ } weight;
11
+ `;
12
+ export const weightUniforms = {
13
+ name: 'weight',
14
+ vs: uniformBlock,
15
+ uniformTypes: {
16
+ commonBounds: 'vec4<f32>',
17
+ radiusPixels: 'f32',
18
+ textureWidth: 'f32',
19
+ weightsScale: 'f32'
20
+ }
21
+ };
22
+ export const maxWeightUniforms = {
23
+ name: 'maxWeight',
24
+ vs: `\
25
+ uniform maxWeightUniforms {
26
+ float textureSize;
27
+ } maxWeight;
28
+ `,
29
+ uniformTypes: {
30
+ textureSize: 'f32'
31
+ }
32
+ };
@@ -1,6 +1,6 @@
1
1
  export declare function getBounds(points: number[][]): number[];
2
2
  export declare function boundsContain(currentBounds: number[], targetBounds: number[]): boolean;
3
3
  export declare function packVertices(points: number[][], dimensions?: number): Float32Array;
4
- export declare function scaleToAspectRatio(boundingBox: number[], width: number, height: number): number[];
4
+ export declare function scaleToAspectRatio(boundingBox: [number, number, number, number], width: number, height: number): [number, number, number, number];
5
5
  export declare function getTextureCoordinates(point: number[], bounds: number[]): number[];
6
6
  //# sourceMappingURL=heatmap-layer-utils.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"heatmap-layer-utils.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer-utils.ts"],"names":[],"mappings":"AAIA,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,CAChC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CA6BlC;AAGD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAGtE"}
@@ -1,3 +1,6 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  export function getBounds(points) {
2
5
  // Now build bounding box in world space (aligned to world coordiante system)
3
6
  const x = points.map(p => p[0]);
@@ -1,7 +1,7 @@
1
1
  import { Buffer, Texture, TextureFormat } from '@luma.gl/core';
2
2
  import { TextureTransform } from '@luma.gl/engine';
3
3
  import { Accessor, AccessorFunction, AttributeManager, ChangeFlags, Color, Layer, LayerContext, LayersList, Position, UpdateParameters, DefaultProps } from '@deck.gl/core';
4
- import AggregationLayer, { AggregationLayerProps } from "../aggregation-layer.js";
4
+ import AggregationLayer, { AggregationLayerProps } from "./aggregation-layer.js";
5
5
  export type HeatmapLayerProps<DataT = unknown> = _HeatmapLayerProps<DataT> & AggregationLayerProps<DataT>;
6
6
  type _HeatmapLayerProps<DataT> = {
7
7
  /**
@@ -93,6 +93,7 @@ export default class HeatmapLayer<DataT = any, ExtraPropsT extends {} = {}> exte
93
93
  visibleWorldBounds: number[];
94
94
  viewportCorners: number[][];
95
95
  };
96
+ getShaders(shaders: any): any;
96
97
  initializeState(): void;
97
98
  shouldUpdateState({ changeFlags }: UpdateParameters<this>): boolean;
98
99
  updateState(opts: UpdateParameters<this>): void;
@@ -101,8 +102,8 @@ export default class HeatmapLayer<DataT = any, ExtraPropsT extends {} = {}> exte
101
102
  finalizeState(context: LayerContext): void;
102
103
  _getAttributeManager(): AttributeManager;
103
104
  _getChangeFlags(opts: UpdateParameters<this>): Partial<ChangeFlags> & {
104
- boundsChanged?: boolean | undefined;
105
- viewportZoomChanged?: boolean | undefined;
105
+ boundsChanged?: boolean;
106
+ viewportZoomChanged?: boolean;
106
107
  };
107
108
  _createTextures(): void;
108
109
  _setupAttributes(): void;
@@ -110,6 +111,7 @@ export default class HeatmapLayer<DataT = any, ExtraPropsT extends {} = {}> exte
110
111
  _createWeightsTransform(shaders: {
111
112
  vs: string;
112
113
  fs?: string;
114
+ modules: any[];
113
115
  }): void;
114
116
  _setupResources(): void;
115
117
  updateShaders(shaderOptions: any): void;
@@ -121,7 +123,7 @@ export default class HeatmapLayer<DataT = any, ExtraPropsT extends {} = {}> exte
121
123
  _debouncedUpdateWeightmap(fromTimer?: boolean): void;
122
124
  _worldToCommonBounds(worldBounds: any, opts?: {
123
125
  useLayerCoordinateSystem?: boolean;
124
- }): number[];
126
+ }): [number, number, number, number];
125
127
  _commonToWorldBounds(commonBounds: any): number[];
126
128
  }
127
129
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap-layer.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heatmap-layer.d.ts","sourceRoot":"","sources":["../../src/heatmap-layer/heatmap-layer.ts"],"names":[],"mappings":"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"}