@deck.gl/aggregation-layers 9.0.0-alpha.7 → 9.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/{typed → dist}/aggregation-layer.d.ts.map +1 -1
  2. package/dist/aggregation-layer.js +153 -0
  3. package/{typed → dist}/contour-layer/contour-layer.d.ts +1 -1
  4. package/dist/contour-layer/contour-layer.d.ts.map +1 -0
  5. package/dist/contour-layer/contour-layer.js +240 -0
  6. package/dist/contour-layer/contour-utils.js +64 -0
  7. package/dist/contour-layer/marching-squares-codes.js +337 -0
  8. package/dist/contour-layer/marching-squares.js +147 -0
  9. package/{typed → dist}/cpu-grid-layer/cpu-grid-layer.d.ts +3 -3
  10. package/dist/cpu-grid-layer/cpu-grid-layer.d.ts.map +1 -0
  11. package/dist/cpu-grid-layer/cpu-grid-layer.js +129 -0
  12. package/dist/cpu-grid-layer/grid-aggregator.js +141 -0
  13. package/dist/dist.dev.js +1447 -10846
  14. package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +30 -0
  15. package/dist/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +112 -0
  16. package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer.d.ts +1 -1
  17. package/dist/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +1 -0
  18. package/dist/gpu-grid-layer/gpu-grid-cell-layer.js +145 -0
  19. package/{typed → dist}/gpu-grid-layer/gpu-grid-layer.d.ts +4 -4
  20. package/dist/gpu-grid-layer/gpu-grid-layer.d.ts.map +1 -0
  21. package/dist/gpu-grid-layer/gpu-grid-layer.js +288 -0
  22. package/{typed → dist}/grid-aggregation-layer.d.ts +3 -3
  23. package/dist/grid-aggregation-layer.d.ts.map +1 -0
  24. package/dist/grid-aggregation-layer.js +172 -0
  25. package/{typed → dist}/grid-layer/grid-layer.d.ts +2 -2
  26. package/dist/grid-layer/grid-layer.d.ts.map +1 -0
  27. package/dist/grid-layer/grid-layer.js +63 -0
  28. package/{typed → dist}/heatmap-layer/heatmap-layer-utils.d.ts +0 -9
  29. package/dist/heatmap-layer/heatmap-layer-utils.d.ts.map +1 -0
  30. package/dist/heatmap-layer/heatmap-layer-utils.js +63 -0
  31. package/{typed → dist}/heatmap-layer/heatmap-layer.d.ts +5 -6
  32. package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -0
  33. package/dist/heatmap-layer/heatmap-layer.js +455 -0
  34. package/dist/heatmap-layer/max-fs.glsl.js +9 -0
  35. package/dist/heatmap-layer/max-vs.glsl.d.ts +3 -0
  36. package/{typed → dist}/heatmap-layer/max-vs.glsl.d.ts.map +1 -1
  37. package/dist/heatmap-layer/max-vs.glsl.js +15 -0
  38. package/dist/heatmap-layer/triangle-layer-fragment.glsl.d.ts +3 -0
  39. package/dist/heatmap-layer/triangle-layer-fragment.glsl.js +51 -0
  40. package/dist/heatmap-layer/triangle-layer-vertex.glsl.js +47 -0
  41. package/{typed → dist}/heatmap-layer/triangle-layer.d.ts +10 -2
  42. package/dist/heatmap-layer/triangle-layer.d.ts.map +1 -0
  43. package/dist/heatmap-layer/triangle-layer.js +59 -0
  44. package/dist/heatmap-layer/weights-fs.glsl.js +17 -0
  45. package/dist/heatmap-layer/weights-vs.glsl.d.ts +3 -0
  46. package/{typed → dist}/heatmap-layer/weights-vs.glsl.d.ts.map +1 -1
  47. package/dist/heatmap-layer/weights-vs.glsl.js +21 -0
  48. package/dist/hexagon-layer/hexagon-aggregator.js +112 -0
  49. package/{typed → dist}/hexagon-layer/hexagon-layer.d.ts +4 -4
  50. package/dist/hexagon-layer/hexagon-layer.d.ts.map +1 -0
  51. package/dist/hexagon-layer/hexagon-layer.js +173 -0
  52. package/dist/index.cjs +4327 -0
  53. package/dist/index.cjs.map +7 -0
  54. package/dist/index.d.ts +20 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +32 -0
  57. package/{typed → dist}/screen-grid-layer/screen-grid-cell-layer.d.ts +2 -3
  58. package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -0
  59. package/dist/screen-grid-layer/screen-grid-cell-layer.js +163 -0
  60. package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.js +35 -0
  61. package/dist/screen-grid-layer/screen-grid-layer-vertex.glsl.js +72 -0
  62. package/{typed → dist}/screen-grid-layer/screen-grid-layer.d.ts +1 -4
  63. package/dist/screen-grid-layer/screen-grid-layer.d.ts.map +1 -0
  64. package/dist/screen-grid-layer/screen-grid-layer.js +209 -0
  65. package/dist/types.js +1 -0
  66. package/dist/utils/aggregation-operation-utils.js +94 -0
  67. package/{typed → dist}/utils/bin-sorter.d.ts +1 -1
  68. package/dist/utils/bin-sorter.js +167 -0
  69. package/dist/utils/color-utils.js +53 -0
  70. package/dist/utils/cpu-aggregator.js +421 -0
  71. package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +36 -0
  72. package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +42 -0
  73. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +30 -0
  74. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +61 -0
  75. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +41 -0
  76. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +1 -0
  77. package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts.map +1 -1
  78. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +555 -0
  79. package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +32 -0
  80. package/dist/utils/grid-aggregation-utils.js +114 -0
  81. package/dist/utils/prop-utils.js +28 -0
  82. package/{typed → dist}/utils/resource-utils.d.ts.map +1 -1
  83. package/dist/utils/resource-utils.js +38 -0
  84. package/dist/utils/scale-utils.js +184 -0
  85. package/dist.min.js +299 -555
  86. package/package.json +19 -14
  87. package/src/aggregation-layer.ts +3 -1
  88. package/src/contour-layer/contour-layer.ts +4 -5
  89. package/src/cpu-grid-layer/cpu-grid-layer.ts +1 -2
  90. package/src/gpu-grid-layer/gpu-grid-cell-layer.ts +1 -1
  91. package/src/gpu-grid-layer/gpu-grid-layer.ts +3 -3
  92. package/src/grid-layer/grid-layer.ts +4 -2
  93. package/src/heatmap-layer/heatmap-layer-utils.ts +0 -23
  94. package/src/heatmap-layer/heatmap-layer.ts +92 -128
  95. package/src/heatmap-layer/max-vs.glsl.ts +11 -5
  96. package/src/heatmap-layer/triangle-layer-fragment.glsl.ts +2 -2
  97. package/src/heatmap-layer/triangle-layer.ts +17 -24
  98. package/src/heatmap-layer/weights-vs.glsl.ts +4 -2
  99. package/src/hexagon-layer/hexagon-layer.ts +2 -3
  100. package/src/screen-grid-layer/screen-grid-cell-layer.ts +0 -4
  101. package/src/screen-grid-layer/screen-grid-layer.ts +2 -12
  102. package/src/utils/cpu-aggregator.ts +1 -1
  103. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts +14 -28
  104. package/src/utils/resource-utils.ts +2 -8
  105. package/dist/es5/aggregation-layer.js +0 -213
  106. package/dist/es5/aggregation-layer.js.map +0 -1
  107. package/dist/es5/contour-layer/contour-layer.js +0 -353
  108. package/dist/es5/contour-layer/contour-layer.js.map +0 -1
  109. package/dist/es5/contour-layer/contour-utils.js +0 -110
  110. package/dist/es5/contour-layer/contour-utils.js.map +0 -1
  111. package/dist/es5/contour-layer/marching-squares-codes.js +0 -152
  112. package/dist/es5/contour-layer/marching-squares-codes.js.map +0 -1
  113. package/dist/es5/contour-layer/marching-squares.js +0 -168
  114. package/dist/es5/contour-layer/marching-squares.js.map +0 -1
  115. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js +0 -235
  116. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
  117. package/dist/es5/cpu-grid-layer/grid-aggregator.js +0 -180
  118. package/dist/es5/cpu-grid-layer/grid-aggregator.js.map +0 -1
  119. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -9
  120. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
  121. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -9
  122. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
  123. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js +0 -247
  124. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
  125. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js +0 -424
  126. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
  127. package/dist/es5/grid-aggregation-layer.js +0 -280
  128. package/dist/es5/grid-aggregation-layer.js.map +0 -1
  129. package/dist/es5/grid-layer/grid-layer.js +0 -125
  130. package/dist/es5/grid-layer/grid-layer.js.map +0 -1
  131. package/dist/es5/heatmap-layer/heatmap-layer-utils.js +0 -122
  132. package/dist/es5/heatmap-layer/heatmap-layer-utils.js.map +0 -1
  133. package/dist/es5/heatmap-layer/heatmap-layer.js +0 -672
  134. package/dist/es5/heatmap-layer/heatmap-layer.js.map +0 -1
  135. package/dist/es5/heatmap-layer/max-fs.glsl.js +0 -9
  136. package/dist/es5/heatmap-layer/max-fs.glsl.js.map +0 -1
  137. package/dist/es5/heatmap-layer/max-vs.glsl.js +0 -9
  138. package/dist/es5/heatmap-layer/max-vs.glsl.js.map +0 -1
  139. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js +0 -9
  140. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
  141. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js +0 -9
  142. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
  143. package/dist/es5/heatmap-layer/triangle-layer.js +0 -122
  144. package/dist/es5/heatmap-layer/triangle-layer.js.map +0 -1
  145. package/dist/es5/heatmap-layer/weights-fs.glsl.js +0 -9
  146. package/dist/es5/heatmap-layer/weights-fs.glsl.js.map +0 -1
  147. package/dist/es5/heatmap-layer/weights-vs.glsl.js +0 -9
  148. package/dist/es5/heatmap-layer/weights-vs.glsl.js.map +0 -1
  149. package/dist/es5/hexagon-layer/hexagon-aggregator.js +0 -118
  150. package/dist/es5/hexagon-layer/hexagon-aggregator.js.map +0 -1
  151. package/dist/es5/hexagon-layer/hexagon-layer.js +0 -289
  152. package/dist/es5/hexagon-layer/hexagon-layer.js.map +0 -1
  153. package/dist/es5/index.js +0 -104
  154. package/dist/es5/index.js.map +0 -1
  155. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js +0 -244
  156. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
  157. package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -9
  158. package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
  159. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -9
  160. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
  161. package/dist/es5/screen-grid-layer/screen-grid-layer.js +0 -317
  162. package/dist/es5/screen-grid-layer/screen-grid-layer.js.map +0 -1
  163. package/dist/es5/types.js +0 -2
  164. package/dist/es5/types.js.map +0 -1
  165. package/dist/es5/utils/aggregation-operation-utils.js +0 -123
  166. package/dist/es5/utils/aggregation-operation-utils.js.map +0 -1
  167. package/dist/es5/utils/bin-sorter.js +0 -248
  168. package/dist/es5/utils/bin-sorter.js.map +0 -1
  169. package/dist/es5/utils/color-utils.js +0 -39
  170. package/dist/es5/utils/color-utils.js.map +0 -1
  171. package/dist/es5/utils/cpu-aggregator.js +0 -496
  172. package/dist/es5/utils/cpu-aggregator.js.map +0 -1
  173. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -9
  174. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
  175. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -9
  176. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
  177. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -9
  178. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
  179. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -9
  180. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
  181. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -63
  182. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
  183. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
  184. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
  185. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -732
  186. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
  187. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  188. package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -9
  189. package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
  190. package/dist/es5/utils/grid-aggregation-utils.js +0 -118
  191. package/dist/es5/utils/grid-aggregation-utils.js.map +0 -1
  192. package/dist/es5/utils/prop-utils.js +0 -19
  193. package/dist/es5/utils/prop-utils.js.map +0 -1
  194. package/dist/es5/utils/resource-utils.js +0 -61
  195. package/dist/es5/utils/resource-utils.js.map +0 -1
  196. package/dist/es5/utils/scale-utils.js +0 -254
  197. package/dist/es5/utils/scale-utils.js.map +0 -1
  198. package/dist/esm/aggregation-layer.js +0 -154
  199. package/dist/esm/aggregation-layer.js.map +0 -1
  200. package/dist/esm/contour-layer/contour-layer.js +0 -316
  201. package/dist/esm/contour-layer/contour-layer.js.map +0 -1
  202. package/dist/esm/contour-layer/contour-utils.js +0 -81
  203. package/dist/esm/contour-layer/contour-utils.js.map +0 -1
  204. package/dist/esm/contour-layer/marching-squares-codes.js +0 -219
  205. package/dist/esm/contour-layer/marching-squares-codes.js.map +0 -1
  206. package/dist/esm/contour-layer/marching-squares.js +0 -151
  207. package/dist/esm/contour-layer/marching-squares.js.map +0 -1
  208. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js +0 -186
  209. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
  210. package/dist/esm/cpu-grid-layer/grid-aggregator.js +0 -142
  211. package/dist/esm/cpu-grid-layer/grid-aggregator.js.map +0 -1
  212. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -16
  213. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
  214. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -122
  215. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
  216. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js +0 -196
  217. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
  218. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js +0 -399
  219. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
  220. package/dist/esm/grid-aggregation-layer.js +0 -240
  221. package/dist/esm/grid-aggregation-layer.js.map +0 -1
  222. package/dist/esm/grid-layer/grid-layer.js +0 -80
  223. package/dist/esm/grid-layer/grid-layer.js.map +0 -1
  224. package/dist/esm/heatmap-layer/heatmap-layer-utils.js +0 -68
  225. package/dist/esm/heatmap-layer/heatmap-layer-utils.js.map +0 -1
  226. package/dist/esm/heatmap-layer/heatmap-layer.js +0 -626
  227. package/dist/esm/heatmap-layer/heatmap-layer.js.map +0 -1
  228. package/dist/esm/heatmap-layer/max-fs.glsl.js +0 -10
  229. package/dist/esm/heatmap-layer/max-fs.glsl.js.map +0 -1
  230. package/dist/esm/heatmap-layer/max-vs.glsl.js +0 -14
  231. package/dist/esm/heatmap-layer/max-vs.glsl.js.map +0 -1
  232. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +0 -43
  233. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
  234. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +0 -33
  235. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
  236. package/dist/esm/heatmap-layer/triangle-layer.js +0 -80
  237. package/dist/esm/heatmap-layer/triangle-layer.js.map +0 -1
  238. package/dist/esm/heatmap-layer/weights-fs.glsl.js +0 -22
  239. package/dist/esm/heatmap-layer/weights-fs.glsl.js.map +0 -1
  240. package/dist/esm/heatmap-layer/weights-vs.glsl.js +0 -25
  241. package/dist/esm/heatmap-layer/weights-vs.glsl.js.map +0 -1
  242. package/dist/esm/hexagon-layer/hexagon-aggregator.js +0 -87
  243. package/dist/esm/hexagon-layer/hexagon-aggregator.js.map +0 -1
  244. package/dist/esm/hexagon-layer/hexagon-layer.js +0 -232
  245. package/dist/esm/hexagon-layer/hexagon-layer.js.map +0 -1
  246. package/dist/esm/index.js +0 -13
  247. package/dist/esm/index.js.map +0 -1
  248. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js +0 -203
  249. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
  250. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -21
  251. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
  252. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -66
  253. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
  254. package/dist/esm/screen-grid-layer/screen-grid-layer.js +0 -285
  255. package/dist/esm/screen-grid-layer/screen-grid-layer.js.map +0 -1
  256. package/dist/esm/types.js +0 -2
  257. package/dist/esm/types.js.map +0 -1
  258. package/dist/esm/utils/aggregation-operation-utils.js +0 -91
  259. package/dist/esm/utils/aggregation-operation-utils.js.map +0 -1
  260. package/dist/esm/utils/bin-sorter.js +0 -165
  261. package/dist/esm/utils/bin-sorter.js.map +0 -1
  262. package/dist/esm/utils/color-utils.js +0 -28
  263. package/dist/esm/utils/color-utils.js.map +0 -1
  264. package/dist/esm/utils/cpu-aggregator.js +0 -487
  265. package/dist/esm/utils/cpu-aggregator.js.map +0 -1
  266. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -21
  267. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
  268. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -35
  269. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
  270. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -16
  271. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
  272. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -60
  273. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
  274. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -42
  275. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
  276. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
  277. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
  278. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -720
  279. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
  280. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  281. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -19
  282. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
  283. package/dist/esm/utils/grid-aggregation-utils.js +0 -109
  284. package/dist/esm/utils/grid-aggregation-utils.js.map +0 -1
  285. package/dist/esm/utils/prop-utils.js +0 -12
  286. package/dist/esm/utils/prop-utils.js.map +0 -1
  287. package/dist/esm/utils/resource-utils.js +0 -45
  288. package/dist/esm/utils/resource-utils.js.map +0 -1
  289. package/dist/esm/utils/scale-utils.js +0 -192
  290. package/dist/esm/utils/scale-utils.js.map +0 -1
  291. package/typed/contour-layer/contour-layer.d.ts.map +0 -1
  292. package/typed/cpu-grid-layer/cpu-grid-layer.d.ts.map +0 -1
  293. package/typed/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +0 -1
  294. package/typed/gpu-grid-layer/gpu-grid-layer.d.ts.map +0 -1
  295. package/typed/grid-aggregation-layer.d.ts.map +0 -1
  296. package/typed/grid-layer/grid-layer.d.ts.map +0 -1
  297. package/typed/heatmap-layer/heatmap-layer-utils.d.ts.map +0 -1
  298. package/typed/heatmap-layer/heatmap-layer.d.ts.map +0 -1
  299. package/typed/heatmap-layer/max-vs.glsl.d.ts +0 -3
  300. package/typed/heatmap-layer/triangle-layer-fragment.glsl.d.ts +0 -3
  301. package/typed/heatmap-layer/triangle-layer.d.ts.map +0 -1
  302. package/typed/heatmap-layer/weights-vs.glsl.d.ts +0 -3
  303. package/typed/hexagon-layer/hexagon-layer.d.ts.map +0 -1
  304. package/typed/index.d.ts +0 -20
  305. package/typed/index.d.ts.map +0 -1
  306. package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts.map +0 -1
  307. package/typed/screen-grid-layer/screen-grid-layer.d.ts.map +0 -1
  308. /package/{typed → dist}/aggregation-layer.d.ts +0 -0
  309. /package/{typed → dist}/contour-layer/contour-utils.d.ts +0 -0
  310. /package/{typed → dist}/contour-layer/contour-utils.d.ts.map +0 -0
  311. /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts +0 -0
  312. /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts.map +0 -0
  313. /package/{typed → dist}/contour-layer/marching-squares.d.ts +0 -0
  314. /package/{typed → dist}/contour-layer/marching-squares.d.ts.map +0 -0
  315. /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts +0 -0
  316. /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts.map +0 -0
  317. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts +0 -0
  318. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts.map +0 -0
  319. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts +0 -0
  320. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts.map +0 -0
  321. /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts +0 -0
  322. /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts.map +0 -0
  323. /package/{typed → dist}/heatmap-layer/triangle-layer-fragment.glsl.d.ts.map +0 -0
  324. /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts +0 -0
  325. /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts.map +0 -0
  326. /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts +0 -0
  327. /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts.map +0 -0
  328. /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts +0 -0
  329. /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts.map +0 -0
  330. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts +0 -0
  331. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts.map +0 -0
  332. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts +0 -0
  333. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts.map +0 -0
  334. /package/{typed → dist}/types.d.ts +0 -0
  335. /package/{typed → dist}/types.d.ts.map +0 -0
  336. /package/{typed → dist}/utils/aggregation-operation-utils.d.ts +0 -0
  337. /package/{typed → dist}/utils/aggregation-operation-utils.d.ts.map +0 -0
  338. /package/{typed → dist}/utils/bin-sorter.d.ts.map +0 -0
  339. /package/{typed → dist}/utils/color-utils.d.ts +0 -0
  340. /package/{typed → dist}/utils/color-utils.d.ts.map +0 -0
  341. /package/{typed → dist}/utils/cpu-aggregator.d.ts +0 -0
  342. /package/{typed → dist}/utils/cpu-aggregator.d.ts.map +0 -0
  343. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts +0 -0
  344. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts.map +0 -0
  345. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts +0 -0
  346. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts.map +0 -0
  347. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts +0 -0
  348. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts.map +0 -0
  349. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts +0 -0
  350. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts.map +0 -0
  351. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts +0 -0
  352. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts.map +0 -0
  353. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts +0 -0
  354. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts.map +0 -0
  355. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts +0 -0
  356. /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts +0 -0
  357. /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts.map +0 -0
  358. /package/{typed → dist}/utils/grid-aggregation-utils.d.ts +0 -0
  359. /package/{typed → dist}/utils/grid-aggregation-utils.d.ts.map +0 -0
  360. /package/{typed → dist}/utils/prop-utils.d.ts +0 -0
  361. /package/{typed → dist}/utils/prop-utils.d.ts.map +0 -0
  362. /package/{typed → dist}/utils/resource-utils.d.ts +0 -0
  363. /package/{typed → dist}/utils/scale-utils.d.ts +0 -0
  364. /package/{typed → dist}/utils/scale-utils.d.ts.map +0 -0
