@deck.gl/aggregation-layers 9.4.0-alpha.1 → 9.4.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 (210) hide show
  1. package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.d.ts.map +1 -1
  2. package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js +1 -3
  3. package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js.map +1 -1
  4. package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.js +0 -1
  5. package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.js.map +1 -1
  6. package/dist/dist.dev.js +642 -38
  7. package/dist/grid-layer/grid-cell-layer.d.ts.map +1 -1
  8. package/dist/grid-layer/grid-cell-layer.js +3 -2
  9. package/dist/grid-layer/grid-cell-layer.js.map +1 -1
  10. package/dist/grid-layer/grid-cell-layer.wgsl.d.ts +3 -0
  11. package/dist/grid-layer/grid-cell-layer.wgsl.d.ts.map +1 -0
  12. package/dist/grid-layer/grid-cell-layer.wgsl.js +114 -0
  13. package/dist/grid-layer/grid-cell-layer.wgsl.js.map +1 -0
  14. package/dist/grid-layer/grid-layer-uniforms.d.ts +1 -0
  15. package/dist/grid-layer/grid-layer-uniforms.d.ts.map +1 -1
  16. package/dist/grid-layer/grid-layer-uniforms.js +14 -0
  17. package/dist/grid-layer/grid-layer-uniforms.js.map +1 -1
  18. package/dist/heatmap-layer/heatmap-layer-uniforms.d.ts +2 -0
  19. package/dist/heatmap-layer/heatmap-layer-uniforms.d.ts.map +1 -1
  20. package/dist/heatmap-layer/heatmap-layer-uniforms.js +19 -0
  21. package/dist/heatmap-layer/heatmap-layer-uniforms.js.map +1 -1
  22. package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -1
  23. package/dist/heatmap-layer/heatmap-layer.js +59 -12
  24. package/dist/heatmap-layer/heatmap-layer.js.map +1 -1
  25. package/dist/heatmap-layer/max.wgsl.d.ts +3 -0
  26. package/dist/heatmap-layer/max.wgsl.d.ts.map +1 -0
  27. package/dist/heatmap-layer/max.wgsl.js +48 -0
  28. package/dist/heatmap-layer/max.wgsl.js.map +1 -0
  29. package/dist/heatmap-layer/triangle-layer-uniforms.d.ts +1 -0
  30. package/dist/heatmap-layer/triangle-layer-uniforms.d.ts.map +1 -1
  31. package/dist/heatmap-layer/triangle-layer-uniforms.js +16 -0
  32. package/dist/heatmap-layer/triangle-layer-uniforms.js.map +1 -1
  33. package/dist/heatmap-layer/triangle-layer.d.ts.map +1 -1
  34. package/dist/heatmap-layer/triangle-layer.js +3 -2
  35. package/dist/heatmap-layer/triangle-layer.js.map +1 -1
  36. package/dist/heatmap-layer/triangle-layer.wgsl.d.ts +3 -0
  37. package/dist/heatmap-layer/triangle-layer.wgsl.d.ts.map +1 -0
  38. package/dist/heatmap-layer/triangle-layer.wgsl.js +65 -0
  39. package/dist/heatmap-layer/triangle-layer.wgsl.js.map +1 -0
  40. package/dist/heatmap-layer/weights.wgsl.d.ts +3 -0
  41. package/dist/heatmap-layer/weights.wgsl.d.ts.map +1 -0
  42. package/dist/heatmap-layer/weights.wgsl.js +64 -0
  43. package/dist/heatmap-layer/weights.wgsl.js.map +1 -0
  44. package/dist/hexagon-layer/hexagon-cell-layer.d.ts.map +1 -1
  45. package/dist/hexagon-layer/hexagon-cell-layer.js +2 -2
  46. package/dist/hexagon-layer/hexagon-cell-layer.js.map +1 -1
  47. package/dist/hexagon-layer/hexagon-cell-layer.wgsl.d.ts +3 -0
  48. package/dist/hexagon-layer/hexagon-cell-layer.wgsl.d.ts.map +1 -0
  49. package/dist/hexagon-layer/hexagon-cell-layer.wgsl.js +120 -0
  50. package/dist/hexagon-layer/hexagon-cell-layer.wgsl.js.map +1 -0
  51. package/dist/hexagon-layer/hexagon-layer-uniforms.d.ts +1 -0
  52. package/dist/hexagon-layer/hexagon-layer-uniforms.d.ts.map +1 -1
  53. package/dist/hexagon-layer/hexagon-layer-uniforms.js +13 -0
  54. package/dist/hexagon-layer/hexagon-layer-uniforms.js.map +1 -1
  55. package/dist/index.cjs +13268 -1488
  56. package/dist/index.cjs.map +3 -4
  57. package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts +1 -6
  58. package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -1
  59. package/dist/screen-grid-layer/screen-grid-cell-layer.js +3 -2
  60. package/dist/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
  61. package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.d.ts +3 -0
  62. package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.d.ts.map +1 -0
  63. package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.js +76 -0
  64. package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.js.map +1 -0
  65. package/dist/screen-grid-layer/screen-grid-layer-uniforms.d.ts +1 -0
  66. package/dist/screen-grid-layer/screen-grid-layer-uniforms.d.ts.map +1 -1
  67. package/dist/screen-grid-layer/screen-grid-layer-uniforms.js +12 -0
  68. package/dist/screen-grid-layer/screen-grid-layer-uniforms.js.map +1 -1
  69. package/dist.min.js +545 -35
  70. package/dist.webgl-only/common/aggregation-layer.js +68 -0
  71. package/dist.webgl-only/common/aggregation-layer.js.map +1 -0
  72. package/dist.webgl-only/common/aggregator/aggregator.js +5 -0
  73. package/dist.webgl-only/common/aggregator/aggregator.js.map +1 -0
  74. package/dist.webgl-only/common/aggregator/cpu-aggregator/aggregate.js +69 -0
  75. package/dist.webgl-only/common/aggregator/cpu-aggregator/aggregate.js.map +1 -0
  76. package/dist.webgl-only/common/aggregator/cpu-aggregator/cpu-aggregator.js +141 -0
  77. package/dist.webgl-only/common/aggregator/cpu-aggregator/cpu-aggregator.js.map +1 -0
  78. package/dist.webgl-only/common/aggregator/cpu-aggregator/sort-bins.js +44 -0
  79. package/dist.webgl-only/common/aggregator/cpu-aggregator/sort-bins.js.map +1 -0
  80. package/dist.webgl-only/common/aggregator/cpu-aggregator/vertex-accessor.js +56 -0
  81. package/dist.webgl-only/common/aggregator/cpu-aggregator/vertex-accessor.js.map +1 -0
  82. package/dist.webgl-only/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.js +22 -0
  83. package/dist.webgl-only/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.js.map +1 -0
  84. package/dist.webgl-only/common/aggregator/gpu-aggregator/bin-sorter-uniforms.js +18 -0
  85. package/dist.webgl-only/common/aggregator/gpu-aggregator/bin-sorter-uniforms.js.map +1 -0
  86. package/dist.webgl-only/common/aggregator/gpu-aggregator/utils.js +24 -0
  87. package/dist.webgl-only/common/aggregator/gpu-aggregator/utils.js.map +1 -0
  88. package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js +222 -0
  89. package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js.map +1 -0
  90. package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-aggregator.js +203 -0
  91. package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-aggregator.js.map +1 -0
  92. package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-bin-sorter.js +225 -0
  93. package/dist.webgl-only/common/aggregator/gpu-aggregator/webgl-bin-sorter.js.map +1 -0
  94. package/dist.webgl-only/common/aggregator/index.js +6 -0
  95. package/dist.webgl-only/common/aggregator/index.js.map +1 -0
  96. package/dist.webgl-only/common/types.js +5 -0
  97. package/dist.webgl-only/common/types.js.map +1 -0
  98. package/dist.webgl-only/common/utils/bounds-utils.js +21 -0
  99. package/dist.webgl-only/common/utils/bounds-utils.js.map +1 -0
  100. package/dist.webgl-only/common/utils/color-utils.js +65 -0
  101. package/dist.webgl-only/common/utils/color-utils.js.map +1 -0
  102. package/dist.webgl-only/common/utils/prop-utils.js +13 -0
  103. package/dist.webgl-only/common/utils/prop-utils.js.map +1 -0
  104. package/dist.webgl-only/common/utils/scale-utils.js +181 -0
  105. package/dist.webgl-only/common/utils/scale-utils.js.map +1 -0
  106. package/dist.webgl-only/contour-layer/bin-options-uniforms.js +18 -0
  107. package/dist.webgl-only/contour-layer/bin-options-uniforms.js.map +1 -0
  108. package/dist.webgl-only/contour-layer/contour-layer.js +282 -0
  109. package/dist.webgl-only/contour-layer/contour-layer.js.map +1 -0
  110. package/dist.webgl-only/contour-layer/contour-utils.js +60 -0
  111. package/dist.webgl-only/contour-layer/contour-utils.js.map +1 -0
  112. package/dist.webgl-only/contour-layer/marching-squares-codes.js +341 -0
  113. package/dist.webgl-only/contour-layer/marching-squares-codes.js.map +1 -0
  114. package/dist.webgl-only/contour-layer/marching-squares.js +151 -0
  115. package/dist.webgl-only/contour-layer/marching-squares.js.map +1 -0
  116. package/dist.webgl-only/contour-layer/value-reader.js +47 -0
  117. package/dist.webgl-only/contour-layer/value-reader.js.map +1 -0
  118. package/dist.webgl-only/grid-layer/bin-options-uniforms.js +18 -0
  119. package/dist.webgl-only/grid-layer/bin-options-uniforms.js.map +1 -0
  120. package/dist.webgl-only/grid-layer/grid-cell-layer-vertex.glsl.js +51 -0
  121. package/dist.webgl-only/grid-layer/grid-cell-layer-vertex.glsl.js.map +1 -0
  122. package/dist.webgl-only/grid-layer/grid-cell-layer.js +95 -0
  123. package/dist.webgl-only/grid-layer/grid-cell-layer.js.map +1 -0
  124. package/dist.webgl-only/grid-layer/grid-cell-layer.wgsl.js +5 -0
  125. package/dist.webgl-only/grid-layer/grid-cell-layer.wgsl.js.map +1 -0
  126. package/dist.webgl-only/grid-layer/grid-layer-uniforms.js +26 -0
  127. package/dist.webgl-only/grid-layer/grid-layer-uniforms.js.map +1 -0
  128. package/dist.webgl-only/grid-layer/grid-layer.js +362 -0
  129. package/dist.webgl-only/grid-layer/grid-layer.js.map +1 -0
  130. package/dist.webgl-only/heatmap-layer/aggregation-layer.js +140 -0
  131. package/dist.webgl-only/heatmap-layer/aggregation-layer.js.map +1 -0
  132. package/dist.webgl-only/heatmap-layer/heatmap-layer-uniforms.js +36 -0
  133. package/dist.webgl-only/heatmap-layer/heatmap-layer-uniforms.js.map +1 -0
  134. package/dist.webgl-only/heatmap-layer/heatmap-layer-utils.js +67 -0
  135. package/dist.webgl-only/heatmap-layer/heatmap-layer-utils.js.map +1 -0
  136. package/dist.webgl-only/heatmap-layer/heatmap-layer.js +513 -0
  137. package/dist.webgl-only/heatmap-layer/heatmap-layer.js.map +1 -0
  138. package/dist.webgl-only/heatmap-layer/max-fs.glsl.js +13 -0
  139. package/dist.webgl-only/heatmap-layer/max-fs.glsl.js.map +1 -0
  140. package/dist.webgl-only/heatmap-layer/max-vs.glsl.js +18 -0
  141. package/dist.webgl-only/heatmap-layer/max-vs.glsl.js.map +1 -0
  142. package/dist.webgl-only/heatmap-layer/max.wgsl.js +5 -0
  143. package/dist.webgl-only/heatmap-layer/max.wgsl.js.map +1 -0
  144. package/dist.webgl-only/heatmap-layer/triangle-layer-fragment.glsl.js +34 -0
  145. package/dist.webgl-only/heatmap-layer/triangle-layer-fragment.glsl.js.map +1 -0
  146. package/dist.webgl-only/heatmap-layer/triangle-layer-uniforms.js +25 -0
  147. package/dist.webgl-only/heatmap-layer/triangle-layer-uniforms.js.map +1 -0
  148. package/dist.webgl-only/heatmap-layer/triangle-layer-vertex.glsl.js +28 -0
  149. package/dist.webgl-only/heatmap-layer/triangle-layer-vertex.glsl.js.map +1 -0
  150. package/dist.webgl-only/heatmap-layer/triangle-layer.js +49 -0
  151. package/dist.webgl-only/heatmap-layer/triangle-layer.js.map +1 -0
  152. package/dist.webgl-only/heatmap-layer/triangle-layer.wgsl.js +5 -0
  153. package/dist.webgl-only/heatmap-layer/triangle-layer.wgsl.js.map +1 -0
  154. package/dist.webgl-only/heatmap-layer/weights-fs.glsl.js +21 -0
  155. package/dist.webgl-only/heatmap-layer/weights-fs.glsl.js.map +1 -0
  156. package/dist.webgl-only/heatmap-layer/weights-vs.glsl.js +21 -0
  157. package/dist.webgl-only/heatmap-layer/weights-vs.glsl.js.map +1 -0
  158. package/dist.webgl-only/heatmap-layer/weights.wgsl.js +5 -0
  159. package/dist.webgl-only/heatmap-layer/weights.wgsl.js.map +1 -0
  160. package/dist.webgl-only/hexagon-layer/bin-options-uniforms.js +18 -0
  161. package/dist.webgl-only/hexagon-layer/bin-options-uniforms.js.map +1 -0
  162. package/dist.webgl-only/hexagon-layer/hexagon-cell-layer-vertex.glsl.js +55 -0
  163. package/dist.webgl-only/hexagon-layer/hexagon-cell-layer-vertex.glsl.js.map +1 -0
  164. package/dist.webgl-only/hexagon-layer/hexagon-cell-layer.js +90 -0
  165. package/dist.webgl-only/hexagon-layer/hexagon-cell-layer.js.map +1 -0
  166. package/dist.webgl-only/hexagon-layer/hexagon-cell-layer.wgsl.js +5 -0
  167. package/dist.webgl-only/hexagon-layer/hexagon-cell-layer.wgsl.js.map +1 -0
  168. package/dist.webgl-only/hexagon-layer/hexagon-layer-uniforms.js +24 -0
  169. package/dist.webgl-only/hexagon-layer/hexagon-layer-uniforms.js.map +1 -0
  170. package/dist.webgl-only/hexagon-layer/hexagon-layer.js +360 -0
  171. package/dist.webgl-only/hexagon-layer/hexagon-layer.js.map +1 -0
  172. package/dist.webgl-only/hexagon-layer/hexbin.js +70 -0
  173. package/dist.webgl-only/hexagon-layer/hexbin.js.map +1 -0
  174. package/dist.webgl-only/index.cjs +15625 -0
  175. package/dist.webgl-only/index.cjs.map +6 -0
  176. package/dist.webgl-only/index.js +11 -0
  177. package/dist.webgl-only/index.js.map +1 -0
  178. package/dist.webgl-only/screen-grid-layer/bin-options-uniforms.js +16 -0
  179. package/dist.webgl-only/screen-grid-layer/bin-options-uniforms.js.map +1 -0
  180. package/dist.webgl-only/screen-grid-layer/screen-grid-cell-layer.js +88 -0
  181. package/dist.webgl-only/screen-grid-layer/screen-grid-cell-layer.js.map +1 -0
  182. package/dist.webgl-only/screen-grid-layer/screen-grid-cell-layer.wgsl.js +5 -0
  183. package/dist.webgl-only/screen-grid-layer/screen-grid-cell-layer.wgsl.js.map +1 -0
  184. package/dist.webgl-only/screen-grid-layer/screen-grid-layer-fragment.glsl.js +16 -0
  185. package/dist.webgl-only/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +1 -0
  186. package/dist.webgl-only/screen-grid-layer/screen-grid-layer-uniforms.js +22 -0
  187. package/dist.webgl-only/screen-grid-layer/screen-grid-layer-uniforms.js.map +1 -0
  188. package/dist.webgl-only/screen-grid-layer/screen-grid-layer-vertex.glsl.js +31 -0
  189. package/dist.webgl-only/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +1 -0
  190. package/dist.webgl-only/screen-grid-layer/screen-grid-layer.js +194 -0
  191. package/dist.webgl-only/screen-grid-layer/screen-grid-layer.js.map +1 -0
  192. package/package.json +14 -5
  193. package/src/common/aggregator/gpu-aggregator/webgl-aggregation-transform.ts +1 -3
  194. package/src/common/aggregator/gpu-aggregator/webgl-bin-sorter.ts +0 -1
  195. package/src/grid-layer/grid-cell-layer.ts +3 -2
  196. package/src/grid-layer/grid-cell-layer.wgsl.ts +114 -0
  197. package/src/grid-layer/grid-layer-uniforms.ts +15 -0
  198. package/src/heatmap-layer/heatmap-layer-uniforms.ts +20 -0
  199. package/src/heatmap-layer/heatmap-layer.ts +67 -13
  200. package/src/heatmap-layer/max.wgsl.ts +48 -0
  201. package/src/heatmap-layer/triangle-layer-uniforms.ts +17 -0
  202. package/src/heatmap-layer/triangle-layer.ts +3 -2
  203. package/src/heatmap-layer/triangle-layer.wgsl.ts +65 -0
  204. package/src/heatmap-layer/weights.wgsl.ts +64 -0
  205. package/src/hexagon-layer/hexagon-cell-layer.ts +2 -3
  206. package/src/hexagon-layer/hexagon-cell-layer.wgsl.ts +120 -0
  207. package/src/hexagon-layer/hexagon-layer-uniforms.ts +14 -0
  208. package/src/screen-grid-layer/screen-grid-cell-layer.ts +4 -4
  209. package/src/screen-grid-layer/screen-grid-cell-layer.wgsl.ts +76 -0
  210. package/src/screen-grid-layer/screen-grid-layer-uniforms.ts +13 -0
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/screen-grid-layer/screen-grid-layer.ts", "../src/common/aggregator/cpu-aggregator/cpu-aggregator.ts", "../src/common/aggregator/cpu-aggregator/sort-bins.ts", "../src/common/aggregator/cpu-aggregator/aggregate.ts", "../src/common/aggregator/cpu-aggregator/vertex-accessor.ts", "../src/common/aggregator/gpu-aggregator/webgl-bin-sorter.ts", "../src/common/aggregator/gpu-aggregator/utils.ts", "../src/common/aggregator/gpu-aggregator/bin-sorter-uniforms.ts", "../src/common/aggregator/gpu-aggregator/webgl-aggregation-transform.ts", "../src/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.ts", "../src/common/aggregator/gpu-aggregator/webgl-aggregator.ts", "../src/common/aggregation-layer.ts", "../src/screen-grid-layer/screen-grid-cell-layer.ts", "../src/common/utils/color-utils.ts", "../src/screen-grid-layer/screen-grid-layer-vertex.glsl.ts", "../src/screen-grid-layer/screen-grid-layer-fragment.glsl.ts", "../src/screen-grid-layer/screen-grid-layer-uniforms.ts", "../src/screen-grid-layer/bin-options-uniforms.ts", "../src/hexagon-layer/hexagon-layer.ts", "../src/common/utils/scale-utils.ts", "../src/common/utils/bounds-utils.ts", "../src/hexagon-layer/hexagon-cell-layer.ts", "../src/hexagon-layer/hexbin.ts", "../src/hexagon-layer/hexagon-cell-layer-vertex.glsl.ts", "../src/hexagon-layer/hexagon-layer-uniforms.ts", "../src/hexagon-layer/bin-options-uniforms.ts", "../src/contour-layer/contour-layer.ts", "../src/contour-layer/marching-squares-codes.ts", "../src/contour-layer/marching-squares.ts", "../src/contour-layer/contour-utils.ts", "../src/contour-layer/value-reader.ts", "../src/contour-layer/bin-options-uniforms.ts", "../src/grid-layer/grid-layer.ts", "../src/grid-layer/grid-cell-layer.ts", "../src/grid-layer/grid-cell-layer-vertex.glsl.ts", "../src/grid-layer/grid-layer-uniforms.ts", "../src/grid-layer/bin-options-uniforms.ts", "../src/heatmap-layer/heatmap-layer-utils.ts", "../src/heatmap-layer/heatmap-layer.ts", "../src/heatmap-layer/triangle-layer.ts", "../src/heatmap-layer/triangle-layer-vertex.glsl.ts", "../src/heatmap-layer/triangle-layer-fragment.glsl.ts", "../src/heatmap-layer/triangle-layer-uniforms.ts", "../src/heatmap-layer/aggregation-layer.ts", "../src/common/utils/prop-utils.ts", "../src/heatmap-layer/weights-vs.glsl.ts", "../src/heatmap-layer/weights-fs.glsl.ts", "../src/heatmap-layer/max-vs.glsl.ts", "../src/heatmap-layer/max-fs.glsl.ts", "../src/heatmap-layer/heatmap-layer-uniforms.ts"],
4
- "sourcesContent": ["// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport {default as ScreenGridLayer} from './screen-grid-layer/screen-grid-layer';\nexport {default as HexagonLayer} from './hexagon-layer/hexagon-layer';\nexport {default as ContourLayer} from './contour-layer/contour-layer';\nexport {default as GridLayer} from './grid-layer/grid-layer';\nexport {default as HeatmapLayer} from './heatmap-layer/heatmap-layer';\n\nexport {default as _AggregationLayer} from './common/aggregation-layer';\nexport {WebGLAggregator, CPUAggregator} from './common/aggregator/index';\n\n// types\nexport type {ContourLayerProps, ContourLayerPickingInfo} from './contour-layer/contour-layer';\nexport type {HeatmapLayerProps} from './heatmap-layer/heatmap-layer';\nexport type {HexagonLayerProps, HexagonLayerPickingInfo} from './hexagon-layer/hexagon-layer';\nexport type {GridLayerProps, GridLayerPickingInfo} from './grid-layer/grid-layer';\nexport type {\n ScreenGridLayerProps,\n ScreenGridLayerPickingInfo\n} from './screen-grid-layer/screen-grid-layer';\n\nexport type {\n Aggregator,\n AggregationOperation,\n AggregationProps,\n WebGLAggregatorProps,\n CPUAggregatorProps\n} from './common/aggregator/index';\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {\n Accessor,\n Color,\n GetPickingInfoParams,\n CompositeLayerProps,\n Layer,\n project32,\n LayersList,\n PickingInfo,\n Position,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport {WebGLAggregator, CPUAggregator, AggregationOperation} from '../common/aggregator/index';\nimport AggregationLayer from '../common/aggregation-layer';\nimport ScreenGridCellLayer from './screen-grid-cell-layer';\nimport {BinOptions, binOptionsUniforms} from './bin-options-uniforms';\nimport {defaultColorRange} from '../common/utils/color-utils';\n\nconst defaultProps: DefaultProps<ScreenGridLayerProps> = {\n cellSizePixels: {type: 'number', value: 100, min: 1},\n cellMarginPixels: {type: 'number', value: 2, min: 0},\n colorRange: defaultColorRange,\n colorScaleType: 'linear',\n getPosition: {type: 'accessor', value: (d: any) => d.position},\n getWeight: {type: 'accessor', value: 1},\n\n gpuAggregation: true,\n aggregation: 'SUM'\n};\n\n/** All properties supported by ScreenGridLayer. */\nexport type ScreenGridLayerProps<DataT = unknown> = _ScreenGridLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by ScreenGridLayer. */\nexport type _ScreenGridLayerProps<DataT> = {\n /**\n * Unit width/height of the bins.\n * @default 100\n */\n cellSizePixels?: number;\n\n /**\n * Cell margin size in pixels.\n * @default 2\n */\n cellMarginPixels?: number;\n\n /**\n * Color scale input domain. The color scale maps continues numeric domain into discrete color range.\n * @default [1, max(weight)]\n */\n colorDomain?: Readonly<[number, number]> | null;\n\n /**\n * Specified as an array of colors [color1, color2, ...].\n *\n * @default `6-class YlOrRd` - [colorbrewer](http://colorbrewer2.org/#type=sequential&scheme=YlOrRd&n=6)\n */\n colorRange?: Color[];\n\n /**\n * Scaling function used to determine the color of the grid cell.\n * Supported Values are 'quantize', 'linear', 'quantile' and 'ordinal'.\n * @default 'quantize'\n */\n colorScaleType?: 'linear' | 'quantize';\n\n /**\n * Method called to retrieve the position of each object.\n *\n * @default d => d.position\n */\n getPosition?: Accessor<DataT, Position>;\n\n /**\n * The weight of each object.\n *\n * @default 1\n */\n getWeight?: Accessor<DataT, number>;\n\n /**\n * Perform aggregation is performed on GPU.\n *\n * @default true\n */\n gpuAggregation?: boolean;\n\n /**\n * Defines the type of aggregation operation\n * Valid values are 'SUM', 'MEAN', 'MIN', 'MAX', 'COUNT'.\n *\n * @default 'SUM'\n */\n aggregation?: AggregationOperation;\n};\n\nexport type ScreenGridLayerPickingInfo<DataT> = PickingInfo<{\n /** Column index of the picked cell, starting from 0 at the left of the viewport */\n col: number;\n /** Row index of the picked cell, starting from 0 at the top of the viewport */\n row: number;\n /** Aggregated value */\n value: number;\n /** Number of data points in the picked cell */\n count: number;\n /** Indices of the data objects in the picked cell. Only available if using CPU aggregation. */\n pointIndices?: number[];\n /** The data objects in the picked cell. Only available if using CPU aggregation and layer data is an array. */\n points?: DataT[];\n}>;\n\n/** Aggregates data into histogram bins and renders them as a grid. */\nexport default class ScreenGridLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends AggregationLayer<DataT, ExtraProps & Required<_ScreenGridLayerProps<DataT>>> {\n static layerName = 'ScreenGridLayer';\n static defaultProps = defaultProps;\n\n getAggregatorType(): string {\n return this.props.gpuAggregation && WebGLAggregator.isSupported(this.context.device)\n ? 'gpu'\n : 'cpu';\n }\n\n createAggregator(type: string): WebGLAggregator | CPUAggregator {\n if (type === 'cpu' || !WebGLAggregator.isSupported(this.context.device)) {\n return new CPUAggregator({\n dimensions: 2,\n getBin: {\n sources: ['positions'],\n getValue: ({positions}: {positions: number[]}, index: number, opts: BinOptions) => {\n const viewport = this.context.viewport;\n const p = viewport.project(positions);\n const cellSizePixels: number = opts.cellSizePixels;\n if (p[0] < 0 || p[0] >= viewport.width || p[1] < 0 || p[1] >= viewport.height) {\n // Not on screen\n return null;\n }\n return [Math.floor(p[0] / cellSizePixels), Math.floor(p[1] / cellSizePixels)];\n }\n },\n getValue: [{sources: ['counts'], getValue: ({counts}) => counts}]\n });\n }\n return new WebGLAggregator(this.context.device, {\n dimensions: 2,\n channelCount: 1,\n bufferLayout: this.getAttributeManager()!.getBufferLayouts({isInstanced: false}),\n ...super.getShaders({\n modules: [project32, binOptionsUniforms],\n vs: `\n in vec3 positions;\n in vec3 positions64Low;\n in float counts;\n \n void getBin(out ivec2 binId) {\n vec4 pos = project_position_to_clipspace(positions, positions64Low, vec3(0.0));\n vec2 screenCoords = vec2(pos.x / pos.w + 1.0, 1.0 - pos.y / pos.w) / 2.0 * project.viewportSize.xy / project.devicePixelRatio;\n vec2 gridCoords = floor(screenCoords / binOptions.cellSizePixels);\n binId = ivec2(gridCoords);\n }\n void getValue(out float weight) {\n weight = counts;\n }\n `\n })\n });\n }\n\n initializeState() {\n super.initializeState();\n\n const attributeManager = this.getAttributeManager()!;\n attributeManager.add({\n positions: {\n size: 3,\n accessor: 'getPosition',\n type: 'float64',\n fp64: this.use64bitPositions()\n },\n // this attribute is used in gpu aggregation path only\n counts: {size: 1, accessor: 'getWeight'}\n });\n }\n\n shouldUpdateState({changeFlags}: UpdateParameters<this>) {\n return changeFlags.somethingChanged;\n }\n\n updateState(params: UpdateParameters<this>) {\n const aggregatorChanged = super.updateState(params);\n\n const {props, oldProps, changeFlags} = params;\n const {cellSizePixels, aggregation} = props;\n if (\n aggregatorChanged ||\n changeFlags.dataChanged ||\n changeFlags.updateTriggersChanged ||\n changeFlags.viewportChanged ||\n aggregation !== oldProps.aggregation ||\n cellSizePixels !== oldProps.cellSizePixels\n ) {\n const {width, height} = this.context.viewport;\n const {aggregator} = this.state;\n\n if (aggregator instanceof WebGLAggregator) {\n aggregator.setProps({\n binIdRange: [\n [0, Math.ceil(width / cellSizePixels)],\n [0, Math.ceil(height / cellSizePixels)]\n ]\n });\n }\n\n aggregator.setProps({\n pointCount: this.getNumInstances(),\n operations: [aggregation],\n binOptions: {\n cellSizePixels\n }\n });\n }\n\n if (changeFlags.viewportChanged) {\n // Rerun aggregation on viewport change\n this.state.aggregator.setNeedsUpdate();\n }\n return aggregatorChanged;\n }\n\n onAttributeChange(id: string) {\n const {aggregator} = this.state;\n switch (id) {\n case 'positions':\n aggregator.setNeedsUpdate();\n break;\n\n case 'counts':\n aggregator.setNeedsUpdate(0);\n break;\n\n default:\n // This should not happen\n }\n }\n\n renderLayers(): LayersList | Layer | null {\n const {aggregator} = this.state;\n const CellLayerClass = this.getSubLayerClass('cells', ScreenGridCellLayer);\n const binAttribute = aggregator.getBins();\n const weightAttribute = aggregator.getResult(0);\n\n return new CellLayerClass(\n this.props,\n this.getSubLayerProps({\n id: 'cell-layer'\n }),\n {\n data: {\n length: aggregator.binCount,\n attributes: {\n getBin: binAttribute,\n getWeight: weightAttribute\n }\n },\n // Data has changed shallowly, but we likely don't need to update the attributes\n dataComparator: (data, oldData) => data.length === oldData.length,\n updateTriggers: {\n getBin: [binAttribute],\n getWeight: [weightAttribute]\n },\n parameters: {\n depthWriteEnabled: false,\n ...this.props.parameters\n },\n // Evaluate domain at draw() time\n colorDomain: () => this.props.colorDomain || aggregator.getResultDomain(0),\n // Extensions are already handled by the GPUAggregator, do not pass it down\n extensions: []\n }\n );\n }\n\n getPickingInfo(params: GetPickingInfoParams): ScreenGridLayerPickingInfo<DataT> {\n const info: ScreenGridLayerPickingInfo<DataT> = params.info;\n const {index} = info;\n if (index >= 0) {\n const bin = this.state.aggregator.getBin(index);\n let object: ScreenGridLayerPickingInfo<DataT>['object'];\n if (bin) {\n object = {\n col: bin.id[0],\n row: bin.id[1],\n value: bin.value[0],\n count: bin.count\n };\n if (bin.pointIndices) {\n object.pointIndices = bin.pointIndices;\n object.points = Array.isArray(this.props.data)\n ? bin.pointIndices.map(i => (this.props.data as DataT[])[i])\n : [];\n }\n }\n info.object = object;\n }\n\n return info;\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Aggregator, AggregationProps, AggregatedBin} from '../aggregator';\nimport {_deepEqual as deepEqual, BinaryAttribute} from '@deck.gl/core';\nimport {sortBins, packBinIds} from './sort-bins';\nimport {aggregate, AggregationFunc, BUILT_IN_OPERATIONS} from './aggregate';\nimport {VertexAccessor, evaluateVertexAccessor} from './vertex-accessor';\n\n/** Options used to construct a new CPUAggregator */\nexport type CPUAggregatorProps = {\n /** Size of bin IDs */\n dimensions: number;\n /** Accessor to map each data point to a bin ID.\n * Bin ID should be an array with [dimensions] elements; or null if the data point should be skipped\n */\n getBin: VertexAccessor<number[] | null, any>;\n /** Accessor to map each data point to a weight value, defined per channel */\n getValue: VertexAccessor<number>[];\n} & Partial<CPUAggregationProps>;\n\n/** Props used to run CPU aggregation, can be changed at any time */\ntype CPUAggregationProps = AggregationProps & {\n /** Custom callback to aggregate points, overrides the built-in operations */\n customOperations: (AggregationFunc | null | undefined)[];\n};\n\nexport type Bin = {\n id: number[];\n index: number;\n /** list of data point indices */\n points: number[];\n};\n\n/** An Aggregator implementation that calculates aggregation on the CPU */\nexport class CPUAggregator implements Aggregator {\n readonly dimensions: number;\n readonly channelCount: number;\n\n props: CPUAggregatorProps & CPUAggregationProps;\n\n /** Dirty flag\n * If true, redo sorting\n * If array, redo aggregation on the specified channel\n */\n protected needsUpdate: boolean[] | boolean;\n\n protected bins: Bin[] = [];\n protected binIds: (BinaryAttribute & {value: Float32Array}) | null = null;\n protected results: (BinaryAttribute & {\n value: Float32Array;\n domain: [min: number, max: number];\n })[] = [];\n\n constructor(props: CPUAggregatorProps) {\n this.dimensions = props.dimensions;\n this.channelCount = props.getValue.length;\n this.props = {\n ...props,\n binOptions: {},\n pointCount: 0,\n operations: [],\n customOperations: [],\n attributes: {}\n };\n this.needsUpdate = true;\n this.setProps(props);\n }\n\n destroy() {}\n\n get binCount() {\n return this.bins.length;\n }\n\n /** Update aggregation props */\n // eslint-disable-next-line complexity\n setProps(props: Partial<CPUAggregationProps>) {\n const oldProps = this.props;\n\n if (props.binOptions) {\n if (!deepEqual(props.binOptions, oldProps.binOptions, 2)) {\n this.setNeedsUpdate();\n }\n }\n if (props.operations) {\n for (let channel = 0; channel < this.channelCount; channel++) {\n if (props.operations[channel] !== oldProps.operations[channel]) {\n this.setNeedsUpdate(channel);\n }\n }\n }\n if (props.customOperations) {\n for (let channel = 0; channel < this.channelCount; channel++) {\n if (\n Boolean(props.customOperations[channel]) !== Boolean(oldProps.customOperations[channel])\n ) {\n this.setNeedsUpdate(channel);\n }\n }\n }\n if (props.pointCount !== undefined && props.pointCount !== oldProps.pointCount) {\n this.setNeedsUpdate();\n }\n if (props.attributes) {\n props.attributes = {...oldProps.attributes, ...props.attributes};\n }\n Object.assign(this.props, props);\n }\n\n /** Flags a channel to need update\n * This is called internally by setProps() if certain props change\n * Users of this class still need to manually set the dirty flag sometimes, because even if no props changed\n * the underlying buffers could have been updated and require rerunning the aggregation\n * @param {number} channel - mark the given channel as dirty. If not provided, all channels will be updated.\n */\n setNeedsUpdate(channel?: number): void {\n if (channel === undefined) {\n this.needsUpdate = true;\n } else if (this.needsUpdate !== true) {\n this.needsUpdate = this.needsUpdate || [];\n this.needsUpdate[channel] = true;\n }\n }\n\n /** Run aggregation */\n update() {\n if (this.needsUpdate === true) {\n this.bins = sortBins({\n pointCount: this.props.pointCount,\n getBinId: evaluateVertexAccessor(\n this.props.getBin,\n this.props.attributes,\n this.props.binOptions\n )\n });\n const value = packBinIds({\n bins: this.bins,\n dimensions: this.dimensions,\n // Reuse allocated typed array\n target: this.binIds?.value\n });\n this.binIds = {value, type: 'float32', size: this.dimensions};\n }\n for (let channel = 0; channel < this.channelCount; channel++) {\n if (this.needsUpdate === true || this.needsUpdate[channel]) {\n const operation =\n this.props.customOperations[channel] ||\n BUILT_IN_OPERATIONS[this.props.operations[channel]];\n const {value, domain} = aggregate({\n bins: this.bins,\n getValue: evaluateVertexAccessor(\n this.props.getValue[channel],\n this.props.attributes,\n undefined\n ),\n operation,\n // Reuse allocated typed array\n target: this.results[channel]?.value\n });\n this.results[channel] = {value, domain, type: 'float32', size: 1};\n this.props.onUpdate?.({channel});\n }\n }\n this.needsUpdate = false;\n }\n\n preDraw() {}\n\n /** Returns an accessor to the bins. */\n getBins(): BinaryAttribute | null {\n return this.binIds;\n }\n\n /** Returns an accessor to the output for a given channel. */\n getResult(channel: number): BinaryAttribute | null {\n return this.results[channel];\n }\n\n /** Returns the [min, max] of aggregated values for a given channel. */\n getResultDomain(channel: number): [min: number, max: number] {\n return this.results[channel]?.domain ?? [Infinity, -Infinity];\n }\n\n /** Returns the information for a given bin. */\n getBin(index: number): AggregatedBin | null {\n const bin = this.bins[index];\n if (!bin) {\n return null;\n }\n const value = new Array(this.channelCount);\n for (let i = 0; i < value.length; i++) {\n const result = this.results[i];\n value[i] = result?.value[index];\n }\n return {\n id: bin.id,\n value,\n count: bin.points.length,\n pointIndices: bin.points\n };\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Bin} from './cpu-aggregator';\n\n/** Group data points into bins */\nexport function sortBins({\n pointCount,\n getBinId\n}: {\n pointCount: number;\n getBinId: (index: number) => number[] | null;\n}): Bin[] {\n const binsById: Map<string, Bin> = new Map();\n\n for (let i = 0; i < pointCount; i++) {\n const id = getBinId(i);\n if (id === null) {\n continue;\n }\n let bin = binsById.get(String(id));\n if (bin) {\n bin.points.push(i);\n } else {\n bin = {\n id,\n index: binsById.size,\n points: [i]\n };\n binsById.set(String(id), bin);\n }\n }\n return Array.from(binsById.values());\n}\n\n/** Pack bin ids into a typed array */\nexport function packBinIds({\n bins,\n dimensions,\n target\n}: {\n bins: Bin[];\n /** Size of bin IDs */\n dimensions: number;\n /** Array to write output into */\n target?: Float32Array | null;\n}): Float32Array {\n const targetLength = bins.length * dimensions;\n if (!target || target.length < targetLength) {\n target = new Float32Array(targetLength);\n }\n\n for (let i = 0; i < bins.length; i++) {\n const {id} = bins[i];\n if (Array.isArray(id)) {\n target.set(id, i * dimensions);\n } else {\n target[i] = id;\n }\n }\n return target;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Bin} from './cpu-aggregator';\nimport type {AggregationOperation} from '../aggregator';\n\n/** A reducer function that takes a list of data points and outputs one measurement */\nexport type AggregationFunc = (\n /** Indices of the points */\n pointIndices: number[],\n /** Accessor to the value for each point */\n getValue: (index: number) => number\n) => number;\n\nconst count: AggregationFunc = pointIndices => {\n return pointIndices.length;\n};\n\nconst sum: AggregationFunc = (pointIndices, getValue) => {\n let result = 0;\n for (const i of pointIndices) {\n result += getValue(i);\n }\n return result;\n};\n\nconst mean: AggregationFunc = (pointIndices, getValue) => {\n if (pointIndices.length === 0) {\n return NaN;\n }\n return sum(pointIndices, getValue) / pointIndices.length;\n};\n\nconst min: AggregationFunc = (pointIndices, getValue) => {\n let result = Infinity;\n for (const i of pointIndices) {\n const value = getValue(i);\n if (value < result) {\n result = value;\n }\n }\n return result;\n};\n\nconst max: AggregationFunc = (pointIndices, getValue) => {\n let result = -Infinity;\n for (const i of pointIndices) {\n const value = getValue(i);\n if (value > result) {\n result = value;\n }\n }\n return result;\n};\n\nexport const BUILT_IN_OPERATIONS: Record<AggregationOperation, AggregationFunc> = {\n COUNT: count,\n SUM: sum,\n MEAN: mean,\n MIN: min,\n MAX: max\n} as const;\n\n/**\n * Performs the aggregation step. See interface Aggregator comments.\n * @returns Floa32Array of aggregated values, one for each bin, and the [min,max] of the values\n */\nexport function aggregate({\n bins,\n getValue,\n operation,\n target\n}: {\n /** Data points sorted by bins */\n bins: Bin[];\n /** Given the index of a data point, returns its value */\n getValue: (index: number) => number;\n /** Method used to reduce a list of values to one number */\n operation: AggregationFunc;\n /** Array to write the output into */\n target?: Float32Array | null;\n}): {\n value: Float32Array;\n domain: [min: number, max: number];\n} {\n if (!target || target.length < bins.length) {\n target = new Float32Array(bins.length);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n let min = Infinity;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n let max = -Infinity;\n\n for (let j = 0; j < bins.length; j++) {\n const {points} = bins[j];\n target[j] = operation(points, getValue);\n if (target[j] < min) min = target[j];\n if (target[j] > max) max = target[j];\n }\n\n return {value: target, domain: [min, max]};\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Attribute} from '@deck.gl/core';\nimport type {TypedArray} from '@luma.gl/core';\n\n/** This is designed to mirror a vertex shader function\n * For each vertex, calculates a value from attribtes, vertex index and options (uniforms)\n */\nexport type VertexAccessor<ValueT, OptionsT = undefined> = {\n /** Attribute ids that provide input to getValue, used to index into the attributes map.\n * For example `['position', 'size']`\n */\n sources?: string[];\n /** Called for each data point to retrieve a value during update. */\n getValue: (\n /** Attributes at the vertex index */\n data: any,\n /** Vertex index */\n index: number,\n /** Shared options across all vertices */\n options: OptionsT\n ) => ValueT;\n};\n\n/** Evaluate a VertexAccessor with a set of attributes */\nexport function evaluateVertexAccessor<ValueT, OptionsT>(\n accessor: VertexAccessor<ValueT, OptionsT>,\n attributes: Record<string, Attribute>,\n options: OptionsT\n): (vertexIndex: number) => ValueT {\n const vertexReaders: {[id: string]: (i: number) => number | number[]} = {};\n for (const id of accessor.sources || []) {\n const attribute = attributes[id];\n if (attribute) {\n vertexReaders[id] = getVertexReader(attribute);\n } else {\n throw new Error(`Cannot find attribute ${id}`);\n }\n }\n const data: {[id: string]: number | number[]} = {};\n\n return (vertexIndex: number) => {\n for (const id in vertexReaders) {\n data[id] = vertexReaders[id](vertexIndex);\n }\n return accessor.getValue(data, vertexIndex, options);\n };\n}\n\n/** Read value out of a deck.gl Attribute by vertex */\nfunction getVertexReader(attribute: Attribute): (vertexIndex: number) => number | number[] {\n const value = attribute.value as TypedArray;\n const {offset = 0, stride, size} = attribute.getAccessor();\n const bytesPerElement = value.BYTES_PER_ELEMENT;\n const elementOffset = offset / bytesPerElement;\n const elementStride = stride ? stride / bytesPerElement : size;\n\n if (size === 1) {\n // Size 1, returns (i: number) => number\n if (attribute.isConstant) {\n return () => value[0];\n }\n return (vertexIndex: number) => {\n const i = elementOffset + elementStride * vertexIndex;\n return value[i];\n };\n }\n\n // Size >1, returns (i: number) => number[]\n let result: number[];\n if (attribute.isConstant) {\n result = Array.from(value);\n return () => result;\n }\n\n result = new Array(size);\n return (vertexIndex: number) => {\n const i = elementOffset + elementStride * vertexIndex;\n for (let j = 0; j < size; j++) {\n result[j] = value[i + j];\n }\n return result;\n };\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Model, ModelProps} from '@luma.gl/engine';\nimport {createRenderTarget} from './utils';\n\nimport type {Device, Framebuffer, Texture} from '@luma.gl/core';\nimport type {WebGLAggregatorProps} from './webgl-aggregator';\nimport type {AggregationOperation} from '../aggregator';\nimport {BinSorterProps, binSorterUniforms} from './bin-sorter-uniforms';\n\nconst COLOR_CHANNELS = [0x1, 0x2, 0x4, 0x8]; // GPU color mask RED, GREEN, BLUE, ALPHA\nconst MAX_FLOAT32 = 3e38;\nconst EMPTY_MASKS = {SUM: 0, MEAN: 0, MIN: 0, MAX: 0, COUNT: 0};\n\nexport const TEXTURE_WIDTH = 1024;\n\n/**\n * This class manages the resources for performing the first step of aggregation\n * Sort a list of data points into a number of bins\n */\nexport class WebGLBinSorter {\n device: Device;\n model: Model;\n\n /**\n * A packed texture in which each pixel represents a bin.\n * The index of the pixel in the memory layout is the bin index.\n * Alpha value is the count of data points that fall into this bin\n * R,G,B values are the aggregated values of each channel:\n * - Sum of all data points if operation is 'SUM', or 'MEAN'\n * - Min of all data points if operation is 'MIN'\n * - Max of all data points if operation is 'MAX'\n */\n private binsFBO: Framebuffer | null = null;\n\n constructor(device: Device, props: WebGLAggregatorProps) {\n this.device = device;\n this.model = createModel(device, props);\n }\n\n get texture(): Texture | null {\n return this.binsFBO ? this.binsFBO.colorAttachments[0].texture : null;\n }\n\n destroy() {\n this.model.destroy();\n this.binsFBO?.colorAttachments[0].texture.destroy();\n this.binsFBO?.destroy();\n }\n\n getBinValues(index: number): Float32Array | null {\n if (!this.binsFBO) {\n return null;\n }\n const x = index % TEXTURE_WIDTH;\n const y = Math.floor(index / TEXTURE_WIDTH);\n const buffer = this.device.readPixelsToArrayWebGL(this.binsFBO, {\n sourceX: x,\n sourceY: y,\n sourceWidth: 1,\n sourceHeight: 1\n }).buffer;\n return new Float32Array(buffer);\n }\n\n setDimensions(binCount: number, binIdRange: [number, number][]) {\n const width = TEXTURE_WIDTH;\n const height = Math.ceil(binCount / width);\n\n // Only destroy existing texture if it is not large enough\n if (!this.binsFBO) {\n this.binsFBO = createRenderTarget(this.device, width, height);\n } else if (this.binsFBO.height < height) {\n this.binsFBO.resize({width, height});\n }\n\n const binSorterProps: BinSorterProps = {\n binIdRange: [\n binIdRange[0][0],\n binIdRange[0][1],\n binIdRange[1]?.[0] || 0,\n binIdRange[1]?.[1] || 0\n ],\n targetSize: [this.binsFBO.width, this.binsFBO.height]\n };\n this.model.shaderInputs.setProps({binSorter: binSorterProps});\n }\n\n setModelProps(\n props: Pick<ModelProps, 'vertexCount' | 'uniforms' | 'attributes' | 'constantAttributes'> & {\n shaderModuleProps?: Record<string, any>;\n }\n ) {\n const model = this.model;\n if (props.attributes) {\n model.setAttributes(props.attributes);\n }\n if (props.constantAttributes) {\n model.setConstantAttributes(props.constantAttributes);\n }\n if (props.vertexCount !== undefined) {\n model.setVertexCount(props.vertexCount);\n }\n if (props.shaderModuleProps) {\n model.shaderInputs.setProps(props.shaderModuleProps);\n }\n }\n\n /** Update aggregation */\n update(\n /** The aggregation operation for each channel. Use null to skip update. */\n operations: (AggregationOperation | null)[]\n ) {\n if (!this.binsFBO) {\n return;\n }\n const masks = getMaskByOperation(operations);\n this._updateBins('SUM', masks.SUM + masks.MEAN);\n this._updateBins('MIN', masks.MIN);\n this._updateBins('MAX', masks.MAX);\n }\n\n /** Recalculate aggregation on the given channels using the given operation */\n private _updateBins(\n operation: AggregationOperation,\n /** GPU bit mask of one or more channels that should be updated */\n colorMask: number\n ) {\n if (colorMask === 0) {\n return;\n }\n colorMask |= COLOR_CHANNELS[3]; // Also renders to the alpha channel (point count)\n\n const model = this.model;\n const target = this.binsFBO!;\n\n const initialValue = operation === 'MAX' ? -MAX_FLOAT32 : operation === 'MIN' ? MAX_FLOAT32 : 0;\n const renderPass = this.device.beginRenderPass({\n id: `gpu-aggregation-${operation}`,\n framebuffer: target,\n parameters: {\n viewport: [0, 0, target.width, target.height],\n colorMask\n },\n clearColor: [initialValue, initialValue, initialValue, 0],\n clearDepth: false,\n clearStencil: false\n });\n model.setParameters({\n blend: true,\n blendColorSrcFactor: 'one',\n blendColorDstFactor: 'one',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one',\n blendColorOperation: operation === 'MAX' ? 'max' : operation === 'MIN' ? 'min' : 'add',\n blendAlphaOperation: 'add'\n });\n model.draw(renderPass);\n renderPass.end();\n }\n}\n\n/** Convert a [channel -> operation] map to a [operation -> GPU color mask] map */\nfunction getMaskByOperation(\n operations: (AggregationOperation | null)[]\n): Record<AggregationOperation, number> {\n const result: Record<AggregationOperation, number> = {...EMPTY_MASKS};\n for (let channel = 0; channel < operations.length; channel++) {\n const op = operations[channel];\n if (op) {\n result[op] += COLOR_CHANNELS[channel];\n }\n }\n return result;\n}\n\nfunction createModel(device: Device, props: WebGLAggregatorProps): Model {\n let userVs = props.vs;\n\n if (props.dimensions === 2) {\n // If user provides 2d bin IDs, convert them to 1d indices for data packing\n userVs += /* glsl */ `\nvoid getBin(out int binId) {\n ivec2 binId2;\n getBin(binId2);\n if (binId2.x < binSorter.binIdRange.x || binId2.x >= binSorter.binIdRange.y) {\n binId = -1;\n } else {\n binId = (binId2.y - binSorter.binIdRange.z) * (binSorter.binIdRange.y - binSorter.binIdRange.x) + binId2.x;\n }\n}\n`;\n }\n\n const vs = `\\\n#version 300 es\n#define SHADER_NAME gpu-aggregation-sort-bins-vertex\n\n${userVs}\n\nout vec3 v_Value;\n\nvoid main() {\n int binIndex;\n getBin(binIndex);\n binIndex = binIndex - binSorter.binIdRange.x;\n if (binIndex < 0) {\n gl_Position = vec4(0.);\n return;\n }\n int row = binIndex / binSorter.targetSize.x;\n int col = binIndex - row * binSorter.targetSize.x;\n vec2 position = (vec2(col, row) + 0.5) / vec2(binSorter.targetSize) * 2.0 - 1.0;\n gl_Position = vec4(position, 0.0, 1.0);\n gl_PointSize = 1.0;\n\n#if NUM_CHANNELS == 3\n getValue(v_Value);\n#elif NUM_CHANNELS == 2\n getValue(v_Value.xy);\n#else\n getValue(v_Value.x);\n#endif\n}\n`;\n const fs = /* glsl */ `\\\n#version 300 es\n#define SHADER_NAME gpu-aggregation-sort-bins-fragment\n\nprecision highp float;\n\nin vec3 v_Value;\nout vec4 fragColor;\n\nvoid main() {\n fragColor.xyz = v_Value;\n\n #ifdef MODULE_GEOMETRY\n geometry.uv = vec2(0.);\n DECKGL_FILTER_COLOR(fragColor, geometry);\n #endif\n\n fragColor.w = 1.0;\n}\n`;\n const model = new Model(device, {\n bufferLayout: props.bufferLayout,\n modules: [...(props.modules || []), binSorterUniforms],\n // @ts-expect-error TODO fix luma type\n defines: {...props.defines, NON_INSTANCED_MODEL: 1, NUM_CHANNELS: props.channelCount},\n isInstanced: false,\n vs,\n fs,\n topology: 'point-list',\n disableWarnings: true\n });\n return model;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Device, Framebuffer} from '@luma.gl/core';\n\n/**\n * Create a float texture to store aggregation result\n */\nexport function createRenderTarget(device: Device, width: number, height: number): Framebuffer {\n return device.createFramebuffer({\n width,\n height,\n colorAttachments: [\n device.createTexture({\n width,\n height,\n format: 'rgba32float',\n sampler: {\n minFilter: 'nearest',\n magFilter: 'nearest'\n }\n })\n ]\n });\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {NumberArray2, NumberArray4} from '@math.gl/core';\nimport {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform binSorterUniforms {\n ivec4 binIdRange;\n ivec2 targetSize;\n} binSorter;\n`;\n\nexport type BinSorterProps = {\n binIdRange: NumberArray4;\n targetSize: NumberArray2;\n};\n\nexport const binSorterUniforms = {\n name: 'binSorter',\n vs: uniformBlock,\n uniformTypes: {\n binIdRange: 'vec4<i32>',\n targetSize: 'vec2<i32>'\n }\n} as const satisfies ShaderModule<BinSorterProps>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {BufferTransform} from '@luma.gl/engine';\nimport {createRenderTarget} from './utils';\n\nimport type {Device, Framebuffer, Buffer, Texture} from '@luma.gl/core';\nimport type {WebGLAggregatorProps} from './webgl-aggregator';\nimport type {AggregationOperation} from '../aggregator';\n\nimport {TEXTURE_WIDTH} from './webgl-bin-sorter';\nimport {\n AggregatorTransformProps,\n aggregatorTransformUniforms\n} from './aggregation-transform-uniforms';\nimport {NumberArray3} from '@math.gl/core';\n\nconst MAX_FLOAT32 = 3e38;\n\nexport class WebGLAggregationTransform {\n device: Device;\n channelCount: number;\n\n /** Packed from bin ids */\n binBuffer: Buffer | null = null;\n /** Packed values from each channel of each bin\n * Stride is number of channels * 4 bytes (float32)\n */\n valueBuffer: Buffer | null = null;\n\n private transform: BufferTransform;\n /** Render target for calculating domain */\n private domainFBO: Framebuffer;\n /** Aggregated [min, max] for each channel */\n private _domains: [min: number, max: number][] | null = null;\n\n constructor(device: Device, props: WebGLAggregatorProps) {\n this.device = device;\n this.channelCount = props.channelCount;\n this.transform = createTransform(device, props);\n this.domainFBO = createRenderTarget(device, 2, 1);\n }\n\n destroy() {\n this.transform.destroy();\n this.binBuffer?.destroy();\n this.valueBuffer?.destroy();\n this.domainFBO.colorAttachments[0].texture.destroy();\n this.domainFBO.destroy();\n }\n\n get domains(): [min: number, max: number][] {\n if (!this._domains) {\n // Domain model has run, but result has not been read to CPU\n const buffer = this.device.readPixelsToArrayWebGL(this.domainFBO).buffer;\n const domain = new Float32Array(buffer);\n this._domains = [\n [-domain[4], domain[0]],\n [-domain[5], domain[1]],\n [-domain[6], domain[2]]\n ].slice(0, this.channelCount) as [number, number][];\n }\n return this._domains;\n }\n\n setDimensions(binCount: number, binIdRange: [number, number][]) {\n const {model, transformFeedback} = this.transform;\n model.setVertexCount(binCount);\n const aggregatorTransformProps: Partial<AggregatorTransformProps> = {\n binIdRange: [\n binIdRange[0][0],\n binIdRange[0][1],\n binIdRange[1]?.[0] || 0,\n binIdRange[1]?.[1] || 0\n ]\n };\n model.shaderInputs.setProps({aggregatorTransform: aggregatorTransformProps});\n\n // Only destroy existing buffer if it is not large enough\n const binBufferByteLength = binCount * binIdRange.length * 4;\n if (!this.binBuffer || this.binBuffer.byteLength < binBufferByteLength) {\n this.binBuffer?.destroy();\n this.binBuffer = this.device.createBuffer({byteLength: binBufferByteLength});\n transformFeedback.setBuffer('binIds', this.binBuffer);\n }\n\n const valueBufferByteLength = binCount * this.channelCount * 4;\n if (!this.valueBuffer || this.valueBuffer.byteLength < valueBufferByteLength) {\n this.valueBuffer?.destroy();\n this.valueBuffer = this.device.createBuffer({byteLength: valueBufferByteLength});\n transformFeedback.setBuffer('values', this.valueBuffer);\n }\n }\n\n update(bins: Texture | null, operations: AggregationOperation[]) {\n if (!bins) {\n return;\n }\n const transform = this.transform;\n const target = this.domainFBO;\n\n const isCount = [0, 1, 2].map(i => (operations[i] === 'COUNT' ? 1 : 0));\n const isMean = [0, 1, 2].map(i => (operations[i] === 'MEAN' ? 1 : 0));\n const aggregatorTransformProps: Partial<AggregatorTransformProps> = {\n isCount: isCount as NumberArray3,\n isMean: isMean as NumberArray3,\n bins\n };\n transform.model.shaderInputs.setProps({aggregatorTransform: aggregatorTransformProps});\n\n transform.run({\n id: 'gpu-aggregation-domain',\n framebuffer: target,\n parameters: {\n viewport: [0, 0, 2, 1]\n },\n clearColor: [-MAX_FLOAT32, -MAX_FLOAT32, -MAX_FLOAT32, 0],\n clearDepth: false,\n clearStencil: false\n });\n\n // Clear the last read results. This will be lazy-populated if used.\n this._domains = null;\n }\n}\n\nfunction createTransform(device: Device, props: WebGLAggregatorProps): BufferTransform {\n const vs = /* glsl */ `\\\n#version 300 es\n#define SHADER_NAME gpu-aggregation-domain-vertex\n\nuniform sampler2D bins;\n\n#if NUM_DIMS == 1\nout float binIds;\n#else\nout vec2 binIds;\n#endif\n\n#if NUM_CHANNELS == 1\nflat out float values;\n#elif NUM_CHANNELS == 2\nflat out vec2 values;\n#else\nflat out vec3 values;\n#endif\n\nconst float NAN = intBitsToFloat(-1);\n\nvoid main() {\n int row = gl_VertexID / SAMPLER_WIDTH;\n int col = gl_VertexID - row * SAMPLER_WIDTH;\n vec4 weights = texelFetch(bins, ivec2(col, row), 0);\n vec3 value3 = mix(\n mix(weights.rgb, vec3(weights.a), aggregatorTransform.isCount),\n weights.rgb / max(weights.a, 1.0),\n aggregatorTransform.isMean\n );\n if (weights.a == 0.0) {\n value3 = vec3(NAN);\n }\n\n#if NUM_DIMS == 1\n binIds = float(gl_VertexID + aggregatorTransform.binIdRange.x);\n#else\n int y = gl_VertexID / (aggregatorTransform.binIdRange.y - aggregatorTransform.binIdRange.x);\n int x = gl_VertexID - y * (aggregatorTransform.binIdRange.y - aggregatorTransform.binIdRange.x);\n binIds.y = float(y + aggregatorTransform.binIdRange.z);\n binIds.x = float(x + aggregatorTransform.binIdRange.x);\n#endif\n\n#if NUM_CHANNELS == 3\n values = value3;\n#elif NUM_CHANNELS == 2\n values = value3.xy;\n#else\n values = value3.x;\n#endif\n\n gl_Position = vec4(0., 0., 0., 1.);\n // This model renders into a 2x1 texture to obtain min and max simultaneously.\n // See comments in fragment shader\n gl_PointSize = 2.0;\n}\n`;\n\n const fs = /* glsl */ `\\\n#version 300 es\n#define SHADER_NAME gpu-aggregation-domain-fragment\n\nprecision highp float;\n\n#if NUM_CHANNELS == 1\nflat in float values;\n#elif NUM_CHANNELS == 2\nflat in vec2 values;\n#else\nflat in vec3 values;\n#endif\n\nout vec4 fragColor;\n\nvoid main() {\n vec3 value3;\n#if NUM_CHANNELS == 3\n value3 = values;\n#elif NUM_CHANNELS == 2\n value3.xy = values;\n#else\n value3.x = values;\n#endif\n if (isnan(value3.x)) discard;\n // This shader renders into a 2x1 texture with blending=max\n // The left pixel yields the max value of each channel\n // The right pixel yields the min value of each channel\n if (gl_FragCoord.x < 1.0) {\n fragColor = vec4(value3, 1.0);\n } else {\n fragColor = vec4(-value3, 1.0);\n }\n}\n`;\n\n // Enable intBitsToFloat on Firefox + Nvidia driver: https://github.com/visgl/deck.gl/pull/10069\n if (device.type === 'webgl') {\n // @ts-expect-error WebGLDevice method\n device.getExtension('GL_ARB_shader_bit_encoding');\n }\n\n return new BufferTransform(device, {\n vs,\n fs,\n topology: 'point-list',\n modules: [aggregatorTransformUniforms],\n parameters: {\n blend: true,\n blendColorSrcFactor: 'one',\n blendColorDstFactor: 'one',\n blendColorOperation: 'max',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one',\n blendAlphaOperation: 'max'\n },\n defines: {\n // @ts-expect-error TODO fix luma type\n NUM_DIMS: props.dimensions,\n // @ts-expect-error TODO fix luma type\n NUM_CHANNELS: props.channelCount,\n // @ts-expect-error TODO fix luma type\n SAMPLER_WIDTH: TEXTURE_WIDTH\n },\n varyings: ['binIds', 'values'],\n disableWarnings: true\n });\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {NumberArray3, NumberArray4} from '@math.gl/core';\nimport {ShaderModule} from '@luma.gl/shadertools';\nimport {Texture} from '@luma.gl/core';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform aggregatorTransformUniforms {\n ivec4 binIdRange;\n bvec3 isCount;\n bvec3 isMean;\n float naN;\n} aggregatorTransform;\n`;\n\nexport type AggregatorTransformProps = {\n binIdRange: NumberArray4;\n isCount: NumberArray3;\n isMean: NumberArray3;\n naN: number;\n bins: Texture;\n};\n\nexport const aggregatorTransformUniforms = {\n name: 'aggregatorTransform',\n vs: uniformBlock,\n uniformTypes: {\n binIdRange: 'vec4<i32>',\n isCount: 'vec3<f32>',\n isMean: 'vec3<f32>',\n naN: 'f32'\n }\n} as const satisfies ShaderModule<AggregatorTransformProps>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {WebGLBinSorter} from './webgl-bin-sorter';\nimport {WebGLAggregationTransform} from './webgl-aggregation-transform';\nimport {_deepEqual as deepEqual, log, BinaryAttribute} from '@deck.gl/core';\n\nimport type {Aggregator, AggregationProps, AggregatedBin} from '../aggregator';\nimport type {Device, Buffer, BufferLayout, TypedArray} from '@luma.gl/core';\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\n/** Options used to construct a new WebGLAggregator */\nexport type WebGLAggregatorProps = {\n /** Size of bin IDs */\n dimensions: 1 | 2;\n /** How many properties to perform aggregation on */\n channelCount: 1 | 2 | 3;\n /** Buffer layout for input attributes */\n bufferLayout?: BufferLayout[];\n /** Define a shader function with one of the signatures\n * `void getBin(out int binId)`: if dimensions=1\n * `void getBin(out ivec2 binId)`: if dimensions=2\n * And a shader function with one of the signatures\n * `void getValue(out float value)`: if channelCount=1\n * `void getValue(out vec2 value)`: if channelCount=2\n * `void getValue(out vec3 value)`: if channelCount=3\n */\n vs: string;\n /** Shader modules\n * Required to support certain layer extensions (e.g. data filter)\n */\n modules?: ShaderModule[];\n /** Shadertool module defines */\n defines?: Record<string, string | number | boolean>;\n} & Partial<WebGLAggregationProps>;\n\n/** Props used to run GPU aggregation, can be changed at any time */\ntype WebGLAggregationProps = AggregationProps & {\n /** Limits of binId defined for each dimension. Ids outside of the [start, end) are ignored.\n */\n binIdRange: [start: number, end: number][];\n /** Context props passed to the shader modules */\n shaderModuleProps?: Record<string, any>;\n};\n\n/** An Aggregator implementation that calculates aggregation on the GPU */\nexport class WebGLAggregator implements Aggregator {\n /** Checks if the current device supports GPU aggregation */\n static isSupported(device: Device): boolean {\n return (\n device.features.has('float32-renderable-webgl') &&\n device.features.has('texture-blend-float-webgl')\n );\n }\n\n readonly dimensions: 1 | 2;\n readonly channelCount: 1 | 2 | 3;\n binCount: number = 0;\n\n readonly device: Device;\n props: WebGLAggregatorProps & WebGLAggregationProps;\n\n /** Dirty flag per channel */\n protected needsUpdate: boolean[];\n /** Step 1. sort data points into bins, blended using an aggregation opera\u2020ion */\n protected binSorter: WebGLBinSorter;\n /** Step 2. (optional) calculate the min/max across all bins */\n protected aggregationTransform: WebGLAggregationTransform;\n\n /** Cached outputs */\n protected binIds: BinaryAttribute | null = null;\n protected results: BinaryAttribute[] = [];\n\n constructor(device: Device, props: WebGLAggregatorProps) {\n this.device = device;\n this.dimensions = props.dimensions;\n this.channelCount = props.channelCount;\n this.props = {\n ...props,\n pointCount: 0,\n binIdRange: [[0, 0]],\n operations: [],\n attributes: {},\n binOptions: {}\n };\n this.needsUpdate = new Array(this.channelCount).fill(true);\n this.binSorter = new WebGLBinSorter(device, props);\n this.aggregationTransform = new WebGLAggregationTransform(device, props);\n this.setProps(props);\n }\n\n getBins(): BinaryAttribute | null {\n const buffer = this.aggregationTransform.binBuffer;\n if (!buffer) {\n return null;\n }\n if (this.binIds?.buffer !== buffer) {\n // deck.gl Attribute.setBinaryValue uses shallow comparison to determine if attribute value has changed\n // For performance, only create a new binary attribute descriptor when Buffer changes\n this.binIds = {buffer, type: 'float32', size: this.dimensions};\n }\n return this.binIds;\n }\n\n /** Returns an accessor to the output for a given channel. */\n getResult(channel: 0 | 1 | 2): BinaryAttribute | null {\n const buffer = this.aggregationTransform.valueBuffer;\n if (!buffer || channel >= this.channelCount) {\n return null;\n }\n if (this.results[channel]?.buffer !== buffer) {\n this.results[channel] = {\n buffer,\n type: 'float32',\n size: 1,\n stride: this.channelCount * 4,\n offset: channel * 4\n };\n }\n return this.results[channel];\n }\n\n /** Returns the [min, max] of aggregated values for a given channel. */\n getResultDomain(channel: 0 | 1 | 2): [min: number, max: number] {\n return this.aggregationTransform.domains[channel];\n }\n\n /** Returns the information for a given bin. */\n getBin(index: number): AggregatedBin | null {\n if (index < 0 || index >= this.binCount) {\n return null;\n }\n const {binIdRange} = this.props;\n let id: number[];\n\n if (this.dimensions === 1) {\n id = [index + binIdRange[0][0]];\n } else {\n const [[x0, x1], [y0]] = binIdRange;\n const width = x1 - x0;\n id = [(index % width) + x0, Math.floor(index / width) + y0];\n }\n\n const pixel = this.binSorter.getBinValues(index);\n if (!pixel) {\n return null;\n }\n const count = pixel[3];\n const value: number[] = [];\n for (let channel = 0; channel < this.channelCount; channel++) {\n const operation = this.props.operations[channel];\n if (operation === 'COUNT') {\n value[channel] = count;\n } else if (count === 0) {\n value[channel] = NaN;\n } else {\n value[channel] = operation === 'MEAN' ? pixel[channel] / count : pixel[channel];\n }\n }\n return {id, value, count};\n }\n\n /** Release GPU resources */\n destroy() {\n this.binSorter.destroy();\n this.aggregationTransform.destroy();\n }\n\n /** Update aggregation props. Normalize prop values and set change flags. */\n // eslint-disable-next-line complexity, max-statements\n setProps(props: Partial<WebGLAggregationProps>) {\n const oldProps = this.props;\n\n // Update local settings. These will set the flag this._needsUpdate\n if ('binIdRange' in props && !deepEqual(props.binIdRange, oldProps.binIdRange, 2)) {\n const binIdRange = props.binIdRange!;\n log.assert(binIdRange.length === this.dimensions);\n\n if (this.dimensions === 1) {\n const [[x0, x1]] = binIdRange;\n this.binCount = x1 - x0;\n } else {\n const [[x0, x1], [y0, y1]] = binIdRange;\n this.binCount = (x1 - x0) * (y1 - y0);\n }\n\n this.binSorter.setDimensions(this.binCount, binIdRange);\n this.aggregationTransform.setDimensions(this.binCount, binIdRange);\n this.setNeedsUpdate();\n }\n if (props.operations) {\n for (let channel = 0; channel < this.channelCount; channel++) {\n if (props.operations[channel] !== oldProps.operations[channel]) {\n this.setNeedsUpdate(channel);\n }\n }\n }\n if (props.pointCount !== undefined && props.pointCount !== oldProps.pointCount) {\n this.binSorter.setModelProps({vertexCount: props.pointCount});\n this.setNeedsUpdate();\n }\n if (props.binOptions) {\n if (!deepEqual(props.binOptions, oldProps.binOptions, 2)) {\n this.setNeedsUpdate();\n }\n this.binSorter.model.shaderInputs.setProps({binOptions: props.binOptions});\n }\n if (props.attributes) {\n const attributeBuffers: Record<string, Buffer> = {};\n const constantAttributes: Record<string, TypedArray> = {};\n\n for (const attribute of Object.values(props.attributes)) {\n for (const [attributeName, value] of Object.entries(attribute.getValue())) {\n if (ArrayBuffer.isView(value)) {\n constantAttributes[attributeName] = value;\n } else if (value) {\n attributeBuffers[attributeName] = value;\n }\n }\n }\n this.binSorter.setModelProps({attributes: attributeBuffers, constantAttributes});\n }\n if (props.shaderModuleProps) {\n this.binSorter.setModelProps({shaderModuleProps: props.shaderModuleProps});\n }\n\n Object.assign(this.props, props);\n }\n\n /** Flags a channel to need update.\n * This is called internally by setProps() if certain props change\n * Users of this class still need to manually set the dirty flag sometimes, because even if no props changed\n * the underlying buffers could have been updated and require rerunning the aggregation\n * @param {number} channel - mark the given channel as dirty. If not provided, all channels will be updated.\n */\n setNeedsUpdate(channel?: number) {\n if (channel === undefined) {\n this.needsUpdate.fill(true);\n } else {\n this.needsUpdate[channel] = true;\n }\n }\n\n update() {}\n\n /** Run aggregation */\n preDraw() {\n if (!this.needsUpdate.some(Boolean)) {\n return;\n }\n\n const {operations} = this.props;\n const operationsToUpdate = this.needsUpdate.map((needsUpdate, i) =>\n needsUpdate ? operations[i] : null\n );\n // Render data to bins\n this.binSorter.update(operationsToUpdate);\n // Read to buffer and calculate domain\n this.aggregationTransform.update(this.binSorter.texture, operations);\n\n for (let i = 0; i < this.channelCount; i++) {\n if (this.needsUpdate[i]) {\n this.needsUpdate[i] = false;\n this.props.onUpdate?.({channel: i});\n }\n }\n\n // Uncomment to debug\n // console.log('binsFBO', new Float32Array(this.device.readPixelsToArrayWebGL(this.binSorter.texture!).buffer));\n // console.log('binsBuffer', new Float32Array(this.aggregationTransform.binBuffer?.readSyncWebGL().buffer!));\n // console.log('resultBuffer', new Float32Array(this.aggregationTransform.valueBuffer?.readSyncWebGL().buffer!));\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {\n CompositeLayer,\n LayerDataSource,\n LayerContext,\n UpdateParameters,\n CompositeLayerProps,\n Attribute,\n AttributeManager\n} from '@deck.gl/core';\nimport {Aggregator} from './aggregator/aggregator';\n\nexport type AggregationLayerProps<DataT> = CompositeLayerProps & {\n data: LayerDataSource<DataT>;\n};\n\nexport default abstract class AggregationLayer<\n DataT,\n ExtraPropsT extends {} = {}\n> extends CompositeLayer<Required<AggregationLayer<DataT>> & ExtraPropsT> {\n static layerName = 'AggregationLayer';\n\n state!: {\n aggregatorType: string;\n aggregator: Aggregator;\n };\n\n /** Allow this layer to participates in the draw cycle */\n get isDrawable() {\n return true;\n }\n\n abstract getAggregatorType(): string;\n /** Called to create an Aggregator instance */\n abstract createAggregator(type: string): Aggregator;\n /** Called when some attributes change, a chance to mark Aggregator as dirty */\n abstract onAttributeChange(id: string): void;\n\n initializeState(): void {}\n\n // Extend Layer.updateState to update the Aggregator instance\n // returns true if aggregator is changed\n updateState(params: UpdateParameters<this>): boolean {\n super.updateState(params);\n\n const aggregatorType = this.getAggregatorType();\n if (params.changeFlags.extensionsChanged || this.state.aggregatorType !== aggregatorType) {\n this.state.aggregator?.destroy();\n const aggregator = this.createAggregator(aggregatorType);\n aggregator.setProps({\n attributes: this.getAttributeManager()?.attributes\n });\n this.setState({aggregator, aggregatorType});\n return true;\n }\n return false;\n }\n\n // Override Layer.finalizeState to dispose the Aggregator instance\n finalizeState(context: LayerContext) {\n super.finalizeState(context);\n this.state.aggregator.destroy();\n }\n\n // Override Layer.updateAttributes to update the aggregator\n protected updateAttributes(changedAttributes: {[id: string]: Attribute}) {\n const {aggregator} = this.state;\n aggregator.setProps({\n attributes: changedAttributes\n });\n\n for (const id in changedAttributes) {\n this.onAttributeChange(id);\n }\n\n // In aggregator.update() the aggregator allocates the buffers to store its output\n // These buffers will be exposed by aggregator.getResults() and passed to the sublayers\n // Therefore update() must be called before renderLayers()\n // CPUAggregator's output is populated right here in update()\n // GPUAggregator's output is pre-allocated and populated in preDraw(), see comments below\n aggregator.update();\n }\n\n draw({shaderModuleProps}) {\n // GPU aggregation needs `shaderModuleProps` for projection/filter uniforms which are only accessible at draw time\n // GPUAggregator's Buffers are pre-allocated during `update()` and passed down to the sublayer attributes in renderLayers()\n // Although the Buffers have been bound to the sublayer's Model, their content are not populated yet\n // GPUAggregator.preDraw() is called in the draw cycle here right before Buffers are used by sublayer.draw()\n const {aggregator} = this.state;\n // @ts-expect-error only used by GPU aggregators\n aggregator.setProps({shaderModuleProps});\n aggregator.preDraw();\n }\n\n // override CompositeLayer._getAttributeManager to create AttributeManager instance\n _getAttributeManager() {\n return new AttributeManager(this.context.device, {\n id: this.props.id,\n stats: this.context.stats\n });\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Texture} from '@luma.gl/core';\nimport {Model, Geometry} from '@luma.gl/engine';\nimport {Layer, picking, UpdateParameters, Color} from '@deck.gl/core';\nimport {createColorRangeTexture, updateColorRangeTexture} from '../common/utils/color-utils';\nimport vs from './screen-grid-layer-vertex.glsl';\nimport fs from './screen-grid-layer-fragment.glsl';\nimport {ScreenGridProps, screenGridUniforms} from './screen-grid-layer-uniforms';\nimport {ShaderModule} from '@luma.gl/shadertools';\nimport type {ScaleType} from '../common/types';\n\n/** Proprties added by ScreenGridCellLayer. */\nexport type _ScreenGridCellLayerProps = {\n cellSizePixels: number;\n cellMarginPixels: number;\n colorScaleType: ScaleType;\n colorDomain: () => [number, number];\n colorRange?: Color[];\n};\n\nexport default class ScreenGridCellLayer<ExtraPropsT extends {} = {}> extends Layer<\n ExtraPropsT & Required<_ScreenGridCellLayerProps>\n> {\n static layerName = 'ScreenGridCellLayer';\n\n state!: {\n model?: Model;\n colorTexture: Texture;\n };\n\n getShaders(): {vs: string; fs: string; modules: ShaderModule[]} {\n return super.getShaders({vs, fs, modules: [picking, screenGridUniforms]});\n }\n\n initializeState() {\n this.getAttributeManager()!.addInstanced({\n instancePositions: {\n size: 2,\n type: 'float32',\n accessor: 'getBin'\n },\n instanceWeights: {\n size: 1,\n type: 'float32',\n accessor: 'getWeight'\n }\n });\n\n this.state.model = this._getModel();\n }\n\n updateState(params: UpdateParameters<this>) {\n super.updateState(params);\n\n const {props, oldProps, changeFlags} = params;\n const model = this.state.model!;\n\n if (oldProps.colorRange !== props.colorRange) {\n this.state.colorTexture?.destroy();\n this.state.colorTexture = createColorRangeTexture(\n this.context.device,\n props.colorRange,\n props.colorScaleType\n );\n const screenGridProps: Partial<ScreenGridProps> = {colorRange: this.state.colorTexture};\n model.shaderInputs.setProps({screenGrid: screenGridProps});\n } else if (oldProps.colorScaleType !== props.colorScaleType) {\n updateColorRangeTexture(this.state.colorTexture, props.colorScaleType);\n }\n\n if (\n oldProps.cellMarginPixels !== props.cellMarginPixels ||\n oldProps.cellSizePixels !== props.cellSizePixels ||\n changeFlags.viewportChanged\n ) {\n const {width, height} = this.context.viewport;\n const {cellSizePixels: gridSize, cellMarginPixels} = this.props;\n const cellSize = Math.max(gridSize - cellMarginPixels, 0);\n\n const screenGridProps: Partial<ScreenGridProps> = {\n gridSizeClipspace: [(gridSize / width) * 2, (gridSize / height) * 2],\n cellSizeClipspace: [(cellSize / width) * 2, (cellSize / height) * 2]\n };\n model.shaderInputs.setProps({screenGrid: screenGridProps});\n }\n }\n\n finalizeState(context) {\n super.finalizeState(context);\n\n this.state.colorTexture?.destroy();\n }\n\n draw({uniforms}) {\n const colorDomain = this.props.colorDomain();\n const model = this.state.model!;\n\n const screenGridProps: Partial<ScreenGridProps> = {colorDomain};\n model.shaderInputs.setProps({screenGrid: screenGridProps});\n model.draw(this.context.renderPass);\n }\n\n // Private Methods\n\n _getModel(): Model {\n return new Model(this.context.device, {\n ...this.getShaders(),\n id: this.props.id,\n bufferLayout: this.getAttributeManager()!.getBufferLayouts(),\n geometry: new Geometry({\n topology: 'triangle-strip',\n attributes: {\n positions: {\n value: new Float32Array([0, 0, 1, 0, 0, 1, 1, 1]),\n size: 2\n }\n }\n }),\n isInstanced: true\n });\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Color} from '@deck.gl/core';\nimport type {Device, Texture} from '@luma.gl/core';\nimport type {NumericArray, TypedArray, TypedArrayConstructor} from '@math.gl/types';\nimport type {ScaleType} from '../types';\n\nexport const defaultColorRange: Color[] = [\n [255, 255, 178],\n [254, 217, 118],\n [254, 178, 76],\n [253, 141, 60],\n [240, 59, 32],\n [189, 0, 38]\n];\n\n// Converts a colorRange array to a flat array with 4 components per color\nexport function colorRangeToFlatArray(\n colorRange: Color[] | NumericArray,\n normalize = false,\n ArrayType: TypedArrayConstructor = Float32Array\n): TypedArray {\n let flatArray: TypedArray;\n\n if (Number.isFinite(colorRange[0])) {\n // its already a flat array.\n flatArray = new ArrayType(colorRange as NumericArray);\n } else {\n // flatten it\n flatArray = new ArrayType(colorRange.length * 4);\n let index = 0;\n\n for (let i = 0; i < colorRange.length; i++) {\n const color = colorRange[i];\n flatArray[index++] = color[0];\n flatArray[index++] = color[1];\n flatArray[index++] = color[2];\n flatArray[index++] = Number.isFinite(color[3]) ? color[3] : 255;\n }\n }\n\n if (normalize) {\n for (let i = 0; i < flatArray.length; i++) {\n flatArray[i] /= 255;\n }\n }\n return flatArray;\n}\n\nexport const COLOR_RANGE_FILTER: Record<ScaleType, 'linear' | 'nearest'> = {\n linear: 'linear',\n quantile: 'nearest',\n quantize: 'nearest',\n ordinal: 'nearest'\n} as const;\n\nexport function updateColorRangeTexture(texture: Texture, type: ScaleType) {\n texture.setSampler({\n minFilter: COLOR_RANGE_FILTER[type],\n magFilter: COLOR_RANGE_FILTER[type]\n });\n}\n\nexport function createColorRangeTexture(\n device: Device,\n colorRange: Color[] | NumericArray,\n type: ScaleType = 'linear'\n): Texture {\n const colors = colorRangeToFlatArray(colorRange, false, Uint8Array);\n\n return device.createTexture({\n format: 'rgba8unorm',\n sampler: {\n minFilter: COLOR_RANGE_FILTER[type],\n magFilter: COLOR_RANGE_FILTER[type],\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n },\n data: colors,\n width: colors.length / 4,\n height: 1\n });\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default /* glsl */ `\\\n#version 300 es\n#define SHADER_NAME screen-grid-layer-vertex-shader\n#define RANGE_COUNT 6\n\nin vec2 positions;\nin vec2 instancePositions;\nin float instanceWeights;\n\nuniform sampler2D colorRange;\n\nout vec4 vColor;\n\nvec4 interp(float value, vec2 domain, sampler2D range) {\n float r = (value - domain.x) / (domain.y - domain.x);\n return texture(range, vec2(r, 0.5));\n}\n\nvoid main(void) {\n if (isnan(instanceWeights)) {\n gl_Position = vec4(0.);\n return;\n }\n\n vec2 pos = instancePositions * screenGrid.gridSizeClipspace + positions * screenGrid.cellSizeClipspace;\n pos.x = pos.x - 1.0;\n pos.y = 1.0 - pos.y;\n\n gl_Position = vec4(pos, 0., 1.);\n\n vColor = interp(instanceWeights, screenGrid.colorDomain, colorRange);\n vColor.a *= layer.opacity;\n\n // Set color to be rendered to picking fbo (also used to check for selection highlight).\n picking_setPickingColorFromInstanceID();\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* fragment shader for the grid-layer */\nexport default /* glsl */ `\\\n#version 300 es\n#define SHADER_NAME screen-grid-layer-fragment-shader\n\nprecision highp float;\n\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n fragColor = vColor;\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Texture} from '@luma.gl/core';\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform screenGridUniforms {\n vec2 cellSizeClipspace;\n vec2 gridSizeClipspace;\n vec2 colorDomain;\n} screenGrid;\n`;\n\nexport type ScreenGridProps = {\n cellSizeClipspace: [number, number];\n gridSizeClipspace: [number, number];\n colorDomain: [number, number];\n colorRange: Texture;\n};\n\nexport const screenGridUniforms = {\n name: 'screenGrid',\n vs: uniformBlock,\n uniformTypes: {\n cellSizeClipspace: 'vec2<f32>',\n gridSizeClipspace: 'vec2<f32>',\n colorDomain: 'vec2<f32>'\n }\n} as const satisfies ShaderModule<ScreenGridProps>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform binOptionsUniforms {\n float cellSizePixels;\n} binOptions;\n`;\n\nexport type BinOptions = {\n cellSizePixels: number;\n};\n\nexport const binOptionsUniforms = {\n name: 'binOptions',\n vs: uniformBlock,\n uniformTypes: {\n cellSizePixels: 'f32'\n }\n} as const satisfies ShaderModule<BinOptions>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {\n log,\n Accessor,\n Color,\n GetPickingInfoParams,\n CompositeLayerProps,\n createIterable,\n Layer,\n Material,\n project32,\n LayersList,\n PickingInfo,\n Position,\n Viewport,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport {WebGLAggregator, CPUAggregator, AggregationOperation} from '../common/aggregator/index';\nimport AggregationLayer from '../common/aggregation-layer';\nimport {AggregateAccessor} from '../common/types';\nimport {defaultColorRange} from '../common/utils/color-utils';\nimport {AttributeWithScale} from '../common/utils/scale-utils';\nimport {getBinIdRange} from '../common/utils/bounds-utils';\n\nimport HexagonCellLayer from './hexagon-cell-layer';\nimport {pointToHexbin, HexbinVertices, getHexbinCentroid, pointToHexbinGLSL} from './hexbin';\nimport {BinOptions, binOptionsUniforms} from './bin-options-uniforms';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n\nconst defaultProps: DefaultProps<HexagonLayerProps> = {\n gpuAggregation: true,\n\n // color\n colorDomain: null,\n colorRange: defaultColorRange,\n getColorValue: {type: 'accessor', value: null}, // default value is calculated from `getColorWeight` and `colorAggregation`\n getColorWeight: {type: 'accessor', value: 1},\n colorAggregation: 'SUM',\n lowerPercentile: {type: 'number', min: 0, max: 100, value: 0},\n upperPercentile: {type: 'number', min: 0, max: 100, value: 100},\n colorScaleType: 'quantize',\n onSetColorDomain: noop,\n\n // elevation\n elevationDomain: null,\n elevationRange: [0, 1000],\n getElevationValue: {type: 'accessor', value: null}, // default value is calculated from `getElevationWeight` and `elevationAggregation`\n getElevationWeight: {type: 'accessor', value: 1},\n elevationAggregation: 'SUM',\n elevationScale: {type: 'number', min: 0, value: 1},\n elevationLowerPercentile: {type: 'number', min: 0, max: 100, value: 0},\n elevationUpperPercentile: {type: 'number', min: 0, max: 100, value: 100},\n elevationScaleType: 'linear',\n onSetElevationDomain: noop,\n\n // hexbin\n radius: {type: 'number', min: 1, value: 1000},\n coverage: {type: 'number', min: 0, max: 1, value: 1},\n getPosition: {type: 'accessor', value: (x: any) => x.position},\n hexagonAggregator: {type: 'function', optional: true, value: null},\n extruded: false,\n\n // Optional material for 'lighting' shader module\n material: true\n};\n\n/** All properties supported by HexagonLayer. */\nexport type HexagonLayerProps<DataT = unknown> = _HexagonLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by HexagonLayer. */\ntype _HexagonLayerProps<DataT> = {\n /**\n * Radius of hexagon bin in meters. The hexagons are pointy-topped (rather than flat-topped).\n * @default 1000\n */\n radius?: number;\n\n /**\n * Custom accessor to retrieve a hexagonal bin index from each data object.\n * Not supported by GPU aggregation.\n * @default null\n */\n hexagonAggregator?: ((position: number[], radius: number) => [number, number]) | null;\n\n /**\n * Color scale domain, default is set to the extent of aggregated weights in each cell.\n * @default [min(colorWeight), max(colorWeight)]\n */\n colorDomain?: Readonly<[number, number]> | null;\n\n /**\n * Default: [colorbrewer](http://colorbrewer2.org/#type=sequential&scheme=YlOrRd&n=6) `6-class YlOrRd`\n */\n colorRange?: Color[];\n\n /**\n * Cell size multiplier, clamped between 0 - 1.\n * @default 1\n */\n coverage?: number;\n\n /**\n * Elevation scale input domain, default is set to between 0 and the max of aggregated weights in each cell.\n * @default [0, max(elevationWeight)]\n */\n elevationDomain?: Readonly<[number, number]> | null;\n\n /**\n * Elevation scale output range.\n * @default [0, 1000]\n */\n elevationRange?: Readonly<[number, number]>;\n\n /**\n * Cell elevation multiplier.\n * @default 1\n */\n elevationScale?: number;\n\n /**\n * Whether to enable cell elevation. If set to false, all cell will be flat.\n * @default true\n */\n extruded?: boolean;\n\n /**\n * Filter cells and re-calculate color by `upperPercentile`.\n * Cells with value larger than the upperPercentile will be hidden.\n * @default 100\n */\n upperPercentile?: number;\n\n /**\n * Filter cells and re-calculate color by `lowerPercentile`.\n * Cells with value smaller than the lowerPercentile will be hidden.\n * @default 0\n */\n lowerPercentile?: number;\n\n /**\n * Filter cells and re-calculate elevation by `elevationUpperPercentile`.\n * Cells with elevation value larger than the `elevationUpperPercentile` will be hidden.\n * @default 100\n */\n elevationUpperPercentile?: number;\n\n /**\n * Filter cells and re-calculate elevation by `elevationLowerPercentile`.\n * Cells with elevation value larger than the `elevationLowerPercentile` will be hidden.\n * @default 0\n */\n elevationLowerPercentile?: number;\n\n /**\n * Scaling function used to determine the color of the grid cell, default value is 'quantize'.\n * Supported Values are 'quantize', 'linear', 'quantile' and 'ordinal'.\n * @default 'quantize'\n */\n colorScaleType?: 'quantize' | 'linear' | 'quantile' | 'ordinal';\n\n /**\n * Scaling function used to determine the elevation of the grid cell, only supports 'linear'.\n * Supported Values are 'linear' and 'quantile'.\n * @default 'linear'\n */\n elevationScaleType?: 'linear';\n\n /**\n * Material settings for lighting effect. Applies if `extruded: true`.\n *\n * @default true\n * @see https://deck.gl/docs/developer-guide/using-lighting\n */\n material?: Material;\n\n /**\n * Defines the operation used to aggregate all data object weights to calculate a cell's color value.\n * Valid values are 'SUM', 'MEAN', 'MIN', 'MAX', 'COUNT'.\n *\n * @default 'SUM'\n */\n colorAggregation?: AggregationOperation;\n\n /**\n * Defines the operation used to aggregate all data object weights to calculate a cell's elevation value.\n * Valid values are 'SUM', 'MEAN', 'MIN', 'MAX', 'COUNT'.\n *\n * @default 'SUM'\n */\n elevationAggregation?: AggregationOperation;\n\n /**\n * Method called to retrieve the position of each object.\n * @default object => object.position\n */\n getPosition?: Accessor<DataT, Position>;\n\n /**\n * The weight of a data object used to calculate the color value for a cell.\n * @default 1\n */\n getColorWeight?: Accessor<DataT, number>;\n\n /**\n * After data objects are aggregated into cells, this accessor is called on each cell to get the value that its color is based on.\n * Not supported by GPU aggregation.\n * @default null\n */\n getColorValue?: AggregateAccessor<DataT> | null;\n\n /**\n * The weight of a data object used to calculate the elevation value for a cell.\n * @default 1\n */\n getElevationWeight?: Accessor<DataT, number>;\n\n /**\n * After data objects are aggregated into cells, this accessor is called on each cell to get the value that its elevation is based on.\n * Not supported by GPU aggregation.\n * @default null\n */\n getElevationValue?: AggregateAccessor<DataT> | null;\n\n /**\n * This callback will be called when bin color domain has been calculated.\n * @default () => {}\n */\n onSetColorDomain?: (minMax: [number, number]) => void;\n\n /**\n * This callback will be called when bin elevation domain has been calculated.\n * @default () => {}\n */\n onSetElevationDomain?: (minMax: [number, number]) => void;\n\n /**\n * When set to true, aggregation is performed on GPU, provided other conditions are met.\n * @default true\n */\n gpuAggregation?: boolean;\n};\n\nexport type HexagonLayerPickingInfo<DataT> = PickingInfo<{\n /** Column index of the picked cell */\n col: number;\n /** Row index of the picked cell */\n row: number;\n /** Aggregated color value, as determined by `getColorWeight` and `colorAggregation` */\n colorValue: number;\n /** Aggregated elevation value, as determined by `getElevationWeight` and `elevationAggregation` */\n elevationValue: number;\n /** Number of data points in the picked cell */\n count: number;\n /** Centroid of the hexagon */\n position: [number, number];\n /** Indices of the data objects in the picked cell. Only available if using CPU aggregation. */\n pointIndices?: number[];\n /** The data objects in the picked cell. Only available if using CPU aggregation and layer data is an array. */\n points?: DataT[];\n}>;\n\n/** Aggregate data into a grid-based heatmap. The color and height of a cell are determined based on the objects it contains. */\nexport default class HexagonLayer<\n DataT = any,\n ExtraPropsT extends {} = {}\n> extends AggregationLayer<DataT, ExtraPropsT & Required<_HexagonLayerProps<DataT>>> {\n static layerName = 'HexagonLayer';\n static defaultProps = defaultProps;\n\n state!: AggregationLayer<DataT>['state'] &\n BinOptions & {\n // Needed if getColorValue, getElevationValue are used\n dataAsArray?: DataT[];\n\n colors?: AttributeWithScale;\n elevations?: AttributeWithScale;\n\n binIdRange: [number, number][];\n aggregatorViewport: Viewport;\n };\n\n getAggregatorType(): string {\n const {gpuAggregation, hexagonAggregator, getColorValue, getElevationValue} = this.props;\n if (gpuAggregation && (hexagonAggregator || getColorValue || getElevationValue)) {\n // If these features are desired by the app, the user should explicitly use CPU aggregation\n log.warn('Features not supported by GPU aggregation, falling back to CPU')();\n return 'cpu';\n }\n\n if (\n // GPU aggregation is requested\n gpuAggregation &&\n // GPU aggregation is supported by the device\n WebGLAggregator.isSupported(this.context.device)\n ) {\n return 'gpu';\n }\n return 'cpu';\n }\n\n createAggregator(type: string): WebGLAggregator | CPUAggregator {\n if (type === 'cpu') {\n const {hexagonAggregator, radius} = this.props;\n return new CPUAggregator({\n dimensions: 2,\n getBin: {\n sources: ['positions'],\n getValue: ({positions}: {positions: number[]}, index: number, opts: BinOptions) => {\n if (hexagonAggregator) {\n return hexagonAggregator(positions, radius);\n }\n const viewport = this.state.aggregatorViewport;\n // project to common space\n const p = viewport.projectPosition(positions);\n const {radiusCommon, hexOriginCommon} = opts;\n return pointToHexbin(\n [p[0] - hexOriginCommon[0], p[1] - hexOriginCommon[1]],\n radiusCommon\n );\n }\n },\n getValue: [\n {sources: ['colorWeights'], getValue: ({colorWeights}) => colorWeights},\n {sources: ['elevationWeights'], getValue: ({elevationWeights}) => elevationWeights}\n ]\n });\n }\n return new WebGLAggregator(this.context.device, {\n dimensions: 2,\n channelCount: 2,\n bufferLayout: this.getAttributeManager()!.getBufferLayouts({isInstanced: false}),\n ...super.getShaders({\n modules: [project32, binOptionsUniforms],\n vs: /* glsl */ `\n in vec3 positions;\n in vec3 positions64Low;\n in float colorWeights;\n in float elevationWeights;\n \n ${pointToHexbinGLSL}\n\n void getBin(out ivec2 binId) {\n vec3 positionCommon = project_position(positions, positions64Low);\n binId = pointToHexbin(positionCommon.xy, binOptions.radiusCommon);\n }\n void getValue(out vec2 value) {\n value = vec2(colorWeights, elevationWeights);\n }\n `\n })\n });\n }\n\n initializeState() {\n super.initializeState();\n\n const attributeManager = this.getAttributeManager()!;\n attributeManager.add({\n positions: {\n size: 3,\n accessor: 'getPosition',\n type: 'float64',\n fp64: this.use64bitPositions()\n },\n colorWeights: {size: 1, accessor: 'getColorWeight'},\n elevationWeights: {size: 1, accessor: 'getElevationWeight'}\n });\n }\n\n // eslint-disable-next-line complexity\n updateState(params: UpdateParameters<this>) {\n const aggregatorChanged = super.updateState(params);\n\n const {props, oldProps, changeFlags} = params;\n const {aggregator} = this.state;\n if (\n (changeFlags.dataChanged || !this.state.dataAsArray) &&\n (props.getColorValue || props.getElevationValue)\n ) {\n // Convert data to array\n this.state.dataAsArray = Array.from(createIterable(props.data).iterable);\n }\n if (\n aggregatorChanged ||\n changeFlags.dataChanged ||\n props.radius !== oldProps.radius ||\n props.getColorValue !== oldProps.getColorValue ||\n props.getElevationValue !== oldProps.getElevationValue ||\n props.colorAggregation !== oldProps.colorAggregation ||\n props.elevationAggregation !== oldProps.elevationAggregation\n ) {\n this._updateBinOptions();\n const {radiusCommon, hexOriginCommon, binIdRange, dataAsArray} = this.state;\n\n aggregator.setProps({\n // @ts-expect-error only used by GPUAggregator\n binIdRange,\n pointCount: this.getNumInstances(),\n operations: [props.colorAggregation, props.elevationAggregation],\n binOptions: {\n radiusCommon,\n hexOriginCommon\n },\n onUpdate: this._onAggregationUpdate.bind(this)\n });\n\n if (dataAsArray) {\n const {getColorValue, getElevationValue} = this.props;\n aggregator.setProps({\n // @ts-expect-error only used by CPUAggregator\n customOperations: [\n getColorValue &&\n ((indices: number[]) =>\n getColorValue(\n indices.map(i => dataAsArray[i]),\n {indices, data: props.data}\n )),\n getElevationValue &&\n ((indices: number[]) =>\n getElevationValue(\n indices.map(i => dataAsArray[i]),\n {indices, data: props.data}\n ))\n ]\n });\n }\n }\n if (changeFlags.updateTriggersChanged && changeFlags.updateTriggersChanged.getColorValue) {\n aggregator.setNeedsUpdate(0);\n }\n if (changeFlags.updateTriggersChanged && changeFlags.updateTriggersChanged.getElevationValue) {\n aggregator.setNeedsUpdate(1);\n }\n\n return aggregatorChanged;\n }\n\n private _updateBinOptions() {\n const bounds = this.getBounds();\n let radiusCommon = 1;\n let hexOriginCommon: [number, number] = [0, 0];\n let binIdRange: [number, number][] = [\n [0, 1],\n [0, 1]\n ];\n let viewport = this.context.viewport;\n\n if (bounds && Number.isFinite(bounds[0][0])) {\n let centroid = [(bounds[0][0] + bounds[1][0]) / 2, (bounds[0][1] + bounds[1][1]) / 2];\n const {radius} = this.props;\n const {unitsPerMeter} = viewport.getDistanceScales(centroid);\n radiusCommon = unitsPerMeter[0] * radius;\n\n // Use the centroid of the hex at the center of the data\n // This offsets the common space without changing the bins\n const centerHex = pointToHexbin(viewport.projectFlat(centroid), radiusCommon);\n centroid = viewport.unprojectFlat(getHexbinCentroid(centerHex, radiusCommon));\n\n const ViewportType = viewport.constructor as any;\n // We construct a viewport for the GPU aggregator's project module\n // This viewport is determined by data\n // removes arbitrary precision variance that depends on initial view state\n viewport = viewport.isGeospatial\n ? new ViewportType({longitude: centroid[0], latitude: centroid[1], zoom: 12})\n : new Viewport({position: [centroid[0], centroid[1], 0], zoom: 12});\n\n hexOriginCommon = [Math.fround(viewport.center[0]), Math.fround(viewport.center[1])];\n\n binIdRange = getBinIdRange({\n dataBounds: bounds,\n getBinId: (p: number[]) => {\n const positionCommon = viewport.projectFlat(p);\n positionCommon[0] -= hexOriginCommon[0];\n positionCommon[1] -= hexOriginCommon[1];\n return pointToHexbin(positionCommon, radiusCommon);\n },\n padding: 1\n });\n }\n\n this.setState({radiusCommon, hexOriginCommon, binIdRange, aggregatorViewport: viewport});\n }\n\n override draw(opts) {\n // Replaces render time viewport with our own\n if (opts.shaderModuleProps.project) {\n opts.shaderModuleProps.project.viewport = this.state.aggregatorViewport;\n }\n super.draw(opts);\n }\n\n private _onAggregationUpdate({channel}: {channel: number}) {\n const props = this.getCurrentLayer()!.props;\n const {aggregator} = this.state;\n if (channel === 0) {\n const result = aggregator.getResult(0)!;\n this.setState({\n colors: new AttributeWithScale(result, aggregator.binCount)\n });\n props.onSetColorDomain(aggregator.getResultDomain(0));\n } else if (channel === 1) {\n const result = aggregator.getResult(1)!;\n this.setState({\n elevations: new AttributeWithScale(result, aggregator.binCount)\n });\n props.onSetElevationDomain(aggregator.getResultDomain(1));\n }\n }\n\n onAttributeChange(id: string) {\n const {aggregator} = this.state;\n switch (id) {\n case 'positions':\n aggregator.setNeedsUpdate();\n\n this._updateBinOptions();\n const {radiusCommon, hexOriginCommon, binIdRange} = this.state;\n aggregator.setProps({\n // @ts-expect-error only used by GPUAggregator\n binIdRange,\n binOptions: {\n radiusCommon,\n hexOriginCommon\n }\n });\n break;\n\n case 'colorWeights':\n aggregator.setNeedsUpdate(0);\n break;\n\n case 'elevationWeights':\n aggregator.setNeedsUpdate(1);\n break;\n\n default:\n // This should not happen\n }\n }\n\n renderLayers(): LayersList | Layer | null {\n const {aggregator, radiusCommon, hexOriginCommon} = this.state;\n const {\n elevationScale,\n colorRange,\n elevationRange,\n extruded,\n coverage,\n material,\n transitions,\n colorScaleType,\n lowerPercentile,\n upperPercentile,\n colorDomain,\n elevationScaleType,\n elevationLowerPercentile,\n elevationUpperPercentile,\n elevationDomain\n } = this.props;\n const CellLayerClass = this.getSubLayerClass('cells', HexagonCellLayer);\n const binAttribute = aggregator.getBins();\n\n const colors = this.state.colors?.update({\n scaleType: colorScaleType,\n lowerPercentile,\n upperPercentile\n });\n const elevations = this.state.elevations?.update({\n scaleType: elevationScaleType,\n lowerPercentile: elevationLowerPercentile,\n upperPercentile: elevationUpperPercentile\n });\n\n if (!colors || !elevations) {\n return null;\n }\n\n return new CellLayerClass(\n this.getSubLayerProps({\n id: 'cells'\n }),\n {\n data: {\n length: aggregator.binCount,\n attributes: {\n getBin: binAttribute,\n getColorValue: colors.attribute,\n getElevationValue: elevations.attribute\n }\n },\n // Data has changed shallowly, but we likely don't need to update the attributes\n dataComparator: (data, oldData) => data.length === oldData.length,\n updateTriggers: {\n getBin: [binAttribute],\n getColorValue: [colors.attribute],\n getElevationValue: [elevations.attribute]\n },\n diskResolution: 6,\n vertices: HexbinVertices,\n radius: radiusCommon,\n hexOriginCommon,\n elevationScale,\n colorRange,\n colorScaleType,\n elevationRange,\n extruded,\n coverage,\n material,\n colorDomain: colors.domain || colorDomain || aggregator.getResultDomain(0),\n elevationDomain: elevations.domain || elevationDomain || aggregator.getResultDomain(1),\n colorCutoff: colors.cutoff,\n elevationCutoff: elevations.cutoff,\n transitions: transitions && {\n getFillColor: transitions.getColorValue || transitions.getColorWeight,\n getElevation: transitions.getElevationValue || transitions.getElevationWeight\n },\n // Extensions are already handled by the GPUAggregator, do not pass it down\n extensions: []\n }\n );\n }\n\n getPickingInfo(params: GetPickingInfoParams): HexagonLayerPickingInfo<DataT> {\n const info: HexagonLayerPickingInfo<DataT> = params.info;\n const {index} = info;\n if (index >= 0) {\n const bin = this.state.aggregator.getBin(index);\n let object: HexagonLayerPickingInfo<DataT>['object'];\n if (bin) {\n const centroidCommon = getHexbinCentroid(\n bin.id as [number, number],\n this.state.radiusCommon\n );\n const centroid = this.context.viewport.unprojectFlat(centroidCommon);\n\n object = {\n col: bin.id[0],\n row: bin.id[1],\n position: centroid,\n colorValue: bin.value[0],\n elevationValue: bin.value[1],\n count: bin.count\n };\n if (bin.pointIndices) {\n object.pointIndices = bin.pointIndices;\n object.points = Array.isArray(this.props.data)\n ? bin.pointIndices.map(i => (this.props.data as DataT[])[i])\n : [];\n }\n }\n info.object = object;\n }\n\n return info;\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {BinaryAttribute} from '@deck.gl/core';\nimport type {ScaleType} from '../types';\n\ntype ScaleProps = {\n scaleType: ScaleType;\n /** Trim the lower end of the domain by this percentile. Set to `0` to disable. */\n lowerPercentile: number;\n /** Trim the upper end of the domain by this percentile. Set to `100` to disable. */\n upperPercentile: number;\n};\n\n/** Applies a scale to BinaryAttribute */\nexport class AttributeWithScale {\n /** Input values accessor. Has either a `value` (CPU aggregation) or a `buffer` (GPU aggregation) */\n private readonly input: BinaryAttribute;\n private readonly inputLength: number;\n\n private props: ScaleProps = {\n scaleType: 'linear',\n lowerPercentile: 0,\n upperPercentile: 100\n };\n\n // cached calculations\n private _percentile?: {attribute: BinaryAttribute; domain: number[]};\n private _ordinal?: {attribute: BinaryAttribute; domain: number[]};\n\n /** Output values accessor */\n attribute: BinaryAttribute;\n /** [min, max] of attribute values, or null if unknown */\n domain: [number, number] | null = null;\n /** Valid domain if lower/upper percentile are defined */\n cutoff: [number, number] | null = null;\n\n constructor(input: BinaryAttribute, inputLength: number) {\n this.input = input;\n this.inputLength = inputLength;\n // No processing is needed with the default scale\n this.attribute = input;\n }\n\n private getScalePercentile() {\n if (!this._percentile) {\n const value = getAttributeValue(this.input, this.inputLength);\n this._percentile = applyScaleQuantile(value);\n }\n return this._percentile;\n }\n\n private getScaleOrdinal() {\n if (!this._ordinal) {\n const value = getAttributeValue(this.input, this.inputLength);\n this._ordinal = applyScaleOrdinal(value);\n }\n return this._ordinal;\n }\n\n /** Returns the [lowerCutoff, upperCutoff] of scaled values, or null if not applicable */\n private getCutoff({\n scaleType,\n lowerPercentile,\n upperPercentile\n }: ScaleProps): [number, number] | null {\n if (scaleType === 'quantile') {\n return [lowerPercentile, upperPercentile - 1];\n }\n\n if (lowerPercentile > 0 || upperPercentile < 100) {\n const {domain: thresholds} = this.getScalePercentile();\n let lowValue = thresholds[Math.floor(lowerPercentile) - 1] ?? -Infinity;\n let highValue = thresholds[Math.floor(upperPercentile) - 1] ?? Infinity;\n\n if (scaleType === 'ordinal') {\n const {domain: sortedUniqueValues} = this.getScaleOrdinal();\n lowValue = sortedUniqueValues.findIndex(x => x >= lowValue);\n highValue = sortedUniqueValues.findIndex(x => x > highValue) - 1;\n if (highValue === -2) {\n highValue = sortedUniqueValues.length - 1;\n }\n }\n return [lowValue, highValue];\n }\n\n return null;\n }\n\n update(props: ScaleProps) {\n const oldProps = this.props;\n\n if (props.scaleType !== oldProps.scaleType) {\n switch (props.scaleType) {\n case 'quantile': {\n const {attribute} = this.getScalePercentile();\n this.attribute = attribute;\n this.domain = [0, 99];\n break;\n }\n case 'ordinal': {\n const {attribute, domain} = this.getScaleOrdinal();\n this.attribute = attribute;\n this.domain = [0, domain.length - 1];\n break;\n }\n\n default:\n this.attribute = this.input;\n this.domain = null;\n }\n }\n if (\n props.scaleType !== oldProps.scaleType ||\n props.lowerPercentile !== oldProps.lowerPercentile ||\n props.upperPercentile !== oldProps.upperPercentile\n ) {\n this.cutoff = this.getCutoff(props);\n }\n this.props = props;\n return this;\n }\n}\n\n/**\n * Transform an array of values to ordinal indices\n */\nexport function applyScaleOrdinal(values: Float32Array): {\n attribute: BinaryAttribute;\n domain: number[];\n} {\n const uniqueValues = new Set<number>();\n for (const x of values) {\n if (Number.isFinite(x)) {\n uniqueValues.add(x);\n }\n }\n const sortedUniqueValues = Array.from(uniqueValues).sort();\n const domainMap = new Map();\n for (let i = 0; i < sortedUniqueValues.length; i++) {\n domainMap.set(sortedUniqueValues[i], i);\n }\n\n return {\n attribute: {\n value: values.map(x => (Number.isFinite(x) ? domainMap.get(x) : NaN)),\n type: 'float32',\n size: 1\n },\n domain: sortedUniqueValues\n };\n}\n\n/**\n * Transform an array of values to percentiles\n */\nexport function applyScaleQuantile(\n values: Float32Array,\n rangeLength = 100\n): {\n attribute: BinaryAttribute;\n domain: number[];\n} {\n const sortedValues = Array.from(values).filter(Number.isFinite).sort(ascending);\n let i = 0;\n const n = Math.max(1, rangeLength);\n const thresholds: number[] = new Array(n - 1);\n while (++i < n) {\n thresholds[i - 1] = threshold(sortedValues, i / n);\n }\n return {\n attribute: {\n value: values.map(x => (Number.isFinite(x) ? bisectRight(thresholds, x) : NaN)),\n type: 'float32',\n size: 1\n },\n domain: thresholds\n };\n}\n\nfunction getAttributeValue(attribute: BinaryAttribute, length: number): Float32Array {\n const elementStride = (attribute.stride ?? 4) / 4;\n const elementOffset = (attribute.offset ?? 0) / 4;\n let value = attribute.value as Float32Array;\n if (!value) {\n const bytes = attribute.buffer?.readSyncWebGL(0, elementStride * 4 * length);\n if (bytes) {\n value = new Float32Array(bytes.buffer);\n attribute.value = value;\n }\n }\n\n if (elementStride === 1) {\n return value.subarray(0, length);\n }\n const result = new Float32Array(length);\n for (let i = 0; i < length; i++) {\n result[i] = value[i * elementStride + elementOffset];\n }\n return result;\n}\n\nfunction ascending(a: number, b: number): number {\n return a - b;\n}\n\nfunction threshold(domain: number[], fraction: number): number {\n const domainLength = domain.length;\n if (fraction <= 0 || domainLength < 2) {\n return domain[0];\n }\n if (fraction >= 1) {\n return domain[domainLength - 1];\n }\n\n const domainFraction = (domainLength - 1) * fraction;\n const lowIndex = Math.floor(domainFraction);\n const low = domain[lowIndex];\n const high = domain[lowIndex + 1];\n return low + (high - low) * (domainFraction - lowIndex);\n}\n\nfunction bisectRight(a: number[], x: number): number {\n let lo = 0;\n let hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (a[mid] > x) {\n hi = mid;\n } else {\n lo = mid + 1;\n }\n }\n return lo;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/** Utility to estimate binIdRange as expected by AggregatorProps */\nexport function getBinIdRange({\n dataBounds,\n getBinId,\n padding = 0\n}: {\n /** Bounds of the input data */\n dataBounds: [min: number[], max: number[]];\n /** Given a data point, returns the bin id that it belongs to */\n getBinId: (p: number[]) => number[];\n /** Add a border around the result to avoid clipping */\n padding?: number;\n}): [number, number][] {\n const corners = [\n dataBounds[0],\n dataBounds[1],\n [dataBounds[0][0], dataBounds[1][1]],\n [dataBounds[1][0], dataBounds[0][1]]\n ].map(p => getBinId(p));\n\n const minX = Math.min(...corners.map(p => p[0])) - padding;\n const minY = Math.min(...corners.map(p => p[1])) - padding;\n const maxX = Math.max(...corners.map(p => p[0])) + padding + 1;\n const maxY = Math.max(...corners.map(p => p[1])) + padding + 1;\n\n return [\n [minX, maxX],\n [minY, maxY]\n ];\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Texture} from '@luma.gl/core';\nimport {UpdateParameters, Color} from '@deck.gl/core';\nimport {ColumnLayer} from '@deck.gl/layers';\nimport {createColorRangeTexture, updateColorRangeTexture} from '../common/utils/color-utils';\nimport vs from './hexagon-cell-layer-vertex.glsl';\nimport {HexagonProps, hexagonUniforms} from './hexagon-layer-uniforms';\nimport type {ScaleType} from '../common/types';\n\n/** Proprties added by HexagonCellLayer. */\nexport type _HexagonCellLayerProps = {\n hexOriginCommon: Readonly<[number, number]>;\n colorDomain: Readonly<[number, number]>;\n colorCutoff: Readonly<[number, number]> | null;\n colorRange: Color[];\n colorScaleType: ScaleType;\n elevationDomain: Readonly<[number, number]>;\n elevationCutoff: Readonly<[number, number]> | null;\n elevationRange: Readonly<[number, number]>;\n};\n\nexport default class HexagonCellLayer<ExtraPropsT extends {} = {}> extends ColumnLayer<\n null,\n ExtraPropsT & Required<_HexagonCellLayerProps>\n> {\n static layerName = 'HexagonCellLayer';\n\n state!: ColumnLayer['state'] & {\n colorTexture: Texture;\n };\n\n getShaders() {\n const shaders = super.getShaders();\n shaders.modules.push(hexagonUniforms);\n return {...shaders, vs};\n }\n\n initializeState() {\n super.initializeState();\n\n const attributeManager = this.getAttributeManager()!;\n attributeManager.remove([\n 'instanceElevations',\n 'instanceFillColors',\n 'instanceLineColors',\n 'instanceStrokeWidths'\n ]);\n attributeManager.addInstanced({\n instancePositions: {\n size: 2,\n type: 'float32',\n accessor: 'getBin'\n },\n instanceColorValues: {\n size: 1,\n type: 'float32',\n accessor: 'getColorValue'\n },\n instanceElevationValues: {\n size: 1,\n type: 'float32',\n accessor: 'getElevationValue'\n }\n });\n }\n\n updateState(params: UpdateParameters<this>) {\n super.updateState(params);\n\n const {props, oldProps} = params;\n const model = this.state.fillModel!;\n\n if (oldProps.colorRange !== props.colorRange) {\n this.state.colorTexture?.destroy();\n this.state.colorTexture = createColorRangeTexture(\n this.context.device,\n props.colorRange,\n props.colorScaleType\n );\n const hexagonProps: Partial<HexagonProps> = {colorRange: this.state.colorTexture};\n model.shaderInputs.setProps({hexagon: hexagonProps});\n } else if (oldProps.colorScaleType !== props.colorScaleType) {\n updateColorRangeTexture(this.state.colorTexture, props.colorScaleType);\n }\n }\n\n finalizeState(context) {\n super.finalizeState(context);\n\n this.state.colorTexture?.destroy();\n }\n\n draw({uniforms}) {\n const {\n radius,\n hexOriginCommon,\n elevationRange,\n elevationScale,\n extruded,\n coverage,\n colorDomain,\n elevationDomain\n } = this.props;\n const colorCutoff = this.props.colorCutoff || [-Infinity, Infinity];\n const elevationCutoff = this.props.elevationCutoff || [-Infinity, Infinity];\n const fillModel = this.state.fillModel!;\n\n fillModel.setVertexCount(this.state.fillVertexCount);\n\n const hexagonProps: Omit<HexagonProps, 'colorRange'> = {\n colorDomain: [\n Math.max(colorDomain[0], colorCutoff[0]), // instanceColorValue that maps to colorRange[0]\n Math.min(colorDomain[1], colorCutoff[1]), // instanceColorValue that maps to colorRange[colorRange.length - 1]\n Math.max(colorDomain[0] - 1, colorCutoff[0]), // hide cell if instanceColorValue is less than this\n Math.min(colorDomain[1] + 1, colorCutoff[1]) // hide cell if instanceColorValue is greater than this\n ],\n elevationDomain: [\n Math.max(elevationDomain[0], elevationCutoff[0]), // instanceElevationValue that maps to elevationRange[0]\n Math.min(elevationDomain[1], elevationCutoff[1]), // instanceElevationValue that maps to elevationRange[elevationRange.length - 1]\n Math.max(elevationDomain[0] - 1, elevationCutoff[0]), // hide cell if instanceElevationValue is less than this\n Math.min(elevationDomain[1] + 1, elevationCutoff[1]) // hide cell if instanceElevationValue is greater than this\n ],\n elevationRange: [elevationRange[0] * elevationScale, elevationRange[1] * elevationScale],\n originCommon: hexOriginCommon\n };\n\n fillModel.shaderInputs.setProps({\n column: {extruded, coverage, radius},\n hexagon: hexagonProps\n });\n fillModel.draw(this.context.renderPass);\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nconst THIRD_PI = Math.PI / 3;\nconst DIST_X = 2 * Math.sin(THIRD_PI);\nconst DIST_Y = 1.5;\n\ntype HexBin = [i: number, j: number];\ntype Point = [x: number, y: number];\n\nexport const HexbinVertices = Array.from({length: 6}, (_, i) => {\n const angle = i * THIRD_PI;\n return [Math.sin(angle), -Math.cos(angle)];\n});\n\n/**\n * Adapted from d3-hexbin\n * Copyright Mike Bostock, 2012-2016\n All rights reserved.\n * https://github.com/d3/d3-hexbin/blob/master/src/hexbin.js\n *\n * Returns the hexbin that a point (x,y) falls into\n */\nexport function pointToHexbin([px, py]: Point, radius: number): HexBin {\n let pj = Math.round((py = py / radius / DIST_Y));\n let pi = Math.round((px = px / radius / DIST_X - (pj & 1) / 2));\n const py1 = py - pj;\n\n if (Math.abs(py1) * 3 > 1) {\n const px1 = px - pi;\n const pi2 = pi + (px < pi ? -1 : 1) / 2;\n const pj2 = pj + (py < pj ? -1 : 1);\n const px2 = px - pi2;\n const py2 = py - pj2;\n if (px1 * px1 + py1 * py1 > px2 * px2 + py2 * py2) {\n pi = pi2 + (pj & 1 ? 1 : -1) / 2;\n pj = pj2;\n }\n }\n return [pi, pj];\n}\n\nexport const pointToHexbinGLSL = /* glsl */ `\nconst vec2 DIST = vec2(${DIST_X}, ${DIST_Y});\n\nivec2 pointToHexbin(vec2 p, float radius) {\n p /= radius * DIST;\n float pj = round(p.y);\n float pjm2 = mod(pj, 2.0);\n p.x -= pjm2 * 0.5;\n float pi = round(p.x);\n vec2 d1 = p - vec2(pi, pj);\n\n if (abs(d1.y) * 3. > 1.) {\n vec2 v2 = step(0.0, d1) - 0.5;\n v2.y *= 2.0;\n vec2 d2 = d1 - v2;\n if (dot(d1, d1) > dot(d2, d2)) {\n pi += v2.x + pjm2 - 0.5;\n pj += v2.y;\n }\n }\n return ivec2(pi, pj);\n}\n`;\n\nexport function getHexbinCentroid([i, j]: HexBin, radius: number): Point {\n return [(i + (j & 1) / 2) * radius * DIST_X, j * radius * DIST_Y];\n}\n\nexport const getHexbinCentroidGLSL = `\nconst vec2 DIST = vec2(${DIST_X}, ${DIST_Y});\n\nvec2 hexbinCentroid(vec2 binId, float radius) {\n binId.x += fract(binId.y * 0.5);\n return binId * DIST * radius;\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {getHexbinCentroidGLSL} from './hexbin';\n\nexport default /* glsl */ `\\\n#version 300 es\n#define SHADER_NAME hexagon-cell-layer-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\n\nin vec2 instancePositions;\nin float instanceElevationValues;\nin float instanceColorValues;\n\nuniform sampler2D colorRange;\n\n// Result\nout vec4 vColor;\n\n${getHexbinCentroidGLSL}\n\nfloat interp(float value, vec2 domain, vec2 range) {\n float r = min(max((value - domain.x) / (domain.y - domain.x), 0.), 1.);\n return mix(range.x, range.y, r);\n}\n\nvec4 interp(float value, vec2 domain, sampler2D range) {\n float r = (value - domain.x) / (domain.y - domain.x);\n return texture(range, vec2(r, 0.5));\n}\n\nvoid main(void) {\n geometry.pickingColor = picking_getPickingColorFromInstanceID();\n\n if (isnan(instanceColorValues) ||\n instanceColorValues < hexagon.colorDomain.z ||\n instanceColorValues > hexagon.colorDomain.w ||\n instanceElevationValues < hexagon.elevationDomain.z ||\n instanceElevationValues > hexagon.elevationDomain.w\n ) {\n gl_Position = vec4(0.);\n return;\n }\n \n vec2 commonPosition = hexbinCentroid(instancePositions, column.radius) + (hexagon.originCommon - project.commonOrigin.xy);\n commonPosition += positions.xy * column.radius * column.coverage;\n geometry.position = vec4(commonPosition, 0.0, 1.0);\n geometry.normal = project_normal(normals);\n\n // calculate z, if 3d not enabled set to 0\n float elevation = 0.0;\n if (column.extruded) {\n elevation = interp(instanceElevationValues, hexagon.elevationDomain.xy, hexagon.elevationRange);\n elevation = project_size(elevation);\n // cylindar gemoetry height are between -1.0 to 1.0, transform it to between 0, 1\n geometry.position.z = (positions.z + 1.0) / 2.0 * elevation;\n }\n\n gl_Position = project_common_position_to_clipspace(geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vColor = interp(instanceColorValues, hexagon.colorDomain.xy, colorRange);\n vColor.a *= layer.opacity;\n if (column.extruded) {\n vColor.rgb = lighting_getLightColor(vColor.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Texture} from '@luma.gl/core';\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform hexagonUniforms {\n vec4 colorDomain;\n vec4 elevationDomain;\n vec2 elevationRange;\n vec2 originCommon;\n} hexagon;\n`;\n\nexport type HexagonProps = {\n colorDomain: Readonly<[number, number, number, number]>;\n colorRange: Texture;\n elevationDomain: Readonly<[number, number, number, number]>;\n elevationRange: Readonly<[number, number]>;\n originCommon: Readonly<[number, number]>;\n};\n\nexport const hexagonUniforms = {\n name: 'hexagon',\n vs: uniformBlock,\n uniformTypes: {\n colorDomain: 'vec4<f32>',\n elevationDomain: 'vec4<f32>',\n elevationRange: 'vec2<f32>',\n originCommon: 'vec2<f32>'\n }\n} as const satisfies ShaderModule<HexagonProps>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {ShaderModule} from '@luma.gl/shadertools';\nimport {NumberArray2} from '@math.gl/core';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform binOptionsUniforms {\n vec2 hexOriginCommon;\n float radiusCommon;\n} binOptions;\n`;\n\nexport type BinOptions = {\n hexOriginCommon: NumberArray2;\n radiusCommon: number;\n};\n\nexport const binOptionsUniforms = {\n name: 'binOptions',\n vs: uniformBlock,\n uniformTypes: {\n hexOriginCommon: 'vec2<f32>',\n radiusCommon: 'f32'\n }\n} as const satisfies ShaderModule<BinOptions>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {\n Accessor,\n COORDINATE_SYSTEM,\n GetPickingInfoParams,\n project32,\n LayersList,\n PickingInfo,\n Position,\n Viewport,\n _deepEqual,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport {PathLayer, SolidPolygonLayer} from '@deck.gl/layers';\nimport {WebGLAggregator, CPUAggregator, AggregationOperation} from '../common/aggregator/index';\nimport AggregationLayer from '../common/aggregation-layer';\nimport {AggregationLayerProps} from '../common/aggregation-layer';\nimport {generateContours, Contour, ContourLine, ContourPolygon} from './contour-utils';\nimport {getAggregatorValueReader} from './value-reader';\nimport {getBinIdRange} from '../common/utils/bounds-utils';\nimport {Matrix4} from '@math.gl/core';\nimport {BinOptions, binOptionsUniforms} from './bin-options-uniforms';\n\nconst DEFAULT_COLOR = [255, 255, 255, 255];\nconst DEFAULT_STROKE_WIDTH = 1;\n\nconst defaultProps: DefaultProps<ContourLayerProps> = {\n // grid aggregation\n cellSize: {type: 'number', min: 1, value: 1000},\n gridOrigin: {type: 'array', compare: true, value: [0, 0]},\n getPosition: {type: 'accessor', value: (x: any) => x.position},\n getWeight: {type: 'accessor', value: 1},\n gpuAggregation: true,\n aggregation: 'SUM',\n\n // contour lines\n contours: {\n type: 'object',\n value: [{threshold: 1}],\n optional: true,\n compare: 3\n },\n\n zOffset: 0.005\n};\n\n/** All properties supported by GridLayer. */\nexport type ContourLayerProps<DataT = unknown> = _ContourLayerProps<DataT> &\n AggregationLayerProps<DataT>;\n\n/** Properties added by GridLayer. */\ntype _ContourLayerProps<DataT> = {\n /**\n * Size of each cell in meters.\n * @default 1000\n */\n cellSize?: number;\n\n /**\n * The grid origin\n * @default [0, 0]\n */\n gridOrigin?: Readonly<[number, number]>;\n\n /**\n * When set to true, aggregation is performed on GPU, provided other conditions are met.\n * @default false\n */\n gpuAggregation?: boolean;\n\n /**\n * Defines the type of aggregation operation, valid values are 'SUM', 'MEAN', 'MIN' and 'MAX'.\n * @default 'SUM'\n */\n aggregation?: AggregationOperation;\n\n /**\n * Definition of contours to be drawn.\n * @default [{threshold: 1}]\n */\n contours?: Contour[];\n\n /**\n * A very small z offset that is added for each vertex of a contour (Isoline or Isoband).\n * @default 0.005\n */\n zOffset?: number;\n\n /**\n * Method called to retrieve the position of each object.\n * @default object => object.position\n */\n getPosition?: Accessor<DataT, Position>;\n\n /**\n * The weight of each object.\n * @default 1\n */\n getWeight?: Accessor<DataT, number>;\n};\n\nexport type ContourLayerPickingInfo = PickingInfo<{\n contour: Contour;\n}>;\n\n/** Aggregate data into a grid-based heatmap. The color and height of a cell are determined based on the objects it contains. */\nexport default class GridLayer<DataT = any, ExtraPropsT extends {} = {}> extends AggregationLayer<\n DataT,\n ExtraPropsT & Required<_ContourLayerProps<DataT>>\n> {\n static layerName = 'ContourLayer';\n static defaultProps = defaultProps;\n\n state!: AggregationLayer<DataT>['state'] &\n BinOptions & {\n // Aggregator result\n aggregatedValueReader?: (x: number, y: number) => number;\n contourData?: {\n lines: ContourLine[];\n polygons: ContourPolygon[];\n };\n\n binIdRange: [number, number][];\n aggregatorViewport: Viewport;\n };\n\n getAggregatorType(): string {\n return this.props.gpuAggregation && WebGLAggregator.isSupported(this.context.device)\n ? 'gpu'\n : 'cpu';\n }\n\n createAggregator(type: string): WebGLAggregator | CPUAggregator {\n if (type === 'cpu') {\n return new CPUAggregator({\n dimensions: 2,\n getBin: {\n sources: ['positions'],\n getValue: ({positions}: {positions: number[]}, index: number, opts: BinOptions) => {\n const viewport = this.state.aggregatorViewport;\n // project to common space\n const p = viewport.projectPosition(positions);\n const {cellSizeCommon, cellOriginCommon} = opts;\n return [\n Math.floor((p[0] - cellOriginCommon[0]) / cellSizeCommon[0]),\n Math.floor((p[1] - cellOriginCommon[1]) / cellSizeCommon[1])\n ];\n }\n },\n getValue: [{sources: ['counts'], getValue: ({counts}) => counts}],\n onUpdate: this._onAggregationUpdate.bind(this)\n });\n }\n return new WebGLAggregator(this.context.device, {\n dimensions: 2,\n channelCount: 1,\n bufferLayout: this.getAttributeManager()!.getBufferLayouts({isInstanced: false}),\n ...super.getShaders({\n modules: [project32, binOptionsUniforms],\n vs: /* glsl */ `\n in vec3 positions;\n in vec3 positions64Low;\n in float counts;\n\n void getBin(out ivec2 binId) {\n vec3 positionCommon = project_position(positions, positions64Low);\n vec2 gridCoords = floor(positionCommon.xy / binOptions.cellSizeCommon);\n binId = ivec2(gridCoords);\n }\n void getValue(out float value) {\n value = counts;\n }\n `\n }),\n onUpdate: this._onAggregationUpdate.bind(this)\n });\n }\n\n initializeState() {\n super.initializeState();\n\n const attributeManager = this.getAttributeManager()!;\n attributeManager.add({\n positions: {\n size: 3,\n accessor: 'getPosition',\n type: 'float64',\n fp64: this.use64bitPositions()\n },\n counts: {size: 1, accessor: 'getWeight'}\n });\n }\n\n updateState(params: UpdateParameters<this>) {\n const aggregatorChanged = super.updateState(params);\n\n const {props, oldProps, changeFlags} = params;\n const {aggregator} = this.state;\n if (\n aggregatorChanged ||\n changeFlags.dataChanged ||\n props.cellSize !== oldProps.cellSize ||\n !_deepEqual(props.gridOrigin, oldProps.gridOrigin, 1) ||\n props.aggregation !== oldProps.aggregation\n ) {\n this._updateBinOptions();\n const {cellSizeCommon, cellOriginCommon, binIdRange} = this.state;\n\n aggregator.setProps({\n // @ts-expect-error only used by GPUAggregator\n binIdRange,\n pointCount: this.getNumInstances(),\n operations: [props.aggregation],\n binOptions: {\n cellSizeCommon,\n cellOriginCommon\n }\n });\n }\n\n if (!_deepEqual(oldProps.contours, props.contours, 2)) {\n // Recalculate contours\n this.setState({contourData: null});\n }\n\n return aggregatorChanged;\n }\n\n private _updateBinOptions() {\n const bounds = this.getBounds();\n const cellSizeCommon: [number, number] = [1, 1];\n let cellOriginCommon: [number, number] = [0, 0];\n let binIdRange: [number, number][] = [\n [0, 1],\n [0, 1]\n ];\n let viewport = this.context.viewport;\n\n if (bounds && Number.isFinite(bounds[0][0])) {\n let centroid = [(bounds[0][0] + bounds[1][0]) / 2, (bounds[0][1] + bounds[1][1]) / 2];\n const {cellSize, gridOrigin} = this.props;\n const {unitsPerMeter} = viewport.getDistanceScales(centroid);\n cellSizeCommon[0] = unitsPerMeter[0] * cellSize;\n cellSizeCommon[1] = unitsPerMeter[1] * cellSize;\n\n // Offset common space to center at the origin of the grid cell where the data center is in\n // This improves precision without affecting the cell positions\n const centroidCommon = viewport.projectFlat(centroid);\n cellOriginCommon = [\n Math.floor((centroidCommon[0] - gridOrigin[0]) / cellSizeCommon[0]) * cellSizeCommon[0] +\n gridOrigin[0],\n Math.floor((centroidCommon[1] - gridOrigin[1]) / cellSizeCommon[1]) * cellSizeCommon[1] +\n gridOrigin[1]\n ];\n centroid = viewport.unprojectFlat(cellOriginCommon);\n\n const ViewportType = viewport.constructor as any;\n // We construct a viewport for the GPU aggregator's project module\n // This viewport is determined by data\n // removes arbitrary precision variance that depends on initial view state\n viewport = viewport.isGeospatial\n ? new ViewportType({longitude: centroid[0], latitude: centroid[1], zoom: 12})\n : new Viewport({position: [centroid[0], centroid[1], 0], zoom: 12});\n\n // Round to the nearest 32-bit float to match CPU and GPU results\n cellOriginCommon = [Math.fround(viewport.center[0]), Math.fround(viewport.center[1])];\n\n binIdRange = getBinIdRange({\n dataBounds: bounds,\n getBinId: (p: number[]) => {\n const positionCommon = viewport.projectFlat(p);\n return [\n Math.floor((positionCommon[0] - cellOriginCommon[0]) / cellSizeCommon[0]),\n Math.floor((positionCommon[1] - cellOriginCommon[1]) / cellSizeCommon[1])\n ];\n }\n });\n }\n\n this.setState({cellSizeCommon, cellOriginCommon, binIdRange, aggregatorViewport: viewport});\n }\n\n override draw(opts) {\n // Replaces render time viewport with our own\n if (opts.shaderModuleProps.project) {\n opts.shaderModuleProps.project.viewport = this.state.aggregatorViewport;\n }\n super.draw(opts);\n }\n\n private _onAggregationUpdate() {\n const {aggregator, binIdRange} = this.state;\n this.setState({\n aggregatedValueReader: getAggregatorValueReader({aggregator, binIdRange, channel: 0}),\n contourData: null\n });\n }\n\n private _getContours(): {\n lines: ContourLine[];\n polygons: ContourPolygon[];\n } | null {\n const {aggregatedValueReader} = this.state;\n if (!aggregatedValueReader) {\n return null;\n }\n\n if (!this.state.contourData) {\n const {binIdRange} = this.state;\n const {contours} = this.props;\n const contourData = generateContours({\n contours,\n getValue: aggregatedValueReader,\n xRange: binIdRange[0],\n yRange: binIdRange[1]\n });\n\n this.state.contourData = contourData;\n }\n return this.state.contourData;\n }\n\n onAttributeChange(id: string) {\n const {aggregator} = this.state;\n switch (id) {\n case 'positions':\n aggregator.setNeedsUpdate();\n\n this._updateBinOptions();\n const {cellSizeCommon, cellOriginCommon, binIdRange} = this.state;\n aggregator.setProps({\n // @ts-expect-error only used by GPUAggregator\n binIdRange,\n binOptions: {\n cellSizeCommon,\n cellOriginCommon\n }\n });\n break;\n\n case 'counts':\n aggregator.setNeedsUpdate(0);\n break;\n\n default:\n // This should not happen\n }\n }\n\n renderLayers(): LayersList | null {\n const contourData = this._getContours();\n if (!contourData) {\n return null;\n }\n const {lines, polygons} = contourData;\n const {zOffset} = this.props;\n const {cellOriginCommon, cellSizeCommon} = this.state;\n\n const LinesSubLayerClass = this.getSubLayerClass('lines', PathLayer);\n const BandsSubLayerClass = this.getSubLayerClass('bands', SolidPolygonLayer);\n const modelMatrix = new Matrix4()\n .translate([cellOriginCommon[0], cellOriginCommon[1], 0])\n .scale([cellSizeCommon[0], cellSizeCommon[1], zOffset]);\n\n // Contour lines layer\n const lineLayer =\n lines &&\n lines.length > 0 &&\n new LinesSubLayerClass(\n this.getSubLayerProps({\n id: 'lines'\n }),\n {\n data: lines,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n modelMatrix,\n getPath: d => d.vertices,\n getColor: d => d.contour.color ?? DEFAULT_COLOR,\n getWidth: d => d.contour.strokeWidth ?? DEFAULT_STROKE_WIDTH,\n widthUnits: 'pixels'\n }\n );\n\n // Contour bands layer\n const bandsLayer =\n polygons &&\n polygons.length > 0 &&\n new BandsSubLayerClass(\n this.getSubLayerProps({\n id: 'bands'\n }),\n {\n data: polygons,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n modelMatrix,\n getPolygon: d => d.vertices,\n getFillColor: d => d.contour.color ?? DEFAULT_COLOR\n }\n );\n\n return [lineLayer, bandsLayer];\n }\n\n getPickingInfo(params: GetPickingInfoParams): ContourLayerPickingInfo {\n const info: ContourLayerPickingInfo = params.info;\n const {object} = info;\n if (object) {\n info.object = {\n contour: (object as ContourLine | ContourPolygon).contour\n };\n }\n\n return info;\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Code to Offsets Map needed to implement Marching Squares algorithm\n// Ref: https://en.wikipedia.org/wiki/Marching_squares\n\n// Table to map code to the intersection offsets\n// All offsets are relative to the center of marching cell (which is top right corner of grid-cell, and center of marching-square)\nconst HALF = 0.5;\nconst ONE6TH = 1 / 6;\nconst OFFSET = {\n N: [0, HALF], // NORTH\n E: [HALF, 0], // EAST\n S: [0, -HALF], // SOUTH\n W: [-HALF, 0], // WEST\n\n // CORNERS\n NE: [HALF, HALF],\n NW: [-HALF, HALF],\n SE: [HALF, -HALF],\n SW: [-HALF, -HALF]\n};\n\n// NOTE: vertices are ordered in CCW direction, starting from NW corner\n\n// Triangles\nconst SW_TRIANGLE = [OFFSET.W, OFFSET.SW, OFFSET.S];\nconst SE_TRIANGLE = [OFFSET.S, OFFSET.SE, OFFSET.E];\nconst NE_TRIANGLE = [OFFSET.E, OFFSET.NE, OFFSET.N];\nconst NW_TRIANGLE = [OFFSET.NW, OFFSET.W, OFFSET.N];\n\n// Trapezoids\nconst SW_TRAPEZOID = [\n [-HALF, ONE6TH],\n [-HALF, -ONE6TH],\n [-ONE6TH, -HALF],\n [ONE6TH, -HALF]\n];\nconst SE_TRAPEZOID = [\n [-ONE6TH, -HALF],\n [ONE6TH, -HALF],\n [HALF, -ONE6TH],\n [HALF, ONE6TH]\n];\nconst NE_TRAPEZOID = [\n [HALF, -ONE6TH],\n [HALF, ONE6TH],\n [ONE6TH, HALF],\n [-ONE6TH, HALF]\n];\nconst NW_TRAPEZOID = [\n [-HALF, ONE6TH],\n [-HALF, -ONE6TH],\n [ONE6TH, HALF],\n [-ONE6TH, HALF]\n];\n\n// Rectangles\nconst S_RECTANGLE = [OFFSET.W, OFFSET.SW, OFFSET.SE, OFFSET.E];\nconst E_RECTANGLE = [OFFSET.S, OFFSET.SE, OFFSET.NE, OFFSET.N];\nconst N_RECTANGLE = [OFFSET.NW, OFFSET.W, OFFSET.E, OFFSET.NE];\nconst W_RECTANGLE = [OFFSET.NW, OFFSET.SW, OFFSET.S, OFFSET.N];\nconst EW_RECTANGEL = [\n [-HALF, ONE6TH],\n [-HALF, -ONE6TH],\n [HALF, -ONE6TH],\n [HALF, ONE6TH]\n];\nconst SN_RECTANGEL = [\n [-ONE6TH, -HALF],\n [ONE6TH, -HALF],\n [ONE6TH, HALF],\n [-ONE6TH, HALF]\n];\n\n// Square\nconst SQUARE = [OFFSET.NW, OFFSET.SW, OFFSET.SE, OFFSET.NE];\n\n// Pentagons\nconst SW_PENTAGON = [OFFSET.NW, OFFSET.SW, OFFSET.SE, OFFSET.E, OFFSET.N];\nconst SE_PENTAGON = [OFFSET.W, OFFSET.SW, OFFSET.SE, OFFSET.NE, OFFSET.N];\nconst NE_PENTAGON = [OFFSET.NW, OFFSET.W, OFFSET.S, OFFSET.SE, OFFSET.NE];\nconst NW_PENTAGON = [OFFSET.NW, OFFSET.SW, OFFSET.S, OFFSET.E, OFFSET.NE];\n\nconst NW_N_PENTAGON = [OFFSET.NW, OFFSET.W, [HALF, -ONE6TH], [HALF, ONE6TH], OFFSET.N];\nconst NE_E_PENTAGON = [[-ONE6TH, -HALF], [ONE6TH, -HALF], OFFSET.E, OFFSET.NE, OFFSET.N];\nconst SE_S_PENTAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], OFFSET.S, OFFSET.SE, OFFSET.E];\nconst SW_W_PENTAGON = [OFFSET.W, OFFSET.SW, OFFSET.S, [ONE6TH, HALF], [-ONE6TH, HALF]];\n\nconst NW_W_PENTAGON = [OFFSET.NW, OFFSET.W, [-ONE6TH, -HALF], [ONE6TH, -HALF], OFFSET.N];\nconst NE_N_PENTAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], OFFSET.E, OFFSET.NE, OFFSET.N];\nconst SE_E_PENTAGON = [OFFSET.S, OFFSET.SE, OFFSET.E, [ONE6TH, HALF], [-ONE6TH, HALF]];\nconst SW_S_PENTAGON = [OFFSET.W, OFFSET.SW, OFFSET.S, [HALF, -ONE6TH], [HALF, ONE6TH]];\n\n// Hexagon\nconst S_HEXAGON = [OFFSET.W, OFFSET.SW, OFFSET.SE, OFFSET.E, [ONE6TH, HALF], [-ONE6TH, HALF]];\nconst E_HEXAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], OFFSET.S, OFFSET.SE, OFFSET.NE, OFFSET.N];\nconst N_HEXAGON = [OFFSET.NW, OFFSET.W, [-ONE6TH, -HALF], [ONE6TH, -HALF], OFFSET.E, OFFSET.NE];\nconst W_HEXAGON = [OFFSET.NW, OFFSET.SW, OFFSET.S, [HALF, -ONE6TH], [HALF, ONE6TH], OFFSET.N];\nconst SW_NE_HEXAGON = [OFFSET.W, OFFSET.SW, OFFSET.S, OFFSET.E, OFFSET.NE, OFFSET.N];\nconst NW_SE_HEXAGON = [OFFSET.NW, OFFSET.W, OFFSET.S, OFFSET.SE, OFFSET.E, OFFSET.N];\n\n// Heptagon (7-sided)\nconst NE_HEPTAGON = [\n [-HALF, ONE6TH],\n [-HALF, -ONE6TH],\n [-ONE6TH, -HALF],\n [ONE6TH, -HALF],\n OFFSET.E,\n OFFSET.NE,\n OFFSET.N\n];\nconst SW_HEPTAGON = [\n OFFSET.W,\n OFFSET.SW,\n OFFSET.S,\n [HALF, -ONE6TH],\n [HALF, ONE6TH],\n [ONE6TH, HALF],\n [-ONE6TH, HALF]\n];\nconst NW_HEPTAGON = [\n OFFSET.NW,\n OFFSET.W,\n [-ONE6TH, -HALF],\n [ONE6TH, -HALF],\n [HALF, -ONE6TH],\n [HALF, ONE6TH],\n OFFSET.N\n];\nconst SE_HEPTAGON = [\n [-HALF, ONE6TH],\n [-HALF, -ONE6TH],\n OFFSET.S,\n OFFSET.SE,\n OFFSET.E,\n [ONE6TH, HALF],\n [-ONE6TH, HALF]\n];\n\n// Octagon\nconst OCTAGON = [\n [-HALF, ONE6TH],\n [-HALF, -ONE6TH],\n [-ONE6TH, -HALF],\n [ONE6TH, -HALF],\n [HALF, -ONE6TH],\n [HALF, ONE6TH],\n [ONE6TH, HALF],\n [-ONE6TH, HALF]\n];\n\n// Note: above wiki page invertes white/black dots for generating the code, we don't\nexport const ISOLINES_CODE_OFFSET_MAP = {\n // key is equal to the code of 4 vertices (invert the code specified in wiki)\n // value can be an array or an Object\n // Array : [line] or [line, line], where each line is [start-point, end-point], and each point is [x, y]\n // Object : to handle saddle cases, whos output depends on mean value of all 4 corners\n // key: code of mean value (0 or 1)\n // value: Array , as above defines one or two line segments\n 0: [],\n 1: [[OFFSET.W, OFFSET.S]],\n 2: [[OFFSET.S, OFFSET.E]],\n 3: [[OFFSET.W, OFFSET.E]],\n 4: [[OFFSET.N, OFFSET.E]],\n 5: {\n 0: [\n [OFFSET.W, OFFSET.S],\n [OFFSET.N, OFFSET.E]\n ],\n 1: [\n [OFFSET.W, OFFSET.N],\n [OFFSET.S, OFFSET.E]\n ]\n },\n 6: [[OFFSET.N, OFFSET.S]],\n 7: [[OFFSET.W, OFFSET.N]],\n 8: [[OFFSET.W, OFFSET.N]],\n 9: [[OFFSET.N, OFFSET.S]],\n 10: {\n 0: [\n [OFFSET.W, OFFSET.N],\n [OFFSET.S, OFFSET.E]\n ],\n 1: [\n [OFFSET.W, OFFSET.S],\n [OFFSET.N, OFFSET.E]\n ]\n },\n 11: [[OFFSET.N, OFFSET.E]],\n 12: [[OFFSET.W, OFFSET.E]],\n 13: [[OFFSET.S, OFFSET.E]],\n 14: [[OFFSET.W, OFFSET.S]],\n 15: []\n};\n\nfunction ternaryToIndex(ternary) {\n return parseInt(ternary, 4);\n}\n\nexport const ISOBANDS_CODE_OFFSET_MAP = {\n // Below list of cases, follow the same order as in above mentioned wiki page.\n // Each case has its code on first commented line // T,TR,R,C\n // where T: Top, TR: Top-right, R: Right and C: current, each will be either 0, 1 or 2\n // final code is binary representation of above code , where takes 2 digits\n // for example: code 2-2-2-1 => 10-10-10-01 => 10101001 => 169\n\n // no contours\n [ternaryToIndex('0000')]: [],\n [ternaryToIndex('2222')]: [],\n\n // single triangle\n [ternaryToIndex('2221')]: [SW_TRIANGLE],\n [ternaryToIndex('2212')]: [SE_TRIANGLE],\n [ternaryToIndex('2122')]: [NE_TRIANGLE],\n [ternaryToIndex('1222')]: [NW_TRIANGLE],\n [ternaryToIndex('0001')]: [SW_TRIANGLE],\n [ternaryToIndex('0010')]: [SE_TRIANGLE],\n [ternaryToIndex('0100')]: [NE_TRIANGLE],\n [ternaryToIndex('1000')]: [NW_TRIANGLE],\n\n // single trapezoid\n [ternaryToIndex('2220')]: [SW_TRAPEZOID],\n [ternaryToIndex('2202')]: [SE_TRAPEZOID],\n [ternaryToIndex('2022')]: [NE_TRAPEZOID],\n [ternaryToIndex('0222')]: [NW_TRAPEZOID],\n [ternaryToIndex('0002')]: [SW_TRAPEZOID],\n [ternaryToIndex('0020')]: [SE_TRAPEZOID],\n [ternaryToIndex('0200')]: [NE_TRAPEZOID],\n [ternaryToIndex('2000')]: [NW_TRAPEZOID],\n\n // single rectangle\n [ternaryToIndex('0011')]: [S_RECTANGLE],\n [ternaryToIndex('0110')]: [E_RECTANGLE],\n [ternaryToIndex('1100')]: [N_RECTANGLE],\n [ternaryToIndex('1001')]: [W_RECTANGLE],\n [ternaryToIndex('2211')]: [S_RECTANGLE],\n [ternaryToIndex('2112')]: [E_RECTANGLE],\n [ternaryToIndex('1122')]: [N_RECTANGLE],\n [ternaryToIndex('1221')]: [W_RECTANGLE],\n [ternaryToIndex('2200')]: [EW_RECTANGEL],\n [ternaryToIndex('2002')]: [SN_RECTANGEL],\n [ternaryToIndex('0022')]: [EW_RECTANGEL],\n [ternaryToIndex('0220')]: [SN_RECTANGEL],\n\n // single square\n // 1111\n [ternaryToIndex('1111')]: [SQUARE],\n\n // single pentagon\n [ternaryToIndex('1211')]: [SW_PENTAGON],\n [ternaryToIndex('2111')]: [SE_PENTAGON],\n [ternaryToIndex('1112')]: [NE_PENTAGON],\n [ternaryToIndex('1121')]: [NW_PENTAGON],\n [ternaryToIndex('1011')]: [SW_PENTAGON],\n [ternaryToIndex('0111')]: [SE_PENTAGON],\n [ternaryToIndex('1110')]: [NE_PENTAGON],\n [ternaryToIndex('1101')]: [NW_PENTAGON],\n [ternaryToIndex('1200')]: [NW_N_PENTAGON],\n [ternaryToIndex('0120')]: [NE_E_PENTAGON],\n [ternaryToIndex('0012')]: [SE_S_PENTAGON],\n [ternaryToIndex('2001')]: [SW_W_PENTAGON],\n [ternaryToIndex('1022')]: [NW_N_PENTAGON],\n [ternaryToIndex('2102')]: [NE_E_PENTAGON],\n [ternaryToIndex('2210')]: [SE_S_PENTAGON],\n [ternaryToIndex('0221')]: [SW_W_PENTAGON],\n [ternaryToIndex('1002')]: [NW_W_PENTAGON],\n [ternaryToIndex('2100')]: [NE_N_PENTAGON],\n [ternaryToIndex('0210')]: [SE_E_PENTAGON],\n [ternaryToIndex('0021')]: [SW_S_PENTAGON],\n [ternaryToIndex('1220')]: [NW_W_PENTAGON],\n [ternaryToIndex('0122')]: [NE_N_PENTAGON],\n [ternaryToIndex('2012')]: [SE_E_PENTAGON],\n [ternaryToIndex('2201')]: [SW_S_PENTAGON],\n\n // single hexagon\n [ternaryToIndex('0211')]: [S_HEXAGON],\n [ternaryToIndex('2110')]: [E_HEXAGON],\n [ternaryToIndex('1102')]: [N_HEXAGON],\n [ternaryToIndex('1021')]: [W_HEXAGON],\n [ternaryToIndex('2011')]: [S_HEXAGON],\n [ternaryToIndex('0112')]: [E_HEXAGON],\n [ternaryToIndex('1120')]: [N_HEXAGON],\n [ternaryToIndex('1201')]: [W_HEXAGON],\n [ternaryToIndex('2101')]: [SW_NE_HEXAGON],\n [ternaryToIndex('0121')]: [SW_NE_HEXAGON],\n [ternaryToIndex('1012')]: [NW_SE_HEXAGON],\n [ternaryToIndex('1210')]: [NW_SE_HEXAGON],\n\n // 6-sided polygons based on mean weight\n // NOTE: merges mean value codes for extreme changes (as per above Wiki doc)\n [ternaryToIndex('0101')]: {\n 0: [SW_TRIANGLE, NE_TRIANGLE],\n 1: [SW_NE_HEXAGON],\n 2: [SW_NE_HEXAGON]\n },\n [ternaryToIndex('1010')]: {\n 0: [NW_TRIANGLE, SE_TRIANGLE],\n 1: [NW_SE_HEXAGON],\n 2: [NW_SE_HEXAGON]\n },\n [ternaryToIndex('2121')]: {\n 0: [SW_NE_HEXAGON],\n 1: [SW_NE_HEXAGON],\n 2: [SW_TRIANGLE, NE_TRIANGLE]\n },\n [ternaryToIndex('1212')]: {\n 0: [NW_SE_HEXAGON],\n 1: [NW_SE_HEXAGON],\n 2: [NW_TRIANGLE, SE_TRIANGLE]\n },\n\n // 7-sided polygons based on mean weight\n [ternaryToIndex('2120')]: {\n 0: [NE_HEPTAGON],\n 1: [NE_HEPTAGON],\n 2: [SW_TRAPEZOID, NE_TRIANGLE]\n },\n [ternaryToIndex('2021')]: {\n 0: [SW_HEPTAGON],\n 1: [SW_HEPTAGON],\n 2: [SW_TRIANGLE, NE_TRAPEZOID]\n },\n [ternaryToIndex('1202')]: {\n 0: [NW_HEPTAGON],\n 1: [NW_HEPTAGON],\n 2: [NW_TRIANGLE, SE_TRAPEZOID]\n },\n [ternaryToIndex('0212')]: {\n 0: [SE_HEPTAGON],\n 1: [SE_HEPTAGON],\n 2: [SE_TRIANGLE, NW_TRAPEZOID]\n },\n [ternaryToIndex('0102')]: {\n 0: [SW_TRAPEZOID, NE_TRIANGLE],\n 1: [NE_HEPTAGON],\n 2: [NE_HEPTAGON]\n },\n [ternaryToIndex('0201')]: {\n 0: [SW_TRIANGLE, NE_TRAPEZOID],\n 1: [SW_HEPTAGON],\n 2: [SW_HEPTAGON]\n },\n [ternaryToIndex('1020')]: {\n 0: [NW_TRIANGLE, SE_TRAPEZOID],\n 1: [NW_HEPTAGON],\n 2: [NW_HEPTAGON]\n },\n [ternaryToIndex('2010')]: {\n 0: [SE_TRIANGLE, NW_TRAPEZOID],\n 1: [SE_HEPTAGON],\n 2: [SE_HEPTAGON]\n },\n\n // 8-sided polygons based on mean weight\n [ternaryToIndex('2020')]: {\n 0: [NW_TRAPEZOID, SE_TRAPEZOID],\n 1: [OCTAGON],\n 2: [SW_TRAPEZOID, NE_TRAPEZOID]\n },\n [ternaryToIndex('0202')]: {\n 0: [NE_TRAPEZOID, SW_TRAPEZOID],\n 1: [OCTAGON],\n 2: [NW_TRAPEZOID, SE_TRAPEZOID]\n }\n};\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// All utility methods needed to implement Marching Squares algorithm\n// Ref: https://en.wikipedia.org/wiki/Marching_squares\n\nimport {ISOLINES_CODE_OFFSET_MAP, ISOBANDS_CODE_OFFSET_MAP} from './marching-squares-codes';\n\n// Utility methods\n\nfunction getVertexCode(weight: number, threshold: number | number[]): number {\n // threshold must be a single value or a range (array of size 2)\n if (Number.isNaN(weight)) {\n return 0;\n }\n // Iso-bands\n if (Array.isArray(threshold)) {\n if (weight < threshold[0]) {\n return 0;\n }\n return weight < threshold[1] ? 1 : 2;\n }\n // Iso-lines\n return weight >= threshold ? 1 : 0;\n}\n\n// Returns marching square code for given cell\n/* eslint-disable complexity, max-statements*/\nexport function getCode(opts: {\n getValue: (x: number, y: number) => number;\n threshold: number | number[];\n x: number;\n xRange: [number, number];\n y: number;\n yRange: [number, number];\n}): {\n code: number;\n meanCode: number;\n} {\n // Assumptions\n // Origin is on bottom-left , and X increase to right, Y to top\n // When processing one cell, we process 4 cells, by extending row to top and on column to right\n // to create a 2X2 cell grid\n const {x, y, xRange, yRange, getValue, threshold} = opts;\n\n const isLeftBoundary = x < xRange[0];\n const isRightBoundary = x >= xRange[1] - 1;\n const isBottomBoundary = y < yRange[0];\n const isTopBoundary = y >= yRange[1] - 1;\n const isBoundary = isLeftBoundary || isRightBoundary || isBottomBoundary || isTopBoundary;\n\n let weights: number = 0;\n let current: number;\n let right: number;\n let top: number;\n let topRight: number;\n\n // TOP\n if (isLeftBoundary || isTopBoundary) {\n top = 0;\n } else {\n const w = getValue(x, y + 1);\n top = getVertexCode(w, threshold);\n weights += w;\n }\n\n // TOP-RIGHT\n if (isRightBoundary || isTopBoundary) {\n topRight = 0;\n } else {\n const w = getValue(x + 1, y + 1);\n topRight = getVertexCode(w, threshold);\n weights += w;\n }\n\n // RIGHT\n if (isRightBoundary || isBottomBoundary) {\n right = 0;\n } else {\n const w = getValue(x + 1, y);\n right = getVertexCode(w, threshold);\n weights += w;\n }\n\n // CURRENT\n if (isLeftBoundary || isBottomBoundary) {\n current = 0;\n } else {\n const w = getValue(x, y);\n current = getVertexCode(w, threshold);\n weights += w;\n }\n\n let code = -1;\n if (Number.isFinite(threshold)) {\n code = (top << 3) | (topRight << 2) | (right << 1) | current;\n }\n if (Array.isArray(threshold)) {\n code = (top << 6) | (topRight << 4) | (right << 2) | current;\n }\n\n let meanCode = 0;\n // meanCode is only needed for saddle cases, and they should\n // only occur when we are not processing a cell on boundary\n // because when on a boundary either, bottom-row, top-row, left-column or right-column will have both 0 codes\n if (!isBoundary) {\n meanCode = getVertexCode(weights / 4, threshold);\n }\n return {code, meanCode};\n}\n/* eslint-enable complexity, max-statements*/\n\n// Returns intersection vertices for given cellindex\n// [x, y] refers current marching cell, reference vertex is always top-right corner\nexport function getPolygons(opts: {\n x: number;\n y: number;\n z: number;\n code: number;\n meanCode: number;\n}) {\n const {x, y, z, code, meanCode} = opts;\n let offsets: any = ISOBANDS_CODE_OFFSET_MAP[code];\n\n // handle saddle cases\n if (!Array.isArray(offsets)) {\n offsets = offsets[meanCode];\n }\n\n // Reference vertex is at top-right move to top-right corner\n const rX = x + 1;\n const rY = y + 1;\n\n // offsets format\n // [[1A, 1B, 1C, ...], [2A, 2B, 2C, ...]],\n // vertices format\n // [\n // [[x1A, y1A], [x1B, y1B], [x1C, y1C] ... ],\n // ...\n // ]\n\n const polygons: number[][][] = [];\n offsets.forEach(polygonOffsets => {\n const polygon: number[][] = [];\n polygonOffsets.forEach(xyOffset => {\n const vX = rX + xyOffset[0];\n const vY = rY + xyOffset[1];\n polygon.push([vX, vY, z]);\n });\n polygons.push(polygon);\n });\n return polygons;\n}\n\n// Returns intersection vertices for given cellindex\n// [x, y] refers current marching cell, reference vertex is always top-right corner\nexport function getLines(opts: {x: number; y: number; z: number; code: number; meanCode: number}) {\n const {x, y, z, code, meanCode} = opts;\n let offsets = ISOLINES_CODE_OFFSET_MAP[code];\n\n // handle saddle cases\n if (!Array.isArray(offsets)) {\n offsets = offsets[meanCode];\n }\n\n // Reference vertex is at top-right move to top-right corner\n const rX = x + 1;\n const rY = y + 1;\n\n // offsets format\n // [[1A, 1B], [2A, 2B]],\n // vertices format\n // [[x1A, y1A], [x1B, y1B], [x2A, x2B], ...],\n const lines: number[][] = [];\n offsets.forEach(xyOffsets => {\n xyOffsets.forEach(offset => {\n const vX = rX + offset[0];\n const vY = rY + offset[1];\n lines.push([vX, vY, z]);\n });\n });\n return lines;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Color} from '@deck.gl/core';\nimport {getCode, getLines, getPolygons} from './marching-squares';\n\nexport type Contour = {\n /**\n * Isolines: `threshold` value must be a single `Number`, Isolines are generated based on this threshold value.\n *\n * Isobands: `threshold` value must be an Array of two `Number`s. Isobands are generated using `[threshold[0], threshold[1])` as threshold range, i.e area that has values `>= threshold[0]` and `< threshold[1]` are rendered with corresponding color. NOTE: `threshold[0]` is inclusive and `threshold[1]` is not inclusive.\n */\n threshold: number | number[];\n\n /**\n * RGBA color array to be used to render the contour.\n * @default [255, 255, 255, 255]\n */\n color?: Color;\n\n /**\n * Applicable for `Isoline`s only, width of the Isoline in pixels.\n * @default 1\n */\n strokeWidth?: number;\n\n /** Defines z order of the contour. */\n zIndex?: number;\n};\n\nexport type ContourLine = {\n vertices: number[][];\n contour: Contour;\n};\n\nexport type ContourPolygon = {\n vertices: number[][];\n contour: Contour;\n};\n\n// Given all the cell weights, generates contours for each threshold.\n/* eslint-disable max-depth */\nexport function generateContours({\n contours,\n getValue,\n xRange,\n yRange\n}: {\n contours: Contour[];\n getValue: (x: number, y: number) => number;\n xRange: [number, number];\n yRange: [number, number];\n}) {\n const contourLines: ContourLine[] = [];\n const contourPolygons: ContourPolygon[] = [];\n let segmentIndex = 0;\n let polygonIndex = 0;\n\n for (let i = 0; i < contours.length; i++) {\n const contour = contours[i];\n const z = contour.zIndex ?? i;\n const {threshold} = contour;\n for (let x = xRange[0] - 1; x < xRange[1]; x++) {\n for (let y = yRange[0] - 1; y < yRange[1]; y++) {\n // Get the MarchingSquares code based on neighbor cell weights.\n const {code, meanCode} = getCode({\n getValue,\n threshold,\n x,\n y,\n xRange,\n yRange\n });\n const opts = {\n x,\n y,\n z,\n code,\n meanCode\n };\n if (Array.isArray(threshold)) {\n // ISO bands\n const polygons = getPolygons(opts);\n for (const polygon of polygons) {\n contourPolygons[polygonIndex++] = {\n vertices: polygon,\n contour\n };\n }\n } else {\n // ISO lines\n const path = getLines(opts);\n if (path.length > 0) {\n contourLines[segmentIndex++] = {\n vertices: path,\n contour\n };\n }\n }\n }\n }\n }\n return {lines: contourLines, polygons: contourPolygons};\n}\n/* eslint-enable max-depth */\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Aggregator, CPUAggregator, WebGLAggregator} from '../common/aggregator/index';\nimport type {TypedArray} from '@luma.gl/core';\n\ntype ValueReader = (x: number, y: number) => number;\n\n/** Returns an accessor to the aggregated values from bin id */\nexport function getAggregatorValueReader(opts: {\n aggregator: Aggregator;\n binIdRange: [number, number][];\n channel: 0 | 1 | 2;\n}): ValueReader | null {\n const {aggregator, binIdRange, channel} = opts;\n\n if (aggregator instanceof WebGLAggregator) {\n const buffer = aggregator.getResult(channel)?.buffer;\n if (buffer) {\n const values = new Float32Array(buffer.readSyncWebGL().buffer);\n return getWebGLAggregatorValueReader(values, binIdRange);\n }\n }\n if (aggregator instanceof CPUAggregator) {\n const values = aggregator.getResult(channel)?.value;\n const ids = aggregator.getBins()?.value;\n if (ids && values) {\n return getCPUAggregatorValueReader(values, ids, aggregator.binCount);\n }\n }\n return null;\n}\n\nfunction getWebGLAggregatorValueReader(\n values: Float32Array,\n binIdRange: [number, number][]\n): ValueReader {\n const [[minX, maxX], [minY, maxY]] = binIdRange;\n const width = maxX - minX;\n const height = maxY - minY;\n return (x: number, y: number) => {\n x -= minX;\n y -= minY;\n if (x < 0 || x >= width || y < 0 || y >= height) {\n return NaN;\n }\n return values[y * width + x];\n };\n}\n\nfunction getCPUAggregatorValueReader(\n values: TypedArray,\n ids: TypedArray,\n count: number\n): ValueReader {\n const idMap: Record<string, Record<string, number>> = {};\n for (let i = 0; i < count; i++) {\n const x = ids[i * 2];\n const y = ids[i * 2 + 1];\n idMap[x] = idMap[x] || {};\n idMap[x][y] = values[i];\n }\n return (x: number, y: number) => idMap[x]?.[y] ?? NaN;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform binOptionsUniforms {\n vec2 cellOriginCommon;\n vec2 cellSizeCommon;\n} binOptions;\n`;\n\nexport type BinOptions = {\n cellOriginCommon: [number, number];\n cellSizeCommon: [number, number];\n};\n\nexport const binOptionsUniforms = {\n name: 'binOptions',\n vs: uniformBlock,\n uniformTypes: {\n cellOriginCommon: 'vec2<f32>',\n cellSizeCommon: 'vec2<f32>'\n }\n} as const satisfies ShaderModule<BinOptions>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {\n log,\n Accessor,\n Color,\n GetPickingInfoParams,\n CompositeLayerProps,\n createIterable,\n Layer,\n Material,\n project32,\n LayersList,\n PickingInfo,\n Position,\n Viewport,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport {WebGLAggregator, CPUAggregator, AggregationOperation} from '../common/aggregator/index';\nimport AggregationLayer from '../common/aggregation-layer';\nimport {AggregateAccessor} from '../common/types';\nimport {defaultColorRange} from '../common/utils/color-utils';\nimport {AttributeWithScale} from '../common/utils/scale-utils';\nimport {getBinIdRange} from '../common/utils/bounds-utils';\n\nimport {GridCellLayer} from './grid-cell-layer';\nimport {BinOptions, binOptionsUniforms} from './bin-options-uniforms';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n\nconst defaultProps: DefaultProps<GridLayerProps> = {\n gpuAggregation: true,\n\n // color\n colorDomain: null,\n colorRange: defaultColorRange,\n getColorValue: {type: 'accessor', value: null}, // default value is calculated from `getColorWeight` and `colorAggregation`\n getColorWeight: {type: 'accessor', value: 1},\n colorAggregation: 'SUM',\n lowerPercentile: {type: 'number', min: 0, max: 100, value: 0},\n upperPercentile: {type: 'number', min: 0, max: 100, value: 100},\n colorScaleType: 'quantize',\n onSetColorDomain: noop,\n\n // elevation\n elevationDomain: null,\n elevationRange: [0, 1000],\n getElevationValue: {type: 'accessor', value: null}, // default value is calculated from `getElevationWeight` and `elevationAggregation`\n getElevationWeight: {type: 'accessor', value: 1},\n elevationAggregation: 'SUM',\n elevationScale: {type: 'number', min: 0, value: 1},\n elevationLowerPercentile: {type: 'number', min: 0, max: 100, value: 0},\n elevationUpperPercentile: {type: 'number', min: 0, max: 100, value: 100},\n elevationScaleType: 'linear',\n onSetElevationDomain: noop,\n\n // grid\n cellSize: {type: 'number', min: 0, value: 1000},\n coverage: {type: 'number', min: 0, max: 1, value: 1},\n getPosition: {type: 'accessor', value: (x: any) => x.position},\n gridAggregator: {type: 'function', optional: true, value: null},\n extruded: false,\n\n // Optional material for 'lighting' shader module\n material: true\n};\n\n/** All properties supported by GridLayer. */\nexport type GridLayerProps<DataT = unknown> = _GridLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by GridLayer. */\ntype _GridLayerProps<DataT> = {\n /**\n * Custom accessor to retrieve a grid bin index from each data object.\n * Not supported by GPU aggregation.\n */\n gridAggregator?: ((position: number[], cellSize: number) => [number, number]) | null;\n\n /**\n * Size of each cell in meters.\n * @default 1000\n */\n cellSize?: number;\n\n /**\n * Color scale domain, default is set to the extent of aggregated weights in each cell.\n * @default [min(colorWeight), max(colorWeight)]\n */\n colorDomain?: Readonly<[number, number]> | null;\n\n /**\n * Default: [colorbrewer](http://colorbrewer2.org/#type=sequential&scheme=YlOrRd&n=6) `6-class YlOrRd`\n */\n colorRange?: Color[];\n\n /**\n * Cell size multiplier, clamped between 0 - 1.\n * @default 1\n */\n coverage?: number;\n\n /**\n * Elevation scale input domain, default is set to between 0 and the max of aggregated weights in each cell.\n * @default [0, max(elevationWeight)]\n */\n elevationDomain?: Readonly<[number, number]> | null;\n\n /**\n * Elevation scale output range.\n * @default [0, 1000]\n */\n elevationRange?: Readonly<[number, number]>;\n\n /**\n * Cell elevation multiplier.\n * @default 1\n */\n elevationScale?: number;\n\n /**\n * Whether to enable cell elevation. If set to false, all cell will be flat.\n * @default true\n */\n extruded?: boolean;\n\n /**\n * Filter cells and re-calculate color by `upperPercentile`.\n * Cells with value larger than the upperPercentile will be hidden.\n * @default 100\n */\n upperPercentile?: number;\n\n /**\n * Filter cells and re-calculate color by `lowerPercentile`.\n * Cells with value smaller than the lowerPercentile will be hidden.\n * @default 0\n */\n lowerPercentile?: number;\n\n /**\n * Filter cells and re-calculate elevation by `elevationUpperPercentile`.\n * Cells with elevation value larger than the `elevationUpperPercentile` will be hidden.\n * @default 100\n */\n elevationUpperPercentile?: number;\n\n /**\n * Filter cells and re-calculate elevation by `elevationLowerPercentile`.\n * Cells with elevation value larger than the `elevationLowerPercentile` will be hidden.\n * @default 0\n */\n elevationLowerPercentile?: number;\n\n /**\n * Scaling function used to determine the color of the grid cell.\n * Supported Values are 'quantize', 'linear', 'quantile' and 'ordinal'.\n * @default 'quantize'\n */\n colorScaleType?: 'quantize' | 'linear' | 'quantile' | 'ordinal';\n\n /**\n * Scaling function used to determine the elevation of the grid cell.\n * Supported Values are 'linear' and 'quantile'.\n * @default 'linear'\n */\n elevationScaleType?: 'linear' | 'quantile';\n\n /**\n * Material settings for lighting effect. Applies if `extruded: true`.\n *\n * @default true\n * @see https://deck.gl/docs/developer-guide/using-lighting\n */\n material?: Material;\n\n /**\n * Defines the operation used to aggregate all data object weights to calculate a cell's color value.\n * Valid values are 'SUM', 'MEAN', 'MIN', 'MAX', 'COUNT'.\n *\n * @default 'SUM'\n */\n colorAggregation?: AggregationOperation;\n\n /**\n * Defines the operation used to aggregate all data object weights to calculate a cell's elevation value.\n * Valid values are 'SUM', 'MEAN', 'MIN', 'MAX', 'COUNT'.\n *\n * @default 'SUM'\n */\n elevationAggregation?: AggregationOperation;\n\n /**\n * Method called to retrieve the position of each object.\n * @default object => object.position\n */\n getPosition?: Accessor<DataT, Position>;\n\n /**\n * The weight of a data object used to calculate the color value for a cell.\n * @default 1\n */\n getColorWeight?: Accessor<DataT, number>;\n\n /**\n * After data objects are aggregated into cells, this accessor is called on each cell to get the value that its color is based on.\n * Not supported by GPU aggregation.\n * @default null\n */\n getColorValue?: AggregateAccessor<DataT> | null;\n\n /**\n * The weight of a data object used to calculate the elevation value for a cell.\n * @default 1\n */\n getElevationWeight?: Accessor<DataT, number>;\n\n /**\n * After data objects are aggregated into cells, this accessor is called on each cell to get the value that its elevation is based on.\n * Not supported by GPU aggregation.\n * @default null\n */\n getElevationValue?: AggregateAccessor<DataT> | null;\n\n /**\n * This callback will be called when bin color domain has been calculated.\n * @default () => {}\n */\n onSetColorDomain?: (minMax: [number, number]) => void;\n\n /**\n * This callback will be called when bin elevation domain has been calculated.\n * @default () => {}\n */\n onSetElevationDomain?: (minMax: [number, number]) => void;\n\n /**\n * When set to true, aggregation is performed on GPU, provided other conditions are met.\n * @default true\n */\n gpuAggregation?: boolean;\n};\n\nexport type GridLayerPickingInfo<DataT> = PickingInfo<{\n /** Column index of the picked cell */\n col: number;\n /** Row index of the picked cell */\n row: number;\n /** Aggregated color value, as determined by `getColorWeight` and `colorAggregation` */\n colorValue: number;\n /** Aggregated elevation value, as determined by `getElevationWeight` and `elevationAggregation` */\n elevationValue: number;\n /** Number of data points in the picked cell */\n count: number;\n /** Indices of the data objects in the picked cell. Only available if using CPU aggregation. */\n pointIndices?: number[];\n /** The data objects in the picked cell. Only available if using CPU aggregation and layer data is an array. */\n points?: DataT[];\n}>;\n\n/** Aggregate data into a grid-based heatmap. The color and height of a cell are determined based on the objects it contains. */\nexport default class GridLayer<DataT = any, ExtraPropsT extends {} = {}> extends AggregationLayer<\n DataT,\n ExtraPropsT & Required<_GridLayerProps<DataT>>\n> {\n static layerName = 'GridLayer';\n static defaultProps = defaultProps;\n\n state!: AggregationLayer<DataT>['state'] &\n BinOptions & {\n // Needed if getColorValue, getElevationValue are used\n dataAsArray?: DataT[];\n\n colors?: AttributeWithScale;\n elevations?: AttributeWithScale;\n\n binIdRange: [number, number][];\n aggregatorViewport: Viewport;\n };\n\n getAggregatorType(): string {\n const {gpuAggregation, gridAggregator, getColorValue, getElevationValue} = this.props;\n if (gpuAggregation && (gridAggregator || getColorValue || getElevationValue)) {\n // If these features are desired by the app, the user should explicitly use CPU aggregation\n log.warn('Features not supported by GPU aggregation, falling back to CPU')();\n return 'cpu';\n }\n\n if (\n // GPU aggregation is requested\n gpuAggregation &&\n // GPU aggregation is supported by the device\n WebGLAggregator.isSupported(this.context.device)\n ) {\n return 'gpu';\n }\n return 'cpu';\n }\n\n createAggregator(type: string): WebGLAggregator | CPUAggregator {\n if (type === 'cpu') {\n const {gridAggregator, cellSize} = this.props;\n return new CPUAggregator({\n dimensions: 2,\n getBin: {\n sources: ['positions'],\n getValue: ({positions}: {positions: number[]}, index: number, opts: BinOptions) => {\n if (gridAggregator) {\n return gridAggregator(positions, cellSize);\n }\n const viewport = this.state.aggregatorViewport;\n // project to common space\n const p = viewport.projectPosition(positions);\n const {cellSizeCommon, cellOriginCommon} = opts;\n return [\n Math.floor((p[0] - cellOriginCommon[0]) / cellSizeCommon[0]),\n Math.floor((p[1] - cellOriginCommon[1]) / cellSizeCommon[1])\n ];\n }\n },\n getValue: [\n {sources: ['colorWeights'], getValue: ({colorWeights}) => colorWeights},\n {sources: ['elevationWeights'], getValue: ({elevationWeights}) => elevationWeights}\n ]\n });\n }\n return new WebGLAggregator(this.context.device, {\n dimensions: 2,\n channelCount: 2,\n bufferLayout: this.getAttributeManager()!.getBufferLayouts({isInstanced: false}),\n ...super.getShaders({\n modules: [project32, binOptionsUniforms],\n vs: /* glsl */ `\n in vec3 positions;\n in vec3 positions64Low;\n in float colorWeights;\n in float elevationWeights;\n\n void getBin(out ivec2 binId) {\n vec3 positionCommon = project_position(positions, positions64Low);\n vec2 gridCoords = floor(positionCommon.xy / binOptions.cellSizeCommon);\n binId = ivec2(gridCoords);\n }\n void getValue(out vec2 value) {\n value = vec2(colorWeights, elevationWeights);\n }\n `\n })\n });\n }\n\n initializeState() {\n super.initializeState();\n\n const attributeManager = this.getAttributeManager()!;\n attributeManager.add({\n positions: {\n size: 3,\n accessor: 'getPosition',\n type: 'float64',\n fp64: this.use64bitPositions()\n },\n colorWeights: {size: 1, accessor: 'getColorWeight'},\n elevationWeights: {size: 1, accessor: 'getElevationWeight'}\n });\n }\n\n // eslint-disable-next-line complexity\n updateState(params: UpdateParameters<this>) {\n const aggregatorChanged = super.updateState(params);\n\n const {props, oldProps, changeFlags} = params;\n const {aggregator} = this.state;\n if (\n (changeFlags.dataChanged || !this.state.dataAsArray) &&\n (props.getColorValue || props.getElevationValue)\n ) {\n // Convert data to array\n this.state.dataAsArray = Array.from(createIterable(props.data).iterable);\n }\n if (\n aggregatorChanged ||\n changeFlags.dataChanged ||\n props.cellSize !== oldProps.cellSize ||\n props.getColorValue !== oldProps.getColorValue ||\n props.getElevationValue !== oldProps.getElevationValue ||\n props.colorAggregation !== oldProps.colorAggregation ||\n props.elevationAggregation !== oldProps.elevationAggregation\n ) {\n this._updateBinOptions();\n const {cellSizeCommon, cellOriginCommon, binIdRange, dataAsArray} = this.state;\n\n aggregator.setProps({\n // @ts-expect-error only used by GPUAggregator\n binIdRange,\n pointCount: this.getNumInstances(),\n operations: [props.colorAggregation, props.elevationAggregation],\n binOptions: {\n cellSizeCommon,\n cellOriginCommon\n },\n onUpdate: this._onAggregationUpdate.bind(this)\n });\n\n if (dataAsArray) {\n const {getColorValue, getElevationValue} = this.props;\n aggregator.setProps({\n // @ts-expect-error only used by CPUAggregator\n customOperations: [\n getColorValue &&\n ((indices: number[]) =>\n getColorValue(\n indices.map(i => dataAsArray[i]),\n {indices, data: props.data}\n )),\n getElevationValue &&\n ((indices: number[]) =>\n getElevationValue(\n indices.map(i => dataAsArray[i]),\n {indices, data: props.data}\n ))\n ]\n });\n }\n }\n if (changeFlags.updateTriggersChanged && changeFlags.updateTriggersChanged.getColorValue) {\n aggregator.setNeedsUpdate(0);\n }\n if (changeFlags.updateTriggersChanged && changeFlags.updateTriggersChanged.getElevationValue) {\n aggregator.setNeedsUpdate(1);\n }\n\n return aggregatorChanged;\n }\n\n private _updateBinOptions() {\n const bounds = this.getBounds();\n const cellSizeCommon: [number, number] = [1, 1];\n let cellOriginCommon: [number, number] = [0, 0];\n let binIdRange: [number, number][] = [\n [0, 1],\n [0, 1]\n ];\n let viewport = this.context.viewport;\n\n if (bounds && Number.isFinite(bounds[0][0])) {\n let centroid = [(bounds[0][0] + bounds[1][0]) / 2, (bounds[0][1] + bounds[1][1]) / 2];\n const {cellSize} = this.props;\n const {unitsPerMeter} = viewport.getDistanceScales(centroid);\n cellSizeCommon[0] = unitsPerMeter[0] * cellSize;\n cellSizeCommon[1] = unitsPerMeter[1] * cellSize;\n\n // Offset common space to center at the origin of the grid cell where the data center is in\n // This improves precision without affecting the cell positions\n const centroidCommon = viewport.projectFlat(centroid);\n cellOriginCommon = [\n Math.floor(centroidCommon[0] / cellSizeCommon[0]) * cellSizeCommon[0],\n Math.floor(centroidCommon[1] / cellSizeCommon[1]) * cellSizeCommon[1]\n ];\n centroid = viewport.unprojectFlat(cellOriginCommon);\n\n const ViewportType = viewport.constructor as any;\n // We construct a viewport for the GPU aggregator's project module\n // This viewport is determined by data\n // removes arbitrary precision variance that depends on initial view state\n viewport = viewport.isGeospatial\n ? new ViewportType({longitude: centroid[0], latitude: centroid[1], zoom: 12})\n : new Viewport({position: [centroid[0], centroid[1], 0], zoom: 12});\n\n // Round to the nearest 32-bit float to match CPU and GPU results\n cellOriginCommon = [Math.fround(viewport.center[0]), Math.fround(viewport.center[1])];\n\n binIdRange = getBinIdRange({\n dataBounds: bounds,\n getBinId: (p: number[]) => {\n const positionCommon = viewport.projectFlat(p);\n return [\n Math.floor((positionCommon[0] - cellOriginCommon[0]) / cellSizeCommon[0]),\n Math.floor((positionCommon[1] - cellOriginCommon[1]) / cellSizeCommon[1])\n ];\n }\n });\n }\n\n this.setState({cellSizeCommon, cellOriginCommon, binIdRange, aggregatorViewport: viewport});\n }\n\n override draw(opts) {\n // Replaces render time viewport with our own\n if (opts.shaderModuleProps.project) {\n opts.shaderModuleProps.project.viewport = this.state.aggregatorViewport;\n }\n super.draw(opts);\n }\n\n private _onAggregationUpdate({channel}: {channel: number}) {\n const props = this.getCurrentLayer()!.props;\n const {aggregator} = this.state;\n if (channel === 0) {\n const result = aggregator.getResult(0)!;\n this.setState({\n colors: new AttributeWithScale(result, aggregator.binCount)\n });\n props.onSetColorDomain(aggregator.getResultDomain(0));\n } else if (channel === 1) {\n const result = aggregator.getResult(1)!;\n this.setState({\n elevations: new AttributeWithScale(result, aggregator.binCount)\n });\n props.onSetElevationDomain(aggregator.getResultDomain(1));\n }\n }\n\n onAttributeChange(id: string) {\n const {aggregator} = this.state;\n switch (id) {\n case 'positions':\n aggregator.setNeedsUpdate();\n\n this._updateBinOptions();\n const {cellSizeCommon, cellOriginCommon, binIdRange} = this.state;\n aggregator.setProps({\n // @ts-expect-error only used by GPUAggregator\n binIdRange,\n binOptions: {\n cellSizeCommon,\n cellOriginCommon\n }\n });\n break;\n\n case 'colorWeights':\n aggregator.setNeedsUpdate(0);\n break;\n\n case 'elevationWeights':\n aggregator.setNeedsUpdate(1);\n break;\n\n default:\n // This should not happen\n }\n }\n\n renderLayers(): LayersList | Layer | null {\n const {aggregator, cellOriginCommon, cellSizeCommon} = this.state;\n const {\n elevationScale,\n colorRange,\n elevationRange,\n extruded,\n coverage,\n material,\n transitions,\n colorScaleType,\n lowerPercentile,\n upperPercentile,\n colorDomain,\n elevationScaleType,\n elevationLowerPercentile,\n elevationUpperPercentile,\n elevationDomain\n } = this.props;\n const CellLayerClass = this.getSubLayerClass('cells', GridCellLayer);\n const binAttribute = aggregator.getBins();\n\n const colors = this.state.colors?.update({\n scaleType: colorScaleType,\n lowerPercentile,\n upperPercentile\n });\n const elevations = this.state.elevations?.update({\n scaleType: elevationScaleType,\n lowerPercentile: elevationLowerPercentile,\n upperPercentile: elevationUpperPercentile\n });\n\n if (!colors || !elevations) {\n return null;\n }\n\n return new CellLayerClass(\n this.getSubLayerProps({\n id: 'cells'\n }),\n {\n data: {\n length: aggregator.binCount,\n attributes: {\n getBin: binAttribute,\n getColorValue: colors.attribute,\n getElevationValue: elevations.attribute\n }\n },\n // Data has changed shallowly, but we likely don't need to update the attributes\n dataComparator: (data, oldData) => data.length === oldData.length,\n updateTriggers: {\n getBin: [binAttribute],\n getColorValue: [colors.attribute],\n getElevationValue: [elevations.attribute]\n },\n cellOriginCommon,\n cellSizeCommon,\n elevationScale,\n colorRange,\n colorScaleType,\n elevationRange,\n extruded,\n coverage,\n material,\n colorDomain: colors.domain || colorDomain || aggregator.getResultDomain(0),\n elevationDomain: elevations.domain || elevationDomain || aggregator.getResultDomain(1),\n colorCutoff: colors.cutoff,\n elevationCutoff: elevations.cutoff,\n transitions: transitions && {\n getFillColor: transitions.getColorValue || transitions.getColorWeight,\n getElevation: transitions.getElevationValue || transitions.getElevationWeight\n },\n // Extensions are already handled by the GPUAggregator, do not pass it down\n extensions: []\n }\n );\n }\n\n getPickingInfo(params: GetPickingInfoParams): GridLayerPickingInfo<DataT> {\n const info: GridLayerPickingInfo<DataT> = params.info;\n const {index} = info;\n if (index >= 0) {\n const bin = this.state.aggregator.getBin(index);\n let object: GridLayerPickingInfo<DataT>['object'];\n if (bin) {\n object = {\n col: bin.id[0],\n row: bin.id[1],\n colorValue: bin.value[0],\n elevationValue: bin.value[1],\n count: bin.count\n };\n if (bin.pointIndices) {\n object.pointIndices = bin.pointIndices;\n object.points = Array.isArray(this.props.data)\n ? bin.pointIndices.map(i => (this.props.data as DataT[])[i])\n : [];\n }\n }\n info.object = object;\n }\n\n return info;\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Texture} from '@luma.gl/core';\nimport {UpdateParameters, Color} from '@deck.gl/core';\nimport {ColumnLayer} from '@deck.gl/layers';\nimport {CubeGeometry} from '@luma.gl/engine';\nimport {createColorRangeTexture, updateColorRangeTexture} from '../common/utils/color-utils';\nimport vs from './grid-cell-layer-vertex.glsl';\nimport {GridProps, gridUniforms} from './grid-layer-uniforms';\nimport type {ScaleType} from '../common/types';\n\n/** Proprties added by GridCellLayer. */\ntype GridCellLayerProps = {\n cellSizeCommon: Readonly<[number, number]>;\n cellOriginCommon: Readonly<[number, number]>;\n colorDomain: Readonly<[number, number]>;\n colorCutoff: Readonly<[number, number]> | null;\n colorRange: Color[];\n colorScaleType: ScaleType;\n elevationDomain: Readonly<[number, number]>;\n elevationCutoff: Readonly<[number, number]> | null;\n elevationRange: Readonly<[number, number]>;\n};\n\nexport class GridCellLayer<ExtraPropsT extends {} = {}> extends ColumnLayer<\n null,\n ExtraPropsT & Required<GridCellLayerProps>\n> {\n static layerName = 'GridCellLayer';\n\n state!: ColumnLayer['state'] & {\n colorTexture: Texture;\n };\n\n getShaders() {\n const shaders = super.getShaders();\n shaders.modules.push(gridUniforms);\n return {...shaders, vs};\n }\n\n initializeState() {\n super.initializeState();\n\n const attributeManager = this.getAttributeManager()!;\n attributeManager.remove([\n 'instanceElevations',\n 'instanceFillColors',\n 'instanceLineColors',\n 'instanceStrokeWidths'\n ]);\n attributeManager.addInstanced({\n instancePositions: {\n size: 2,\n type: 'float32',\n accessor: 'getBin'\n },\n instanceColorValues: {\n size: 1,\n type: 'float32',\n accessor: 'getColorValue'\n },\n instanceElevationValues: {\n size: 1,\n type: 'float32',\n accessor: 'getElevationValue'\n }\n });\n }\n\n updateState(params: UpdateParameters<this>) {\n super.updateState(params);\n\n const {props, oldProps} = params;\n const model = this.state.fillModel!;\n\n if (oldProps.colorRange !== props.colorRange) {\n this.state.colorTexture?.destroy();\n this.state.colorTexture = createColorRangeTexture(\n this.context.device,\n props.colorRange,\n props.colorScaleType\n );\n const gridProps: Partial<GridProps> = {colorRange: this.state.colorTexture};\n model.shaderInputs.setProps({grid: gridProps});\n } else if (oldProps.colorScaleType !== props.colorScaleType) {\n updateColorRangeTexture(this.state.colorTexture, props.colorScaleType);\n }\n }\n\n finalizeState(context) {\n super.finalizeState(context);\n\n this.state.colorTexture?.destroy();\n }\n\n protected _updateGeometry() {\n const geometry = new CubeGeometry();\n this.state.fillModel!.setGeometry(geometry);\n }\n\n draw({uniforms}) {\n const {\n cellOriginCommon,\n cellSizeCommon,\n elevationRange,\n elevationScale,\n extruded,\n coverage,\n colorDomain,\n elevationDomain\n } = this.props;\n const colorCutoff = this.props.colorCutoff || [-Infinity, Infinity];\n const elevationCutoff = this.props.elevationCutoff || [-Infinity, Infinity];\n const fillModel = this.state.fillModel!;\n\n const gridProps: Omit<GridProps, 'colorRange'> = {\n colorDomain: [\n Math.max(colorDomain[0], colorCutoff[0]), // instanceColorValue that maps to colorRange[0]\n Math.min(colorDomain[1], colorCutoff[1]), // instanceColorValue that maps to colorRange[colorRange.length - 1]\n Math.max(colorDomain[0] - 1, colorCutoff[0]), // hide cell if instanceColorValue is less than this\n Math.min(colorDomain[1] + 1, colorCutoff[1]) // hide cell if instanceColorValue is greater than this\n ],\n elevationDomain: [\n Math.max(elevationDomain[0], elevationCutoff[0]), // instanceElevationValue that maps to elevationRange[0]\n Math.min(elevationDomain[1], elevationCutoff[1]), // instanceElevationValue that maps to elevationRange[elevationRange.length - 1]\n Math.max(elevationDomain[0] - 1, elevationCutoff[0]), // hide cell if instanceElevationValue is less than this\n Math.min(elevationDomain[1] + 1, elevationCutoff[1]) // hide cell if instanceElevationValue is greater than this\n ],\n elevationRange: [elevationRange[0] * elevationScale, elevationRange[1] * elevationScale],\n originCommon: cellOriginCommon,\n sizeCommon: cellSizeCommon\n };\n fillModel.shaderInputs.setProps({\n column: {extruded, coverage},\n grid: gridProps\n });\n fillModel.draw(this.context.renderPass);\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default /* glsl */ `#version 300 es\n\n#define SHADER_NAME grid-cell-layer-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\n\nin vec2 instancePositions;\nin float instanceElevationValues;\nin float instanceColorValues;\n\nuniform sampler2D colorRange;\n\n// Result\nout vec4 vColor;\n\nfloat interp(float value, vec2 domain, vec2 range) {\n float r = min(max((value - domain.x) / (domain.y - domain.x), 0.), 1.);\n return mix(range.x, range.y, r);\n}\n\nvec4 interp(float value, vec2 domain, sampler2D range) {\n float r = (value - domain.x) / (domain.y - domain.x);\n return texture(range, vec2(r, 0.5));\n}\n\nvoid main(void) {\n geometry.pickingColor = picking_getPickingColorFromInstanceID();\n\n if (isnan(instanceColorValues) ||\n instanceColorValues < grid.colorDomain.z ||\n instanceColorValues > grid.colorDomain.w ||\n instanceElevationValues < grid.elevationDomain.z ||\n instanceElevationValues > grid.elevationDomain.w\n ) {\n gl_Position = vec4(0.);\n return;\n }\n \n vec2 commonPosition = (instancePositions + (positions.xy + 1.0) / 2.0 * column.coverage) * grid.sizeCommon + grid.originCommon - project.commonOrigin.xy;\n geometry.position = vec4(commonPosition, 0.0, 1.0);\n geometry.normal = project_normal(normals);\n\n // calculate z, if 3d not enabled set to 0\n float elevation = 0.0;\n if (column.extruded) {\n elevation = interp(instanceElevationValues, grid.elevationDomain.xy, grid.elevationRange);\n elevation = project_size(elevation);\n // cylindar gemoetry height are between -1.0 to 1.0, transform it to between 0, 1\n geometry.position.z = (positions.z + 1.0) / 2.0 * elevation;\n }\n\n gl_Position = project_common_position_to_clipspace(geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vColor = interp(instanceColorValues, grid.colorDomain.xy, colorRange);\n vColor.a *= layer.opacity;\n if (column.extruded) {\n vColor.rgb = lighting_getLightColor(vColor.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Texture} from '@luma.gl/core';\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform gridUniforms {\n vec4 colorDomain;\n vec4 elevationDomain;\n vec2 elevationRange;\n vec2 originCommon;\n vec2 sizeCommon;\n} grid;\n`;\n\nexport type GridProps = {\n colorDomain: Readonly<[number, number, number, number]>;\n colorRange: Texture;\n elevationDomain: Readonly<[number, number, number, number]>;\n elevationRange: Readonly<[number, number]>;\n originCommon: Readonly<[number, number]>;\n sizeCommon: Readonly<[number, number]>;\n};\n\nexport const gridUniforms = {\n name: 'grid',\n vs: uniformBlock,\n uniformTypes: {\n colorDomain: 'vec4<f32>',\n elevationDomain: 'vec4<f32>',\n elevationRange: 'vec2<f32>',\n originCommon: 'vec2<f32>',\n sizeCommon: 'vec2<f32>'\n }\n} as const satisfies ShaderModule<GridProps>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = /* glsl */ `\\\nlayout(std140) uniform binOptionsUniforms {\n vec2 cellOriginCommon;\n vec2 cellSizeCommon;\n} binOptions;\n`;\n\nexport type BinOptions = {\n cellOriginCommon: [number, number];\n cellSizeCommon: [number, number];\n};\n\nexport const binOptionsUniforms = {\n name: 'binOptions',\n vs: uniformBlock,\n uniformTypes: {\n cellOriginCommon: 'vec2<f32>',\n cellSizeCommon: 'vec2<f32>'\n }\n} as const satisfies ShaderModule<BinOptions>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport function getBounds(points: number[][]): number[] {\n // Now build bounding box in world space (aligned to world coordiante system)\n const x = points.map(p => p[0]);\n const y = points.map(p => p[1]);\n\n const xMin = Math.min.apply(null, x);\n const xMax = Math.max.apply(null, x);\n const yMin = Math.min.apply(null, y);\n const yMax = Math.max.apply(null, y);\n\n return [xMin, yMin, xMax, yMax];\n}\n\n// true if currentBounds contains targetBounds, false otherwise\nexport function boundsContain(currentBounds: number[], targetBounds: number[]): boolean {\n if (\n targetBounds[0] >= currentBounds[0] &&\n targetBounds[2] <= currentBounds[2] &&\n targetBounds[1] >= currentBounds[1] &&\n targetBounds[3] <= currentBounds[3]\n ) {\n return true;\n }\n return false;\n}\n\nconst scratchArray = new Float32Array(12);\n\n// For given rectangle bounds generates two triangles vertices that coverit completely\nexport function packVertices(points: number[][], dimensions: number = 2): Float32Array {\n let index = 0;\n for (const point of points) {\n for (let i = 0; i < dimensions; i++) {\n scratchArray[index++] = point[i] || 0;\n }\n }\n return scratchArray;\n}\n\n// Expands boundingBox:[xMin, yMin, xMax, yMax] to match aspect ratio of given width and height\nexport function scaleToAspectRatio(\n boundingBox: [number, number, number, number],\n width: number,\n height: number\n): [number, number, number, number] {\n const [xMin, yMin, xMax, yMax] = boundingBox;\n\n const currentWidth = xMax - xMin;\n const currentHeight = yMax - yMin;\n\n let newWidth = currentWidth;\n let newHeight = currentHeight;\n if (currentWidth / currentHeight < width / height) {\n // expand bounding box width\n newWidth = (width / height) * currentHeight;\n } else {\n newHeight = (height / width) * currentWidth;\n }\n\n if (newWidth < width) {\n newWidth = width;\n newHeight = height;\n }\n\n const xCenter = (xMax + xMin) / 2;\n const yCenter = (yMax + yMin) / 2;\n\n return [\n xCenter - newWidth / 2,\n yCenter - newHeight / 2,\n xCenter + newWidth / 2,\n yCenter + newHeight / 2\n ];\n}\n\n// Get texture coordiante of point inside a bounding box\nexport function getTextureCoordinates(point: number[], bounds: number[]) {\n const [xMin, yMin, xMax, yMax] = bounds;\n return [(point[0] - xMin) / (xMax - xMin), (point[1] - yMin) / (yMax - yMin)];\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global setTimeout clearTimeout */\nimport {\n getBounds,\n boundsContain,\n packVertices,\n scaleToAspectRatio,\n getTextureCoordinates\n} from './heatmap-layer-utils';\nimport {Buffer, DeviceFeature, Texture, TextureProps, TextureFormat} from '@luma.gl/core';\nimport {TextureTransform, TextureTransformProps} from '@luma.gl/engine';\nimport {\n Accessor,\n AccessorFunction,\n AttributeManager,\n ChangeFlags,\n Color,\n Layer,\n LayerContext,\n LayersList,\n log,\n Position,\n UpdateParameters,\n DefaultProps,\n project32\n} from '@deck.gl/core';\nimport TriangleLayer from './triangle-layer';\nimport AggregationLayer, {AggregationLayerProps} from './aggregation-layer';\nimport {defaultColorRange, colorRangeToFlatArray} from '../common/utils/color-utils';\nimport weightsVs from './weights-vs.glsl';\nimport weightsFs from './weights-fs.glsl';\nimport maxVs from './max-vs.glsl';\nimport maxFs from './max-fs.glsl';\nimport {\n MaxWeightProps,\n maxWeightUniforms,\n WeightProps,\n weightUniforms\n} from './heatmap-layer-uniforms';\n\nconst RESOLUTION = 2; // (number of common space pixels) / (number texels)\nconst TEXTURE_PROPS: TextureProps = {\n format: 'rgba8unorm',\n dimension: '2d',\n width: 1,\n height: 1,\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n }\n};\nconst DEFAULT_COLOR_DOMAIN = [0, 0] as const;\nconst AGGREGATION_MODE = {\n SUM: 0,\n MEAN: 1\n};\n\nconst defaultProps: DefaultProps<HeatmapLayerProps> = {\n getPosition: {type: 'accessor', value: (x: any) => x.position},\n getWeight: {type: 'accessor', value: 1},\n intensity: {type: 'number', min: 0, value: 1},\n radiusPixels: {type: 'number', min: 1, max: 100, value: 50},\n colorRange: defaultColorRange,\n threshold: {type: 'number', min: 0, max: 1, value: 0.05},\n colorDomain: {type: 'array', value: null, optional: true},\n // 'SUM' or 'MEAN'\n aggregation: 'SUM',\n weightsTextureSize: {type: 'number', min: 128, max: 2048, value: 2048},\n debounceTimeout: {type: 'number', min: 0, max: 1000, value: 500}\n};\n\nconst FLOAT_TARGET_FEATURES: DeviceFeature[] = [\n 'float32-renderable-webgl', // ability to render to float texture\n 'texture-blend-float-webgl' // ability to blend when rendering to float texture\n];\n\nconst DIMENSIONS = {\n data: {\n props: ['radiusPixels']\n }\n};\n\nexport type HeatmapLayerProps<DataT = unknown> = _HeatmapLayerProps<DataT> &\n AggregationLayerProps<DataT>;\n\ntype _HeatmapLayerProps<DataT> = {\n /**\n * Radius of the circle in pixels, to which the weight of an object is distributed.\n *\n * @default 30\n */\n radiusPixels?: number;\n\n /**\n * Specified as an array of colors [color1, color2, ...].\n *\n * @default `6-class YlOrRd` - [colorbrewer](http://colorbrewer2.org/#type=sequential&scheme=YlOrRd&n=6)\n */\n colorRange?: Color[];\n\n /**\n * Value that is multiplied with the total weight at a pixel to obtain the final weight.\n *\n * @default 1\n */\n intensity?: number;\n\n /**\n * Ratio of the fading weight to the max weight, between `0` and `1`.\n *\n * For example, `0.1` affects all pixels with weight under 10% of the max.\n *\n * Ignored when `colorDomain` is specified.\n * @default 0.05\n */\n threshold?: number;\n\n /**\n * Controls how weight values are mapped to the `colorRange`, as an array of two numbers [`minValue`, `maxValue`].\n *\n * @default null\n */\n colorDomain?: Readonly<[number, number]> | null;\n\n /**\n * Defines the type of aggregation operation\n *\n * V valid values are 'SUM', 'MEAN'.\n *\n * @default 'SUM'\n */\n aggregation?: 'SUM' | 'MEAN';\n\n /**\n * Specifies the size of weight texture.\n * @default 2048\n */\n weightsTextureSize?: number;\n\n /**\n * Interval in milliseconds during which changes to the viewport don't trigger aggregation.\n *\n * @default 500\n */\n debounceTimeout?: number;\n\n /**\n * Method called to retrieve the position of each object.\n *\n * @default d => d.position\n */\n getPosition?: AccessorFunction<DataT, Position>;\n\n /**\n * The weight of each object.\n *\n * @default 1\n */\n getWeight?: Accessor<DataT, number>;\n};\n\n/** Visualizes the spatial distribution of data. */\nexport default class HeatmapLayer<\n DataT = any,\n ExtraPropsT extends {} = {}\n> extends AggregationLayer<DataT, ExtraPropsT & Required<_HeatmapLayerProps<DataT>>> {\n static layerName = 'HeatmapLayer';\n static defaultProps = defaultProps;\n\n state!: AggregationLayer<DataT>['state'] & {\n colorDomain?: Readonly<[number, number]>;\n isWeightMapDirty?: boolean;\n weightsTexture?: Texture;\n maxWeightsTexture?: Texture;\n colorTexture?: Texture;\n zoom?: number;\n worldBounds?: number[];\n normalizedCommonBounds?: number[];\n updateTimer?: any;\n triPositionBuffer?: Buffer;\n triTexCoordBuffer?: Buffer;\n weightsTransform?: TextureTransform;\n maxWeightTransform?: TextureTransform;\n textureSize: number;\n format: TextureFormat;\n weightsScale: number;\n visibleWorldBounds: number[];\n viewportCorners: number[][];\n };\n\n getShaders(shaders: any) {\n let modules = [project32];\n if (shaders.modules) {\n modules = [...modules, ...shaders.modules];\n }\n\n return super.getShaders({...shaders, modules});\n }\n\n initializeState() {\n super.initializeAggregationLayer(DIMENSIONS);\n this.setState({colorDomain: DEFAULT_COLOR_DOMAIN});\n this._setupTextureParams();\n this._setupAttributes();\n this._setupResources();\n }\n\n shouldUpdateState({changeFlags}: UpdateParameters<this>) {\n // Need to be updated when viewport changes\n return changeFlags.somethingChanged;\n }\n\n /* eslint-disable max-statements,complexity */\n updateState(opts: UpdateParameters<this>) {\n super.updateState(opts);\n this._updateHeatmapState(opts);\n }\n\n _updateHeatmapState(opts: UpdateParameters<this>) {\n const {props, oldProps} = opts;\n const changeFlags = this._getChangeFlags(opts);\n\n if (changeFlags.dataChanged || changeFlags.viewportChanged) {\n // if data is changed, do not debounce and immediately update the weight map\n changeFlags.boundsChanged = this._updateBounds(changeFlags.dataChanged);\n this._updateTextureRenderingBounds();\n }\n\n if (changeFlags.dataChanged || changeFlags.boundsChanged) {\n // Update weight map immediately\n clearTimeout(this.state.updateTimer);\n this.setState({isWeightMapDirty: true});\n\n if (changeFlags.dataChanged) {\n // Recreate weights transform if data changed, as buffer layout may have changed,\n // happens when binary attibutes passed.\n const weightsTransformShaders = this.getShaders({vs: weightsVs, fs: weightsFs});\n this._createWeightsTransform(weightsTransformShaders);\n }\n } else if (changeFlags.viewportZoomChanged) {\n // Update weight map when zoom stops\n this._debouncedUpdateWeightmap();\n }\n\n if (props.colorRange !== oldProps.colorRange) {\n this._updateColorTexture(opts);\n }\n\n if (this.state.isWeightMapDirty) {\n this._updateWeightmap();\n }\n\n this.setState({zoom: opts.context.viewport.zoom});\n }\n\n renderLayers(): LayersList | Layer {\n const {\n weightsTexture,\n triPositionBuffer,\n triTexCoordBuffer,\n maxWeightsTexture,\n colorTexture,\n colorDomain\n } = this.state;\n const {updateTriggers, intensity, threshold, aggregation} = this.props;\n\n const TriangleLayerClass = this.getSubLayerClass('triangle', TriangleLayer);\n\n return new TriangleLayerClass(\n this.getSubLayerProps({\n id: 'triangle-layer',\n updateTriggers\n }),\n {\n // position buffer is filled with world coordinates generated from viewport.unproject\n // i.e. LNGLAT if geospatial, CARTESIAN otherwise\n coordinateSystem: 'default',\n data: {\n attributes: {\n positions: triPositionBuffer,\n texCoords: triTexCoordBuffer\n }\n },\n vertexCount: 4,\n maxTexture: maxWeightsTexture,\n colorTexture,\n aggregationMode: AGGREGATION_MODE[aggregation] || 0,\n weightsTexture,\n intensity,\n threshold,\n colorDomain\n }\n );\n }\n\n finalizeState(context: LayerContext) {\n super.finalizeState(context);\n const {\n weightsTransform,\n weightsTexture,\n maxWeightTransform,\n maxWeightsTexture,\n triPositionBuffer,\n triTexCoordBuffer,\n colorTexture,\n updateTimer\n } = this.state;\n weightsTransform?.destroy();\n weightsTexture?.destroy();\n maxWeightTransform?.destroy();\n maxWeightsTexture?.destroy();\n triPositionBuffer?.destroy();\n triTexCoordBuffer?.destroy();\n colorTexture?.destroy();\n if (updateTimer) {\n clearTimeout(updateTimer);\n }\n }\n\n // PRIVATE\n\n // override Composite layer private method to create AttributeManager instance\n _getAttributeManager() {\n return new AttributeManager(this.context.device, {\n id: this.props.id,\n stats: this.context.stats\n });\n }\n\n _getChangeFlags(opts: UpdateParameters<this>) {\n const changeFlags: Partial<ChangeFlags> & {\n boundsChanged?: boolean;\n viewportZoomChanged?: boolean;\n } = {};\n const {dimensions} = this.state;\n changeFlags.dataChanged =\n (this.isAttributeChanged() && 'attribute changed') || // if any attribute is changed\n (this.isAggregationDirty(opts, {\n compareAll: true,\n dimension: dimensions.data\n }) &&\n 'aggregation is dirty');\n changeFlags.viewportChanged = opts.changeFlags.viewportChanged;\n\n const {zoom} = this.state;\n if (!opts.context.viewport || opts.context.viewport.zoom !== zoom) {\n changeFlags.viewportZoomChanged = true;\n }\n\n return changeFlags;\n }\n\n _createTextures() {\n const {textureSize, format} = this.state;\n\n this.setState({\n weightsTexture: this.context.device.createTexture({\n ...TEXTURE_PROPS,\n width: textureSize,\n height: textureSize,\n format\n }),\n maxWeightsTexture: this.context.device.createTexture({\n ...TEXTURE_PROPS,\n width: 1,\n height: 1,\n format\n })\n });\n }\n\n _setupAttributes() {\n const attributeManager = this.getAttributeManager()!;\n attributeManager.add({\n positions: {size: 3, type: 'float64', accessor: 'getPosition'},\n weights: {size: 1, accessor: 'getWeight'}\n });\n this.setState({positionAttributeName: 'positions'});\n }\n\n _setupTextureParams() {\n const {device} = this.context;\n const {weightsTextureSize} = this.props;\n\n const textureSize = Math.min(weightsTextureSize, device.limits.maxTextureDimension2D);\n const floatTargetSupport = FLOAT_TARGET_FEATURES.every(feature => device.features.has(feature));\n const format: TextureFormat = floatTargetSupport ? 'rgba32float' : 'rgba8unorm';\n const weightsScale = floatTargetSupport ? 1 : 1 / 255;\n this.setState({textureSize, format, weightsScale});\n if (!floatTargetSupport) {\n log.warn(\n `HeatmapLayer: ${this.id} rendering to float texture not supported, falling back to low precision format`\n )();\n }\n }\n\n _createWeightsTransform(shaders: {vs: string; fs?: string; modules: any[]}) {\n let {weightsTransform} = this.state;\n const {weightsTexture} = this.state;\n const attributeManager = this.getAttributeManager()!;\n\n weightsTransform?.destroy();\n weightsTransform = new TextureTransform(this.context.device, {\n id: `${this.id}-weights-transform`,\n ...shaders,\n bufferLayout: attributeManager.getBufferLayouts(),\n vertexCount: 1,\n targetTexture: weightsTexture!,\n parameters: {\n depthWriteEnabled: false,\n blend: true,\n blendColorOperation: 'add',\n blendColorSrcFactor: 'one',\n blendColorDstFactor: 'one',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one'\n },\n topology: 'point-list',\n modules: [...shaders.modules, weightUniforms]\n } as TextureTransformProps);\n\n this.setState({weightsTransform});\n }\n\n _setupResources() {\n this._createTextures();\n const {device} = this.context;\n const {textureSize, weightsTexture, maxWeightsTexture} = this.state;\n\n const weightsTransformShaders = this.getShaders({\n vs: weightsVs,\n fs: weightsFs\n });\n this._createWeightsTransform(weightsTransformShaders);\n\n const maxWeightsTransformShaders = this.getShaders({\n vs: maxVs,\n fs: maxFs,\n modules: [maxWeightUniforms]\n });\n const maxWeightTransform = new TextureTransform(device, {\n id: `${this.id}-max-weights-transform`,\n targetTexture: maxWeightsTexture!,\n ...maxWeightsTransformShaders,\n vertexCount: textureSize * textureSize,\n topology: 'point-list',\n parameters: {\n depthWriteEnabled: false,\n blend: true,\n blendColorOperation: 'max',\n blendAlphaOperation: 'max',\n blendColorSrcFactor: 'one',\n blendColorDstFactor: 'one',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one'\n }\n });\n\n const maxWeightProps: MaxWeightProps = {inTexture: weightsTexture!, textureSize};\n maxWeightTransform.model.shaderInputs.setProps({\n maxWeight: maxWeightProps\n });\n\n this.setState({\n weightsTexture,\n maxWeightsTexture,\n maxWeightTransform,\n zoom: null,\n triPositionBuffer: device.createBuffer({byteLength: 48}),\n triTexCoordBuffer: device.createBuffer({byteLength: 48})\n });\n }\n\n // overwrite super class method to update transform model\n updateShaders(shaderOptions) {\n // shader params (modules, injects) changed, update model object\n this._createWeightsTransform({\n vs: weightsVs,\n fs: weightsFs,\n ...shaderOptions\n });\n }\n\n _updateMaxWeightValue() {\n const {maxWeightTransform} = this.state;\n\n maxWeightTransform!.run({\n parameters: {viewport: [0, 0, 1, 1]},\n clearColor: [0, 0, 0, 0]\n });\n }\n\n // Computes world bounds area that needs to be processed for generate heatmap\n _updateBounds(forceUpdate: any = false): boolean {\n const {viewport} = this.context;\n\n // Unproject all 4 corners of the current screen coordinates into world coordinates (lng/lat)\n // Takes care of viewport has non zero bearing/pitch (i.e axis not aligned with world coordiante system)\n const viewportCorners = [\n viewport.unproject([0, 0]),\n viewport.unproject([viewport.width, 0]),\n viewport.unproject([0, viewport.height]),\n viewport.unproject([viewport.width, viewport.height])\n ].map(p => p.map(Math.fround));\n\n // #1: get world bounds for current viewport extends\n const visibleWorldBounds = getBounds(viewportCorners); // TODO: Change to visible bounds\n\n const newState: Partial<HeatmapLayer['state']> = {visibleWorldBounds, viewportCorners};\n let boundsChanged = false;\n\n if (\n forceUpdate ||\n !this.state.worldBounds ||\n !boundsContain(this.state.worldBounds, visibleWorldBounds)\n ) {\n // #2 : convert world bounds to common (Flat) bounds\n // #3 : extend common bounds to match aspect ratio with viewport\n const scaledCommonBounds = this._worldToCommonBounds(visibleWorldBounds);\n\n // #4 :convert aligned common bounds to world bounds\n const worldBounds = this._commonToWorldBounds(scaledCommonBounds);\n\n // Clip webmercator projection limits\n if (this.props.coordinateSystem === 'lnglat') {\n worldBounds[1] = Math.max(worldBounds[1], -85.051129);\n worldBounds[3] = Math.min(worldBounds[3], 85.051129);\n worldBounds[0] = Math.max(worldBounds[0], -360);\n worldBounds[2] = Math.min(worldBounds[2], 360);\n }\n\n // #5: now convert world bounds to common using Layer's coordiante system and origin\n const normalizedCommonBounds = this._worldToCommonBounds(worldBounds);\n\n newState.worldBounds = worldBounds;\n newState.normalizedCommonBounds = normalizedCommonBounds;\n\n boundsChanged = true;\n }\n this.setState(newState);\n return boundsChanged;\n }\n\n _updateTextureRenderingBounds() {\n // Just render visible portion of the texture\n const {triPositionBuffer, triTexCoordBuffer, normalizedCommonBounds, viewportCorners} =\n this.state;\n\n const {viewport} = this.context;\n\n triPositionBuffer!.write(packVertices(viewportCorners, 3));\n\n const textureBounds = viewportCorners.map(p =>\n getTextureCoordinates(viewport.projectPosition(p), normalizedCommonBounds!)\n );\n triTexCoordBuffer!.write(packVertices(textureBounds, 2));\n }\n\n _updateColorTexture(opts) {\n const {colorRange} = opts.props;\n let {colorTexture} = this.state;\n const colors = colorRangeToFlatArray(colorRange, false, Uint8Array as any);\n\n colorTexture?.destroy();\n colorTexture = this.context.device.createTexture({\n ...TEXTURE_PROPS,\n data: colors,\n width: colorRange.length,\n height: 1\n });\n this.setState({colorTexture});\n }\n\n _updateWeightmap() {\n const {radiusPixels, colorDomain, aggregation} = this.props;\n const {worldBounds, textureSize, weightsScale, weightsTexture} = this.state;\n const weightsTransform = this.state.weightsTransform!;\n this.state.isWeightMapDirty = false;\n\n // convert world bounds to common using Layer's coordiante system and origin\n const commonBounds = this._worldToCommonBounds(worldBounds, {\n useLayerCoordinateSystem: true\n });\n\n if (colorDomain && aggregation === 'SUM') {\n // scale color domain to weight per pixel\n const {viewport} = this.context;\n const metersPerPixel =\n (viewport.distanceScales.metersPerUnit[2] * (commonBounds[2] - commonBounds[0])) /\n textureSize;\n this.state.colorDomain = [\n colorDomain[0] * metersPerPixel * weightsScale,\n colorDomain[1] * metersPerPixel * weightsScale\n ];\n } else {\n this.state.colorDomain = colorDomain || DEFAULT_COLOR_DOMAIN;\n }\n\n const attributeManager = this.getAttributeManager()!;\n const attributes = attributeManager.getAttributes();\n const moduleSettings = this.getModuleSettings();\n this._setModelAttributes(weightsTransform.model, attributes);\n weightsTransform.model.setVertexCount(this.getNumInstances());\n\n const weightProps: WeightProps = {\n radiusPixels,\n commonBounds,\n textureWidth: textureSize,\n weightsScale,\n weightsTexture: weightsTexture!\n };\n const {viewport, devicePixelRatio, coordinateSystem, coordinateOrigin} = moduleSettings;\n const {modelMatrix} = this.props;\n weightsTransform.model.shaderInputs.setProps({\n project: {viewport, devicePixelRatio, modelMatrix, coordinateSystem, coordinateOrigin},\n weight: weightProps\n });\n weightsTransform.run({\n parameters: {viewport: [0, 0, textureSize, textureSize]},\n clearColor: [0, 0, 0, 0]\n });\n\n this._updateMaxWeightValue();\n }\n\n _debouncedUpdateWeightmap(fromTimer = false) {\n let {updateTimer} = this.state;\n const {debounceTimeout} = this.props;\n\n if (fromTimer) {\n updateTimer = null;\n // update\n this._updateBounds(true);\n this._updateTextureRenderingBounds();\n this.setState({isWeightMapDirty: true});\n } else {\n this.setState({isWeightMapDirty: false});\n clearTimeout(updateTimer);\n updateTimer = setTimeout(this._debouncedUpdateWeightmap.bind(this, true), debounceTimeout);\n }\n\n this.setState({updateTimer});\n }\n\n // input: worldBounds: [minLong, minLat, maxLong, maxLat]\n // input: opts.useLayerCoordinateSystem : layers coordiante system is used\n // optput: commonBounds: [minX, minY, maxX, maxY] scaled to fit the current texture\n _worldToCommonBounds(\n worldBounds,\n opts: {useLayerCoordinateSystem?: boolean} = {}\n ): [number, number, number, number] {\n const {useLayerCoordinateSystem = false} = opts;\n const [minLong, minLat, maxLong, maxLat] = worldBounds;\n const {viewport} = this.context;\n const {textureSize} = this.state;\n const {coordinateSystem} = this.props;\n\n const offsetMode =\n useLayerCoordinateSystem &&\n (coordinateSystem === 'lnglat-offsets' || coordinateSystem === 'meter-offsets');\n const offsetOriginCommon = offsetMode\n ? viewport.projectPosition(this.props.coordinateOrigin)\n : [0, 0];\n const size = (textureSize * RESOLUTION) / viewport.scale;\n\n let bottomLeftCommon;\n let topRightCommon;\n\n // Y-axis is flipped between World and Common bounds\n if (useLayerCoordinateSystem && !offsetMode) {\n bottomLeftCommon = this.projectPosition([minLong, minLat, 0]);\n topRightCommon = this.projectPosition([maxLong, maxLat, 0]);\n } else {\n bottomLeftCommon = viewport.projectPosition([minLong, minLat, 0]);\n topRightCommon = viewport.projectPosition([maxLong, maxLat, 0]);\n }\n // Ignore z component\n return scaleToAspectRatio(\n [\n bottomLeftCommon[0] - offsetOriginCommon[0],\n bottomLeftCommon[1] - offsetOriginCommon[1],\n topRightCommon[0] - offsetOriginCommon[0],\n topRightCommon[1] - offsetOriginCommon[1]\n ],\n size,\n size\n );\n }\n\n // input commonBounds: [xMin, yMin, xMax, yMax]\n // output worldBounds: [minLong, minLat, maxLong, maxLat]\n _commonToWorldBounds(commonBounds) {\n const [xMin, yMin, xMax, yMax] = commonBounds;\n const {viewport} = this.context;\n const bottomLeftWorld = viewport.unprojectPosition([xMin, yMin]);\n const topRightWorld = viewport.unprojectPosition([xMax, yMax]);\n\n return bottomLeftWorld.slice(0, 2).concat(topRightWorld.slice(0, 2));\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Buffer, Device, Texture} from '@luma.gl/core';\nimport {Model} from '@luma.gl/engine';\nimport {Layer, LayerContext, project32} from '@deck.gl/core';\nimport vs from './triangle-layer-vertex.glsl';\nimport fs from './triangle-layer-fragment.glsl';\nimport {TriangleProps, triangleUniforms} from './triangle-layer-uniforms';\n\ntype _TriangleLayerProps = {\n data: {attributes: {positions: Buffer; texCoords: Buffer}};\n colorDomain: Readonly<[number, number]>;\n aggregationMode: number;\n threshold: number;\n intensity: number;\n vertexCount: number;\n colorTexture: Texture;\n maxTexture: Texture;\n weightsTexture: Texture;\n};\n\nexport default class TriangleLayer extends Layer<_TriangleLayerProps> {\n static layerName = 'TriangleLayer';\n\n state!: {\n model: Model;\n positions: Buffer;\n texCoords: Buffer;\n };\n\n getShaders() {\n return super.getShaders({vs, fs, modules: [project32, triangleUniforms]});\n }\n\n initializeState({device}: LayerContext): void {\n this.setState({model: this._getModel(device)});\n }\n\n _getModel(device: Device): Model {\n const {vertexCount, data} = this.props;\n\n return new Model(device, {\n ...this.getShaders(),\n id: this.props.id,\n attributes: data.attributes,\n bufferLayout: [\n {name: 'positions', format: 'float32x3'},\n {name: 'texCoords', format: 'float32x2'}\n ],\n topology: 'triangle-strip',\n vertexCount\n });\n }\n\n draw(): void {\n const {model} = this.state;\n const {\n aggregationMode,\n colorDomain,\n intensity,\n threshold,\n colorTexture,\n maxTexture,\n weightsTexture\n } = this.props;\n const triangleProps: TriangleProps = {\n aggregationMode,\n colorDomain,\n intensity,\n threshold,\n colorTexture,\n maxTexture,\n weightsTexture\n };\n model.shaderInputs.setProps({triangle: triangleProps});\n model.draw(this.context.renderPass);\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Inspired by screen-grid-layer vertex shader in deck.gl\n\nexport default `\\\n#version 300 es\n#define SHADER_NAME heatp-map-layer-vertex-shader\n\nuniform sampler2D maxTexture;\n\nin vec3 positions;\nin vec2 texCoords;\n\nout vec2 vTexCoords;\nout float vIntensityMin;\nout float vIntensityMax;\n\nvoid main(void) {\n gl_Position = project_position_to_clipspace(positions, vec3(0.0), vec3(0.0));\n vTexCoords = texCoords;\n vec4 maxTexture = texture(maxTexture, vec2(0.5));\n float maxValue = triangle.aggregationMode < 0.5 ? maxTexture.r : maxTexture.g;\n float minValue = maxValue * triangle.threshold;\n if (triangle.colorDomain[1] > 0.) {\n // if user specified custom domain use it.\n maxValue = triangle.colorDomain[1];\n minValue = triangle.colorDomain[0];\n }\n vIntensityMax = triangle.intensity / maxValue;\n vIntensityMin = triangle.intensity / minValue;\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default `\\\n#version 300 es\n#define SHADER_NAME triangle-layer-fragment-shader\n\nprecision highp float;\n\nuniform sampler2D weightsTexture;\nuniform sampler2D colorTexture;\n\nin vec2 vTexCoords;\nin float vIntensityMin;\nin float vIntensityMax;\n\nout vec4 fragColor;\n\nvec4 getLinearColor(float value) {\n float factor = clamp(value * vIntensityMax, 0., 1.);\n vec4 color = texture(colorTexture, vec2(factor, 0.5));\n color.a *= min(value * vIntensityMin, 1.0);\n return color;\n}\n\nvoid main(void) {\n vec4 weights = texture(weightsTexture, vTexCoords);\n float weight = weights.r;\n\n if (triangle.aggregationMode > 0.5) {\n weight /= max(1.0, weights.a);\n }\n\n // discard pixels with 0 weight.\n if (weight <= 0.) {\n discard;\n }\n\n vec4 linearColor = getLinearColor(weight);\n linearColor.a *= layer.opacity;\n fragColor = linearColor;\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Texture} from '@luma.gl/core';\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = `\\\nlayout(std140) uniform triangleUniforms {\n float aggregationMode;\n vec2 colorDomain;\n float intensity;\n float threshold;\n} triangle;\n`;\n\nexport type TriangleProps = {\n aggregationMode: number;\n colorDomain: Readonly<[number, number]>;\n intensity: number;\n threshold: number;\n colorTexture: Texture;\n maxTexture: Texture;\n weightsTexture: Texture;\n};\n\nexport const triangleUniforms = {\n name: 'triangle',\n vs: uniformBlock,\n fs: uniformBlock,\n uniformTypes: {\n aggregationMode: 'f32',\n colorDomain: 'vec2<f32>',\n intensity: 'f32',\n threshold: 'f32'\n }\n} as const satisfies ShaderModule<TriangleProps>;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {\n CompositeLayer,\n AttributeManager,\n LayerDataSource,\n _compareProps as compareProps,\n UpdateParameters,\n CompositeLayerProps,\n Attribute\n} from '@deck.gl/core';\nimport {filterProps} from '../common/utils/prop-utils';\n\nexport type AggregationLayerProps<DataT> = CompositeLayerProps & {\n data: LayerDataSource<DataT>;\n};\n\n/** Legacy AggregationLayer, to be removed in v9.1 */\nexport default abstract class AggregationLayer<\n DataT,\n ExtraPropsT extends {} = {}\n> extends CompositeLayer<Required<AggregationLayer<DataT>> & ExtraPropsT> {\n static layerName = 'AggregationLayer';\n\n state!: {\n ignoreProps?: Record<string, any>;\n dimensions?: any;\n changedAttributes?: Record<string, any>;\n };\n\n initializeAggregationLayer(dimensions: any) {\n super.initializeState(this.context);\n\n this.setState({\n // Layer props , when changed doesn't require updating aggregation\n ignoreProps: filterProps((this.constructor as any)._propTypes, dimensions.data.props),\n dimensions\n });\n }\n\n updateState(opts: UpdateParameters<this>) {\n super.updateState(opts);\n const {changeFlags} = opts;\n if (changeFlags.extensionsChanged) {\n const shaders = this.getShaders({});\n if (shaders && shaders.defines) {\n shaders.defines.NON_INSTANCED_MODEL = 1;\n }\n this.updateShaders(shaders);\n }\n\n // Explictly call to update attributes as 'CompositeLayer' doesn't call this\n this._updateAttributes();\n }\n\n updateAttributes(changedAttributes) {\n // Super classes, can refer to state.changedAttributes to determine what\n // attributes changed\n this.setState({changedAttributes});\n }\n\n getAttributes(): {[id: string]: Attribute} {\n return this.getAttributeManager()!.getAttributes();\n }\n\n getModuleSettings() {\n // For regular layer draw this happens during draw cycle (_drawLayersInViewport) not during update cycle\n // For aggregation layers this is called during updateState to update aggregation data\n // NOTE: it is similar to LayerPass._getShaderModuleProps() but doesn't inlcude `effects` it is not needed for aggregation\n const {viewport, mousePosition, device} = this.context;\n const moduleSettings = Object.assign(Object.create(this.props), {\n viewport,\n mousePosition,\n picking: {\n isActive: 0\n },\n // @ts-expect-error TODO - assuming WebGL context\n devicePixelRatio: device.canvasContext.cssToDeviceRatio()\n });\n return moduleSettings;\n }\n\n updateShaders(shaders) {\n // Default implemention is empty, subclasses can update their Model objects if needed\n }\n\n /**\n * Checks if aggregation is dirty\n * @param {Object} updateOpts - object {props, oldProps, changeFlags}\n * @param {Object} params - object {dimension, compareAll}\n * @param {Object} params.dimension - {props, accessors} array of props and/or accessors\n * @param {Boolean} params.compareAll - when `true` it will include non layer props for comparision\n * @returns {Boolean} - returns true if dimensions' prop or accessor is changed\n **/\n isAggregationDirty(\n updateOpts,\n params: {compareAll?: boolean; dimension?: any} = {}\n ): string | boolean {\n const {props, oldProps, changeFlags} = updateOpts;\n const {compareAll = false, dimension} = params;\n const {ignoreProps} = this.state;\n const {props: dataProps, accessors = []} = dimension;\n const {updateTriggersChanged} = changeFlags;\n if (changeFlags.dataChanged) {\n return true;\n }\n if (updateTriggersChanged) {\n if (updateTriggersChanged.all) {\n return true;\n }\n for (const accessor of accessors) {\n if (updateTriggersChanged[accessor]) {\n return true;\n }\n }\n }\n if (compareAll) {\n if (changeFlags.extensionsChanged) {\n return true;\n }\n // Compare non layer props too (like extension props)\n // ignoreprops refers to all Layer props other than aggregation props that need to be comapred\n return compareProps({\n oldProps,\n newProps: props,\n ignoreProps,\n propTypes: (this.constructor as any)._propTypes\n });\n }\n // Compare props of the dimension\n for (const name of dataProps) {\n if (props[name] !== oldProps[name]) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Checks if an attribute is changed\n * @param {String} name - name of the attribute\n * @returns {Boolean} - `true` if attribute `name` is changed, `false` otherwise,\n * If `name` is not passed or `undefiend`, `true` if any attribute is changed, `false` otherwise\n **/\n isAttributeChanged(name?: string) {\n const {changedAttributes} = this.state;\n if (!name) {\n // if name not specified return true if any attribute is changed\n return !isObjectEmpty(changedAttributes);\n }\n return changedAttributes && changedAttributes[name] !== undefined;\n }\n\n // Private\n\n // override Composite layer private method to create AttributeManager instance\n _getAttributeManager() {\n return new AttributeManager(this.context.device, {\n id: this.props.id,\n stats: this.context.stats\n });\n }\n}\n\n// Helper methods\n\n// Returns true if given object is empty, false otherwise.\nfunction isObjectEmpty(obj) {\n let isEmpty = true;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const key in obj) {\n isEmpty = false;\n break;\n }\n return isEmpty;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport function filterProps(props, filterKeys) {\n const filteredProps = {};\n for (const key in props) {\n if (!filterKeys.includes(key)) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default `\\\n#version 300 es\nin vec3 positions;\nin vec3 positions64Low;\nin float weights;\nout vec4 weightsTexture;\n\nvoid main()\n{\n weightsTexture = vec4(weights * weight.weightsScale, 0., 0., 1.);\n\n float radiusTexels = project_pixel_size(weight.radiusPixels) * weight.textureWidth / (weight.commonBounds.z - weight.commonBounds.x);\n gl_PointSize = radiusTexels * 2.;\n\n vec3 commonPosition = project_position(positions, positions64Low);\n\n // // map xy from commonBounds to [-1, 1]\n gl_Position.xy = (commonPosition.xy - weight.commonBounds.xy) / (weight.commonBounds.zw - weight.commonBounds.xy) ;\n gl_Position.xy = (gl_Position.xy * 2.) - (1.);\n gl_Position.w = 1.0;\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default `\\\n#version 300 es\nin vec4 weightsTexture;\nout vec4 fragColor;\n// Epanechnikov function, keeping for reference\n// float epanechnikovKDE(float u) {\n// return 0.75 * (1.0 - u * u);\n// }\nfloat gaussianKDE(float u){\n return pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666);\n}\nvoid main()\n{\n float dist = length(gl_PointCoord - vec2(0.5, 0.5));\n if (dist > 0.5) {\n discard;\n }\n fragColor = weightsTexture * gaussianKDE(2. * dist);\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default `\\\n#version 300 es\nuniform sampler2D inTexture;\nout vec4 outTexture;\n\nvoid main()\n{\n // Sample every pixel in texture\n int yIndex = gl_VertexID / int(maxWeight.textureSize);\n int xIndex = gl_VertexID - (yIndex * int(maxWeight.textureSize));\n vec2 uv = (0.5 + vec2(float(xIndex), float(yIndex))) / maxWeight.textureSize;\n outTexture = texture(inTexture, uv);\n\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n // Enforce default value for ANGLE issue (https://bugs.chromium.org/p/angleproject/issues/detail?id=3941)\n gl_PointSize = 1.0;\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default `\\\n#version 300 es\nin vec4 outTexture;\nout vec4 fragColor;\nvoid main() {\n fragColor = outTexture;\n fragColor.g = outTexture.r / max(1.0, outTexture.a);\n}\n`;\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Texture} from '@luma.gl/core';\nimport type {ShaderModule} from '@luma.gl/shadertools';\n\nconst uniformBlock = `\\\nlayout(std140) uniform weightUniforms {\n vec4 commonBounds;\n float radiusPixels;\n float textureWidth;\n float weightsScale;\n} weight;\n`;\nexport type WeightProps = {\n commonBounds: [number, number, number, number];\n radiusPixels: number;\n textureWidth: number;\n weightsScale: number;\n weightsTexture: Texture;\n};\n\nexport const weightUniforms = {\n name: 'weight',\n vs: uniformBlock,\n uniformTypes: {\n commonBounds: 'vec4<f32>',\n radiusPixels: 'f32',\n textureWidth: 'f32',\n weightsScale: 'f32'\n }\n} as const satisfies ShaderModule<WeightProps>;\n\nexport type MaxWeightProps = {\n inTexture: Texture;\n textureSize: number;\n};\n\nexport const maxWeightUniforms = {\n name: 'maxWeight',\n vs: `\\\nlayout(std140) uniform maxWeightUniforms {\n float textureSize;\n} maxWeight;\n`,\n uniformTypes: {\n textureSize: 'f32'\n }\n} as const satisfies ShaderModule<MaxWeightProps>;\n"],
5
- "mappings": "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",
6
- "names": ["import_core", "min", "max", "deepEqual", "import_engine", "uniformBlock", "MAX_FLOAT32", "import_core", "count", "deepEqual", "import_core", "import_engine", "import_core", "uniformBlock", "uniformBlock", "import_core", "uniformBlock", "uniformBlock", "binOptionsUniforms", "defaultProps", "binOptionsUniforms", "import_core", "import_layers", "threshold", "threshold", "count", "import_core", "uniformBlock", "binOptionsUniforms", "defaultProps", "binOptionsUniforms", "import_core", "import_layers", "import_engine", "uniformBlock", "uniformBlock", "binOptionsUniforms", "noop", "defaultProps", "GridLayer", "binOptionsUniforms", "import_engine", "import_core", "import_engine", "import_core", "uniformBlock", "threshold", "import_core", "AggregationLayer", "compareProps", "uniformBlock", "defaultProps", "aggregation_layer_default", "threshold", "viewport"]
3
+ "sources": ["../src/index.ts", "../../core/src/utils/log.ts", "../../core/src/debug/loggers.ts", "../../core/src/debug/index.ts", "../../core/src/shaderlib/index.ts", "../../core/src/shaderlib/color/color.ts", "../../core/src/shaderlib/misc/geometry.ts", "../../core/src/shaderlib/project/project.ts", "../../core/src/shaderlib/project/viewport-uniforms.ts", "../../core/src/lib/constants.ts", "../../core/src/utils/memoize.ts", "../../core/src/shaderlib/project/project.wgsl.ts", "../../core/src/shaderlib/project/project.glsl.ts", "../../core/src/shaderlib/project32/project32.ts", "../../core/src/shaderlib/picking/picking.ts", "../../core/src/utils/typed-array-manager.ts", "../../core/src/utils/math-utils.ts", "../../core/src/viewports/viewport.ts", "../../core/src/viewports/web-mercator-viewport.ts", "../../core/src/shaderlib/project/project-functions.ts", "../../core/src/lifecycle/constants.ts", "../../core/src/utils/flatten.ts", "../../core/src/utils/deep-equal.ts", "../../core/src/transitions/transition.ts", "../../core/src/utils/assert.ts", "../../../node_modules/@luma.gl/webgl/src/constants/webgl-constants.ts", "../../core/src/lib/attribute/data-column.ts", "../../core/src/lib/attribute/gl-utils.ts", "../../core/src/utils/iterable-utils.ts", "../../core/src/utils/range.ts", "../../core/src/lib/attribute/transition-settings.ts", "../../core/src/lib/attribute/attribute.ts", "../../core/src/lib/attribute/attribute-buffer-groups.ts", "../../../node_modules/@luma.gl/gpgpu/src/operations/webgpu/common/row-transform.ts", "../../../node_modules/@luma.gl/gpgpu/src/operations/webgpu/common/dispatch.ts", "../../../node_modules/@luma.gl/gpgpu/src/operations/webgpu/common/helper.ts", "../../../node_modules/@luma.gl/gpgpu/src/operations/webgpu/interleave.ts", "../../core/src/transitions/gpu-interpolation-transition.ts", "../../core/src/utils/array-utils.ts", "../../core/src/transitions/gpu-transition-utils.ts", "../../core/src/transitions/gpu-transition.ts", "../../core/src/transitions/gpu-spring-transition.ts", "../../core/src/lib/attribute/attribute-transition-manager.ts", "../../core/src/lib/attribute/attribute-manager.ts", "../../core/src/lib/layer.ts", "../../core/src/transitions/cpu-interpolation-transition.ts", "../../core/src/transitions/cpu-spring-transition.ts", "../../core/src/lib/uniform-transition-manager.ts", "../../core/src/lifecycle/props.ts", "../../core/src/utils/count.ts", "../../core/src/utils/shader.ts", "../../core/src/utils/texture.ts", "../../core/src/lifecycle/prop-types.ts", "../../core/src/lifecycle/create-props.ts", "../../core/src/lifecycle/component.ts", "../../core/src/lifecycle/component-state.ts", "../../core/src/lib/layer-state.ts", "../../core/src/lib/composite-layer.ts", "../../core/src/utils/tesselator.ts", "../src/common/aggregator/cpu-aggregator/sort-bins.ts", "../src/common/aggregator/cpu-aggregator/aggregate.ts", "../src/common/aggregator/cpu-aggregator/vertex-accessor.ts", "../src/common/aggregator/cpu-aggregator/cpu-aggregator.ts", "../src/common/aggregator/gpu-aggregator/webgl-bin-sorter.ts", "../src/common/aggregator/gpu-aggregator/utils.ts", "../src/common/aggregator/gpu-aggregator/bin-sorter-uniforms.ts", "../src/common/aggregator/gpu-aggregator/webgl-aggregation-transform.ts", "../src/common/aggregator/gpu-aggregator/aggregation-transform-uniforms.ts", "../src/common/aggregator/gpu-aggregator/webgl-aggregator.ts", "../src/common/aggregation-layer.ts", "../src/screen-grid-layer/screen-grid-cell-layer.ts", "../src/common/utils/color-utils.ts", "../src/screen-grid-layer/screen-grid-cell-layer.wgsl.ts", "../src/screen-grid-layer/screen-grid-layer-vertex.glsl.ts", "../src/screen-grid-layer/screen-grid-layer-fragment.glsl.ts", "../src/screen-grid-layer/screen-grid-layer-uniforms.ts", "../src/screen-grid-layer/bin-options-uniforms.ts", "../src/screen-grid-layer/screen-grid-layer.ts", "../src/common/utils/scale-utils.ts", "../src/common/utils/bounds-utils.ts", "../../layers/src/utils/clip-extension.ts", "../../layers/src/column-layer/column-layer.ts", "../../layers/src/column-layer/column-geometry.ts", "../../layers/src/column-layer/column-layer-uniforms.ts", "../../layers/src/column-layer/column-layer.wgsl.ts", "../../layers/src/column-layer/column-layer-vertex.glsl.ts", "../../layers/src/column-layer/column-layer-fragment.glsl.ts", "../../layers/src/path-layer/path-layer.ts", "../../layers/src/path-layer/path.ts", "../../layers/src/path-layer/path-tesselator.ts", "../../layers/src/path-layer/path-layer-uniforms.ts", "../../layers/src/path-layer/path-layer.wgsl.ts", "../../layers/src/path-layer/path-layer-vertex.glsl.ts", "../../layers/src/path-layer/path-layer-fragment.glsl.ts", "../../layers/src/solid-polygon-layer/solid-polygon-layer.ts", "../../layers/src/solid-polygon-layer/polygon.ts", "../../layers/src/solid-polygon-layer/polygon-tesselator.ts", "../../layers/src/solid-polygon-layer/solid-polygon-layer-uniforms.ts", "../../layers/src/solid-polygon-layer/solid-polygon-layer-vertex-main.glsl.ts", "../../layers/src/solid-polygon-layer/solid-polygon-layer-vertex-top.glsl.ts", "../../layers/src/solid-polygon-layer/solid-polygon-layer-vertex-side.glsl.ts", "../../layers/src/solid-polygon-layer/solid-polygon-layer-fragment.glsl.ts", "../../layers/src/solid-polygon-layer/solid-polygon-layer.wgsl.ts", "../src/hexagon-layer/hexagon-cell-layer.wgsl.ts", "../src/hexagon-layer/hexbin.ts", "../src/hexagon-layer/hexagon-cell-layer-vertex.glsl.ts", "../src/hexagon-layer/hexagon-layer-uniforms.ts", "../src/hexagon-layer/hexagon-cell-layer.ts", "../src/hexagon-layer/bin-options-uniforms.ts", "../src/hexagon-layer/hexagon-layer.ts", "../src/contour-layer/marching-squares-codes.ts", "../src/contour-layer/marching-squares.ts", "../src/contour-layer/contour-utils.ts", "../src/contour-layer/value-reader.ts", "../src/contour-layer/contour-layer.ts", "../src/contour-layer/bin-options-uniforms.ts", "../src/grid-layer/grid-cell-layer.ts", "../src/grid-layer/grid-cell-layer.wgsl.ts", "../src/grid-layer/grid-cell-layer-vertex.glsl.ts", "../src/grid-layer/grid-layer-uniforms.ts", "../src/grid-layer/bin-options-uniforms.ts", "../src/grid-layer/grid-layer.ts", "../src/heatmap-layer/heatmap-layer-utils.ts", "../src/heatmap-layer/heatmap-layer.ts", "../src/heatmap-layer/triangle-layer.ts", "../src/heatmap-layer/triangle-layer.wgsl.ts", "../src/heatmap-layer/triangle-layer-vertex.glsl.ts", "../src/heatmap-layer/triangle-layer-fragment.glsl.ts", "../src/heatmap-layer/triangle-layer-uniforms.ts", "../src/common/utils/prop-utils.ts", "../src/heatmap-layer/aggregation-layer.ts", "../src/heatmap-layer/weights-vs.glsl.ts", "../src/heatmap-layer/weights-fs.glsl.ts", "../src/heatmap-layer/max-vs.glsl.ts", "../src/heatmap-layer/max-fs.glsl.ts", "../src/heatmap-layer/max.wgsl.ts", "../src/heatmap-layer/weights.wgsl.ts", "../src/heatmap-layer/heatmap-layer-uniforms.ts"],
4
+ "mappings": "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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsDd,IAAM;AAAA;AAAA,EAAyB,GACpC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACArC,IAAO,iCAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAf,IAAO,mCAAQ;AAAA;AAAA;AAAA;AAA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",
5
+ "names": ["import_shadertools", "SHADER_COORDINATE_SYSTEMS", "source", "vs", "import_shadertools", "source", "count", "import_core", "count", "import_core", "ZERO_VECTOR", "import_web_mercator", "import_core", "import_core", "import_web_mercator", "DEFAULT_COORDINATE_ORIGIN", "source", "count", "GLEnum", "import_core", "import_core", "min", "max", "import_shadertools", "module", "defines", "source", "source", "interleaveTables", "import_engine", "import_shadertools", "source", "source", "vs", "import_engine", "getTransform", "uniformBlock", "vs", "fs", "import_core", "import_core", "TRANSITION_TYPES", "transition", "validate", "source", "module", "import_core", "defaultProps", "defaultProps", "count", "import_web_mercator", "import_core", "EMPTY_ARRAY", "_a", "start", "end", "picking", "import_core", "normalize", "count", "min", "max", "import_engine", "uniformBlock", "vs", "fs", "import_engine", "uniformBlock", "MAX_FLOAT32", "vs", "fs", "count", "import_engine", "normalize", "uniformBlock", "uniformBlock", "defaultProps", "source", "import_engine", "import_engine", "uniformBlockWGSL", "uniformBlock", "defaultProps", "defines", "import_engine", "import_polygon", "uniformBlockWGSL", "DEFAULT_COLOR", "defaultProps", "import_engine", "import_polygon", "earcut", "import_polygon", "isCut", "uniformBlockWGSL", "uniformBlock", "DEFAULT_COLOR", "defaultProps", "ATTRIBUTE_TRANSITION", "uniformBlockWGSL", "uniformBlock", "uniformBlock", "binOptionsUniforms", "defaultProps", "binOptionsUniforms", "unitsPerMeter", "threshold", "threshold", "count", "import_core", "uniformBlock", "binOptionsUniforms", "DEFAULT_COLOR", "defaultProps", "binOptionsUniforms", "unitsPerMeter", "import_engine", "uniformBlockWGSL", "uniformBlock", "uniformBlock", "binOptionsUniforms", "noop", "defaultProps", "GridLayer", "binOptionsUniforms", "unitsPerMeter", "getBounds", "scratchArray", "import_engine", "import_engine", "uniformBlockWGSL", "uniformBlock", "threshold", "AggregationLayer", "uniformBlockWGSL", "uniformBlock", "defaultProps", "aggregation_layer_default", "threshold", "getBounds", "viewport"]
7
6
  }