@deck.gl/aggregation-layers 9.0.0-beta.2 → 9.0.0-beta.3

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 (323) hide show
  1. package/dist/aggregation-layer.js +153 -0
  2. package/dist/contour-layer/contour-layer.js +241 -0
  3. package/dist/contour-layer/contour-utils.js +64 -0
  4. package/dist/contour-layer/marching-squares-codes.js +337 -0
  5. package/dist/contour-layer/marching-squares.js +147 -0
  6. package/dist/cpu-grid-layer/cpu-grid-layer.js +130 -0
  7. package/dist/cpu-grid-layer/grid-aggregator.js +141 -0
  8. package/dist/dist.dev.js +1296 -13614
  9. package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +34 -0
  10. package/dist/{esm/gpu-grid-layer → gpu-grid-layer}/gpu-grid-cell-layer-vertex.glsl.js +20 -1
  11. package/dist/gpu-grid-layer/gpu-grid-cell-layer.js +145 -0
  12. package/dist/gpu-grid-layer/gpu-grid-layer.js +288 -0
  13. package/dist/grid-aggregation-layer.js +172 -0
  14. package/dist/grid-layer/grid-layer.js +63 -0
  15. package/dist/heatmap-layer/heatmap-layer-utils.js +63 -0
  16. package/dist/heatmap-layer/heatmap-layer.js +471 -0
  17. package/dist/{esm/heatmap-layer → heatmap-layer}/max-fs.glsl.js +0 -1
  18. package/dist/{esm/heatmap-layer → heatmap-layer}/max-vs.glsl.js +0 -1
  19. package/dist/heatmap-layer/triangle-layer-fragment.glsl.js +61 -0
  20. package/dist/heatmap-layer/triangle-layer-vertex.glsl.js +52 -0
  21. package/dist/heatmap-layer/triangle-layer.js +59 -0
  22. package/dist/{esm/heatmap-layer → heatmap-layer}/weights-fs.glsl.js +0 -1
  23. package/dist/{esm/heatmap-layer → heatmap-layer}/weights-vs.glsl.js +0 -1
  24. package/dist/hexagon-layer/hexagon-aggregator.js +112 -0
  25. package/dist/hexagon-layer/hexagon-layer.js +174 -0
  26. package/dist/index.cjs +4494 -0
  27. package/dist/index.cjs.map +7 -0
  28. package/dist/index.js +32 -0
  29. package/dist/screen-grid-layer/screen-grid-cell-layer.js +166 -0
  30. package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.js +40 -0
  31. package/dist/{esm/screen-grid-layer → screen-grid-layer}/screen-grid-layer-vertex.glsl.js +19 -1
  32. package/dist/screen-grid-layer/screen-grid-layer.js +216 -0
  33. package/dist/types.js +1 -0
  34. package/dist/utils/aggregation-operation-utils.js +94 -0
  35. package/dist/utils/bin-sorter.js +167 -0
  36. package/dist/utils/color-utils.js +53 -0
  37. package/dist/utils/cpu-aggregator.js +421 -0
  38. package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +39 -0
  39. package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +53 -0
  40. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +34 -0
  41. package/dist/{esm/utils → utils}/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +19 -1
  42. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +41 -0
  43. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +1 -0
  44. package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts.map +1 -1
  45. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +566 -0
  46. package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +37 -0
  47. package/dist/utils/grid-aggregation-utils.js +114 -0
  48. package/dist/utils/prop-utils.js +28 -0
  49. package/dist/utils/resource-utils.js +38 -0
  50. package/dist/utils/scale-utils.js +184 -0
  51. package/dist.min.js +60 -174
  52. package/package.json +18 -11
  53. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts +10 -13
  54. package/dist/es5/aggregation-layer.js +0 -215
  55. package/dist/es5/aggregation-layer.js.map +0 -1
  56. package/dist/es5/contour-layer/contour-layer.js +0 -353
  57. package/dist/es5/contour-layer/contour-layer.js.map +0 -1
  58. package/dist/es5/contour-layer/contour-utils.js +0 -110
  59. package/dist/es5/contour-layer/contour-utils.js.map +0 -1
  60. package/dist/es5/contour-layer/marching-squares-codes.js +0 -152
  61. package/dist/es5/contour-layer/marching-squares-codes.js.map +0 -1
  62. package/dist/es5/contour-layer/marching-squares.js +0 -168
  63. package/dist/es5/contour-layer/marching-squares.js.map +0 -1
  64. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js +0 -235
  65. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
  66. package/dist/es5/cpu-grid-layer/grid-aggregator.js +0 -180
  67. package/dist/es5/cpu-grid-layer/grid-aggregator.js.map +0 -1
  68. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -9
  69. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
  70. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -9
  71. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
  72. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js +0 -247
  73. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
  74. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js +0 -424
  75. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
  76. package/dist/es5/grid-aggregation-layer.js +0 -280
  77. package/dist/es5/grid-aggregation-layer.js.map +0 -1
  78. package/dist/es5/grid-layer/grid-layer.js +0 -125
  79. package/dist/es5/grid-layer/grid-layer.js.map +0 -1
  80. package/dist/es5/heatmap-layer/heatmap-layer-utils.js +0 -107
  81. package/dist/es5/heatmap-layer/heatmap-layer-utils.js.map +0 -1
  82. package/dist/es5/heatmap-layer/heatmap-layer.js +0 -678
  83. package/dist/es5/heatmap-layer/heatmap-layer.js.map +0 -1
  84. package/dist/es5/heatmap-layer/max-fs.glsl.js +0 -9
  85. package/dist/es5/heatmap-layer/max-fs.glsl.js.map +0 -1
  86. package/dist/es5/heatmap-layer/max-vs.glsl.js +0 -9
  87. package/dist/es5/heatmap-layer/max-vs.glsl.js.map +0 -1
  88. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js +0 -9
  89. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
  90. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js +0 -9
  91. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
  92. package/dist/es5/heatmap-layer/triangle-layer.js +0 -121
  93. package/dist/es5/heatmap-layer/triangle-layer.js.map +0 -1
  94. package/dist/es5/heatmap-layer/weights-fs.glsl.js +0 -9
  95. package/dist/es5/heatmap-layer/weights-fs.glsl.js.map +0 -1
  96. package/dist/es5/heatmap-layer/weights-vs.glsl.js +0 -9
  97. package/dist/es5/heatmap-layer/weights-vs.glsl.js.map +0 -1
  98. package/dist/es5/hexagon-layer/hexagon-aggregator.js +0 -118
  99. package/dist/es5/hexagon-layer/hexagon-aggregator.js.map +0 -1
  100. package/dist/es5/hexagon-layer/hexagon-layer.js +0 -289
  101. package/dist/es5/hexagon-layer/hexagon-layer.js.map +0 -1
  102. package/dist/es5/index.js +0 -104
  103. package/dist/es5/index.js.map +0 -1
  104. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js +0 -244
  105. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
  106. package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -9
  107. package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
  108. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -9
  109. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
  110. package/dist/es5/screen-grid-layer/screen-grid-layer.js +0 -317
  111. package/dist/es5/screen-grid-layer/screen-grid-layer.js.map +0 -1
  112. package/dist/es5/types.js +0 -2
  113. package/dist/es5/types.js.map +0 -1
  114. package/dist/es5/utils/aggregation-operation-utils.js +0 -123
  115. package/dist/es5/utils/aggregation-operation-utils.js.map +0 -1
  116. package/dist/es5/utils/bin-sorter.js +0 -248
  117. package/dist/es5/utils/bin-sorter.js.map +0 -1
  118. package/dist/es5/utils/color-utils.js +0 -39
  119. package/dist/es5/utils/color-utils.js.map +0 -1
  120. package/dist/es5/utils/cpu-aggregator.js +0 -496
  121. package/dist/es5/utils/cpu-aggregator.js.map +0 -1
  122. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -9
  123. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
  124. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -9
  125. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
  126. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -9
  127. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
  128. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -9
  129. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
  130. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -63
  131. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
  132. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
  133. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
  134. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -732
  135. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
  136. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  137. package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -9
  138. package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
  139. package/dist/es5/utils/grid-aggregation-utils.js +0 -118
  140. package/dist/es5/utils/grid-aggregation-utils.js.map +0 -1
  141. package/dist/es5/utils/prop-utils.js +0 -19
  142. package/dist/es5/utils/prop-utils.js.map +0 -1
  143. package/dist/es5/utils/resource-utils.js +0 -59
  144. package/dist/es5/utils/resource-utils.js.map +0 -1
  145. package/dist/es5/utils/scale-utils.js +0 -254
  146. package/dist/es5/utils/scale-utils.js.map +0 -1
  147. package/dist/esm/aggregation-layer.js +0 -156
  148. package/dist/esm/aggregation-layer.js.map +0 -1
  149. package/dist/esm/contour-layer/contour-layer.js +0 -316
  150. package/dist/esm/contour-layer/contour-layer.js.map +0 -1
  151. package/dist/esm/contour-layer/contour-utils.js +0 -81
  152. package/dist/esm/contour-layer/contour-utils.js.map +0 -1
  153. package/dist/esm/contour-layer/marching-squares-codes.js +0 -219
  154. package/dist/esm/contour-layer/marching-squares-codes.js.map +0 -1
  155. package/dist/esm/contour-layer/marching-squares.js +0 -151
  156. package/dist/esm/contour-layer/marching-squares.js.map +0 -1
  157. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js +0 -186
  158. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
  159. package/dist/esm/cpu-grid-layer/grid-aggregator.js +0 -142
  160. package/dist/esm/cpu-grid-layer/grid-aggregator.js.map +0 -1
  161. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -16
  162. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
  163. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
  164. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js +0 -196
  165. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
  166. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js +0 -399
  167. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
  168. package/dist/esm/grid-aggregation-layer.js +0 -240
  169. package/dist/esm/grid-aggregation-layer.js.map +0 -1
  170. package/dist/esm/grid-layer/grid-layer.js +0 -80
  171. package/dist/esm/grid-layer/grid-layer.js.map +0 -1
  172. package/dist/esm/heatmap-layer/heatmap-layer-utils.js +0 -55
  173. package/dist/esm/heatmap-layer/heatmap-layer-utils.js.map +0 -1
  174. package/dist/esm/heatmap-layer/heatmap-layer.js +0 -638
  175. package/dist/esm/heatmap-layer/heatmap-layer.js.map +0 -1
  176. package/dist/esm/heatmap-layer/max-fs.glsl.js.map +0 -1
  177. package/dist/esm/heatmap-layer/max-vs.glsl.js.map +0 -1
  178. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +0 -43
  179. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
  180. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +0 -33
  181. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
  182. package/dist/esm/heatmap-layer/triangle-layer.js +0 -78
  183. package/dist/esm/heatmap-layer/triangle-layer.js.map +0 -1
  184. package/dist/esm/heatmap-layer/weights-fs.glsl.js.map +0 -1
  185. package/dist/esm/heatmap-layer/weights-vs.glsl.js.map +0 -1
  186. package/dist/esm/hexagon-layer/hexagon-aggregator.js +0 -87
  187. package/dist/esm/hexagon-layer/hexagon-aggregator.js.map +0 -1
  188. package/dist/esm/hexagon-layer/hexagon-layer.js +0 -232
  189. package/dist/esm/hexagon-layer/hexagon-layer.js.map +0 -1
  190. package/dist/esm/index.js +0 -13
  191. package/dist/esm/index.js.map +0 -1
  192. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js +0 -203
  193. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
  194. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -21
  195. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
  196. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
  197. package/dist/esm/screen-grid-layer/screen-grid-layer.js +0 -285
  198. package/dist/esm/screen-grid-layer/screen-grid-layer.js.map +0 -1
  199. package/dist/esm/types.js +0 -2
  200. package/dist/esm/types.js.map +0 -1
  201. package/dist/esm/utils/aggregation-operation-utils.js +0 -91
  202. package/dist/esm/utils/aggregation-operation-utils.js.map +0 -1
  203. package/dist/esm/utils/bin-sorter.js +0 -165
  204. package/dist/esm/utils/bin-sorter.js.map +0 -1
  205. package/dist/esm/utils/color-utils.js +0 -28
  206. package/dist/esm/utils/color-utils.js.map +0 -1
  207. package/dist/esm/utils/cpu-aggregator.js +0 -487
  208. package/dist/esm/utils/cpu-aggregator.js.map +0 -1
  209. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -21
  210. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
  211. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -35
  212. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
  213. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -16
  214. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
  215. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
  216. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -42
  217. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
  218. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
  219. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
  220. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -720
  221. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
  222. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  223. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -19
  224. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
  225. package/dist/esm/utils/grid-aggregation-utils.js +0 -109
  226. package/dist/esm/utils/grid-aggregation-utils.js.map +0 -1
  227. package/dist/esm/utils/prop-utils.js +0 -12
  228. package/dist/esm/utils/prop-utils.js.map +0 -1
  229. package/dist/esm/utils/resource-utils.js +0 -44
  230. package/dist/esm/utils/resource-utils.js.map +0 -1
  231. package/dist/esm/utils/scale-utils.js +0 -192
  232. package/dist/esm/utils/scale-utils.js.map +0 -1
  233. /package/{typed → dist}/aggregation-layer.d.ts +0 -0
  234. /package/{typed → dist}/aggregation-layer.d.ts.map +0 -0
  235. /package/{typed → dist}/contour-layer/contour-layer.d.ts +0 -0
  236. /package/{typed → dist}/contour-layer/contour-layer.d.ts.map +0 -0
  237. /package/{typed → dist}/contour-layer/contour-utils.d.ts +0 -0
  238. /package/{typed → dist}/contour-layer/contour-utils.d.ts.map +0 -0
  239. /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts +0 -0
  240. /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts.map +0 -0
  241. /package/{typed → dist}/contour-layer/marching-squares.d.ts +0 -0
  242. /package/{typed → dist}/contour-layer/marching-squares.d.ts.map +0 -0
  243. /package/{typed → dist}/cpu-grid-layer/cpu-grid-layer.d.ts +0 -0
  244. /package/{typed → dist}/cpu-grid-layer/cpu-grid-layer.d.ts.map +0 -0
  245. /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts +0 -0
  246. /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts.map +0 -0
  247. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts +0 -0
  248. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts.map +0 -0
  249. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts +0 -0
  250. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts.map +0 -0
  251. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer.d.ts +0 -0
  252. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +0 -0
  253. /package/{typed → dist}/gpu-grid-layer/gpu-grid-layer.d.ts +0 -0
  254. /package/{typed → dist}/gpu-grid-layer/gpu-grid-layer.d.ts.map +0 -0
  255. /package/{typed → dist}/grid-aggregation-layer.d.ts +0 -0
  256. /package/{typed → dist}/grid-aggregation-layer.d.ts.map +0 -0
  257. /package/{typed → dist}/grid-layer/grid-layer.d.ts +0 -0
  258. /package/{typed → dist}/grid-layer/grid-layer.d.ts.map +0 -0
  259. /package/{typed → dist}/heatmap-layer/heatmap-layer-utils.d.ts +0 -0
  260. /package/{typed → dist}/heatmap-layer/heatmap-layer-utils.d.ts.map +0 -0
  261. /package/{typed → dist}/heatmap-layer/heatmap-layer.d.ts +0 -0
  262. /package/{typed → dist}/heatmap-layer/heatmap-layer.d.ts.map +0 -0
  263. /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts +0 -0
  264. /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts.map +0 -0
  265. /package/{typed → dist}/heatmap-layer/max-vs.glsl.d.ts +0 -0
  266. /package/{typed → dist}/heatmap-layer/max-vs.glsl.d.ts.map +0 -0
  267. /package/{typed → dist}/heatmap-layer/triangle-layer-fragment.glsl.d.ts +0 -0
  268. /package/{typed → dist}/heatmap-layer/triangle-layer-fragment.glsl.d.ts.map +0 -0
  269. /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts +0 -0
  270. /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts.map +0 -0
  271. /package/{typed → dist}/heatmap-layer/triangle-layer.d.ts +0 -0
  272. /package/{typed → dist}/heatmap-layer/triangle-layer.d.ts.map +0 -0
  273. /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts +0 -0
  274. /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts.map +0 -0
  275. /package/{typed → dist}/heatmap-layer/weights-vs.glsl.d.ts +0 -0
  276. /package/{typed → dist}/heatmap-layer/weights-vs.glsl.d.ts.map +0 -0
  277. /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts +0 -0
  278. /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts.map +0 -0
  279. /package/{typed → dist}/hexagon-layer/hexagon-layer.d.ts +0 -0
  280. /package/{typed → dist}/hexagon-layer/hexagon-layer.d.ts.map +0 -0
  281. /package/{typed → dist}/index.d.ts +0 -0
  282. /package/{typed → dist}/index.d.ts.map +0 -0
  283. /package/{typed → dist}/screen-grid-layer/screen-grid-cell-layer.d.ts +0 -0
  284. /package/{typed → dist}/screen-grid-layer/screen-grid-cell-layer.d.ts.map +0 -0
  285. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts +0 -0
  286. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts.map +0 -0
  287. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts +0 -0
  288. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts.map +0 -0
  289. /package/{typed → dist}/screen-grid-layer/screen-grid-layer.d.ts +0 -0
  290. /package/{typed → dist}/screen-grid-layer/screen-grid-layer.d.ts.map +0 -0
  291. /package/{typed → dist}/types.d.ts +0 -0
  292. /package/{typed → dist}/types.d.ts.map +0 -0
  293. /package/{typed → dist}/utils/aggregation-operation-utils.d.ts +0 -0
  294. /package/{typed → dist}/utils/aggregation-operation-utils.d.ts.map +0 -0
  295. /package/{typed → dist}/utils/bin-sorter.d.ts +0 -0
  296. /package/{typed → dist}/utils/bin-sorter.d.ts.map +0 -0
  297. /package/{typed → dist}/utils/color-utils.d.ts +0 -0
  298. /package/{typed → dist}/utils/color-utils.d.ts.map +0 -0
  299. /package/{typed → dist}/utils/cpu-aggregator.d.ts +0 -0
  300. /package/{typed → dist}/utils/cpu-aggregator.d.ts.map +0 -0
  301. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts +0 -0
  302. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts.map +0 -0
  303. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts +0 -0
  304. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts.map +0 -0
  305. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts +0 -0
  306. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts.map +0 -0
  307. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts +0 -0
  308. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts.map +0 -0
  309. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts +0 -0
  310. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts.map +0 -0
  311. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts +0 -0
  312. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts.map +0 -0
  313. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts +0 -0
  314. /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts +0 -0
  315. /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts.map +0 -0
  316. /package/{typed → dist}/utils/grid-aggregation-utils.d.ts +0 -0
  317. /package/{typed → dist}/utils/grid-aggregation-utils.d.ts.map +0 -0
  318. /package/{typed → dist}/utils/prop-utils.d.ts +0 -0
  319. /package/{typed → dist}/utils/prop-utils.d.ts.map +0 -0
  320. /package/{typed → dist}/utils/resource-utils.d.ts +0 -0
  321. /package/{typed → dist}/utils/resource-utils.d.ts.map +0 -0
  322. /package/{typed → dist}/utils/scale-utils.d.ts +0 -0
  323. /package/{typed → dist}/utils/scale-utils.d.ts.map +0 -0