@@ -1,720 +0,0 @@
1
- import { Model, TextureTransform } from '@luma.gl/engine';
2
- import { fp64arithmetic } from '@luma.gl/shadertools';
3
- import { readPixelsToBuffer, withGLParameters, clear } from '@luma.gl/webgl';
4
- import { GL } from '@luma.gl/constants';
5
- import { log, project32, _mergeShaders as mergeShaders, getShaderAssembler } from '@deck.gl/core';
6
- import { DEFAULT_RUN_PARAMS, MAX_32_BIT_FLOAT, MIN_BLEND_EQUATION, MAX_BLEND_EQUATION, MAX_MIN_BLEND_EQUATION, EQUATION_MAP, DEFAULT_WEIGHT_PARAMS, PIXEL_SIZE } from './gpu-grid-aggregator-constants';
7
- import { AGGREGATION_OPERATION } from '../aggregation-operation-utils';
8
- import AGGREGATE_TO_GRID_VS from './aggregate-to-grid-vs.glsl';
9
- import AGGREGATE_TO_GRID_FS from './aggregate-to-grid-fs.glsl';
10
- import AGGREGATE_ALL_VS from './aggregate-all-vs.glsl';
11
- import AGGREGATE_ALL_FS from './aggregate-all-fs.glsl';
12
- import TRANSFORM_MEAN_VS from './transform-mean-vs.glsl';
13
- import { getFloatTexture, getFramebuffer } from './../resource-utils';
14
- const BUFFER_NAMES = ['aggregationBuffer', 'maxMinBuffer', 'minBuffer', 'maxBuffer'];
15
- const ARRAY_BUFFER_MAP = {
16
- maxData: 'maxBuffer',
17
- minData: 'minBuffer',
18
- maxMinData: 'maxMinBuffer'
19
- };
20
- const REQUIRED_FEATURES = ['webgl2', 'blend-minmax-webgl1', 'texture-renderable-float32-webgl', 'texture-blend-float-webgl1', 'texture-formats-float32-webgl1'];
21
- export default class GPUGridAggregator {
22
- static getAggregationData({
23
- aggregationData,
24
- maxData,
25
- minData,
26
- maxMinData,
27
- pixelIndex
28
- }) {
29
- const index = pixelIndex * PIXEL_SIZE;
30
- const results = {};
31
-
32
- if (aggregationData) {
33
- results.cellCount = aggregationData[index + 3];
34
- results.cellWeight = aggregationData[index];
35
- }
36
-
37
- if (maxMinData) {
38
- results.maxCellWieght = maxMinData[0];
39
- results.minCellWeight = maxMinData[3];
40
- } else {
41
- if (maxData) {
42
- results.maxCellWieght = maxData[0];
43
- results.totalCount = maxData[3];
44
- }
45
-
46
- if (minData) {
47
- results.minCellWeight = minData[0];
48
- results.totalCount = minData[3];
49
- }
50
- }
51
-
52
- return results;
53
- }
54
-
55
- static getCellData({
56
- countsData,
57
- size = 1
58
- }) {
59
- const numCells = countsData.length / 4;
60
- const cellWeights = new Float32Array(numCells * size);
61
- const cellCounts = new Uint32Array(numCells);
62
-
63
- for (let i = 0; i < numCells; i++) {
64
- for (let sizeIndex = 0; sizeIndex < size; sizeIndex++) {
65
- cellWeights[i * size + sizeIndex] = countsData[i * 4 + sizeIndex];
66
- }
67
-
68
- cellCounts[i] = countsData[i * 4 + 3];
69
- }
70
-
71
- return {
72
- cellCounts,
73
- cellWeights
74
- };
75
- }
76
-
77
- static isSupported(device) {
78
- return REQUIRED_FEATURES.every(feature => device.features.has(feature));
79
- }
80
-
81
- constructor(device, props = {}) {
82
- this.state = {
83
- weightAttributes: {},
84
- textures: {},
85
- meanTextures: {},
86
- buffers: {},
87
- framebuffers: {},
88
- maxMinFramebuffers: {},
89
- minFramebuffers: {},
90
- maxFramebuffers: {},
91
- equations: {},
92
- shaderOptions: {},
93
- modelDirty: false,
94
- resources: {},
95
- results: {}
96
- };
97
- this.id = void 0;
98
- this.device = void 0;
99
- this._hasGPUSupport = void 0;
100
- this.gridAggregationModel = void 0;
101
- this.allAggregationModel = void 0;
102
- this.meanTransform = void 0;
103
- this.id = props.id || 'gpu-grid-aggregator';
104
- this.device = device;
105
- const REQUIRED_FEATURES = ['blend-minmax-webgl1', 'texture-renderable-float32-webgl', 'texture-formats-float32-webgl1'];
106
- this._hasGPUSupport = this.device.info.type === 'webgl2' && REQUIRED_FEATURES.every(feature => device.features.has(feature));
107
-
108
- if (this._hasGPUSupport) {
109
- this._setupModels();
110
- }
111
- }
112
-
113
- delete() {
114
- const {
115
- gridAggregationModel,
116
- allAggregationModel,
117
- meanTransform
118
- } = this;
119
- const {
120
- textures,
121
- framebuffers,
122
- maxMinFramebuffers,
123
- minFramebuffers,
124
- maxFramebuffers,
125
- meanTextures,
126
- resources
127
- } = this.state;
128
- gridAggregationModel === null || gridAggregationModel === void 0 ? void 0 : gridAggregationModel.destroy();
129
- allAggregationModel === null || allAggregationModel === void 0 ? void 0 : allAggregationModel.destroy();
130
- meanTransform === null || meanTransform === void 0 ? void 0 : meanTransform.destroy();
131
- deleteResources([framebuffers, textures, maxMinFramebuffers, minFramebuffers, maxFramebuffers, meanTextures, resources]);
132
- }
133
-
134
- run(opts = {}) {
135
- this.setState({
136
- results: {}
137
- });
138
-
139
- const aggregationParams = this._normalizeAggregationParams(opts);
140
-
141
- if (!this._hasGPUSupport) {
142
- log.log(1, 'GPUGridAggregator: not supported')();
143
- }
144
-
145
- return this._runAggregation(aggregationParams);
146
- }
147
-
148
- getData(weightId) {
149
- const data = {};
150
- const results = this.state.results;
151
-
152
- if (!results[weightId].aggregationData) {
153
- results[weightId].aggregationData = results[weightId].aggregationBuffer.getData();
154
- }
155
-
156
- data.aggregationData = results[weightId].aggregationData;
157
-
158
- for (const arrayName in ARRAY_BUFFER_MAP) {
159
- const bufferName = ARRAY_BUFFER_MAP[arrayName];
160
-
161
- if (results[weightId][arrayName] || results[weightId][bufferName]) {
162
- results[weightId][arrayName] = results[weightId][arrayName] || results[weightId][bufferName].getData();
163
- data[arrayName] = results[weightId][arrayName];
164
- }
165
- }
166
-
167
- return data;
168
- }
169
-
170
- updateShaders(shaderOptions = {}) {
171
- this.setState({
172
- shaderOptions,
173
- modelDirty: true
174
- });
175
- }
176
-
177
- _normalizeAggregationParams(opts) {
178
- const aggregationParams = { ...DEFAULT_RUN_PARAMS,
179
- ...opts
180
- };
181
- const {
182
- weights
183
- } = aggregationParams;
184
-
185
- if (weights) {
186
- aggregationParams.weights = normalizeWeightParams(weights);
187
- }
188
-
189
- return aggregationParams;
190
- }
191
-
192
- setState(updateObject) {
193
- Object.assign(this.state, updateObject);
194
- }
195
-
196
- _getAggregateData(opts) {
197
- const results = {};
198
- const {
199
- textures,
200
- framebuffers,
201
- maxMinFramebuffers,
202
- minFramebuffers,
203
- maxFramebuffers,
204
- resources
205
- } = this.state;
206
- const {
207
- weights
208
- } = opts;
209
-
210
- for (const id in weights) {
211
- results[id] = {};
212
- const {
213
- needMin,
214
- needMax,
215
- combineMaxMin
216
- } = weights[id];
217
- results[id].aggregationTexture = textures[id];
218
- results[id].aggregationBuffer = readPixelsToBuffer(framebuffers[id], {
219
- target: weights[id].aggregationBuffer,
220
- sourceType: 5126
221
- });
222
-
223
- if (needMin && needMax && combineMaxMin) {
224
- results[id].maxMinBuffer = readPixelsToBuffer(maxMinFramebuffers[id], {
225
- target: weights[id].maxMinBuffer,
226
- sourceType: 5126
227
- });
228
- results[id].maxMinTexture = resources[`${id}-maxMinTexture`];
229
- } else {
230
- if (needMin) {
231
- results[id].minBuffer = readPixelsToBuffer(minFramebuffers[id], {
232
- target: weights[id].minBuffer,
233
- sourceType: 5126
234
- });
235
- results[id].minTexture = resources[`${id}-minTexture`];
236
- }
237
-
238
- if (needMax) {
239
- results[id].maxBuffer = readPixelsToBuffer(maxFramebuffers[id], {
240
- target: weights[id].maxBuffer,
241
- sourceType: 5126
242
- });
243
- results[id].maxTexture = resources[`${id}-maxTexture`];
244
- }
245
- }
246
- }
247
-
248
- this._trackGPUResultBuffers(results, weights);
249
-
250
- return results;
251
- }
252
-
253
- _renderAggregateData(opts) {
254
- const {
255
- cellSize,
256
- projectPoints,
257
- attributes,
258
- moduleSettings,
259
- numCol,
260
- numRow,
261
- weights,
262
- translation,
263
- scaling
264
- } = opts;
265
- const {
266
- maxMinFramebuffers,
267
- minFramebuffers,
268
- maxFramebuffers
269
- } = this.state;
270
- const gridSize = [numCol, numRow];
271
- const parameters = {
272
- blend: true,
273
- depthTest: false,
274
- blendFunc: [1, 1]
275
- };
276
- const uniforms = {
277
- cellSize,
278
- gridSize,
279
- projectPoints,
280
- translation,
281
- scaling
282
- };
283
-
284
- for (const id in weights) {
285
- const {
286
- needMin,
287
- needMax
288
- } = weights[id];
289
- const combineMaxMin = needMin && needMax && weights[id].combineMaxMin;
290
-
291
- this._renderToWeightsTexture({
292
- id,
293
- parameters,
294
- moduleSettings,
295
- uniforms,
296
- gridSize,
297
- attributes,
298
- weights
299
- });
300
-
301
- if (combineMaxMin) {
302
- this._renderToMaxMinTexture({
303
- id,
304
- parameters: { ...parameters,
305
- blendEquation: MAX_MIN_BLEND_EQUATION
306
- },
307
- gridSize,
308
- minOrMaxFb: maxMinFramebuffers[id],
309
- clearParams: {
310
- clearColor: [0, 0, 0, MAX_32_BIT_FLOAT]
311
- },
312
- combineMaxMin
313
- });
314
- } else {
315
- if (needMin) {
316
- this._renderToMaxMinTexture({
317
- id,
318
- parameters: { ...parameters,
319
- blendEquation: MIN_BLEND_EQUATION
320
- },
321
- gridSize,
322
- minOrMaxFb: minFramebuffers[id],
323
- clearParams: {
324
- clearColor: [MAX_32_BIT_FLOAT, MAX_32_BIT_FLOAT, MAX_32_BIT_FLOAT, 0]
325
- },
326
- combineMaxMin
327
- });
328
- }
329
-
330
- if (needMax) {
331
- this._renderToMaxMinTexture({
332
- id,
333
- parameters: { ...parameters,
334
- blendEquation: MAX_BLEND_EQUATION
335
- },
336
- gridSize,
337
- minOrMaxFb: maxFramebuffers[id],
338
- clearParams: {
339
- clearColor: [0, 0, 0, 0]
340
- },
341
- combineMaxMin
342
- });
343
- }
344
- }
345
- }
346
- }
347
-
348
- _renderToMaxMinTexture(opts) {
349
- const {
350
- id,
351
- parameters,
352
- gridSize,
353
- minOrMaxFb,
354
- combineMaxMin,
355
- clearParams = {}
356
- } = opts;
357
- const {
358
- framebuffers
359
- } = this.state;
360
- const {
361
- allAggregationModel
362
- } = this;
363
- withGLParameters(this.device, { ...clearParams,
364
- framebuffer: minOrMaxFb,
365
- viewport: [0, 0, gridSize[0], gridSize[1]]
366
- }, () => {
367
- clear(this.device, {
368
- color: true
369
- });
370
- allAggregationModel.setUniforms({
371
- gridSize,
372
- combineMaxMin
373
- });
374
- allAggregationModel.setBindings({
375
- uSampler: framebuffers[id].texture
376
- });
377
- allAggregationModel.draw();
378
- });
379
- }
380
-
381
- _renderToWeightsTexture(opts) {
382
- const {
383
- id,
384
- parameters,
385
- moduleSettings,
386
- uniforms,
387
- gridSize,
388
- weights
389
- } = opts;
390
- const {
391
- framebuffers,
392
- equations,
393
- weightAttributes
394
- } = this.state;
395
- const {
396
- gridAggregationModel
397
- } = this;
398
- const {
399
- operation
400
- } = weights[id];
401
- const clearColor = operation === AGGREGATION_OPERATION.MIN ? [MAX_32_BIT_FLOAT, MAX_32_BIT_FLOAT, MAX_32_BIT_FLOAT, 0] : [0, 0, 0, 0];
402
- withGLParameters(this.device, {
403
- framebuffer: framebuffers[id],
404
- viewport: [0, 0, gridSize[0], gridSize[1]],
405
- clearColor
406
- }, () => {
407
- clear(this.device, {
408
- color: true
409
- });
410
- const attributes = {
411
- weights: weightAttributes[id]
412
- };
413
- gridAggregationModel.draw({
414
- parameters: { ...parameters,
415
- blendEquation: equations[id]
416
- },
417
- moduleSettings,
418
- uniforms,
419
- attributes
420
- });
421
- });
422
-
423
- if (operation === AGGREGATION_OPERATION.MEAN) {
424
- const {
425
- meanTextures,
426
- textures
427
- } = this.state;
428
- const transformOptions = {
429
- _sourceTextures: {
430
- aggregationValues: meanTextures[id]
431
- },
432
- _targetTexture: textures[id],
433
- elementCount: textures[id].width * textures[id].height
434
- };
435
-
436
- if (this.meanTransform) {
437
- this.meanTransform.update(transformOptions);
438
- } else {
439
- this.meanTransform = getMeanTransform(this.device, transformOptions);
440
- }
441
-
442
- this.meanTransform.run({
443
- parameters: {
444
- blend: false,
445
- depthTest: false
446
- }
447
- });
448
- framebuffers[id].attach({
449
- [36064]: textures[id]
450
- });
451
- }
452
- }
453
-
454
- _runAggregation(opts) {
455
- this._updateModels(opts);
456
-
457
- this._setupFramebuffers(opts);
458
-
459
- this._renderAggregateData(opts);
460
-
461
- const results = this._getAggregateData(opts);
462
-
463
- this.setState({
464
- results
465
- });
466
- return results;
467
- }
468
-
469
- _setupFramebuffers(opts) {
470
- const {
471
- textures,
472
- framebuffers,
473
- maxMinFramebuffers,
474
- minFramebuffers,
475
- maxFramebuffers,
476
- meanTextures,
477
- equations
478
- } = this.state;
479
- const {
480
- weights
481
- } = opts;
482
- const {
483
- numCol,
484
- numRow
485
- } = opts;
486
- const framebufferSize = {
487
- width: numCol,
488
- height: numRow
489
- };
490
-
491
- for (const id in weights) {
492
- const {
493
- needMin,
494
- needMax,
495
- combineMaxMin,
496
- operation
497
- } = weights[id];
498
- textures[id] = weights[id].aggregationTexture || textures[id] || getFloatTexture(this.device, {
499
- id: `${id}-texture`,
500
- width: numCol,
501
- height: numRow
502
- });
503
- textures[id].resize(framebufferSize);
504
- let texture = textures[id];
505
-
506
- if (operation === AGGREGATION_OPERATION.MEAN) {
507
- meanTextures[id] = meanTextures[id] || getFloatTexture(this.device, {
508
- id: `${id}-mean-texture`,
509
- width: numCol,
510
- height: numRow
511
- });
512
- meanTextures[id].resize(framebufferSize);
513
- texture = meanTextures[id];
514
- }
515
-
516
- if (framebuffers[id]) {
517
- framebuffers[id].attach({
518
- [36064]: texture
519
- });
520
- } else {
521
- framebuffers[id] = getFramebuffer(this.device, {
522
- id: `${id}-fb`,
523
- width: numCol,
524
- height: numRow,
525
- texture
526
- });
527
- }
528
-
529
- framebuffers[id].resize(framebufferSize);
530
- equations[id] = EQUATION_MAP[operation] || EQUATION_MAP[AGGREGATION_OPERATION.SUM];
531
-
532
- if (needMin || needMax) {
533
- if (needMin && needMax && combineMaxMin) {
534
- if (!maxMinFramebuffers[id]) {
535
- texture = weights[id].maxMinTexture || this._getMinMaxTexture(`${id}-maxMinTexture`);
536
- maxMinFramebuffers[id] = getFramebuffer(this.device, {
537
- id: `${id}-maxMinFb`,
538
- texture
539
- });
540
- }
541
- } else {
542
- if (needMin) {
543
- if (!minFramebuffers[id]) {
544
- texture = weights[id].minTexture || this._getMinMaxTexture(`${id}-minTexture`);
545
- minFramebuffers[id] = getFramebuffer(this.device, {
546
- id: `${id}-minFb`,
547
- texture
548
- });
549
- }
550
- }
551
-
552
- if (needMax) {
553
- if (!maxFramebuffers[id]) {
554
- texture = weights[id].maxTexture || this._getMinMaxTexture(`${id}-maxTexture`);
555
- maxFramebuffers[id] = getFramebuffer(this.device, {
556
- id: `${id}-maxFb`,
557
- texture
558
- });
559
- }
560
- }
561
- }
562
- }
563
- }
564
- }
565
-
566
- _getMinMaxTexture(name) {
567
- const {
568
- resources
569
- } = this.state;
570
-
571
- if (!resources[name]) {
572
- resources[name] = getFloatTexture(this.device, {
573
- id: 'resourceName'
574
- });
575
- }
576
-
577
- return resources[name];
578
- }
579
-
580
- _setupModels({
581
- numCol = 0,
582
- numRow = 0
583
- } = {}) {
584
- var _this$gridAggregation;
585
-
586
- const {
587
- shaderOptions
588
- } = this.state;
589
- (_this$gridAggregation = this.gridAggregationModel) === null || _this$gridAggregation === void 0 ? void 0 : _this$gridAggregation.destroy();
590
- this.gridAggregationModel = getAggregationModel(this.device, shaderOptions);
591
-
592
- if (!this.allAggregationModel) {
593
- const instanceCount = numCol * numRow;
594
- this.allAggregationModel = getAllAggregationModel(this.device, instanceCount);
595
- }
596
- }
597
-
598
- _setupWeightAttributes(opts) {
599
- const {
600
- weightAttributes
601
- } = this.state;
602
- const {
603
- weights
604
- } = opts;
605
-
606
- for (const id in weights) {
607
- weightAttributes[id] = opts.attributes[id];
608
- }
609
- }
610
-
611
- _trackGPUResultBuffers(results, weights) {
612
- const {
613
- resources
614
- } = this.state;
615
-
616
- for (const id in results) {
617
- if (results[id]) {
618
- for (const bufferName of BUFFER_NAMES) {
619
- if (results[id][bufferName] && weights[id][bufferName] !== results[id][bufferName]) {
620
- const name = `gpu-result-${id}-${bufferName}`;
621
-
622
- if (resources[name]) {
623
- resources[name].delete();
624
- }
625
-
626
- resources[name] = results[id][bufferName];
627
- }
628
- }
629
- }
630
- }
631
- }
632
-
633
- _updateModels(opts) {
634
- const {
635
- vertexCount,
636
- attributes,
637
- numCol,
638
- numRow
639
- } = opts;
640
- const {
641
- modelDirty
642
- } = this.state;
643
-
644
- if (modelDirty) {
645
- this._setupModels(opts);
646
-
647
- this.setState({
648
- modelDirty: false
649
- });
650
- }
651
-
652
- this._setupWeightAttributes(opts);
653
-
654
- this.gridAggregationModel.setVertexCount(vertexCount);
655
- this.gridAggregationModel.setAttributes(attributes);
656
- this.allAggregationModel.setInstanceCount(numCol * numRow);
657
- }
658
-
659
- }
660
-
661
- function normalizeWeightParams(weights) {
662
- const result = {};
663
-
664
- for (const id in weights) {
665
- result[id] = { ...DEFAULT_WEIGHT_PARAMS,
666
- ...weights[id]
667
- };
668
- }
669
-
670
- return result;
671
- }
672
-
673
- function deleteResources(resources) {
674
- resources = Array.isArray(resources) ? resources : [resources];
675
- resources.forEach(obj => {
676
- for (const name in obj) {
677
- obj[name].delete();
678
- }
679
- });
680
- }
681
-
682
- function getAggregationModel(device, shaderOptions) {
683
- const shaders = mergeShaders({
684
- vs: AGGREGATE_TO_GRID_VS,
685
- fs: AGGREGATE_TO_GRID_FS,
686
- modules: [fp64arithmetic, project32]
687
- }, shaderOptions);
688
- return new Model(device, {
689
- id: 'Grid-Aggregation-Model',
690
- vertexCount: 1,
691
- drawMode: 0,
692
- shaderAssembler: getShaderAssembler(),
693
- ...shaders
694
- });
695
- }
696
-
697
- function getAllAggregationModel(device, instanceCount) {
698
- return new Model(device, {
699
- id: 'All-Aggregation-Model',
700
- vs: AGGREGATE_ALL_VS,
701
- fs: AGGREGATE_ALL_FS,
702
- modules: [fp64arithmetic],
703
- vertexCount: 1,
704
- topology: 'point-list',
705
- isInstanced: true,
706
- instanceCount,
707
- attributes: {
708
- position: [0, 0]
709
- }
710
- });
711
- }
712
-
713
- function getMeanTransform(device, opts) {
714
- return new TextureTransform(device, {
715
- vs: TRANSFORM_MEAN_VS,
716
- _targetTextureVarying: 'meanValues',
717
- ...opts
718
- });
719
- }
720
- //# sourceMappingURL=gpu-grid-aggregator.js.map