@@ -1,316 +0,0 @@
1
- import { GL } from '@luma.gl/constants';
2
- import { LineLayer, SolidPolygonLayer } from '@deck.gl/layers';
3
- import { generateContours } from './contour-utils';
4
- import { log } from '@deck.gl/core';
5
- import GPUGridAggregator from '../utils/gpu-grid-aggregation/gpu-grid-aggregator';
6
- import { AGGREGATION_OPERATION, getValueFunc } from '../utils/aggregation-operation-utils';
7
- import { getBoundingBox, getGridParams } from '../utils/grid-aggregation-utils';
8
- import GridAggregationLayer from '../grid-aggregation-layer';
9
- const DEFAULT_COLOR = [255, 255, 255, 255];
10
- const DEFAULT_STROKE_WIDTH = 1;
11
- const DEFAULT_THRESHOLD = 1;
12
- const defaultProps = {
13
- cellSize: {
14
- type: 'number',
15
- min: 1,
16
- max: 1000,
17
- value: 1000
18
- },
19
- getPosition: {
20
- type: 'accessor',
21
- value: x => x.position
22
- },
23
- getWeight: {
24
- type: 'accessor',
25
- value: 1
26
- },
27
- gpuAggregation: false,
28
- aggregation: 'SUM',
29
- contours: {
30
- type: 'object',
31
- value: [{
32
- threshold: DEFAULT_THRESHOLD
33
- }],
34
- optional: true,
35
- compare: 3
36
- },
37
- zOffset: 0.005
38
- };
39
- const POSITION_ATTRIBUTE_NAME = 'positions';
40
- const DIMENSIONS = {
41
- data: {
42
- props: ['cellSize']
43
- },
44
- weights: {
45
- props: ['aggregation'],
46
- accessors: ['getWeight']
47
- }
48
- };
49
- export default class ContourLayer extends GridAggregationLayer {
50
- constructor(...args) {
51
- super(...args);
52
- this.state = void 0;
53
- }
54
-
55
- initializeState() {
56
- super.initializeAggregationLayer({
57
- dimensions: DIMENSIONS
58
- });
59
- this.setState({
60
- contourData: {},
61
- projectPoints: false,
62
- weights: {
63
- count: {
64
- size: 1,
65
- operation: AGGREGATION_OPERATION.SUM
66
- }
67
- }
68
- });
69
- const attributeManager = this.getAttributeManager();
70
- attributeManager.add({
71
- [POSITION_ATTRIBUTE_NAME]: {
72
- size: 3,
73
- accessor: 'getPosition',
74
- type: 5130,
75
- fp64: this.use64bitPositions()
76
- },
77
- count: {
78
- size: 3,
79
- accessor: 'getWeight'
80
- }
81
- });
82
- }
83
-
84
- updateState(opts) {
85
- super.updateState(opts);
86
- let contoursChanged = false;
87
- const {
88
- oldProps,
89
- props
90
- } = opts;
91
- const {
92
- aggregationDirty
93
- } = this.state;
94
-
95
- if (oldProps.contours !== props.contours || oldProps.zOffset !== props.zOffset) {
96
- contoursChanged = true;
97
-
98
- this._updateThresholdData(opts.props);
99
- }
100
-
101
- if (this.getNumInstances() > 0 && (aggregationDirty || contoursChanged)) {
102
- this._generateContours();
103
- }
104
- }
105
-
106
- renderLayers() {
107
- const {
108
- contourSegments,
109
- contourPolygons
110
- } = this.state.contourData;
111
- const LinesSubLayerClass = this.getSubLayerClass('lines', LineLayer);
112
- const BandsSubLayerClass = this.getSubLayerClass('bands', SolidPolygonLayer);
113
- const lineLayer = contourSegments && contourSegments.length > 0 && new LinesSubLayerClass(this.getSubLayerProps({
114
- id: 'lines'
115
- }), {
116
- data: this.state.contourData.contourSegments,
117
- getSourcePosition: d => d.start,
118
- getTargetPosition: d => d.end,
119
- getColor: d => d.contour.color || DEFAULT_COLOR,
120
- getWidth: d => d.contour.strokeWidth || DEFAULT_STROKE_WIDTH
121
- });
122
- const bandsLayer = contourPolygons && contourPolygons.length > 0 && new BandsSubLayerClass(this.getSubLayerProps({
123
- id: 'bands'
124
- }), {
125
- data: this.state.contourData.contourPolygons,
126
- getPolygon: d => d.vertices,
127
- getFillColor: d => d.contour.color || DEFAULT_COLOR
128
- });
129
- return [lineLayer, bandsLayer];
130
- }
131
-
132
- updateAggregationState(opts) {
133
- const {
134
- props,
135
- oldProps
136
- } = opts;
137
- const {
138
- cellSize,
139
- coordinateSystem
140
- } = props;
141
- const {
142
- viewport
143
- } = this.context;
144
- const cellSizeChanged = oldProps.cellSize !== cellSize;
145
- let gpuAggregation = props.gpuAggregation;
146
-
147
- if (this.state.gpuAggregation !== props.gpuAggregation) {
148
- if (gpuAggregation && !GPUGridAggregator.isSupported(this.context.device)) {
149
- log.warn('GPU Grid Aggregation not supported, falling back to CPU')();
150
- gpuAggregation = false;
151
- }
152
- }
153
-
154
- const gpuAggregationChanged = gpuAggregation !== this.state.gpuAggregation;
155
- this.setState({
156
- gpuAggregation
157
- });
158
- const {
159
- dimensions
160
- } = this.state;
161
- const positionsChanged = this.isAttributeChanged(POSITION_ATTRIBUTE_NAME);
162
- const {
163
- data,
164
- weights
165
- } = dimensions;
166
- let {
167
- boundingBox
168
- } = this.state;
169
-
170
- if (positionsChanged) {
171
- boundingBox = getBoundingBox(this.getAttributes(), this.getNumInstances());
172
- this.setState({
173
- boundingBox
174
- });
175
- }
176
-
177
- if (positionsChanged || cellSizeChanged) {
178
- const {
179
- gridOffset,
180
- translation,
181
- width,
182
- height,
183
- numCol,
184
- numRow
185
- } = getGridParams(boundingBox, cellSize, viewport, coordinateSystem);
186
- this.allocateResources(numRow, numCol);
187
- this.setState({
188
- gridOffset,
189
- boundingBox,
190
- translation,
191
- posOffset: translation.slice(),
192
- gridOrigin: [-1 * translation[0], -1 * translation[1]],
193
- width,
194
- height,
195
- numCol,
196
- numRow
197
- });
198
- }
199
-
200
- const aggregationDataDirty = positionsChanged || gpuAggregationChanged || this.isAggregationDirty(opts, {
201
- dimension: data,
202
- compareAll: gpuAggregation
203
- });
204
- const aggregationWeightsDirty = this.isAggregationDirty(opts, {
205
- dimension: weights
206
- });
207
-
208
- if (aggregationWeightsDirty) {
209
- this._updateAccessors(opts);
210
- }
211
-
212
- if (aggregationDataDirty || aggregationWeightsDirty) {
213
- this._resetResults();
214
- }
215
-
216
- this.setState({
217
- aggregationDataDirty,
218
- aggregationWeightsDirty
219
- });
220
- }
221
-
222
- _updateAccessors(opts) {
223
- const {
224
- getWeight,
225
- aggregation,
226
- data
227
- } = opts.props;
228
- const {
229
- count
230
- } = this.state.weights;
231
-
232
- if (count) {
233
- count.getWeight = getWeight;
234
- count.operation = AGGREGATION_OPERATION[aggregation];
235
- }
236
-
237
- this.setState({
238
- getValue: getValueFunc(aggregation, getWeight, {
239
- data
240
- })
241
- });
242
- }
243
-
244
- _resetResults() {
245
- const {
246
- count
247
- } = this.state.weights;
248
-
249
- if (count) {
250
- count.aggregationData = null;
251
- }
252
- }
253
-
254
- _generateContours() {
255
- const {
256
- numCol,
257
- numRow,
258
- gridOrigin,
259
- gridOffset,
260
- thresholdData
261
- } = this.state;
262
- const {
263
- count
264
- } = this.state.weights;
265
- let {
266
- aggregationData
267
- } = count;
268
-
269
- if (!aggregationData) {
270
- aggregationData = count.aggregationBuffer.readSyncWebGL2();
271
- count.aggregationData = aggregationData;
272
- }
273
-
274
- const {
275
- cellWeights
276
- } = GPUGridAggregator.getCellData({
277
- countsData: aggregationData
278
- });
279
- const contourData = generateContours({
280
- thresholdData,
281
- cellWeights,
282
- gridSize: [numCol, numRow],
283
- gridOrigin,
284
- cellSize: [gridOffset.xOffset, gridOffset.yOffset]
285
- });
286
- this.setState({
287
- contourData
288
- });
289
- }
290
-
291
- _updateThresholdData(props) {
292
- const {
293
- contours,
294
- zOffset
295
- } = props;
296
- const count = contours.length;
297
- const thresholdData = new Array(count);
298
-
299
- for (let i = 0; i < count; i++) {
300
- const contour = contours[i];
301
- thresholdData[i] = {
302
- contour,
303
- zIndex: contour.zIndex || i,
304
- zOffset
305
- };
306
- }
307
-
308
- this.setState({
309
- thresholdData
310
- });
311
- }
312
-
313
- }
314
- ContourLayer.layerName = 'ContourLayer';
315
- ContourLayer.defaultProps = defaultProps;
316
- //# sourceMappingURL=contour-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contour-layer/contour-layer.ts"],"names":["GL","LineLayer","SolidPolygonLayer","generateContours","log","GPUGridAggregator","AGGREGATION_OPERATION","getValueFunc","getBoundingBox","getGridParams","GridAggregationLayer","DEFAULT_COLOR","DEFAULT_STROKE_WIDTH","DEFAULT_THRESHOLD","defaultProps","cellSize","type","min","max","value","getPosition","x","position","getWeight","gpuAggregation","aggregation","contours","threshold","optional","compare","zOffset","POSITION_ATTRIBUTE_NAME","DIMENSIONS","data","props","weights","accessors","ContourLayer","state","initializeState","initializeAggregationLayer","dimensions","setState","contourData","projectPoints","count","size","operation","SUM","attributeManager","getAttributeManager","add","accessor","fp64","use64bitPositions","updateState","opts","contoursChanged","oldProps","aggregationDirty","_updateThresholdData","getNumInstances","_generateContours","renderLayers","contourSegments","contourPolygons","LinesSubLayerClass","getSubLayerClass","BandsSubLayerClass","lineLayer","length","getSubLayerProps","id","getSourcePosition","d","start","getTargetPosition","end","getColor","contour","color","getWidth","strokeWidth","bandsLayer","getPolygon","vertices","getFillColor","updateAggregationState","coordinateSystem","viewport","context","cellSizeChanged","isSupported","device","warn","gpuAggregationChanged","positionsChanged","isAttributeChanged","boundingBox","getAttributes","gridOffset","translation","width","height","numCol","numRow","allocateResources","posOffset","slice","gridOrigin","aggregationDataDirty","isAggregationDirty","dimension","compareAll","aggregationWeightsDirty","_updateAccessors","_resetResults","getValue","aggregationData","thresholdData","aggregationBuffer","readSyncWebGL2","cellWeights","getCellData","countsData","gridSize","xOffset","yOffset","Array","i","zIndex","layerName"],"mappings":"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","sourcesContent":["// Copyright (c) 2015 - 2018 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {GL} from '@luma.gl/constants';\nimport {LineLayer, SolidPolygonLayer} from '@deck.gl/layers';\nimport {generateContours} from './contour-utils';\nimport {\n Accessor,\n AccessorFunction,\n Color,\n log,\n Position,\n UpdateParameters,\n DefaultProps,\n LayersList\n} from '@deck.gl/core';\n\nimport GPUGridAggregator from '../utils/gpu-grid-aggregation/gpu-grid-aggregator';\nimport {AGGREGATION_OPERATION, getValueFunc} from '../utils/aggregation-operation-utils';\nimport {getBoundingBox, getGridParams} from '../utils/grid-aggregation-utils';\nimport GridAggregationLayer, {GridAggregationLayerProps} from '../grid-aggregation-layer';\n\nconst DEFAULT_COLOR = [255, 255, 255, 255];\nconst DEFAULT_STROKE_WIDTH = 1;\nconst DEFAULT_THRESHOLD = 1;\n\nconst defaultProps: DefaultProps<ContourLayerProps> = {\n // grid aggregation\n cellSize: {type: 'number', min: 1, max: 1000, value: 1000},\n getPosition: {type: 'accessor', value: (x: any) => x.position},\n getWeight: {type: 'accessor', value: 1},\n gpuAggregation: false, // TODO(v9): Re-enable GPU aggregation.\n aggregation: 'SUM',\n\n // contour lines\n contours: {\n type: 'object',\n value: [{threshold: DEFAULT_THRESHOLD}],\n optional: true,\n compare: 3\n },\n\n zOffset: 0.005\n};\n\nconst POSITION_ATTRIBUTE_NAME = 'positions';\n\nconst DIMENSIONS = {\n data: {\n props: ['cellSize']\n },\n weights: {\n props: ['aggregation'],\n accessors: ['getWeight']\n }\n};\n\n/** All properties supported by ContourLayer. */\nexport type ContourLayerProps<DataT = unknown> = _ContourLayerProps<DataT> &\n GridAggregationLayerProps<DataT>;\n\n/** Properties added by ContourLayer. */\nexport type _ContourLayerProps<DataT> = {\n /**\n * Size of each cell in meters.\n * @default 1000\n */\n cellSize?: number;\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 /**\n * Defines the type of aggregation operation, valid values are 'SUM', 'MEAN', 'MIN' and 'MAX'.\n * @default 'SUM'\n */\n aggregation?: 'SUM' | 'MEAN' | 'MIN' | 'MAX';\n\n /**\n * Definition of contours to be drawn.\n * @default [{threshold: 1}]\n */\n contours: {\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\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?: AccessorFunction<DataT, Position>;\n\n /**\n * The weight of each object.\n * @default 1\n */\n getWeight?: Accessor<DataT, number>;\n};\n\n/** Aggregate data into iso-lines or iso-bands for a given threshold and cell size. */\nexport default class ContourLayer<\n DataT = any,\n ExtraPropsT extends {} = {}\n> extends GridAggregationLayer<DataT, ExtraPropsT & Required<_ContourLayerProps<DataT>>> {\n static layerName = 'ContourLayer';\n static defaultProps = defaultProps;\n\n state!: GridAggregationLayer<DataT>['state'] & {\n contourData: {\n contourSegments: {\n start: number[];\n end: number[];\n contour: any;\n }[];\n contourPolygons: {\n vertices: number[][];\n contour: any;\n }[];\n };\n thresholdData: any;\n };\n\n initializeState(): void {\n super.initializeAggregationLayer({\n dimensions: DIMENSIONS\n });\n this.setState({\n contourData: {},\n projectPoints: false,\n weights: {\n count: {\n size: 1,\n operation: AGGREGATION_OPERATION.SUM\n }\n }\n });\n const attributeManager = this.getAttributeManager()!;\n attributeManager.add({\n [POSITION_ATTRIBUTE_NAME]: {\n size: 3,\n accessor: 'getPosition',\n type: GL.DOUBLE,\n fp64: this.use64bitPositions()\n },\n // this attribute is used in gpu aggregation path only\n count: {size: 3, accessor: 'getWeight'}\n });\n }\n\n updateState(opts: UpdateParameters<this>): void {\n super.updateState(opts);\n let contoursChanged = false;\n const {oldProps, props} = opts;\n const {aggregationDirty} = this.state;\n\n if (oldProps.contours !== props.contours || oldProps.zOffset !== props.zOffset) {\n contoursChanged = true;\n this._updateThresholdData(opts.props);\n }\n\n if (this.getNumInstances() > 0 && (aggregationDirty || contoursChanged)) {\n this._generateContours();\n }\n }\n\n renderLayers(): LayersList {\n const {contourSegments, contourPolygons} = this.state.contourData;\n\n const LinesSubLayerClass = this.getSubLayerClass('lines', LineLayer);\n const BandsSubLayerClass = this.getSubLayerClass('bands', SolidPolygonLayer);\n\n // Contour lines layer\n const lineLayer =\n contourSegments &&\n contourSegments.length > 0 &&\n new LinesSubLayerClass(\n this.getSubLayerProps({\n id: 'lines'\n }),\n {\n data: this.state.contourData.contourSegments,\n getSourcePosition: d => d.start,\n getTargetPosition: d => d.end,\n getColor: d => d.contour.color || DEFAULT_COLOR,\n getWidth: d => d.contour.strokeWidth || DEFAULT_STROKE_WIDTH\n }\n );\n\n // Contour bands layer\n const bandsLayer =\n contourPolygons &&\n contourPolygons.length > 0 &&\n new BandsSubLayerClass(\n this.getSubLayerProps({\n id: 'bands'\n }),\n {\n data: this.state.contourData.contourPolygons,\n getPolygon: d => d.vertices,\n getFillColor: d => d.contour.color || DEFAULT_COLOR\n }\n );\n\n return [lineLayer, bandsLayer];\n }\n\n // Aggregation Overrides\n\n /* eslint-disable max-statements, complexity */\n updateAggregationState(opts: UpdateParameters<this>) {\n const {props, oldProps} = opts;\n const {cellSize, coordinateSystem} = props;\n const {viewport} = this.context;\n const cellSizeChanged = oldProps.cellSize !== cellSize;\n let gpuAggregation = props.gpuAggregation;\n if (this.state.gpuAggregation !== props.gpuAggregation) {\n if (gpuAggregation && !GPUGridAggregator.isSupported(this.context.device)) {\n log.warn('GPU Grid Aggregation not supported, falling back to CPU')();\n gpuAggregation = false;\n }\n }\n const gpuAggregationChanged = gpuAggregation !== this.state.gpuAggregation;\n this.setState({\n gpuAggregation\n });\n\n const {dimensions} = this.state;\n const positionsChanged = this.isAttributeChanged(POSITION_ATTRIBUTE_NAME);\n const {data, weights} = dimensions;\n\n let {boundingBox} = this.state;\n if (positionsChanged) {\n boundingBox = getBoundingBox(this.getAttributes(), this.getNumInstances());\n this.setState({boundingBox});\n }\n if (positionsChanged || cellSizeChanged) {\n const {gridOffset, translation, width, height, numCol, numRow} = getGridParams(\n boundingBox,\n cellSize,\n viewport,\n coordinateSystem\n );\n this.allocateResources(numRow, numCol);\n this.setState({\n gridOffset,\n boundingBox,\n translation,\n posOffset: translation.slice(), // Used for CPU aggregation, to offset points\n gridOrigin: [-1 * translation[0], -1 * translation[1]],\n width,\n height,\n numCol,\n numRow\n });\n }\n\n const aggregationDataDirty =\n positionsChanged ||\n gpuAggregationChanged ||\n this.isAggregationDirty(opts, {\n dimension: data,\n compareAll: gpuAggregation // check for all (including extentions props) when using gpu aggregation\n });\n const aggregationWeightsDirty = this.isAggregationDirty(opts, {\n dimension: weights\n });\n\n if (aggregationWeightsDirty) {\n this._updateAccessors(opts);\n }\n if (aggregationDataDirty || aggregationWeightsDirty) {\n this._resetResults();\n }\n this.setState({\n aggregationDataDirty,\n aggregationWeightsDirty\n });\n }\n /* eslint-enable max-statements, complexity */\n\n // Private (Aggregation)\n\n private _updateAccessors(opts: UpdateParameters<this>) {\n const {getWeight, aggregation, data} = opts.props;\n const {count} = this.state.weights;\n if (count) {\n count.getWeight = getWeight;\n count.operation = AGGREGATION_OPERATION[aggregation];\n }\n this.setState({getValue: getValueFunc(aggregation, getWeight, {data})});\n }\n\n private _resetResults() {\n const {count} = this.state.weights;\n if (count) {\n count.aggregationData = null;\n }\n }\n\n // Private (Contours)\n\n private _generateContours() {\n const {numCol, numRow, gridOrigin, gridOffset, thresholdData} = this.state;\n const {count} = this.state.weights;\n let {aggregationData} = count;\n if (!aggregationData) {\n // @ts-ignore\n aggregationData = count.aggregationBuffer!.readSyncWebGL2() as Float32Array;\n count.aggregationData = aggregationData;\n }\n\n const {cellWeights} = GPUGridAggregator.getCellData({countsData: aggregationData});\n const contourData = generateContours({\n thresholdData,\n cellWeights,\n gridSize: [numCol, numRow],\n gridOrigin,\n cellSize: [gridOffset.xOffset, gridOffset.yOffset]\n });\n\n // contourData contains both iso-lines and iso-bands if requested.\n this.setState({contourData});\n }\n\n private _updateThresholdData(props) {\n const {contours, zOffset} = props;\n const count = contours.length;\n const thresholdData = new Array(count);\n for (let i = 0; i < count; i++) {\n const contour = contours[i];\n thresholdData[i] = {\n contour,\n zIndex: contour.zIndex || i,\n zOffset\n };\n }\n this.setState({thresholdData});\n }\n}\n"],"file":"contour-layer.js"}
@@ -1,81 +0,0 @@
1
- import { getCode, getVertices, CONTOUR_TYPE } from './marching-squares';
2
- export function generateContours({
3
- thresholdData,
4
- cellWeights,
5
- gridSize,
6
- gridOrigin,
7
- cellSize
8
- }) {
9
- const contourSegments = [];
10
- const contourPolygons = [];
11
- const width = gridSize[0];
12
- const height = gridSize[1];
13
- let segmentIndex = 0;
14
- let polygonIndex = 0;
15
-
16
- for (const data of thresholdData) {
17
- const {
18
- contour
19
- } = data;
20
- const {
21
- threshold
22
- } = contour;
23
-
24
- for (let x = -1; x < width; x++) {
25
- for (let y = -1; y < height; y++) {
26
- const {
27
- code,
28
- meanCode
29
- } = getCode({
30
- cellWeights,
31
- threshold,
32
- x,
33
- y,
34
- width,
35
- height
36
- });
37
- const opts = {
38
- type: CONTOUR_TYPE.ISO_BANDS,
39
- gridOrigin,
40
- cellSize,
41
- x,
42
- y,
43
- width,
44
- height,
45
- code,
46
- meanCode,
47
- thresholdData: data
48
- };
49
-
50
- if (Array.isArray(threshold)) {
51
- opts.type = CONTOUR_TYPE.ISO_BANDS;
52
- const polygons = getVertices(opts);
53
-
54
- for (const polygon of polygons) {
55
- contourPolygons[polygonIndex++] = {
56
- vertices: polygon,
57
- contour
58
- };
59
- }
60
- } else {
61
- opts.type = CONTOUR_TYPE.ISO_LINES;
62
- const vertices = getVertices(opts);
63
-
64
- for (let i = 0; i < vertices.length; i += 2) {
65
- contourSegments[segmentIndex++] = {
66
- start: vertices[i],
67
- end: vertices[i + 1],
68
- contour
69
- };
70
- }
71
- }
72
- }
73
- }
74
- }
75
-
76
- return {
77
- contourSegments,
78
- contourPolygons
79
- };
80
- }
81
- //# sourceMappingURL=contour-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contour-layer/contour-utils.ts"],"names":["getCode","getVertices","CONTOUR_TYPE","generateContours","thresholdData","cellWeights","gridSize","gridOrigin","cellSize","contourSegments","contourPolygons","width","height","segmentIndex","polygonIndex","data","contour","threshold","x","y","code","meanCode","opts","type","ISO_BANDS","Array","isArray","polygons","polygon","vertices","ISO_LINES","i","length","start","end"],"mappings":"AAAA,SAAQA,OAAR,EAAiBC,WAAjB,EAA8BC,YAA9B,QAAiD,oBAAjD;AAIA,OAAO,SAASC,gBAAT,CAA0B;AAC/BC,EAAAA,aAD+B;AAE/BC,EAAAA,WAF+B;AAG/BC,EAAAA,QAH+B;AAI/BC,EAAAA,UAJ+B;AAK/BC,EAAAA;AAL+B,CAA1B,EAYJ;AACD,QAAMC,eAAiE,GAAG,EAA1E;AACA,QAAMC,eAAuD,GAAG,EAAhE;AACA,QAAMC,KAAK,GAAGL,QAAQ,CAAC,CAAD,CAAtB;AACA,QAAMM,MAAM,GAAGN,QAAQ,CAAC,CAAD,CAAvB;AACA,MAAIO,YAAY,GAAG,CAAnB;AACA,MAAIC,YAAY,GAAG,CAAnB;;AAEA,OAAK,MAAMC,IAAX,IAAmBX,aAAnB,EAAkC;AAChC,UAAM;AAACY,MAAAA;AAAD,QAAYD,IAAlB;AACA,UAAM;AAACE,MAAAA;AAAD,QAAcD,OAApB;;AACA,SAAK,IAAIE,CAAC,GAAG,CAAC,CAAd,EAAiBA,CAAC,GAAGP,KAArB,EAA4BO,CAAC,EAA7B,EAAiC;AAC/B,WAAK,IAAIC,CAAC,GAAG,CAAC,CAAd,EAAiBA,CAAC,GAAGP,MAArB,EAA6BO,CAAC,EAA9B,EAAkC;AAEhC,cAAM;AAACC,UAAAA,IAAD;AAAOC,UAAAA;AAAP,YAAmBrB,OAAO,CAAC;AAC/BK,UAAAA,WAD+B;AAE/BY,UAAAA,SAF+B;AAG/BC,UAAAA,CAH+B;AAI/BC,UAAAA,CAJ+B;AAK/BR,UAAAA,KAL+B;AAM/BC,UAAAA;AAN+B,SAAD,CAAhC;AAQA,cAAMU,IAAI,GAAG;AACXC,UAAAA,IAAI,EAAErB,YAAY,CAACsB,SADR;AAEXjB,UAAAA,UAFW;AAGXC,UAAAA,QAHW;AAIXU,UAAAA,CAJW;AAKXC,UAAAA,CALW;AAMXR,UAAAA,KANW;AAOXC,UAAAA,MAPW;AAQXQ,UAAAA,IARW;AASXC,UAAAA,QATW;AAUXjB,UAAAA,aAAa,EAAEW;AAVJ,SAAb;;AAYA,YAAIU,KAAK,CAACC,OAAN,CAAcT,SAAd,CAAJ,EAA8B;AAC5BK,UAAAA,IAAI,CAACC,IAAL,GAAYrB,YAAY,CAACsB,SAAzB;AACA,gBAAMG,QAAQ,GAAG1B,WAAW,CAACqB,IAAD,CAA5B;;AACA,eAAK,MAAMM,OAAX,IAAsBD,QAAtB,EAAgC;AAC9BjB,YAAAA,eAAe,CAACI,YAAY,EAAb,CAAf,GAAkC;AAChCe,cAAAA,QAAQ,EAAED,OADsB;AAEhCZ,cAAAA;AAFgC,aAAlC;AAID;AACF,SATD,MASO;AAELM,UAAAA,IAAI,CAACC,IAAL,GAAYrB,YAAY,CAAC4B,SAAzB;AACA,gBAAMD,QAAQ,GAAG5B,WAAW,CAACqB,IAAD,CAA5B;;AACA,eAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,QAAQ,CAACG,MAA7B,EAAqCD,CAAC,IAAI,CAA1C,EAA6C;AAC3CtB,YAAAA,eAAe,CAACI,YAAY,EAAb,CAAf,GAAkC;AAChCoB,cAAAA,KAAK,EAAEJ,QAAQ,CAACE,CAAD,CADiB;AAEhCG,cAAAA,GAAG,EAAEL,QAAQ,CAACE,CAAC,GAAG,CAAL,CAFmB;AAGhCf,cAAAA;AAHgC,aAAlC;AAKD;AACF;AACF;AACF;AACF;;AACD,SAAO;AAACP,IAAAA,eAAD;AAAkBC,IAAAA;AAAlB,GAAP;AACD","sourcesContent":["import {getCode, getVertices, CONTOUR_TYPE} from './marching-squares';\n\n// Given all the cell weights, generates contours for each threshold.\n/* eslint-disable max-depth */\nexport function generateContours({\n thresholdData,\n cellWeights,\n gridSize,\n gridOrigin,\n cellSize\n}: {\n thresholdData: any;\n cellWeights: Float32Array;\n gridSize: number[];\n gridOrigin: number[];\n cellSize: number[];\n}) {\n const contourSegments: {start: number[]; end: number[]; contour: any}[] = [];\n const contourPolygons: {vertices: number[][]; contour: any}[] = [];\n const width = gridSize[0];\n const height = gridSize[1];\n let segmentIndex = 0;\n let polygonIndex = 0;\n\n for (const data of thresholdData) {\n const {contour} = data;\n const {threshold} = contour;\n for (let x = -1; x < width; x++) {\n for (let y = -1; y < height; y++) {\n // Get the MarchingSquares code based on neighbor cell weights.\n const {code, meanCode} = getCode({\n cellWeights,\n threshold,\n x,\n y,\n width,\n height\n });\n const opts = {\n type: CONTOUR_TYPE.ISO_BANDS,\n gridOrigin,\n cellSize,\n x,\n y,\n width,\n height,\n code,\n meanCode,\n thresholdData: data\n };\n if (Array.isArray(threshold)) {\n opts.type = CONTOUR_TYPE.ISO_BANDS;\n const polygons = getVertices(opts) as number[][][];\n for (const polygon of polygons) {\n contourPolygons[polygonIndex++] = {\n vertices: polygon,\n contour\n };\n }\n } else {\n // Get the intersection vertices based on MarchingSquares code.\n opts.type = CONTOUR_TYPE.ISO_LINES;\n const vertices = getVertices(opts) as number[][];\n for (let i = 0; i < vertices.length; i += 2) {\n contourSegments[segmentIndex++] = {\n start: vertices[i],\n end: vertices[i + 1],\n contour\n };\n }\n }\n }\n }\n }\n return {contourSegments, contourPolygons};\n}\n/* eslint-enable max-depth */\n"],"file":"contour-utils.js"}
@@ -1,219 +0,0 @@
1
- const HALF = 0.5;
2
- const ONE6TH = 1 / 6;
3
- const OFFSET = {
4
- N: [0, HALF],
5
- E: [HALF, 0],
6
- S: [0, -HALF],
7
- W: [-HALF, 0],
8
- NE: [HALF, HALF],
9
- NW: [-HALF, HALF],
10
- SE: [HALF, -HALF],
11
- SW: [-HALF, -HALF]
12
- };
13
- const SW_TRIANGLE = [OFFSET.W, OFFSET.SW, OFFSET.S];
14
- const SE_TRIANGLE = [OFFSET.S, OFFSET.SE, OFFSET.E];
15
- const NE_TRIANGLE = [OFFSET.E, OFFSET.NE, OFFSET.N];
16
- const NW_TRIANGLE = [OFFSET.NW, OFFSET.W, OFFSET.N];
17
- const SW_TRAPEZOID = [[-HALF, ONE6TH], [-HALF, -ONE6TH], [-ONE6TH, -HALF], [ONE6TH, -HALF]];
18
- const SE_TRAPEZOID = [[-ONE6TH, -HALF], [ONE6TH, -HALF], [HALF, -ONE6TH], [HALF, ONE6TH]];
19
- const NE_TRAPEZOID = [[HALF, -ONE6TH], [HALF, ONE6TH], [ONE6TH, HALF], [-ONE6TH, HALF]];
20
- const NW_TRAPEZOID = [[-HALF, ONE6TH], [-HALF, -ONE6TH], [ONE6TH, HALF], [-ONE6TH, HALF]];
21
- const S_RECTANGLE = [OFFSET.W, OFFSET.SW, OFFSET.SE, OFFSET.E];
22
- const E_RECTANGLE = [OFFSET.S, OFFSET.SE, OFFSET.NE, OFFSET.N];
23
- const N_RECTANGLE = [OFFSET.NW, OFFSET.W, OFFSET.E, OFFSET.NE];
24
- const W_RECTANGLE = [OFFSET.NW, OFFSET.SW, OFFSET.S, OFFSET.N];
25
- const EW_RECTANGEL = [[-HALF, ONE6TH], [-HALF, -ONE6TH], [HALF, -ONE6TH], [HALF, ONE6TH]];
26
- const SN_RECTANGEL = [[-ONE6TH, -HALF], [ONE6TH, -HALF], [ONE6TH, HALF], [-ONE6TH, HALF]];
27
- const SQUARE = [OFFSET.NW, OFFSET.SW, OFFSET.SE, OFFSET.NE];
28
- const SW_PENTAGON = [OFFSET.NW, OFFSET.SW, OFFSET.SE, OFFSET.E, OFFSET.N];
29
- const SE_PENTAGON = [OFFSET.W, OFFSET.SW, OFFSET.SE, OFFSET.NE, OFFSET.N];
30
- const NE_PENTAGON = [OFFSET.NW, OFFSET.W, OFFSET.S, OFFSET.SE, OFFSET.NE];
31
- const NW_PENTAGON = [OFFSET.NW, OFFSET.SW, OFFSET.S, OFFSET.E, OFFSET.NE];
32
- const NW_N_PENTAGON = [OFFSET.NW, OFFSET.W, [HALF, -ONE6TH], [HALF, ONE6TH], OFFSET.N];
33
- const NE_E_PENTAGON = [[-ONE6TH, -HALF], [ONE6TH, -HALF], OFFSET.E, OFFSET.NE, OFFSET.N];
34
- const SE_S_PENTAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], OFFSET.S, OFFSET.SE, OFFSET.E];
35
- const SW_W_PENTAGON = [OFFSET.W, OFFSET.SW, OFFSET.S, [ONE6TH, HALF], [-ONE6TH, HALF]];
36
- const NW_W_PENTAGON = [OFFSET.NW, OFFSET.W, [-ONE6TH, -HALF], [ONE6TH, -HALF], OFFSET.N];
37
- const NE_N_PENTAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], OFFSET.E, OFFSET.NE, OFFSET.N];
38
- const SE_E_PENTAGON = [OFFSET.S, OFFSET.SE, OFFSET.E, [ONE6TH, HALF], [-ONE6TH, HALF]];
39
- const SW_S_PENTAGON = [OFFSET.W, OFFSET.SW, OFFSET.S, [HALF, -ONE6TH], [HALF, ONE6TH]];
40
- const S_HEXAGON = [OFFSET.W, OFFSET.SW, OFFSET.SE, OFFSET.E, [ONE6TH, HALF], [-ONE6TH, HALF]];
41
- const E_HEXAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], OFFSET.S, OFFSET.SE, OFFSET.NE, OFFSET.N];
42
- const N_HEXAGON = [OFFSET.NW, OFFSET.W, [-ONE6TH, -HALF], [ONE6TH, -HALF], OFFSET.E, OFFSET.NE];
43
- const W_HEXAGON = [OFFSET.NW, OFFSET.SW, OFFSET.S, [HALF, -ONE6TH], [HALF, ONE6TH], OFFSET.N];
44
- const SW_NE_HEXAGON = [OFFSET.W, OFFSET.SW, OFFSET.S, OFFSET.E, OFFSET.NE, OFFSET.N];
45
- const NW_SE_HEXAGON = [OFFSET.NW, OFFSET.W, OFFSET.S, OFFSET.SE, OFFSET.E, OFFSET.N];
46
- const NE_HEPTAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], [-ONE6TH, -HALF], [ONE6TH, -HALF], OFFSET.E, OFFSET.NE, OFFSET.N];
47
- const SW_HEPTAGON = [OFFSET.W, OFFSET.SW, OFFSET.S, [HALF, -ONE6TH], [HALF, ONE6TH], [ONE6TH, HALF], [-ONE6TH, HALF]];
48
- const NW_HEPTAGON = [OFFSET.NW, OFFSET.W, [-ONE6TH, -HALF], [ONE6TH, -HALF], [HALF, -ONE6TH], [HALF, ONE6TH], OFFSET.N];
49
- const SE_HEPTAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], OFFSET.S, OFFSET.SE, OFFSET.E, [ONE6TH, HALF], [-ONE6TH, HALF]];
50
- const OCTAGON = [[-HALF, ONE6TH], [-HALF, -ONE6TH], [-ONE6TH, -HALF], [ONE6TH, -HALF], [HALF, -ONE6TH], [HALF, ONE6TH], [ONE6TH, HALF], [-ONE6TH, HALF]];
51
- export const ISOLINES_CODE_OFFSET_MAP = {
52
- 0: [],
53
- 1: [[OFFSET.W, OFFSET.S]],
54
- 2: [[OFFSET.S, OFFSET.E]],
55
- 3: [[OFFSET.W, OFFSET.E]],
56
- 4: [[OFFSET.N, OFFSET.E]],
57
- 5: {
58
- 0: [[OFFSET.W, OFFSET.S], [OFFSET.N, OFFSET.E]],
59
- 1: [[OFFSET.W, OFFSET.N], [OFFSET.S, OFFSET.E]]
60
- },
61
- 6: [[OFFSET.N, OFFSET.S]],
62
- 7: [[OFFSET.W, OFFSET.N]],
63
- 8: [[OFFSET.W, OFFSET.N]],
64
- 9: [[OFFSET.N, OFFSET.S]],
65
- 10: {
66
- 0: [[OFFSET.W, OFFSET.N], [OFFSET.S, OFFSET.E]],
67
- 1: [[OFFSET.W, OFFSET.S], [OFFSET.N, OFFSET.E]]
68
- },
69
- 11: [[OFFSET.N, OFFSET.E]],
70
- 12: [[OFFSET.W, OFFSET.E]],
71
- 13: [[OFFSET.S, OFFSET.E]],
72
- 14: [[OFFSET.W, OFFSET.S]],
73
- 15: []
74
- };
75
-
76
- function ternaryToIndex(ternary) {
77
- return parseInt(ternary, 4);
78
- }
79
-
80
- export const ISOBANDS_CODE_OFFSET_MAP = {
81
- [ternaryToIndex('0000')]: [],
82
- [ternaryToIndex('2222')]: [],
83
- [ternaryToIndex('2221')]: [SW_TRIANGLE],
84
- [ternaryToIndex('2212')]: [SE_TRIANGLE],
85
- [ternaryToIndex('2122')]: [NE_TRIANGLE],
86
- [ternaryToIndex('1222')]: [NW_TRIANGLE],
87
- [ternaryToIndex('0001')]: [SW_TRIANGLE],
88
- [ternaryToIndex('0010')]: [SE_TRIANGLE],
89
- [ternaryToIndex('0100')]: [NE_TRIANGLE],
90
- [ternaryToIndex('1000')]: [NW_TRIANGLE],
91
- [ternaryToIndex('2220')]: [SW_TRAPEZOID],
92
- [ternaryToIndex('2202')]: [SE_TRAPEZOID],
93
- [ternaryToIndex('2022')]: [NE_TRAPEZOID],
94
- [ternaryToIndex('0222')]: [NW_TRAPEZOID],
95
- [ternaryToIndex('0002')]: [SW_TRAPEZOID],
96
- [ternaryToIndex('0020')]: [SE_TRAPEZOID],
97
- [ternaryToIndex('0200')]: [NE_TRAPEZOID],
98
- [ternaryToIndex('2000')]: [NW_TRAPEZOID],
99
- [ternaryToIndex('0011')]: [S_RECTANGLE],
100
- [ternaryToIndex('0110')]: [E_RECTANGLE],
101
- [ternaryToIndex('1100')]: [N_RECTANGLE],
102
- [ternaryToIndex('1001')]: [W_RECTANGLE],
103
- [ternaryToIndex('2211')]: [S_RECTANGLE],
104
- [ternaryToIndex('2112')]: [E_RECTANGLE],
105
- [ternaryToIndex('1122')]: [N_RECTANGLE],
106
- [ternaryToIndex('1221')]: [W_RECTANGLE],
107
- [ternaryToIndex('2200')]: [EW_RECTANGEL],
108
- [ternaryToIndex('2002')]: [SN_RECTANGEL],
109
- [ternaryToIndex('0022')]: [EW_RECTANGEL],
110
- [ternaryToIndex('0220')]: [SN_RECTANGEL],
111
- [ternaryToIndex('1111')]: [SQUARE],
112
- [ternaryToIndex('1211')]: [SW_PENTAGON],
113
- [ternaryToIndex('2111')]: [SE_PENTAGON],
114
- [ternaryToIndex('1112')]: [NE_PENTAGON],
115
- [ternaryToIndex('1121')]: [NW_PENTAGON],
116
- [ternaryToIndex('1011')]: [SW_PENTAGON],
117
- [ternaryToIndex('0111')]: [SE_PENTAGON],
118
- [ternaryToIndex('1110')]: [NE_PENTAGON],
119
- [ternaryToIndex('1101')]: [NW_PENTAGON],
120
- [ternaryToIndex('1200')]: [NW_N_PENTAGON],
121
- [ternaryToIndex('0120')]: [NE_E_PENTAGON],
122
- [ternaryToIndex('0012')]: [SE_S_PENTAGON],
123
- [ternaryToIndex('2001')]: [SW_W_PENTAGON],
124
- [ternaryToIndex('1022')]: [NW_N_PENTAGON],
125
- [ternaryToIndex('2102')]: [NE_E_PENTAGON],
126
- [ternaryToIndex('2210')]: [SE_S_PENTAGON],
127
- [ternaryToIndex('0221')]: [SW_W_PENTAGON],
128
- [ternaryToIndex('1002')]: [NW_W_PENTAGON],
129
- [ternaryToIndex('2100')]: [NE_N_PENTAGON],
130
- [ternaryToIndex('0210')]: [SE_E_PENTAGON],
131
- [ternaryToIndex('0021')]: [SW_S_PENTAGON],
132
- [ternaryToIndex('1220')]: [NW_W_PENTAGON],
133
- [ternaryToIndex('0122')]: [NE_N_PENTAGON],
134
- [ternaryToIndex('2012')]: [SE_E_PENTAGON],
135
- [ternaryToIndex('2201')]: [SW_S_PENTAGON],
136
- [ternaryToIndex('0211')]: [S_HEXAGON],
137
- [ternaryToIndex('2110')]: [E_HEXAGON],
138
- [ternaryToIndex('1102')]: [N_HEXAGON],
139
- [ternaryToIndex('1021')]: [W_HEXAGON],
140
- [ternaryToIndex('2011')]: [S_HEXAGON],
141
- [ternaryToIndex('0112')]: [E_HEXAGON],
142
- [ternaryToIndex('1120')]: [N_HEXAGON],
143
- [ternaryToIndex('1201')]: [W_HEXAGON],
144
- [ternaryToIndex('2101')]: [SW_NE_HEXAGON],
145
- [ternaryToIndex('0121')]: [SW_NE_HEXAGON],
146
- [ternaryToIndex('1012')]: [NW_SE_HEXAGON],
147
- [ternaryToIndex('1210')]: [NW_SE_HEXAGON],
148
- [ternaryToIndex('0101')]: {
149
- 0: [SW_TRIANGLE, NE_TRIANGLE],
150
- 1: [SW_NE_HEXAGON],
151
- 2: [SW_NE_HEXAGON]
152
- },
153
- [ternaryToIndex('1010')]: {
154
- 0: [NW_TRIANGLE, SE_TRIANGLE],
155
- 1: [NW_SE_HEXAGON],
156
- 2: [NW_SE_HEXAGON]
157
- },
158
- [ternaryToIndex('2121')]: {
159
- 0: [SW_NE_HEXAGON],
160
- 1: [SW_NE_HEXAGON],
161
- 2: [SW_TRIANGLE, NE_TRIANGLE]
162
- },
163
- [ternaryToIndex('1212')]: {
164
- 0: [NW_SE_HEXAGON],
165
- 1: [NW_SE_HEXAGON],
166
- 2: [NW_TRIANGLE, SE_TRIANGLE]
167
- },
168
- [ternaryToIndex('2120')]: {
169
- 0: [NE_HEPTAGON],
170
- 1: [NE_HEPTAGON],
171
- 2: [SW_TRAPEZOID, NE_TRIANGLE]
172
- },
173
- [ternaryToIndex('2021')]: {
174
- 0: [SW_HEPTAGON],
175
- 1: [SW_HEPTAGON],
176
- 2: [SW_TRIANGLE, NE_TRAPEZOID]
177
- },
178
- [ternaryToIndex('1202')]: {
179
- 0: [NW_HEPTAGON],
180
- 1: [NW_HEPTAGON],
181
- 2: [NW_TRIANGLE, SE_TRAPEZOID]
182
- },
183
- [ternaryToIndex('0212')]: {
184
- 0: [SE_HEPTAGON],
185
- 1: [SE_HEPTAGON],
186
- 2: [SE_TRIANGLE, NW_TRAPEZOID]
187
- },
188
- [ternaryToIndex('0102')]: {
189
- 0: [SW_TRAPEZOID, NE_TRIANGLE],
190
- 1: [NE_HEPTAGON],
191
- 2: [NE_HEPTAGON]
192
- },
193
- [ternaryToIndex('0201')]: {
194
- 0: [SW_TRIANGLE, NE_TRAPEZOID],
195
- 1: [SW_HEPTAGON],
196
- 2: [SW_HEPTAGON]
197
- },
198
- [ternaryToIndex('1020')]: {
199
- 0: [NW_TRIANGLE, SE_TRAPEZOID],
200
- 1: [NW_HEPTAGON],
201
- 2: [NW_HEPTAGON]
202
- },
203
- [ternaryToIndex('2010')]: {
204
- 0: [SE_TRIANGLE, NW_TRAPEZOID],
205
- 1: [SE_HEPTAGON],
206
- 2: [SE_HEPTAGON]
207
- },
208
- [ternaryToIndex('2020')]: {
209
- 0: [NW_TRAPEZOID, SE_TRAPEZOID],
210
- 1: [OCTAGON],
211
- 2: [SW_TRAPEZOID, NE_TRAPEZOID]
212
- },
213
- [ternaryToIndex('0202')]: {
214
- 0: [NE_TRAPEZOID, SW_TRAPEZOID],
215
- 1: [OCTAGON],
216
- 2: [NW_TRAPEZOID, SE_TRAPEZOID]
217
- }
218
- };
219
- //# sourceMappingURL=marching-squares-codes.js.map