node-red-contrib-tak-registration 0.16.0 → 0.16.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 (1065) hide show
  1. package/node_modules/@turf/along/README.md +3 -1
  2. package/node_modules/@turf/along/dist/cjs/index.cjs +2 -2
  3. package/node_modules/@turf/along/dist/cjs/index.cjs.map +1 -1
  4. package/node_modules/@turf/along/dist/cjs/index.d.cts +1 -1
  5. package/node_modules/@turf/along/dist/esm/index.d.ts +1 -1
  6. package/node_modules/@turf/along/dist/esm/index.js +2 -2
  7. package/node_modules/@turf/along/dist/esm/index.js.map +1 -1
  8. package/node_modules/@turf/along/package.json +12 -12
  9. package/node_modules/@turf/angle/dist/cjs/index.cjs +2 -2
  10. package/node_modules/@turf/angle/dist/cjs/index.cjs.map +1 -1
  11. package/node_modules/@turf/angle/dist/esm/index.js +2 -2
  12. package/node_modules/@turf/angle/dist/esm/index.js.map +1 -1
  13. package/node_modules/@turf/angle/package.json +16 -16
  14. package/node_modules/@turf/area/dist/cjs/index.cjs +2 -2
  15. package/node_modules/@turf/area/dist/cjs/index.cjs.map +1 -1
  16. package/node_modules/@turf/area/dist/esm/index.js +2 -2
  17. package/node_modules/@turf/area/dist/esm/index.js.map +1 -1
  18. package/node_modules/@turf/area/package.json +10 -10
  19. package/node_modules/@turf/bbox/dist/cjs/index.cjs +2 -2
  20. package/node_modules/@turf/bbox/dist/cjs/index.cjs.map +1 -1
  21. package/node_modules/@turf/bbox/dist/esm/index.js +2 -2
  22. package/node_modules/@turf/bbox/dist/esm/index.js.map +1 -1
  23. package/node_modules/@turf/bbox/package.json +9 -9
  24. package/node_modules/@turf/bbox-clip/dist/cjs/index.cjs +2 -2
  25. package/node_modules/@turf/bbox-clip/dist/cjs/index.cjs.map +1 -1
  26. package/node_modules/@turf/bbox-clip/dist/esm/index.js +2 -2
  27. package/node_modules/@turf/bbox-clip/dist/esm/index.js.map +1 -1
  28. package/node_modules/@turf/bbox-clip/package.json +11 -11
  29. package/node_modules/@turf/bbox-polygon/dist/cjs/index.cjs +2 -2
  30. package/node_modules/@turf/bbox-polygon/dist/cjs/index.cjs.map +1 -1
  31. package/node_modules/@turf/bbox-polygon/dist/esm/index.js +2 -2
  32. package/node_modules/@turf/bbox-polygon/dist/esm/index.js.map +1 -1
  33. package/node_modules/@turf/bbox-polygon/package.json +8 -8
  34. package/node_modules/@turf/bearing/dist/cjs/index.cjs +2 -2
  35. package/node_modules/@turf/bearing/dist/cjs/index.cjs.map +1 -1
  36. package/node_modules/@turf/bearing/dist/esm/index.js +2 -2
  37. package/node_modules/@turf/bearing/dist/esm/index.js.map +1 -1
  38. package/node_modules/@turf/bearing/package.json +11 -11
  39. package/node_modules/@turf/bezier-spline/dist/cjs/index.cjs +2 -2
  40. package/node_modules/@turf/bezier-spline/dist/cjs/index.cjs.map +1 -1
  41. package/node_modules/@turf/bezier-spline/dist/esm/index.js +2 -2
  42. package/node_modules/@turf/bezier-spline/dist/esm/index.js.map +1 -1
  43. package/node_modules/@turf/bezier-spline/package.json +10 -10
  44. package/node_modules/@turf/boolean-clockwise/dist/cjs/index.cjs +2 -2
  45. package/node_modules/@turf/boolean-clockwise/dist/cjs/index.cjs.map +1 -1
  46. package/node_modules/@turf/boolean-clockwise/dist/esm/index.js +2 -2
  47. package/node_modules/@turf/boolean-clockwise/dist/esm/index.js.map +1 -1
  48. package/node_modules/@turf/boolean-clockwise/package.json +10 -10
  49. package/node_modules/@turf/boolean-concave/dist/cjs/index.cjs +2 -2
  50. package/node_modules/@turf/boolean-concave/dist/cjs/index.cjs.map +1 -1
  51. package/node_modules/@turf/boolean-concave/dist/esm/index.js +2 -2
  52. package/node_modules/@turf/boolean-concave/dist/esm/index.js.map +1 -1
  53. package/node_modules/@turf/boolean-concave/package.json +10 -10
  54. package/node_modules/@turf/boolean-contains/dist/cjs/index.cjs +2 -2
  55. package/node_modules/@turf/boolean-contains/dist/cjs/index.cjs.map +1 -1
  56. package/node_modules/@turf/boolean-contains/dist/esm/index.js +2 -2
  57. package/node_modules/@turf/boolean-contains/dist/esm/index.js.map +1 -1
  58. package/node_modules/@turf/boolean-contains/package.json +13 -13
  59. package/node_modules/@turf/boolean-crosses/dist/cjs/index.cjs +2 -2
  60. package/node_modules/@turf/boolean-crosses/dist/cjs/index.cjs.map +1 -1
  61. package/node_modules/@turf/boolean-crosses/dist/esm/index.js +2 -2
  62. package/node_modules/@turf/boolean-crosses/dist/esm/index.js.map +1 -1
  63. package/node_modules/@turf/boolean-crosses/package.json +13 -13
  64. package/node_modules/@turf/boolean-disjoint/dist/cjs/index.cjs +2 -2
  65. package/node_modules/@turf/boolean-disjoint/dist/cjs/index.cjs.map +1 -1
  66. package/node_modules/@turf/boolean-disjoint/dist/esm/index.js +2 -2
  67. package/node_modules/@turf/boolean-disjoint/dist/esm/index.js.map +1 -1
  68. package/node_modules/@turf/boolean-disjoint/package.json +12 -12
  69. package/node_modules/@turf/boolean-equal/dist/cjs/index.cjs +2 -2
  70. package/node_modules/@turf/boolean-equal/dist/cjs/index.cjs.map +1 -1
  71. package/node_modules/@turf/boolean-equal/dist/esm/index.js +2 -2
  72. package/node_modules/@turf/boolean-equal/dist/esm/index.js.map +1 -1
  73. package/node_modules/@turf/boolean-equal/package.json +11 -11
  74. package/node_modules/@turf/boolean-intersects/README.md +1 -1
  75. package/node_modules/@turf/boolean-intersects/dist/cjs/index.cjs +2 -2
  76. package/node_modules/@turf/boolean-intersects/dist/cjs/index.cjs.map +1 -1
  77. package/node_modules/@turf/boolean-intersects/dist/esm/index.js +2 -2
  78. package/node_modules/@turf/boolean-intersects/dist/esm/index.js.map +1 -1
  79. package/node_modules/@turf/boolean-intersects/package.json +10 -10
  80. package/node_modules/@turf/boolean-overlap/dist/cjs/index.cjs +2 -2
  81. package/node_modules/@turf/boolean-overlap/dist/cjs/index.cjs.map +1 -1
  82. package/node_modules/@turf/boolean-overlap/dist/esm/index.js +2 -2
  83. package/node_modules/@turf/boolean-overlap/dist/esm/index.js.map +1 -1
  84. package/node_modules/@turf/boolean-overlap/package.json +13 -13
  85. package/node_modules/@turf/boolean-parallel/dist/cjs/index.cjs +2 -2
  86. package/node_modules/@turf/boolean-parallel/dist/cjs/index.cjs.map +1 -1
  87. package/node_modules/@turf/boolean-parallel/dist/esm/index.js +2 -2
  88. package/node_modules/@turf/boolean-parallel/dist/esm/index.js.map +1 -1
  89. package/node_modules/@turf/boolean-parallel/package.json +12 -12
  90. package/node_modules/@turf/boolean-point-in-polygon/dist/cjs/index.cjs +2 -2
  91. package/node_modules/@turf/boolean-point-in-polygon/dist/cjs/index.cjs.map +1 -1
  92. package/node_modules/@turf/boolean-point-in-polygon/dist/esm/index.js +2 -2
  93. package/node_modules/@turf/boolean-point-in-polygon/dist/esm/index.js.map +1 -1
  94. package/node_modules/@turf/boolean-point-in-polygon/package.json +9 -9
  95. package/node_modules/@turf/boolean-point-on-line/dist/cjs/index.cjs +2 -2
  96. package/node_modules/@turf/boolean-point-on-line/dist/cjs/index.cjs.map +1 -1
  97. package/node_modules/@turf/boolean-point-on-line/dist/esm/index.js +2 -2
  98. package/node_modules/@turf/boolean-point-on-line/dist/esm/index.js.map +1 -1
  99. package/node_modules/@turf/boolean-point-on-line/package.json +11 -11
  100. package/node_modules/@turf/boolean-touches/dist/cjs/index.cjs +2 -2
  101. package/node_modules/@turf/boolean-touches/dist/cjs/index.cjs.map +1 -1
  102. package/node_modules/@turf/boolean-touches/dist/esm/index.js +2 -2
  103. package/node_modules/@turf/boolean-touches/dist/esm/index.js.map +1 -1
  104. package/node_modules/@turf/boolean-touches/package.json +12 -12
  105. package/node_modules/@turf/boolean-valid/dist/cjs/index.cjs +2 -2
  106. package/node_modules/@turf/boolean-valid/dist/cjs/index.cjs.map +1 -1
  107. package/node_modules/@turf/boolean-valid/dist/esm/index.js +2 -2
  108. package/node_modules/@turf/boolean-valid/dist/esm/index.js.map +1 -1
  109. package/node_modules/@turf/boolean-valid/package.json +17 -17
  110. package/node_modules/@turf/boolean-within/dist/cjs/index.cjs +2 -2
  111. package/node_modules/@turf/boolean-within/dist/cjs/index.cjs.map +1 -1
  112. package/node_modules/@turf/boolean-within/dist/esm/index.js +2 -2
  113. package/node_modules/@turf/boolean-within/dist/esm/index.js.map +1 -1
  114. package/node_modules/@turf/boolean-within/package.json +13 -13
  115. package/node_modules/@turf/buffer/README.md +3 -3
  116. package/node_modules/@turf/buffer/dist/cjs/index.cjs +2 -2
  117. package/node_modules/@turf/buffer/dist/cjs/index.cjs.map +1 -1
  118. package/node_modules/@turf/buffer/dist/esm/index.js +2 -2
  119. package/node_modules/@turf/buffer/dist/esm/index.js.map +1 -1
  120. package/node_modules/@turf/buffer/package.json +13 -13
  121. package/node_modules/@turf/center/dist/cjs/index.cjs +2 -2
  122. package/node_modules/@turf/center/dist/cjs/index.cjs.map +1 -1
  123. package/node_modules/@turf/center/dist/esm/index.js +2 -2
  124. package/node_modules/@turf/center/dist/esm/index.js.map +1 -1
  125. package/node_modules/@turf/center/package.json +13 -13
  126. package/node_modules/@turf/center-mean/dist/cjs/index.cjs +2 -2
  127. package/node_modules/@turf/center-mean/dist/cjs/index.cjs.map +1 -1
  128. package/node_modules/@turf/center-mean/dist/esm/index.js +2 -2
  129. package/node_modules/@turf/center-mean/dist/esm/index.js.map +1 -1
  130. package/node_modules/@turf/center-mean/package.json +14 -14
  131. package/node_modules/@turf/center-median/dist/cjs/index.cjs +2 -2
  132. package/node_modules/@turf/center-median/dist/cjs/index.cjs.map +1 -1
  133. package/node_modules/@turf/center-median/dist/esm/index.js +2 -2
  134. package/node_modules/@turf/center-median/dist/esm/index.js.map +1 -1
  135. package/node_modules/@turf/center-median/package.json +17 -17
  136. package/node_modules/@turf/center-of-mass/dist/cjs/index.cjs +2 -2
  137. package/node_modules/@turf/center-of-mass/dist/cjs/index.cjs.map +1 -1
  138. package/node_modules/@turf/center-of-mass/dist/esm/index.js +2 -2
  139. package/node_modules/@turf/center-of-mass/dist/esm/index.js.map +1 -1
  140. package/node_modules/@turf/center-of-mass/package.json +14 -14
  141. package/node_modules/@turf/centroid/dist/cjs/index.cjs +2 -2
  142. package/node_modules/@turf/centroid/dist/cjs/index.cjs.map +1 -1
  143. package/node_modules/@turf/centroid/dist/esm/index.js +2 -2
  144. package/node_modules/@turf/centroid/dist/esm/index.js.map +1 -1
  145. package/node_modules/@turf/centroid/package.json +11 -11
  146. package/node_modules/@turf/circle/README.md +13 -13
  147. package/node_modules/@turf/circle/dist/cjs/index.cjs +2 -2
  148. package/node_modules/@turf/circle/dist/cjs/index.cjs.map +1 -1
  149. package/node_modules/@turf/circle/dist/cjs/index.d.cts +2 -2
  150. package/node_modules/@turf/circle/dist/esm/index.d.ts +2 -2
  151. package/node_modules/@turf/circle/dist/esm/index.js +2 -2
  152. package/node_modules/@turf/circle/dist/esm/index.js.map +1 -1
  153. package/node_modules/@turf/circle/package.json +11 -11
  154. package/node_modules/@turf/clean-coords/dist/cjs/index.cjs +33 -49
  155. package/node_modules/@turf/clean-coords/dist/cjs/index.cjs.map +1 -1
  156. package/node_modules/@turf/clean-coords/dist/esm/index.js +33 -49
  157. package/node_modules/@turf/clean-coords/dist/esm/index.js.map +1 -1
  158. package/node_modules/@turf/clean-coords/package.json +15 -12
  159. package/node_modules/@turf/clone/dist/cjs/index.cjs +2 -2
  160. package/node_modules/@turf/clone/dist/cjs/index.cjs.map +1 -1
  161. package/node_modules/@turf/clone/dist/esm/index.js +2 -2
  162. package/node_modules/@turf/clone/dist/esm/index.js.map +1 -1
  163. package/node_modules/@turf/clone/package.json +9 -9
  164. package/node_modules/@turf/clusters/package.json +9 -9
  165. package/node_modules/@turf/clusters-dbscan/README.md +2 -2
  166. package/node_modules/@turf/clusters-dbscan/dist/cjs/index.cjs +3 -8
  167. package/node_modules/@turf/clusters-dbscan/dist/cjs/index.cjs.map +1 -1
  168. package/node_modules/@turf/clusters-dbscan/dist/cjs/index.d.cts +1 -1
  169. package/node_modules/@turf/clusters-dbscan/dist/esm/index.d.ts +1 -1
  170. package/node_modules/@turf/clusters-dbscan/dist/esm/index.js +4 -9
  171. package/node_modules/@turf/clusters-dbscan/dist/esm/index.js.map +1 -1
  172. package/node_modules/@turf/clusters-dbscan/package.json +15 -15
  173. package/node_modules/@turf/clusters-kmeans/dist/cjs/index.cjs +2 -2
  174. package/node_modules/@turf/clusters-kmeans/dist/cjs/index.cjs.map +1 -1
  175. package/node_modules/@turf/clusters-kmeans/dist/cjs/index.d.cts +1 -1
  176. package/node_modules/@turf/clusters-kmeans/dist/esm/index.d.ts +1 -1
  177. package/node_modules/@turf/clusters-kmeans/dist/esm/index.js +2 -2
  178. package/node_modules/@turf/clusters-kmeans/dist/esm/index.js.map +1 -1
  179. package/node_modules/@turf/clusters-kmeans/package.json +15 -15
  180. package/node_modules/@turf/collect/dist/cjs/index.cjs +3 -8
  181. package/node_modules/@turf/collect/dist/cjs/index.cjs.map +1 -1
  182. package/node_modules/@turf/collect/dist/esm/index.js +3 -8
  183. package/node_modules/@turf/collect/dist/esm/index.js.map +1 -1
  184. package/node_modules/@turf/collect/package.json +11 -11
  185. package/node_modules/@turf/combine/dist/cjs/index.cjs +2 -2
  186. package/node_modules/@turf/combine/dist/cjs/index.cjs.map +1 -1
  187. package/node_modules/@turf/combine/dist/esm/index.js +2 -2
  188. package/node_modules/@turf/combine/dist/esm/index.js.map +1 -1
  189. package/node_modules/@turf/combine/package.json +9 -9
  190. package/node_modules/@turf/concave/README.md +2 -2
  191. package/node_modules/@turf/concave/dist/cjs/index.cjs +2 -2
  192. package/node_modules/@turf/concave/dist/cjs/index.cjs.map +1 -1
  193. package/node_modules/@turf/concave/dist/cjs/index.d.cts +1 -1
  194. package/node_modules/@turf/concave/dist/esm/index.d.ts +1 -1
  195. package/node_modules/@turf/concave/dist/esm/index.js +2 -2
  196. package/node_modules/@turf/concave/dist/esm/index.js.map +1 -1
  197. package/node_modules/@turf/concave/package.json +14 -14
  198. package/node_modules/@turf/convex/dist/cjs/index.cjs +2 -2
  199. package/node_modules/@turf/convex/dist/cjs/index.cjs.map +1 -1
  200. package/node_modules/@turf/convex/dist/esm/index.js +2 -2
  201. package/node_modules/@turf/convex/dist/esm/index.js.map +1 -1
  202. package/node_modules/@turf/convex/package.json +11 -11
  203. package/node_modules/@turf/destination/README.md +2 -2
  204. package/node_modules/@turf/destination/dist/cjs/index.cjs +5 -2
  205. package/node_modules/@turf/destination/dist/cjs/index.cjs.map +1 -1
  206. package/node_modules/@turf/destination/dist/cjs/index.d.cts +1 -1
  207. package/node_modules/@turf/destination/dist/esm/index.d.ts +1 -1
  208. package/node_modules/@turf/destination/dist/esm/index.js +5 -2
  209. package/node_modules/@turf/destination/dist/esm/index.js.map +1 -1
  210. package/node_modules/@turf/destination/package.json +14 -11
  211. package/node_modules/@turf/difference/dist/cjs/index.cjs +2 -2
  212. package/node_modules/@turf/difference/dist/cjs/index.cjs.map +1 -1
  213. package/node_modules/@turf/difference/dist/esm/index.js +2 -2
  214. package/node_modules/@turf/difference/dist/esm/index.js.map +1 -1
  215. package/node_modules/@turf/difference/package.json +11 -11
  216. package/node_modules/@turf/dissolve/dist/cjs/index.cjs +2 -2
  217. package/node_modules/@turf/dissolve/dist/cjs/index.cjs.map +1 -1
  218. package/node_modules/@turf/dissolve/dist/esm/index.js +2 -2
  219. package/node_modules/@turf/dissolve/dist/esm/index.js.map +1 -1
  220. package/node_modules/@turf/dissolve/package.json +12 -12
  221. package/node_modules/@turf/distance/README.md +2 -2
  222. package/node_modules/@turf/distance/dist/cjs/index.cjs +2 -2
  223. package/node_modules/@turf/distance/dist/cjs/index.cjs.map +1 -1
  224. package/node_modules/@turf/distance/dist/cjs/index.d.cts +1 -1
  225. package/node_modules/@turf/distance/dist/esm/index.d.ts +1 -1
  226. package/node_modules/@turf/distance/dist/esm/index.js +2 -2
  227. package/node_modules/@turf/distance/dist/esm/index.js.map +1 -1
  228. package/node_modules/@turf/distance/package.json +10 -10
  229. package/node_modules/@turf/distance-weight/dist/cjs/index.cjs +2 -2
  230. package/node_modules/@turf/distance-weight/dist/cjs/index.cjs.map +1 -1
  231. package/node_modules/@turf/distance-weight/dist/esm/index.js +2 -2
  232. package/node_modules/@turf/distance-weight/dist/esm/index.js.map +1 -1
  233. package/node_modules/@turf/distance-weight/package.json +12 -12
  234. package/node_modules/@turf/ellipse/README.md +2 -2
  235. package/node_modules/@turf/ellipse/dist/cjs/index.cjs +62 -39
  236. package/node_modules/@turf/ellipse/dist/cjs/index.cjs.map +1 -1
  237. package/node_modules/@turf/ellipse/dist/cjs/index.d.cts +1 -1
  238. package/node_modules/@turf/ellipse/dist/esm/index.d.ts +1 -1
  239. package/node_modules/@turf/ellipse/dist/esm/index.js +64 -41
  240. package/node_modules/@turf/ellipse/dist/esm/index.js.map +1 -1
  241. package/node_modules/@turf/ellipse/package.json +21 -18
  242. package/node_modules/@turf/envelope/dist/cjs/index.cjs +2 -2
  243. package/node_modules/@turf/envelope/dist/cjs/index.cjs.map +1 -1
  244. package/node_modules/@turf/envelope/dist/esm/index.js +2 -2
  245. package/node_modules/@turf/envelope/dist/esm/index.js.map +1 -1
  246. package/node_modules/@turf/envelope/package.json +10 -10
  247. package/node_modules/@turf/explode/dist/cjs/index.cjs +2 -2
  248. package/node_modules/@turf/explode/dist/cjs/index.cjs.map +1 -1
  249. package/node_modules/@turf/explode/dist/esm/index.js +2 -2
  250. package/node_modules/@turf/explode/dist/esm/index.js.map +1 -1
  251. package/node_modules/@turf/explode/package.json +10 -10
  252. package/node_modules/@turf/flatten/dist/cjs/index.cjs +2 -2
  253. package/node_modules/@turf/flatten/dist/cjs/index.cjs.map +1 -1
  254. package/node_modules/@turf/flatten/dist/esm/index.js +2 -2
  255. package/node_modules/@turf/flatten/dist/esm/index.js.map +1 -1
  256. package/node_modules/@turf/flatten/package.json +10 -10
  257. package/node_modules/@turf/flip/dist/cjs/index.cjs +2 -2
  258. package/node_modules/@turf/flip/dist/cjs/index.cjs.map +1 -1
  259. package/node_modules/@turf/flip/dist/esm/index.js +2 -2
  260. package/node_modules/@turf/flip/dist/esm/index.js.map +1 -1
  261. package/node_modules/@turf/flip/package.json +11 -11
  262. package/node_modules/@turf/geojson-rbush/dist/cjs/index.cjs +2 -2
  263. package/node_modules/@turf/geojson-rbush/dist/cjs/index.cjs.map +1 -1
  264. package/node_modules/@turf/geojson-rbush/dist/esm/index.js +2 -2
  265. package/node_modules/@turf/geojson-rbush/dist/esm/index.js.map +1 -1
  266. package/node_modules/@turf/geojson-rbush/package.json +12 -12
  267. package/node_modules/@turf/great-circle/dist/cjs/index.cjs +3 -3
  268. package/node_modules/@turf/great-circle/dist/cjs/index.cjs.map +1 -1
  269. package/node_modules/@turf/great-circle/dist/esm/index.js +3 -3
  270. package/node_modules/@turf/great-circle/dist/esm/index.js.map +1 -1
  271. package/node_modules/@turf/great-circle/package.json +10 -10
  272. package/node_modules/@turf/helpers/README.md +1 -1
  273. package/node_modules/@turf/helpers/dist/cjs/index.cjs.map +1 -1
  274. package/node_modules/@turf/helpers/dist/cjs/index.d.cts +1 -1
  275. package/node_modules/@turf/helpers/dist/esm/index.d.ts +1 -1
  276. package/node_modules/@turf/helpers/dist/esm/index.js.map +1 -1
  277. package/node_modules/@turf/helpers/package.json +7 -7
  278. package/node_modules/@turf/hex-grid/README.md +7 -5
  279. package/node_modules/@turf/hex-grid/dist/cjs/index.cjs +2 -2
  280. package/node_modules/@turf/hex-grid/dist/cjs/index.cjs.map +1 -1
  281. package/node_modules/@turf/hex-grid/dist/cjs/index.d.cts +4 -4
  282. package/node_modules/@turf/hex-grid/dist/esm/index.d.ts +4 -4
  283. package/node_modules/@turf/hex-grid/dist/esm/index.js +2 -2
  284. package/node_modules/@turf/hex-grid/dist/esm/index.js.map +1 -1
  285. package/node_modules/@turf/hex-grid/package.json +14 -14
  286. package/node_modules/@turf/interpolate/README.md +7 -5
  287. package/node_modules/@turf/interpolate/dist/cjs/index.cjs +2 -2
  288. package/node_modules/@turf/interpolate/dist/cjs/index.cjs.map +1 -1
  289. package/node_modules/@turf/interpolate/dist/esm/index.js +2 -2
  290. package/node_modules/@turf/interpolate/dist/esm/index.js.map +1 -1
  291. package/node_modules/@turf/interpolate/package.json +19 -19
  292. package/node_modules/@turf/intersect/dist/cjs/index.cjs +2 -2
  293. package/node_modules/@turf/intersect/dist/cjs/index.cjs.map +1 -1
  294. package/node_modules/@turf/intersect/dist/esm/index.js +2 -2
  295. package/node_modules/@turf/intersect/dist/esm/index.js.map +1 -1
  296. package/node_modules/@turf/intersect/package.json +11 -11
  297. package/node_modules/@turf/invariant/package.json +8 -8
  298. package/node_modules/@turf/isobands/README.md +1 -1
  299. package/node_modules/@turf/isobands/dist/cjs/index.cjs +313 -9
  300. package/node_modules/@turf/isobands/dist/cjs/index.cjs.map +1 -1
  301. package/node_modules/@turf/isobands/dist/cjs/index.d.cts +1 -1
  302. package/node_modules/@turf/isobands/dist/esm/index.d.ts +1 -1
  303. package/node_modules/@turf/isobands/dist/esm/index.js +313 -9
  304. package/node_modules/@turf/isobands/dist/esm/index.js.map +1 -1
  305. package/node_modules/@turf/isobands/package.json +22 -22
  306. package/node_modules/@turf/isolines/README.md +1 -1
  307. package/node_modules/@turf/isolines/dist/cjs/index.cjs +192 -7
  308. package/node_modules/@turf/isolines/dist/cjs/index.cjs.map +1 -1
  309. package/node_modules/@turf/isolines/dist/cjs/index.d.cts +1 -1
  310. package/node_modules/@turf/isolines/dist/esm/index.d.ts +1 -1
  311. package/node_modules/@turf/isolines/dist/esm/index.js +192 -7
  312. package/node_modules/@turf/isolines/dist/esm/index.js.map +1 -1
  313. package/node_modules/@turf/isolines/package.json +19 -19
  314. package/node_modules/@turf/kinks/dist/cjs/index.cjs +2 -2
  315. package/node_modules/@turf/kinks/dist/cjs/index.cjs.map +1 -1
  316. package/node_modules/@turf/kinks/dist/esm/index.js +2 -2
  317. package/node_modules/@turf/kinks/dist/esm/index.js.map +1 -1
  318. package/node_modules/@turf/kinks/package.json +10 -10
  319. package/node_modules/@turf/length/README.md +2 -2
  320. package/node_modules/@turf/length/dist/cjs/index.cjs +2 -2
  321. package/node_modules/@turf/length/dist/cjs/index.cjs.map +1 -1
  322. package/node_modules/@turf/length/dist/cjs/index.d.cts +1 -1
  323. package/node_modules/@turf/length/dist/esm/index.d.ts +1 -1
  324. package/node_modules/@turf/length/dist/esm/index.js +2 -2
  325. package/node_modules/@turf/length/dist/esm/index.js.map +1 -1
  326. package/node_modules/@turf/length/package.json +11 -11
  327. package/node_modules/@turf/line-arc/README.md +2 -2
  328. package/node_modules/@turf/line-arc/dist/cjs/index.cjs +2 -2
  329. package/node_modules/@turf/line-arc/dist/cjs/index.cjs.map +1 -1
  330. package/node_modules/@turf/line-arc/dist/cjs/index.d.cts +1 -1
  331. package/node_modules/@turf/line-arc/dist/esm/index.d.ts +1 -1
  332. package/node_modules/@turf/line-arc/dist/esm/index.js +2 -2
  333. package/node_modules/@turf/line-arc/dist/esm/index.js.map +1 -1
  334. package/node_modules/@turf/line-arc/package.json +12 -12
  335. package/node_modules/@turf/line-chunk/README.md +2 -2
  336. package/node_modules/@turf/line-chunk/dist/cjs/index.cjs +2 -2
  337. package/node_modules/@turf/line-chunk/dist/cjs/index.cjs.map +1 -1
  338. package/node_modules/@turf/line-chunk/dist/esm/index.js +2 -2
  339. package/node_modules/@turf/line-chunk/dist/esm/index.js.map +1 -1
  340. package/node_modules/@turf/line-chunk/package.json +12 -12
  341. package/node_modules/@turf/line-intersect/dist/cjs/index.cjs +2 -2
  342. package/node_modules/@turf/line-intersect/dist/cjs/index.cjs.map +1 -1
  343. package/node_modules/@turf/line-intersect/dist/esm/index.js +2 -2
  344. package/node_modules/@turf/line-intersect/dist/esm/index.js.map +1 -1
  345. package/node_modules/@turf/line-intersect/package.json +10 -10
  346. package/node_modules/@turf/line-offset/README.md +2 -2
  347. package/node_modules/@turf/line-offset/dist/cjs/index.cjs +2 -2
  348. package/node_modules/@turf/line-offset/dist/cjs/index.cjs.map +1 -1
  349. package/node_modules/@turf/line-offset/dist/esm/index.js +2 -2
  350. package/node_modules/@turf/line-offset/dist/esm/index.js.map +1 -1
  351. package/node_modules/@turf/line-offset/package.json +11 -11
  352. package/node_modules/@turf/line-overlap/dist/cjs/index.cjs +2 -2
  353. package/node_modules/@turf/line-overlap/dist/cjs/index.cjs.map +1 -1
  354. package/node_modules/@turf/line-overlap/dist/esm/index.js +2 -2
  355. package/node_modules/@turf/line-overlap/dist/esm/index.js.map +1 -1
  356. package/node_modules/@turf/line-overlap/package.json +15 -15
  357. package/node_modules/@turf/line-segment/dist/cjs/index.cjs +2 -2
  358. package/node_modules/@turf/line-segment/dist/cjs/index.cjs.map +1 -1
  359. package/node_modules/@turf/line-segment/dist/esm/index.js +2 -2
  360. package/node_modules/@turf/line-segment/dist/esm/index.js.map +1 -1
  361. package/node_modules/@turf/line-segment/package.json +11 -11
  362. package/node_modules/@turf/line-slice/dist/cjs/index.cjs +2 -2
  363. package/node_modules/@turf/line-slice/dist/cjs/index.cjs.map +1 -1
  364. package/node_modules/@turf/line-slice/dist/esm/index.js +2 -2
  365. package/node_modules/@turf/line-slice/dist/esm/index.js.map +1 -1
  366. package/node_modules/@turf/line-slice/package.json +11 -11
  367. package/node_modules/@turf/line-slice-along/README.md +2 -2
  368. package/node_modules/@turf/line-slice-along/dist/cjs/index.cjs +2 -2
  369. package/node_modules/@turf/line-slice-along/dist/cjs/index.cjs.map +1 -1
  370. package/node_modules/@turf/line-slice-along/dist/esm/index.js +2 -2
  371. package/node_modules/@turf/line-slice-along/dist/esm/index.js.map +1 -1
  372. package/node_modules/@turf/line-slice-along/package.json +12 -12
  373. package/node_modules/@turf/line-split/README.md +4 -1
  374. package/node_modules/@turf/line-split/dist/cjs/index.cjs +2 -7
  375. package/node_modules/@turf/line-split/dist/cjs/index.cjs.map +1 -1
  376. package/node_modules/@turf/line-split/dist/esm/index.js +2 -7
  377. package/node_modules/@turf/line-split/dist/esm/index.js.map +1 -1
  378. package/node_modules/@turf/line-split/package.json +16 -17
  379. package/node_modules/@turf/line-to-polygon/dist/cjs/index.cjs +2 -2
  380. package/node_modules/@turf/line-to-polygon/dist/cjs/index.cjs.map +1 -1
  381. package/node_modules/@turf/line-to-polygon/dist/esm/index.js +2 -2
  382. package/node_modules/@turf/line-to-polygon/dist/esm/index.js.map +1 -1
  383. package/node_modules/@turf/line-to-polygon/package.json +12 -12
  384. package/node_modules/@turf/mask/dist/cjs/index.cjs +2 -2
  385. package/node_modules/@turf/mask/dist/cjs/index.cjs.map +1 -1
  386. package/node_modules/@turf/mask/dist/esm/index.js +2 -2
  387. package/node_modules/@turf/mask/dist/esm/index.js.map +1 -1
  388. package/node_modules/@turf/mask/package.json +10 -10
  389. package/node_modules/@turf/meta/package.json +7 -7
  390. package/node_modules/@turf/midpoint/dist/cjs/index.cjs +2 -2
  391. package/node_modules/@turf/midpoint/dist/cjs/index.cjs.map +1 -1
  392. package/node_modules/@turf/midpoint/dist/esm/index.js +2 -2
  393. package/node_modules/@turf/midpoint/dist/esm/index.js.map +1 -1
  394. package/node_modules/@turf/midpoint/package.json +11 -11
  395. package/node_modules/@turf/moran-index/dist/cjs/index.cjs +2 -2
  396. package/node_modules/@turf/moran-index/dist/cjs/index.cjs.map +1 -1
  397. package/node_modules/@turf/moran-index/dist/esm/index.js +2 -2
  398. package/node_modules/@turf/moran-index/dist/esm/index.js.map +1 -1
  399. package/node_modules/@turf/moran-index/package.json +11 -11
  400. package/node_modules/@turf/nearest-neighbor-analysis/README.md +1 -1
  401. package/node_modules/@turf/nearest-neighbor-analysis/dist/cjs/index.cjs +2 -2
  402. package/node_modules/@turf/nearest-neighbor-analysis/dist/cjs/index.cjs.map +1 -1
  403. package/node_modules/@turf/nearest-neighbor-analysis/dist/cjs/index.d.cts +2 -2
  404. package/node_modules/@turf/nearest-neighbor-analysis/dist/esm/index.d.ts +2 -2
  405. package/node_modules/@turf/nearest-neighbor-analysis/dist/esm/index.js +2 -2
  406. package/node_modules/@turf/nearest-neighbor-analysis/dist/esm/index.js.map +1 -1
  407. package/node_modules/@turf/nearest-neighbor-analysis/package.json +17 -17
  408. package/node_modules/@turf/nearest-point/README.md +2 -2
  409. package/node_modules/@turf/nearest-point/dist/cjs/index.cjs +2 -2
  410. package/node_modules/@turf/nearest-point/dist/cjs/index.cjs.map +1 -1
  411. package/node_modules/@turf/nearest-point/dist/cjs/index.d.cts +6 -7
  412. package/node_modules/@turf/nearest-point/dist/esm/index.d.ts +6 -7
  413. package/node_modules/@turf/nearest-point/dist/esm/index.js +2 -2
  414. package/node_modules/@turf/nearest-point/dist/esm/index.js.map +1 -1
  415. package/node_modules/@turf/nearest-point/package.json +12 -12
  416. package/node_modules/@turf/nearest-point-on-line/README.md +6 -2
  417. package/node_modules/@turf/nearest-point-on-line/dist/cjs/index.cjs +45 -52
  418. package/node_modules/@turf/nearest-point-on-line/dist/cjs/index.cjs.map +1 -1
  419. package/node_modules/@turf/nearest-point-on-line/dist/cjs/index.d.cts +5 -1
  420. package/node_modules/@turf/nearest-point-on-line/dist/esm/index.d.ts +5 -1
  421. package/node_modules/@turf/nearest-point-on-line/dist/esm/index.js +45 -52
  422. package/node_modules/@turf/nearest-point-on-line/dist/esm/index.js.map +1 -1
  423. package/node_modules/@turf/nearest-point-on-line/package.json +20 -15
  424. package/node_modules/@turf/nearest-point-to-line/README.md +2 -2
  425. package/node_modules/@turf/nearest-point-to-line/dist/cjs/index.cjs +2 -2
  426. package/node_modules/@turf/nearest-point-to-line/dist/cjs/index.cjs.map +1 -1
  427. package/node_modules/@turf/nearest-point-to-line/dist/cjs/index.d.cts +1 -1
  428. package/node_modules/@turf/nearest-point-to-line/dist/esm/index.d.ts +1 -1
  429. package/node_modules/@turf/nearest-point-to-line/dist/esm/index.js +2 -2
  430. package/node_modules/@turf/nearest-point-to-line/dist/esm/index.js.map +1 -1
  431. package/node_modules/@turf/nearest-point-to-line/package.json +14 -14
  432. package/node_modules/@turf/planepoint/dist/cjs/index.cjs +2 -2
  433. package/node_modules/@turf/planepoint/dist/cjs/index.cjs.map +1 -1
  434. package/node_modules/@turf/planepoint/dist/esm/index.js +2 -2
  435. package/node_modules/@turf/planepoint/dist/esm/index.js.map +1 -1
  436. package/node_modules/@turf/planepoint/package.json +9 -9
  437. package/node_modules/@turf/point-grid/dist/cjs/index.cjs +2 -2
  438. package/node_modules/@turf/point-grid/dist/cjs/index.cjs.map +1 -1
  439. package/node_modules/@turf/point-grid/dist/esm/index.js +2 -2
  440. package/node_modules/@turf/point-grid/dist/esm/index.js.map +1 -1
  441. package/node_modules/@turf/point-grid/package.json +14 -14
  442. package/node_modules/@turf/point-on-feature/dist/cjs/index.cjs +2 -2
  443. package/node_modules/@turf/point-on-feature/dist/cjs/index.cjs.map +1 -1
  444. package/node_modules/@turf/point-on-feature/dist/esm/index.js +2 -2
  445. package/node_modules/@turf/point-on-feature/dist/esm/index.js.map +1 -1
  446. package/node_modules/@turf/point-on-feature/package.json +15 -15
  447. package/node_modules/@turf/point-to-line-distance/README.md +5 -4
  448. package/node_modules/@turf/point-to-line-distance/dist/cjs/index.cjs +2 -2
  449. package/node_modules/@turf/point-to-line-distance/dist/cjs/index.cjs.map +1 -1
  450. package/node_modules/@turf/point-to-line-distance/dist/cjs/index.d.cts +1 -2
  451. package/node_modules/@turf/point-to-line-distance/dist/esm/index.d.ts +1 -2
  452. package/node_modules/@turf/point-to-line-distance/dist/esm/index.js +2 -2
  453. package/node_modules/@turf/point-to-line-distance/dist/esm/index.js.map +1 -1
  454. package/node_modules/@turf/point-to-line-distance/package.json +18 -18
  455. package/node_modules/@turf/point-to-polygon-distance/dist/cjs/index.cjs +3 -3
  456. package/node_modules/@turf/point-to-polygon-distance/dist/cjs/index.cjs.map +1 -1
  457. package/node_modules/@turf/point-to-polygon-distance/dist/esm/index.js +3 -3
  458. package/node_modules/@turf/point-to-polygon-distance/dist/esm/index.js.map +1 -1
  459. package/node_modules/@turf/point-to-polygon-distance/package.json +14 -14
  460. package/node_modules/@turf/points-within-polygon/dist/cjs/index.cjs +2 -2
  461. package/node_modules/@turf/points-within-polygon/dist/cjs/index.cjs.map +1 -1
  462. package/node_modules/@turf/points-within-polygon/dist/esm/index.js +2 -2
  463. package/node_modules/@turf/points-within-polygon/dist/esm/index.js.map +1 -1
  464. package/node_modules/@turf/points-within-polygon/package.json +10 -10
  465. package/node_modules/@turf/polygon-smooth/README.md +1 -1
  466. package/node_modules/@turf/polygon-smooth/dist/cjs/index.cjs +2 -2
  467. package/node_modules/@turf/polygon-smooth/dist/cjs/index.cjs.map +1 -1
  468. package/node_modules/@turf/polygon-smooth/dist/cjs/index.d.cts +1 -1
  469. package/node_modules/@turf/polygon-smooth/dist/esm/index.d.ts +1 -1
  470. package/node_modules/@turf/polygon-smooth/dist/esm/index.js +2 -2
  471. package/node_modules/@turf/polygon-smooth/dist/esm/index.js.map +1 -1
  472. package/node_modules/@turf/polygon-smooth/package.json +11 -11
  473. package/node_modules/@turf/polygon-tangents/dist/cjs/index.cjs +2 -2
  474. package/node_modules/@turf/polygon-tangents/dist/cjs/index.cjs.map +1 -1
  475. package/node_modules/@turf/polygon-tangents/dist/esm/index.js +2 -2
  476. package/node_modules/@turf/polygon-tangents/dist/esm/index.js.map +1 -1
  477. package/node_modules/@turf/polygon-tangents/package.json +14 -14
  478. package/node_modules/@turf/polygon-to-line/dist/cjs/index.cjs +2 -2
  479. package/node_modules/@turf/polygon-to-line/dist/cjs/index.cjs.map +1 -1
  480. package/node_modules/@turf/polygon-to-line/dist/esm/index.js +2 -2
  481. package/node_modules/@turf/polygon-to-line/dist/esm/index.js.map +1 -1
  482. package/node_modules/@turf/polygon-to-line/package.json +10 -10
  483. package/node_modules/@turf/polygonize/dist/cjs/index.cjs +2 -2
  484. package/node_modules/@turf/polygonize/dist/cjs/index.cjs.map +1 -1
  485. package/node_modules/@turf/polygonize/dist/esm/index.js +2 -2
  486. package/node_modules/@turf/polygonize/dist/esm/index.js.map +1 -1
  487. package/node_modules/@turf/polygonize/package.json +13 -13
  488. package/node_modules/@turf/projection/package.json +12 -12
  489. package/node_modules/@turf/quadrat-analysis/dist/cjs/index.cjs +2 -2
  490. package/node_modules/@turf/quadrat-analysis/dist/cjs/index.cjs.map +1 -1
  491. package/node_modules/@turf/quadrat-analysis/dist/esm/index.js +2 -2
  492. package/node_modules/@turf/quadrat-analysis/dist/esm/index.js.map +1 -1
  493. package/node_modules/@turf/quadrat-analysis/package.json +18 -18
  494. package/node_modules/@turf/random/package.json +9 -9
  495. package/node_modules/@turf/rectangle-grid/dist/cjs/index.cjs +2 -2
  496. package/node_modules/@turf/rectangle-grid/dist/cjs/index.cjs.map +1 -1
  497. package/node_modules/@turf/rectangle-grid/dist/esm/index.js +2 -2
  498. package/node_modules/@turf/rectangle-grid/dist/esm/index.js.map +1 -1
  499. package/node_modules/@turf/rectangle-grid/package.json +13 -13
  500. package/node_modules/@turf/rewind/dist/cjs/index.cjs +2 -2
  501. package/node_modules/@turf/rewind/dist/cjs/index.cjs.map +1 -1
  502. package/node_modules/@turf/rewind/dist/esm/index.js +2 -2
  503. package/node_modules/@turf/rewind/dist/esm/index.js.map +1 -1
  504. package/node_modules/@turf/rewind/package.json +13 -13
  505. package/node_modules/@turf/rhumb-bearing/dist/cjs/index.cjs +2 -2
  506. package/node_modules/@turf/rhumb-bearing/dist/cjs/index.cjs.map +1 -1
  507. package/node_modules/@turf/rhumb-bearing/dist/esm/index.js +2 -2
  508. package/node_modules/@turf/rhumb-bearing/dist/esm/index.js.map +1 -1
  509. package/node_modules/@turf/rhumb-bearing/package.json +11 -11
  510. package/node_modules/@turf/rhumb-destination/README.md +2 -2
  511. package/node_modules/@turf/rhumb-destination/dist/cjs/index.cjs +2 -2
  512. package/node_modules/@turf/rhumb-destination/dist/cjs/index.cjs.map +1 -1
  513. package/node_modules/@turf/rhumb-destination/dist/cjs/index.d.cts +1 -1
  514. package/node_modules/@turf/rhumb-destination/dist/esm/index.d.ts +1 -1
  515. package/node_modules/@turf/rhumb-destination/dist/esm/index.js +2 -2
  516. package/node_modules/@turf/rhumb-destination/dist/esm/index.js.map +1 -1
  517. package/node_modules/@turf/rhumb-destination/package.json +11 -11
  518. package/node_modules/@turf/rhumb-distance/README.md +8 -9
  519. package/node_modules/@turf/rhumb-distance/dist/cjs/index.cjs +2 -2
  520. package/node_modules/@turf/rhumb-distance/dist/cjs/index.cjs.map +1 -1
  521. package/node_modules/@turf/rhumb-distance/dist/cjs/index.d.cts +2 -3
  522. package/node_modules/@turf/rhumb-distance/dist/esm/index.d.ts +2 -3
  523. package/node_modules/@turf/rhumb-distance/dist/esm/index.js +2 -2
  524. package/node_modules/@turf/rhumb-distance/dist/esm/index.js.map +1 -1
  525. package/node_modules/@turf/rhumb-distance/package.json +11 -11
  526. package/node_modules/@turf/sample/dist/cjs/index.cjs +2 -2
  527. package/node_modules/@turf/sample/dist/cjs/index.cjs.map +1 -1
  528. package/node_modules/@turf/sample/dist/esm/index.js +2 -2
  529. package/node_modules/@turf/sample/dist/esm/index.js.map +1 -1
  530. package/node_modules/@turf/sample/package.json +8 -8
  531. package/node_modules/@turf/sector/README.md +2 -2
  532. package/node_modules/@turf/sector/dist/cjs/index.cjs +2 -2
  533. package/node_modules/@turf/sector/dist/cjs/index.cjs.map +1 -1
  534. package/node_modules/@turf/sector/dist/cjs/index.d.cts +1 -1
  535. package/node_modules/@turf/sector/dist/esm/index.d.ts +1 -1
  536. package/node_modules/@turf/sector/dist/esm/index.js +2 -2
  537. package/node_modules/@turf/sector/dist/esm/index.js.map +1 -1
  538. package/node_modules/@turf/sector/package.json +14 -14
  539. package/node_modules/@turf/shortest-path/README.md +5 -3
  540. package/node_modules/@turf/shortest-path/dist/cjs/index.cjs +10 -14
  541. package/node_modules/@turf/shortest-path/dist/cjs/index.cjs.map +1 -1
  542. package/node_modules/@turf/shortest-path/dist/cjs/index.d.cts +1 -1
  543. package/node_modules/@turf/shortest-path/dist/esm/index.d.ts +1 -1
  544. package/node_modules/@turf/shortest-path/dist/esm/index.js +10 -14
  545. package/node_modules/@turf/shortest-path/dist/esm/index.js.map +1 -1
  546. package/node_modules/@turf/shortest-path/package.json +20 -19
  547. package/node_modules/@turf/simplify/README.md +13 -13
  548. package/node_modules/@turf/simplify/dist/cjs/index.cjs +6 -3
  549. package/node_modules/@turf/simplify/dist/cjs/index.cjs.map +1 -1
  550. package/node_modules/@turf/simplify/dist/cjs/index.d.cts +11 -12
  551. package/node_modules/@turf/simplify/dist/esm/index.d.ts +11 -12
  552. package/node_modules/@turf/simplify/dist/esm/index.js +6 -3
  553. package/node_modules/@turf/simplify/dist/esm/index.js.map +1 -1
  554. package/node_modules/@turf/simplify/package.json +13 -13
  555. package/node_modules/@turf/square/dist/cjs/index.cjs +2 -2
  556. package/node_modules/@turf/square/dist/cjs/index.cjs.map +1 -1
  557. package/node_modules/@turf/square/dist/esm/index.js +2 -2
  558. package/node_modules/@turf/square/dist/esm/index.js.map +1 -1
  559. package/node_modules/@turf/square/package.json +9 -9
  560. package/node_modules/@turf/square-grid/dist/cjs/index.cjs +2 -2
  561. package/node_modules/@turf/square-grid/dist/cjs/index.cjs.map +1 -1
  562. package/node_modules/@turf/square-grid/dist/esm/index.js +2 -2
  563. package/node_modules/@turf/square-grid/dist/esm/index.js.map +1 -1
  564. package/node_modules/@turf/square-grid/package.json +12 -12
  565. package/node_modules/@turf/standard-deviational-ellipse/dist/cjs/index.cjs +2 -2
  566. package/node_modules/@turf/standard-deviational-ellipse/dist/cjs/index.cjs.map +1 -1
  567. package/node_modules/@turf/standard-deviational-ellipse/dist/cjs/index.d.cts +1 -1
  568. package/node_modules/@turf/standard-deviational-ellipse/dist/esm/index.d.ts +1 -1
  569. package/node_modules/@turf/standard-deviational-ellipse/dist/esm/index.js +2 -2
  570. package/node_modules/@turf/standard-deviational-ellipse/dist/esm/index.js.map +1 -1
  571. package/node_modules/@turf/standard-deviational-ellipse/package.json +16 -16
  572. package/node_modules/@turf/tag/dist/cjs/index.cjs +2 -2
  573. package/node_modules/@turf/tag/dist/cjs/index.cjs.map +1 -1
  574. package/node_modules/@turf/tag/dist/esm/index.js +2 -2
  575. package/node_modules/@turf/tag/dist/esm/index.js.map +1 -1
  576. package/node_modules/@turf/tag/package.json +11 -11
  577. package/node_modules/@turf/tesselate/dist/cjs/index.cjs +2 -2
  578. package/node_modules/@turf/tesselate/dist/cjs/index.cjs.map +1 -1
  579. package/node_modules/@turf/tesselate/dist/esm/index.js +2 -2
  580. package/node_modules/@turf/tesselate/dist/esm/index.js.map +1 -1
  581. package/node_modules/@turf/tesselate/package.json +8 -8
  582. package/node_modules/@turf/tin/dist/cjs/index.cjs +2 -2
  583. package/node_modules/@turf/tin/dist/cjs/index.cjs.map +1 -1
  584. package/node_modules/@turf/tin/dist/esm/index.js +2 -2
  585. package/node_modules/@turf/tin/dist/esm/index.js.map +1 -1
  586. package/node_modules/@turf/tin/package.json +8 -8
  587. package/node_modules/@turf/transform-rotate/dist/cjs/index.cjs +2 -2
  588. package/node_modules/@turf/transform-rotate/dist/cjs/index.cjs.map +1 -1
  589. package/node_modules/@turf/transform-rotate/dist/esm/index.js +2 -2
  590. package/node_modules/@turf/transform-rotate/dist/esm/index.js.map +1 -1
  591. package/node_modules/@turf/transform-rotate/package.json +17 -17
  592. package/node_modules/@turf/transform-scale/dist/cjs/index.cjs +2 -2
  593. package/node_modules/@turf/transform-scale/dist/cjs/index.cjs.map +1 -1
  594. package/node_modules/@turf/transform-scale/dist/esm/index.js +2 -2
  595. package/node_modules/@turf/transform-scale/dist/esm/index.js.map +1 -1
  596. package/node_modules/@turf/transform-scale/package.json +21 -21
  597. package/node_modules/@turf/transform-translate/README.md +8 -3
  598. package/node_modules/@turf/transform-translate/dist/cjs/index.cjs +2 -2
  599. package/node_modules/@turf/transform-translate/dist/cjs/index.cjs.map +1 -1
  600. package/node_modules/@turf/transform-translate/dist/cjs/index.d.cts +4 -1
  601. package/node_modules/@turf/transform-translate/dist/esm/index.d.ts +4 -1
  602. package/node_modules/@turf/transform-translate/dist/esm/index.js +2 -2
  603. package/node_modules/@turf/transform-translate/dist/esm/index.js.map +1 -1
  604. package/node_modules/@turf/transform-translate/package.json +14 -14
  605. package/node_modules/@turf/triangle-grid/dist/cjs/index.cjs +2 -2
  606. package/node_modules/@turf/triangle-grid/dist/cjs/index.cjs.map +1 -1
  607. package/node_modules/@turf/triangle-grid/dist/esm/index.js +2 -2
  608. package/node_modules/@turf/triangle-grid/dist/esm/index.js.map +1 -1
  609. package/node_modules/@turf/triangle-grid/package.json +13 -13
  610. package/node_modules/@turf/truncate/dist/cjs/index.cjs +2 -2
  611. package/node_modules/@turf/truncate/dist/cjs/index.cjs.map +1 -1
  612. package/node_modules/@turf/truncate/dist/esm/index.js +2 -2
  613. package/node_modules/@turf/truncate/dist/esm/index.js.map +1 -1
  614. package/node_modules/@turf/truncate/package.json +10 -10
  615. package/node_modules/@turf/turf/package.json +125 -125
  616. package/node_modules/@turf/turf/turf.min.js +2 -11
  617. package/node_modules/@turf/union/dist/cjs/index.cjs +2 -2
  618. package/node_modules/@turf/union/dist/cjs/index.cjs.map +1 -1
  619. package/node_modules/@turf/union/dist/esm/index.js +2 -2
  620. package/node_modules/@turf/union/dist/esm/index.js.map +1 -1
  621. package/node_modules/@turf/union/package.json +11 -11
  622. package/node_modules/@turf/unkink-polygon/dist/cjs/index.cjs +2 -2
  623. package/node_modules/@turf/unkink-polygon/dist/cjs/index.cjs.map +1 -1
  624. package/node_modules/@turf/unkink-polygon/dist/esm/index.js +2 -2
  625. package/node_modules/@turf/unkink-polygon/dist/esm/index.js.map +1 -1
  626. package/node_modules/@turf/unkink-polygon/package.json +13 -13
  627. package/node_modules/@turf/voronoi/dist/cjs/index.cjs +2 -2
  628. package/node_modules/@turf/voronoi/dist/cjs/index.cjs.map +1 -1
  629. package/node_modules/@turf/voronoi/dist/esm/index.js +2 -2
  630. package/node_modules/@turf/voronoi/dist/esm/index.js.map +1 -1
  631. package/node_modules/@turf/voronoi/package.json +12 -12
  632. package/node_modules/@types/node/README.md +2 -2
  633. package/node_modules/@types/node/assert/strict.d.ts +105 -2
  634. package/node_modules/@types/node/assert.d.ts +162 -101
  635. package/node_modules/@types/node/async_hooks.d.ts +26 -6
  636. package/node_modules/@types/node/buffer.buffer.d.ts +9 -0
  637. package/node_modules/@types/node/buffer.d.ts +15 -7
  638. package/node_modules/@types/node/child_process.d.ts +91 -164
  639. package/node_modules/@types/node/cluster.d.ts +19 -20
  640. package/node_modules/@types/node/console.d.ts +19 -18
  641. package/node_modules/@types/node/crypto.d.ts +1264 -356
  642. package/node_modules/@types/node/dgram.d.ts +10 -9
  643. package/node_modules/@types/node/diagnostics_channel.d.ts +18 -15
  644. package/node_modules/@types/node/dns/promises.d.ts +36 -9
  645. package/node_modules/@types/node/dns.d.ts +95 -37
  646. package/node_modules/@types/node/domain.d.ts +1 -1
  647. package/node_modules/@types/node/events.d.ts +81 -36
  648. package/node_modules/@types/node/fs/promises.d.ts +104 -59
  649. package/node_modules/@types/node/fs.d.ts +414 -137
  650. package/node_modules/@types/node/globals.d.ts +149 -350
  651. package/node_modules/@types/node/globals.typedarray.d.ts +20 -0
  652. package/node_modules/@types/node/http.d.ts +191 -37
  653. package/node_modules/@types/node/http2.d.ts +266 -67
  654. package/node_modules/@types/node/https.d.ts +97 -63
  655. package/node_modules/@types/node/index.d.ts +16 -7
  656. package/node_modules/@types/node/inspector.d.ts +206 -3931
  657. package/node_modules/@types/node/inspector.generated.d.ts +4233 -0
  658. package/node_modules/@types/node/module.d.ts +153 -31
  659. package/node_modules/@types/node/net.d.ts +36 -17
  660. package/node_modules/@types/node/os.d.ts +22 -10
  661. package/node_modules/@types/node/package.json +14 -84
  662. package/node_modules/@types/node/path.d.ts +1 -1
  663. package/node_modules/@types/node/perf_hooks.d.ts +30 -18
  664. package/node_modules/@types/node/process.d.ts +40 -34
  665. package/node_modules/@types/node/punycode.d.ts +1 -1
  666. package/node_modules/@types/node/querystring.d.ts +1 -1
  667. package/node_modules/@types/node/readline/promises.d.ts +1 -2
  668. package/node_modules/@types/node/readline.d.ts +13 -13
  669. package/node_modules/@types/node/repl.d.ts +25 -17
  670. package/node_modules/@types/node/sea.d.ts +10 -1
  671. package/node_modules/@types/node/sqlite.d.ts +438 -9
  672. package/node_modules/@types/node/stream/consumers.d.ts +2 -2
  673. package/node_modules/@types/node/stream/web.d.ts +13 -54
  674. package/node_modules/@types/node/stream.d.ts +68 -47
  675. package/node_modules/@types/node/string_decoder.d.ts +3 -3
  676. package/node_modules/@types/node/test.d.ts +2034 -1975
  677. package/node_modules/@types/node/timers/promises.d.ts +1 -1
  678. package/node_modules/@types/node/timers.d.ts +1 -3
  679. package/node_modules/@types/node/tls.d.ts +124 -114
  680. package/node_modules/@types/node/trace_events.d.ts +6 -6
  681. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +10 -2
  682. package/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  683. package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +17 -0
  684. package/node_modules/@types/node/ts5.6/index.d.ts +18 -7
  685. package/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  686. package/node_modules/@types/node/ts5.7/index.d.ts +103 -0
  687. package/node_modules/@types/node/tty.d.ts +1 -1
  688. package/node_modules/@types/node/url.d.ts +119 -34
  689. package/node_modules/@types/node/util.d.ts +46 -305
  690. package/node_modules/@types/node/v8.d.ts +100 -37
  691. package/node_modules/@types/node/vm.d.ts +299 -110
  692. package/node_modules/@types/node/wasi.d.ts +23 -2
  693. package/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  694. package/node_modules/@types/node/web-globals/crypto.d.ts +32 -0
  695. package/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  696. package/node_modules/@types/node/web-globals/events.d.ts +97 -0
  697. package/node_modules/@types/node/web-globals/fetch.d.ts +50 -0
  698. package/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  699. package/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  700. package/node_modules/@types/node/web-globals/streams.d.ts +22 -0
  701. package/node_modules/@types/node/worker_threads.d.ts +225 -75
  702. package/node_modules/@types/node/zlib.d.ts +44 -33
  703. package/node_modules/axios/CHANGELOG.md +410 -288
  704. package/node_modules/axios/README.md +156 -51
  705. package/node_modules/axios/dist/axios.js +471 -330
  706. package/node_modules/axios/dist/axios.js.map +1 -1
  707. package/node_modules/axios/dist/axios.min.js +2 -2
  708. package/node_modules/axios/dist/axios.min.js.map +1 -1
  709. package/node_modules/axios/dist/browser/axios.cjs +407 -265
  710. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  711. package/node_modules/axios/dist/esm/axios.js +407 -265
  712. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  713. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  714. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  715. package/node_modules/axios/dist/node/axios.cjs +723 -305
  716. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  717. package/node_modules/axios/index.d.cts +16 -5
  718. package/node_modules/axios/index.d.ts +17 -4
  719. package/node_modules/axios/lib/adapters/adapters.js +89 -42
  720. package/node_modules/axios/lib/adapters/fetch.js +221 -162
  721. package/node_modules/axios/lib/adapters/http.js +242 -42
  722. package/node_modules/axios/lib/adapters/xhr.js +11 -8
  723. package/node_modules/axios/lib/core/Axios.js +0 -2
  724. package/node_modules/axios/lib/core/AxiosError.js +10 -3
  725. package/node_modules/axios/lib/core/InterceptorManager.js +1 -1
  726. package/node_modules/axios/lib/core/dispatchRequest.js +1 -1
  727. package/node_modules/axios/lib/core/mergeConfig.js +4 -4
  728. package/node_modules/axios/lib/defaults/index.js +1 -1
  729. package/node_modules/axios/lib/env/data.js +1 -1
  730. package/node_modules/axios/lib/helpers/HttpStatusCode.js +6 -0
  731. package/node_modules/axios/lib/helpers/bind.js +7 -0
  732. package/node_modules/axios/lib/helpers/buildURL.js +1 -3
  733. package/node_modules/axios/lib/helpers/cookies.js +24 -13
  734. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +73 -0
  735. package/node_modules/axios/lib/helpers/resolveConfig.js +13 -9
  736. package/node_modules/axios/lib/utils.js +5 -3
  737. package/node_modules/axios/package.json +26 -15
  738. package/node_modules/bignumber.js/CHANGELOG.md +6 -1
  739. package/node_modules/bignumber.js/README.md +5 -4
  740. package/node_modules/bignumber.js/bignumber.js +2 -2
  741. package/node_modules/bignumber.js/bignumber.mjs +2 -2
  742. package/node_modules/bignumber.js/package.json +1 -1
  743. package/node_modules/fast-xml-parser/CHANGELOG.md +9 -0
  744. package/node_modules/fast-xml-parser/README.md +1 -1
  745. package/node_modules/fast-xml-parser/lib/fxp.cjs +1 -1
  746. package/node_modules/fast-xml-parser/lib/fxp.d.cts +1 -1
  747. package/node_modules/fast-xml-parser/lib/fxp.min.js +1 -1
  748. package/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -1
  749. package/node_modules/fast-xml-parser/lib/fxparser.min.js +1 -1
  750. package/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -1
  751. package/node_modules/fast-xml-parser/package.json +1 -1
  752. package/node_modules/fast-xml-parser/src/fxp.d.ts +2 -2
  753. package/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsMinArrBuilder.js +1 -1
  754. package/node_modules/fast-xml-parser/src/v6/OutputBuilders/ParserOptionsBuilder.js +4 -4
  755. package/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +297 -287
  756. package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +24 -12
  757. package/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +4 -4
  758. package/node_modules/follow-redirects/package.json +1 -1
  759. package/node_modules/form-data/CHANGELOG.md +60 -2
  760. package/node_modules/form-data/README.md +4 -4
  761. package/node_modules/form-data/lib/form_data.js +2 -2
  762. package/node_modules/form-data/package.json +4 -4
  763. package/node_modules/protobufjs/dist/light/protobuf.js +2 -2
  764. package/node_modules/protobufjs/dist/light/protobuf.min.js +2 -2
  765. package/node_modules/protobufjs/dist/minimal/protobuf.js +2 -2
  766. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  767. package/node_modules/protobufjs/dist/protobuf.js +2 -2
  768. package/node_modules/protobufjs/dist/protobuf.min.js +2 -2
  769. package/node_modules/protobufjs/google/protobuf/descriptor.json +2 -2
  770. package/node_modules/protobufjs/google/protobuf/descriptor.proto +2 -1
  771. package/node_modules/protobufjs/package.json +1 -1
  772. package/node_modules/undici-types/agent.d.ts +12 -11
  773. package/node_modules/undici-types/api.d.ts +24 -24
  774. package/node_modules/undici-types/balanced-pool.d.ts +11 -11
  775. package/node_modules/undici-types/cache-interceptor.d.ts +172 -0
  776. package/node_modules/undici-types/client-stats.d.ts +15 -0
  777. package/node_modules/undici-types/client.d.ts +18 -18
  778. package/node_modules/undici-types/cookies.d.ts +2 -0
  779. package/node_modules/undici-types/diagnostics-channel.d.ts +18 -10
  780. package/node_modules/undici-types/dispatcher.d.ts +119 -99
  781. package/node_modules/undici-types/env-http-proxy-agent.d.ts +4 -3
  782. package/node_modules/undici-types/errors.d.ts +66 -54
  783. package/node_modules/undici-types/eventsource.d.ts +9 -4
  784. package/node_modules/undici-types/fetch.d.ts +18 -16
  785. package/node_modules/undici-types/formdata.d.ts +7 -7
  786. package/node_modules/undici-types/global-dispatcher.d.ts +4 -4
  787. package/node_modules/undici-types/global-origin.d.ts +5 -5
  788. package/node_modules/undici-types/h2c-client.d.ts +73 -0
  789. package/node_modules/undici-types/handlers.d.ts +8 -8
  790. package/node_modules/undici-types/header.d.ts +157 -1
  791. package/node_modules/undici-types/index.d.ts +56 -47
  792. package/node_modules/undici-types/interceptors.d.ts +30 -8
  793. package/node_modules/undici-types/mock-agent.d.ts +36 -18
  794. package/node_modules/undici-types/mock-call-history.d.ts +111 -0
  795. package/node_modules/undici-types/mock-client.d.ts +6 -4
  796. package/node_modules/undici-types/mock-errors.d.ts +3 -3
  797. package/node_modules/undici-types/mock-interceptor.d.ts +21 -20
  798. package/node_modules/undici-types/mock-pool.d.ts +6 -4
  799. package/node_modules/undici-types/package.json +1 -1
  800. package/node_modules/undici-types/patch.d.ts +0 -4
  801. package/node_modules/undici-types/pool-stats.d.ts +8 -8
  802. package/node_modules/undici-types/pool.d.ts +14 -12
  803. package/node_modules/undici-types/proxy-agent.d.ts +5 -4
  804. package/node_modules/undici-types/readable.d.ts +18 -15
  805. package/node_modules/undici-types/retry-agent.d.ts +1 -1
  806. package/node_modules/undici-types/retry-handler.d.ts +19 -10
  807. package/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  808. package/node_modules/undici-types/util.d.ts +3 -3
  809. package/node_modules/undici-types/utility.d.ts +7 -0
  810. package/node_modules/undici-types/webidl.d.ts +142 -29
  811. package/node_modules/undici-types/websocket.d.ts +38 -2
  812. package/node_modules/uuid/README.md +8 -19
  813. package/node_modules/uuid/dist/{esm-browser/uuid-bin.js → uuid-bin.js} +1 -1
  814. package/node_modules/uuid/dist/{esm-browser/v4.js → v4.js} +7 -4
  815. package/node_modules/uuid/{dist/esm → dist-node}/md5.js +1 -1
  816. package/node_modules/uuid/dist-node/native.js +2 -0
  817. package/node_modules/uuid/{dist/esm → dist-node}/rng.js +1 -1
  818. package/node_modules/uuid/{dist/esm → dist-node}/sha1.js +1 -1
  819. package/node_modules/uuid/{dist/esm → dist-node}/uuid-bin.js +1 -1
  820. package/node_modules/uuid/{dist/esm → dist-node}/v4.js +7 -4
  821. package/node_modules/uuid/package.json +28 -41
  822. package/package.json +7 -7
  823. package/tak-registration.bak +557 -0
  824. package/tak-registration.js +19 -19
  825. package/node_modules/@types/node/compatibility/disposable.d.ts +0 -16
  826. package/node_modules/@types/node/compatibility/index.d.ts +0 -9
  827. package/node_modules/@types/node/compatibility/indexable.d.ts +0 -23
  828. package/node_modules/@types/node/dom-events.d.ts +0 -124
  829. package/node_modules/marchingsquares/.eslintrc.json +0 -81
  830. package/node_modules/marchingsquares/Changelog.md +0 -81
  831. package/node_modules/marchingsquares/LICENSE.md +0 -37
  832. package/node_modules/marchingsquares/README.md +0 -312
  833. package/node_modules/marchingsquares/VERSION +0 -1
  834. package/node_modules/marchingsquares/agpl-3.0.txt +0 -661
  835. package/node_modules/marchingsquares/dist/marchingsquares-esm.js +0 -3410
  836. package/node_modules/marchingsquares/dist/marchingsquares-isobands.js +0 -2513
  837. package/node_modules/marchingsquares/dist/marchingsquares-isobands.min.js +0 -9
  838. package/node_modules/marchingsquares/dist/marchingsquares-isocontours.js +0 -1209
  839. package/node_modules/marchingsquares/dist/marchingsquares-isocontours.min.js +0 -9
  840. package/node_modules/marchingsquares/dist/marchingsquares-isolines.js +0 -1209
  841. package/node_modules/marchingsquares/dist/marchingsquares-isolines.min.js +0 -9
  842. package/node_modules/marchingsquares/dist/marchingsquares.js +0 -3424
  843. package/node_modules/marchingsquares/dist/marchingsquares.min.js +0 -9
  844. package/node_modules/marchingsquares/examples/contour/index.html +0 -117
  845. package/node_modules/marchingsquares/examples/editor/draw-lines.js +0 -60
  846. package/node_modules/marchingsquares/examples/editor/index.html +0 -39
  847. package/node_modules/marchingsquares/examples/editor/script.js +0 -110
  848. package/node_modules/marchingsquares/examples/editor/styles.css +0 -37
  849. package/node_modules/marchingsquares/examples/require/app.js +0 -9
  850. package/node_modules/marchingsquares/examples/require/index.html +0 -14
  851. package/node_modules/marchingsquares/examples/require/main.js +0 -98
  852. package/node_modules/marchingsquares/examples/require/require.js +0 -5
  853. package/node_modules/marchingsquares/examples/simple/index.html +0 -115
  854. package/node_modules/marchingsquares/examples/vienna/index.html +0 -229
  855. package/node_modules/marchingsquares/examples/vienna/vienna_basin.png +0 -0
  856. package/node_modules/marchingsquares/examples/vienna/vienna_data.js +0 -514
  857. package/node_modules/marchingsquares/package.json +0 -47
  858. package/node_modules/marchingsquares/rollup.config.js +0 -122
  859. package/node_modules/marchingsquares/rollup.config.test.js +0 -14
  860. package/node_modules/marchingsquares/src/interpolation.js +0 -84
  861. package/node_modules/marchingsquares/src/isobands.js +0 -1883
  862. package/node_modules/marchingsquares/src/isolines.js +0 -638
  863. package/node_modules/marchingsquares/src/main.js +0 -4
  864. package/node_modules/marchingsquares/src/options.js +0 -80
  865. package/node_modules/marchingsquares/src/polygons.js +0 -531
  866. package/node_modules/marchingsquares/src/quadtree.js +0 -228
  867. package/node_modules/marchingsquares/test/data/in/isoBands-example-case.json +0 -14
  868. package/node_modules/marchingsquares/test/data/in/isoBands-issue#6-0_3.json +0 -12
  869. package/node_modules/marchingsquares/test/data/in/isoBands-issue#6-3_5.json +0 -12
  870. package/node_modules/marchingsquares/test/data/in/isoBands-issue#6-5_7.json +0 -12
  871. package/node_modules/marchingsquares/test/data/in/isoBands-minimal.json +0 -8
  872. package/node_modules/marchingsquares/test/data/in/isoBands-simple.json +0 -9
  873. package/node_modules/marchingsquares/test/data/in/isoLines-example-case.json +0 -13
  874. package/node_modules/marchingsquares/test/data/in/isoLines-simple.json +0 -8
  875. package/node_modules/marchingsquares/test/data/out/isoBands-example-case.json +0 -72
  876. package/node_modules/marchingsquares/test/data/out/isoBands-issue#6-0_3.json +0 -9
  877. package/node_modules/marchingsquares/test/data/out/isoBands-issue#6-3_5.json +0 -36
  878. package/node_modules/marchingsquares/test/data/out/isoBands-issue#6-5_7.json +0 -8
  879. package/node_modules/marchingsquares/test/data/out/isoBands-minimal.json +0 -10
  880. package/node_modules/marchingsquares/test/data/out/isoBands-simple.json +0 -25
  881. package/node_modules/marchingsquares/test/data/out/isoLines-example-case.json +0 -481
  882. package/node_modules/marchingsquares/test/data/out/isoLines-simple.json +0 -8
  883. package/node_modules/marchingsquares/test/test.js +0 -152
  884. package/node_modules/undici-types/file.d.ts +0 -39
  885. package/node_modules/undici-types/filereader.d.ts +0 -54
  886. package/node_modules/uuid/dist/cjs/index.d.ts +0 -15
  887. package/node_modules/uuid/dist/cjs/index.js +0 -31
  888. package/node_modules/uuid/dist/cjs/max.d.ts +0 -2
  889. package/node_modules/uuid/dist/cjs/max.js +0 -3
  890. package/node_modules/uuid/dist/cjs/md5.d.ts +0 -4
  891. package/node_modules/uuid/dist/cjs/md5.js +0 -13
  892. package/node_modules/uuid/dist/cjs/native.d.ts +0 -6
  893. package/node_modules/uuid/dist/cjs/native.js +0 -4
  894. package/node_modules/uuid/dist/cjs/nil.d.ts +0 -2
  895. package/node_modules/uuid/dist/cjs/nil.js +0 -3
  896. package/node_modules/uuid/dist/cjs/package.json +0 -1
  897. package/node_modules/uuid/dist/cjs/parse.d.ts +0 -2
  898. package/node_modules/uuid/dist/cjs/parse.js +0 -11
  899. package/node_modules/uuid/dist/cjs/regex.d.ts +0 -2
  900. package/node_modules/uuid/dist/cjs/regex.js +0 -3
  901. package/node_modules/uuid/dist/cjs/rng.d.ts +0 -1
  902. package/node_modules/uuid/dist/cjs/rng.js +0 -13
  903. package/node_modules/uuid/dist/cjs/sha1.d.ts +0 -4
  904. package/node_modules/uuid/dist/cjs/sha1.js +0 -13
  905. package/node_modules/uuid/dist/cjs/stringify.d.ts +0 -3
  906. package/node_modules/uuid/dist/cjs/stringify.js +0 -39
  907. package/node_modules/uuid/dist/cjs/types.d.ts +0 -21
  908. package/node_modules/uuid/dist/cjs/types.js +0 -2
  909. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +0 -1
  910. package/node_modules/uuid/dist/cjs/uuid-bin.js +0 -72
  911. package/node_modules/uuid/dist/cjs/v1.d.ts +0 -11
  912. package/node_modules/uuid/dist/cjs/v1.js +0 -87
  913. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +0 -2
  914. package/node_modules/uuid/dist/cjs/v1ToV6.js +0 -13
  915. package/node_modules/uuid/dist/cjs/v3.d.ts +0 -9
  916. package/node_modules/uuid/dist/cjs/v3.js +0 -14
  917. package/node_modules/uuid/dist/cjs/v35.d.ts +0 -7
  918. package/node_modules/uuid/dist/cjs/v35.js +0 -41
  919. package/node_modules/uuid/dist/cjs/v4.d.ts +0 -4
  920. package/node_modules/uuid/dist/cjs/v4.js +0 -29
  921. package/node_modules/uuid/dist/cjs/v5.d.ts +0 -9
  922. package/node_modules/uuid/dist/cjs/v5.js +0 -14
  923. package/node_modules/uuid/dist/cjs/v6.d.ts +0 -4
  924. package/node_modules/uuid/dist/cjs/v6.js +0 -19
  925. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +0 -2
  926. package/node_modules/uuid/dist/cjs/v6ToV1.js +0 -13
  927. package/node_modules/uuid/dist/cjs/v7.d.ts +0 -9
  928. package/node_modules/uuid/dist/cjs/v7.js +0 -69
  929. package/node_modules/uuid/dist/cjs/validate.d.ts +0 -2
  930. package/node_modules/uuid/dist/cjs/validate.js +0 -7
  931. package/node_modules/uuid/dist/cjs/version.d.ts +0 -2
  932. package/node_modules/uuid/dist/cjs/version.js +0 -10
  933. package/node_modules/uuid/dist/cjs-browser/index.js +0 -31
  934. package/node_modules/uuid/dist/cjs-browser/max.js +0 -3
  935. package/node_modules/uuid/dist/cjs-browser/md5.js +0 -137
  936. package/node_modules/uuid/dist/cjs-browser/native.js +0 -4
  937. package/node_modules/uuid/dist/cjs-browser/nil.js +0 -3
  938. package/node_modules/uuid/dist/cjs-browser/package.json +0 -1
  939. package/node_modules/uuid/dist/cjs-browser/parse.js +0 -11
  940. package/node_modules/uuid/dist/cjs-browser/regex.js +0 -3
  941. package/node_modules/uuid/dist/cjs-browser/rng.js +0 -14
  942. package/node_modules/uuid/dist/cjs-browser/sha1.js +0 -72
  943. package/node_modules/uuid/dist/cjs-browser/stringify.js +0 -39
  944. package/node_modules/uuid/dist/cjs-browser/types.js +0 -2
  945. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +0 -72
  946. package/node_modules/uuid/dist/cjs-browser/v1.js +0 -87
  947. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +0 -13
  948. package/node_modules/uuid/dist/cjs-browser/v3.js +0 -14
  949. package/node_modules/uuid/dist/cjs-browser/v35.js +0 -41
  950. package/node_modules/uuid/dist/cjs-browser/v4.js +0 -29
  951. package/node_modules/uuid/dist/cjs-browser/v5.js +0 -14
  952. package/node_modules/uuid/dist/cjs-browser/v6.js +0 -19
  953. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +0 -13
  954. package/node_modules/uuid/dist/cjs-browser/v7.js +0 -69
  955. package/node_modules/uuid/dist/cjs-browser/validate.js +0 -7
  956. package/node_modules/uuid/dist/cjs-browser/version.js +0 -10
  957. package/node_modules/uuid/dist/esm/index.d.ts +0 -15
  958. package/node_modules/uuid/dist/esm/max.d.ts +0 -2
  959. package/node_modules/uuid/dist/esm/md5.d.ts +0 -4
  960. package/node_modules/uuid/dist/esm/native.d.ts +0 -6
  961. package/node_modules/uuid/dist/esm/native.js +0 -2
  962. package/node_modules/uuid/dist/esm/nil.d.ts +0 -2
  963. package/node_modules/uuid/dist/esm/parse.d.ts +0 -2
  964. package/node_modules/uuid/dist/esm/regex.d.ts +0 -2
  965. package/node_modules/uuid/dist/esm/rng.d.ts +0 -1
  966. package/node_modules/uuid/dist/esm/sha1.d.ts +0 -4
  967. package/node_modules/uuid/dist/esm/stringify.d.ts +0 -3
  968. package/node_modules/uuid/dist/esm/types.d.ts +0 -21
  969. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +0 -1
  970. package/node_modules/uuid/dist/esm/v1.d.ts +0 -11
  971. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +0 -2
  972. package/node_modules/uuid/dist/esm/v3.d.ts +0 -9
  973. package/node_modules/uuid/dist/esm/v35.d.ts +0 -7
  974. package/node_modules/uuid/dist/esm/v4.d.ts +0 -4
  975. package/node_modules/uuid/dist/esm/v5.d.ts +0 -9
  976. package/node_modules/uuid/dist/esm/v6.d.ts +0 -4
  977. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +0 -2
  978. package/node_modules/uuid/dist/esm/v7.d.ts +0 -9
  979. package/node_modules/uuid/dist/esm/validate.d.ts +0 -2
  980. package/node_modules/uuid/dist/esm/version.d.ts +0 -2
  981. package/node_modules/uuid/dist/esm-browser/index.d.ts +0 -15
  982. package/node_modules/uuid/dist/esm-browser/max.d.ts +0 -2
  983. package/node_modules/uuid/dist/esm-browser/md5.d.ts +0 -2
  984. package/node_modules/uuid/dist/esm-browser/native.d.ts +0 -4
  985. package/node_modules/uuid/dist/esm-browser/nil.d.ts +0 -2
  986. package/node_modules/uuid/dist/esm-browser/parse.d.ts +0 -2
  987. package/node_modules/uuid/dist/esm-browser/regex.d.ts +0 -2
  988. package/node_modules/uuid/dist/esm-browser/rng.d.ts +0 -1
  989. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +0 -2
  990. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +0 -3
  991. package/node_modules/uuid/dist/esm-browser/types.d.ts +0 -21
  992. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +0 -1
  993. package/node_modules/uuid/dist/esm-browser/v1.d.ts +0 -11
  994. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +0 -2
  995. package/node_modules/uuid/dist/esm-browser/v3.d.ts +0 -9
  996. package/node_modules/uuid/dist/esm-browser/v35.d.ts +0 -7
  997. package/node_modules/uuid/dist/esm-browser/v4.d.ts +0 -4
  998. package/node_modules/uuid/dist/esm-browser/v5.d.ts +0 -9
  999. package/node_modules/uuid/dist/esm-browser/v6.d.ts +0 -4
  1000. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +0 -2
  1001. package/node_modules/uuid/dist/esm-browser/v7.d.ts +0 -9
  1002. package/node_modules/uuid/dist/esm-browser/validate.d.ts +0 -2
  1003. package/node_modules/uuid/dist/esm-browser/version.d.ts +0 -2
  1004. /package/node_modules/uuid/dist/{cjs-browser/index.d.ts → index.d.ts} +0 -0
  1005. /package/node_modules/uuid/dist/{esm/index.js → index.js} +0 -0
  1006. /package/node_modules/uuid/dist/{cjs-browser/max.d.ts → max.d.ts} +0 -0
  1007. /package/node_modules/uuid/dist/{esm/max.js → max.js} +0 -0
  1008. /package/node_modules/uuid/dist/{cjs-browser/md5.d.ts → md5.d.ts} +0 -0
  1009. /package/node_modules/uuid/dist/{esm-browser/md5.js → md5.js} +0 -0
  1010. /package/node_modules/uuid/dist/{cjs-browser/native.d.ts → native.d.ts} +0 -0
  1011. /package/node_modules/uuid/dist/{esm-browser/native.js → native.js} +0 -0
  1012. /package/node_modules/uuid/dist/{cjs-browser/nil.d.ts → nil.d.ts} +0 -0
  1013. /package/node_modules/uuid/dist/{esm/nil.js → nil.js} +0 -0
  1014. /package/node_modules/uuid/dist/{cjs-browser/parse.d.ts → parse.d.ts} +0 -0
  1015. /package/node_modules/uuid/dist/{esm/parse.js → parse.js} +0 -0
  1016. /package/node_modules/uuid/dist/{cjs-browser/regex.d.ts → regex.d.ts} +0 -0
  1017. /package/node_modules/uuid/dist/{esm/regex.js → regex.js} +0 -0
  1018. /package/node_modules/uuid/dist/{cjs-browser/rng.d.ts → rng.d.ts} +0 -0
  1019. /package/node_modules/uuid/dist/{esm-browser/rng.js → rng.js} +0 -0
  1020. /package/node_modules/uuid/dist/{cjs-browser/sha1.d.ts → sha1.d.ts} +0 -0
  1021. /package/node_modules/uuid/dist/{esm-browser/sha1.js → sha1.js} +0 -0
  1022. /package/node_modules/uuid/dist/{cjs-browser/stringify.d.ts → stringify.d.ts} +0 -0
  1023. /package/node_modules/uuid/dist/{esm/stringify.js → stringify.js} +0 -0
  1024. /package/node_modules/uuid/dist/{cjs-browser/types.d.ts → types.d.ts} +0 -0
  1025. /package/node_modules/uuid/dist/{esm/types.js → types.js} +0 -0
  1026. /package/node_modules/uuid/dist/{cjs-browser/uuid-bin.d.ts → uuid-bin.d.ts} +0 -0
  1027. /package/node_modules/uuid/dist/{cjs-browser/v1.d.ts → v1.d.ts} +0 -0
  1028. /package/node_modules/uuid/dist/{esm/v1.js → v1.js} +0 -0
  1029. /package/node_modules/uuid/dist/{cjs-browser/v1ToV6.d.ts → v1ToV6.d.ts} +0 -0
  1030. /package/node_modules/uuid/dist/{esm/v1ToV6.js → v1ToV6.js} +0 -0
  1031. /package/node_modules/uuid/dist/{cjs-browser/v3.d.ts → v3.d.ts} +0 -0
  1032. /package/node_modules/uuid/dist/{esm/v3.js → v3.js} +0 -0
  1033. /package/node_modules/uuid/dist/{cjs-browser/v35.d.ts → v35.d.ts} +0 -0
  1034. /package/node_modules/uuid/dist/{esm/v35.js → v35.js} +0 -0
  1035. /package/node_modules/uuid/dist/{cjs-browser/v4.d.ts → v4.d.ts} +0 -0
  1036. /package/node_modules/uuid/dist/{cjs-browser/v5.d.ts → v5.d.ts} +0 -0
  1037. /package/node_modules/uuid/dist/{esm/v5.js → v5.js} +0 -0
  1038. /package/node_modules/uuid/dist/{cjs-browser/v6.d.ts → v6.d.ts} +0 -0
  1039. /package/node_modules/uuid/dist/{esm/v6.js → v6.js} +0 -0
  1040. /package/node_modules/uuid/dist/{cjs-browser/v6ToV1.d.ts → v6ToV1.d.ts} +0 -0
  1041. /package/node_modules/uuid/dist/{esm/v6ToV1.js → v6ToV1.js} +0 -0
  1042. /package/node_modules/uuid/dist/{cjs-browser/v7.d.ts → v7.d.ts} +0 -0
  1043. /package/node_modules/uuid/dist/{esm/v7.js → v7.js} +0 -0
  1044. /package/node_modules/uuid/dist/{cjs-browser/validate.d.ts → validate.d.ts} +0 -0
  1045. /package/node_modules/uuid/dist/{esm/validate.js → validate.js} +0 -0
  1046. /package/node_modules/uuid/dist/{cjs-browser/version.d.ts → version.d.ts} +0 -0
  1047. /package/node_modules/uuid/dist/{esm/version.js → version.js} +0 -0
  1048. /package/node_modules/uuid/{dist/esm → dist-node}/bin/uuid +0 -0
  1049. /package/node_modules/uuid/{dist/esm-browser → dist-node}/index.js +0 -0
  1050. /package/node_modules/uuid/{dist/esm-browser → dist-node}/max.js +0 -0
  1051. /package/node_modules/uuid/{dist/esm-browser → dist-node}/nil.js +0 -0
  1052. /package/node_modules/uuid/{dist/esm-browser → dist-node}/parse.js +0 -0
  1053. /package/node_modules/uuid/{dist/esm-browser → dist-node}/regex.js +0 -0
  1054. /package/node_modules/uuid/{dist/esm-browser → dist-node}/stringify.js +0 -0
  1055. /package/node_modules/uuid/{dist/esm-browser → dist-node}/types.js +0 -0
  1056. /package/node_modules/uuid/{dist/esm-browser → dist-node}/v1.js +0 -0
  1057. /package/node_modules/uuid/{dist/esm-browser → dist-node}/v1ToV6.js +0 -0
  1058. /package/node_modules/uuid/{dist/esm-browser → dist-node}/v3.js +0 -0
  1059. /package/node_modules/uuid/{dist/esm-browser → dist-node}/v35.js +0 -0
  1060. /package/node_modules/uuid/{dist/esm-browser → dist-node}/v5.js +0 -0
  1061. /package/node_modules/uuid/{dist/esm-browser → dist-node}/v6.js +0 -0
  1062. /package/node_modules/uuid/{dist/esm-browser → dist-node}/v6ToV1.js +0 -0
  1063. /package/node_modules/uuid/{dist/esm-browser → dist-node}/v7.js +0 -0
  1064. /package/node_modules/uuid/{dist/esm-browser → dist-node}/validate.js +0 -0
  1065. /package/node_modules/uuid/{dist/esm-browser → dist-node}/version.js +0 -0
@@ -1,3410 +0,0 @@
1
- /*!
2
- * MarchingSquaresJS
3
- * version 1.3.3
4
- * https://github.com/RaumZeit/MarchingSquares.js
5
- *
6
- * @license GNU Affero General Public License.
7
- * Copyright (c) 2015-2019 Ronny Lorenz <ronny@tbi.univie.ac.at>
8
- */
9
-
10
-
11
- /*
12
- * Compute the distance of a value 'v' from 'a' through linear interpolation
13
- * between the values of 'a' and 'b'
14
- *
15
- * Note, that we assume that 'a' and 'b' have unit distance (i.e. 1)
16
- */
17
- function linear(a, b, v) {
18
- if (a < b)
19
- return (v - a) / (b - a);
20
-
21
- return (a - v) / (a - b);
22
- }
23
-
24
-
25
- /*
26
- * Compute the distance of a pair of values ('v0', 'v1') from 'a' through linear interpolation
27
- * between the values of 'a' and 'b'
28
- *
29
- * This function assumes that exactly one value, 'v0' or 'v1', is actually located
30
- * between 'a' and 'b', and choses the right one automagically
31
- *
32
- * Note, that we assume that 'a' and 'b' have unit distance (i.e. 1)
33
- */
34
- function linear_ab(a, b, v0, v1) {
35
- var tmp;
36
-
37
- if (v0 > v1) {
38
- tmp = v0;
39
- v0 = v1;
40
- v1 = tmp;
41
- }
42
-
43
- if (a < b) {
44
- if (a < v0)
45
- return (v0 - a) / (b - a);
46
- else
47
- return (v1 - a) / (b - a);
48
- } else if (a > v1) {
49
- return (a - v1) / (a - b);
50
- }
51
-
52
- return (a - v0) / (a - b);
53
- }
54
-
55
-
56
- /*
57
- * Compute the distance of a pair of values ('v0', 'v1') from 'a' through linear interpolation
58
- * between the values of 'a' and 'b'
59
- *
60
- * This function automagically choses the value 'vN' that is closer to 'a'
61
- *
62
- * Note, that we assume that 'a' and 'b' have unit distance (i.e. 1)
63
- */
64
- function linear_a(a, b, minV, maxV) {
65
- if (a < b)
66
- return (minV - a) / (b - a);
67
-
68
- return (a - maxV) / (a - b);
69
- }
70
-
71
-
72
- /*
73
- * Compute the distance of a pair of values ('v0', 'v1') from 'a' through linear interpolation
74
- * between the values of 'a' and 'b'
75
- *
76
- * This function automagically choses the value 'vN' that is closer to 'b'
77
- *
78
- * Note, that we assume that 'a' and 'b' have unit distance (i.e. 1)
79
- */
80
- function linear_b(a, b, minV, maxV) {
81
- if (a < b)
82
- return (maxV - a) / (b - a);
83
-
84
- return (a - minV) / (a - b);
85
- }
86
-
87
- function Options() {
88
- /* Settings common to all implemented algorithms */
89
- this.successCallback = null;
90
- this.verbose = false;
91
- this.polygons = false;
92
- this.polygons_full = false;
93
- this.linearRing = true;
94
- this.noQuadTree = false;
95
- this.noFrame = false;
96
- }
97
-
98
-
99
- /* Compose settings specific to IsoBands algorithm */
100
- function isoBandOptions(userSettings) {
101
- var i,
102
- key,
103
- val,
104
- bandOptions,
105
- optionKeys;
106
-
107
- bandOptions = new Options();
108
- userSettings = userSettings ? userSettings : {};
109
- optionKeys = Object.keys(bandOptions);
110
-
111
- for(i = 0; i < optionKeys.length; i++) {
112
- key = optionKeys[i];
113
- val = userSettings[key];
114
- if ((typeof val !== 'undefined') && (val !== null))
115
- bandOptions[key] = val;
116
- }
117
-
118
- /* restore compatibility */
119
- bandOptions.polygons_full = !bandOptions.polygons;
120
-
121
- /* add interpolation functions (not yet user customizable) */
122
- bandOptions.interpolate = linear_ab;
123
- bandOptions.interpolate_a = linear_a;
124
- bandOptions.interpolate_b = linear_b;
125
-
126
- return bandOptions;
127
- }
128
-
129
-
130
- /* Compose settings specific to IsoLines algorithm */
131
- function isoLineOptions(userSettings) {
132
- var i,
133
- key,
134
- val,
135
- lineOptions,
136
- optionKeys;
137
-
138
- lineOptions = new Options();
139
- userSettings = userSettings ? userSettings : {};
140
- optionKeys = Object.keys(lineOptions);
141
-
142
- for(i = 0; i < optionKeys.length; i++) {
143
- key = optionKeys[i];
144
- val = userSettings[key];
145
- if ((typeof val !== 'undefined') && (val !== null))
146
- lineOptions[key] = val;
147
- }
148
-
149
- /* restore compatibility */
150
- lineOptions.polygons_full = !lineOptions.polygons;
151
-
152
- /* add interpolation functions (not yet user customizable) */
153
- lineOptions.interpolate = linear;
154
-
155
- return lineOptions;
156
- }
157
-
158
- function cell2Polygons(cell, x, y, settings) {
159
- var polygons = [];
160
-
161
- cell.polygons.forEach(function(p) {
162
- p.forEach(function(pp) {
163
- pp[0] += x;
164
- pp[1] += y;
165
- });
166
-
167
- if (settings.linearRing)
168
- p.push(p[0]);
169
-
170
- polygons.push(p);
171
- });
172
-
173
- return polygons;
174
- }
175
-
176
- function entry_coordinate(x, y, mode, path) {
177
- if (mode === 0) { /* down */
178
- x += 1;
179
- y += path[0][1];
180
- } else if (mode === 1) { /* left */
181
- x += path[0][0];
182
- } else if (mode === 2) { /* up */
183
- y += path[0][1];
184
- } else if (mode === 3) { /* right */
185
- x += path[0][0];
186
- y += 1;
187
- }
188
-
189
- return [ x, y ];
190
- }
191
-
192
-
193
- function skip_coordinate(x, y, mode) {
194
- if (mode === 0) { /* down */
195
- x++;
196
- } else if (mode === 1) ; else if (mode === 2) { /* up */
197
- y++;
198
- } else if (mode === 3) { /* right */
199
- x++;
200
- y++;
201
- }
202
-
203
- return [ x, y ];
204
- }
205
-
206
-
207
- function requireFrame(data, lowerBound, upperBound) {
208
- var frameRequired,
209
- cols,
210
- rows,
211
- i,
212
- j;
213
-
214
- frameRequired = true;
215
- cols = data[0].length;
216
- rows = data.length;
217
-
218
- for (j = 0; j < rows; j++) {
219
- if ((data[j][0] < lowerBound) ||
220
- (data[j][0] > upperBound) ||
221
- (data[j][cols - 1] < lowerBound) ||
222
- (data[j][cols - 1] > upperBound)) {
223
- frameRequired = false;
224
- break;
225
- }
226
- }
227
-
228
- if ((frameRequired) &&
229
- ((data[rows - 1][0] < lowerBound) ||
230
- (data[rows - 1][0] > upperBound) ||
231
- (data[rows - 1][cols - 1] < lowerBound) ||
232
- (data[rows - 1][cols - 1] > upperBound))) {
233
- frameRequired = false;
234
- }
235
-
236
- if (frameRequired)
237
- for (i = 0; i < cols - 1; i++) {
238
- if ((data[0][i] < lowerBound) ||
239
- (data[0][i] > upperBound) ||
240
- (data[rows - 1][i] < lowerBound) ||
241
- (data[rows - 1][i] > upperBound)) {
242
- frameRequired = false;
243
- break;
244
- }
245
- }
246
-
247
-
248
- return frameRequired;
249
- }
250
-
251
-
252
- function requireLineFrame(data, threshold) {
253
- var frameRequired,
254
- cols,
255
- rows,
256
- i,
257
- j;
258
-
259
- frameRequired = true;
260
- cols = data[0].length;
261
- rows = data.length;
262
-
263
- for (j = 0; j < rows; j++) {
264
- if ((data[j][0] >= threshold) ||
265
- (data[j][cols - 1] >= threshold)) {
266
- frameRequired = false;
267
- break;
268
- }
269
- }
270
-
271
- if ((frameRequired) &&
272
- ((data[rows - 1][0] >= threshold) ||
273
- (data[rows - 1][cols - 1] >= threshold))) {
274
- frameRequired = false;
275
- }
276
-
277
- if (frameRequired)
278
- for (i = 0; i < cols - 1; i++) {
279
- if ((data[0][i] >= threshold) ||
280
- (data[rows - 1][i] > threshold)) {
281
- frameRequired = false;
282
- break;
283
- }
284
- }
285
-
286
- return frameRequired;
287
- }
288
-
289
-
290
- function traceBandPaths(data, cellGrid, settings) {
291
- var nextedge,
292
- path,
293
- e,
294
- ee,
295
- s,
296
- ve,
297
- enter,
298
- x,
299
- y,
300
- finalized,
301
- origin,
302
- cc,
303
- dir,
304
- count,
305
- point,
306
- found_entry;
307
-
308
- var polygons = [];
309
- var rows = data.length - 1;
310
- var cols = data[0].length - 1;
311
-
312
- /*
313
- * directions for out-of-grid moves are:
314
- * 0 ... "down",
315
- * 1 ... "left",
316
- * 2 ... "up",
317
- * 3 ... "right"
318
- */
319
- var valid_entries = [ ['rt', 'rb'], /* down */
320
- ['br', 'bl'], /* left */
321
- ['lb', 'lt'], /* up */
322
- ['tl', 'tr'] /* right */
323
- ];
324
- var add_x = [ 0, -1, 0, 1 ];
325
- var add_y = [ -1, 0, 1, 0 ];
326
- var available_starts = [ 'bl', 'lb', 'lt', 'tl', 'tr', 'rt', 'rb', 'br' ];
327
- var entry_dir = {
328
- bl: 1, br: 1,
329
- lb: 2, lt: 2,
330
- tl: 3, tr: 3,
331
- rt: 0, rb: 0
332
- };
333
-
334
- if (requireFrame(data, settings.minV, settings.maxV)) {
335
- if (settings.linearRing)
336
- polygons.push([ [0, 0], [0, rows], [cols, rows], [cols, 0], [0, 0] ]);
337
- else
338
- polygons.push([ [0, 0], [0, rows], [cols, rows], [cols, 0] ]);
339
- }
340
-
341
- /* finally, start tracing back first polygon(s) */
342
- cellGrid.forEach(function(a, i) {
343
- a.forEach(function(cell, j) {
344
- nextedge = null;
345
-
346
- /* trace paths for all available edges that go through this cell */
347
- for (e = 0; e < 8; e++) {
348
- nextedge = available_starts[e];
349
-
350
- if (typeof cell.edges[nextedge] !== 'object')
351
- continue;
352
-
353
- /* start a new, full path */
354
- path = [];
355
- ee = cell.edges[nextedge];
356
- enter = nextedge;
357
- x = i;
358
- y = j;
359
- finalized = false;
360
- origin = [ i + ee.path[0][0], j + ee.path[0][1] ];
361
-
362
- /* add start coordinate */
363
- path.push(origin);
364
-
365
- /* start traceback */
366
- while (!finalized) {
367
- cc = cellGrid[x][y];
368
-
369
- if (typeof cc.edges[enter] !== 'object')
370
- break;
371
-
372
- ee = cc.edges[enter];
373
-
374
- /* remove edge from cell */
375
- delete cc.edges[enter];
376
-
377
- /* add last point of edge to path arra, since we extend a polygon */
378
- point = ee.path[1];
379
- point[0] += x;
380
- point[1] += y;
381
- path.push(point);
382
-
383
- enter = ee.move.enter;
384
- x = x + ee.move.x;
385
- y = y + ee.move.y;
386
-
387
- /* handle out-of-grid moves */
388
- if ((typeof cellGrid[x] === 'undefined') ||
389
- (typeof cellGrid[x][y] === 'undefined')) {
390
- dir = 0;
391
- count = 0;
392
-
393
- if (x === cols) {
394
- x--;
395
- dir = 0; /* move downwards */
396
- } else if (x < 0) {
397
- x++;
398
- dir = 2; /* move upwards */
399
- } else if (y === rows) {
400
- y--;
401
- dir = 3; /* move right */
402
- } else if (y < 0) {
403
- y++;
404
- dir = 1; /* move left */
405
- } else {
406
- throw new Error('Left the grid somewhere in the interior!');
407
- }
408
-
409
- if ((x === i) && (y === j) && (dir === entry_dir[nextedge])) {
410
- finalized = true;
411
- enter = nextedge;
412
- break;
413
- }
414
-
415
- while (1) {
416
- found_entry = false;
417
-
418
- if (count > 4)
419
- throw new Error('Direction change counter overflow! This should never happen!');
420
-
421
- if (!((typeof cellGrid[x] === 'undefined') ||
422
- (typeof cellGrid[x][y] === 'undefined'))) {
423
- cc = cellGrid[x][y];
424
-
425
- /* check for re-entry */
426
- for (s = 0; s < valid_entries[dir].length; s++) {
427
- ve = valid_entries[dir][s];
428
- if (typeof cc.edges[ve] === 'object') {
429
- /* found re-entry */
430
- ee = cc.edges[ve];
431
- path.push(entry_coordinate(x, y, dir, ee.path));
432
- enter = ve;
433
- found_entry = true;
434
- break;
435
- }
436
- }
437
- }
438
-
439
- if (found_entry) {
440
- break;
441
- } else {
442
- path.push(skip_coordinate(x, y, dir));
443
-
444
- x += add_x[dir];
445
- y += add_y[dir];
446
-
447
- /* change direction if we'e moved out of grid again */
448
- if ((typeof cellGrid[x] === 'undefined') ||
449
- (typeof cellGrid[x][y] === 'undefined')) {
450
- if (((dir === 0) && (y < 0)) ||
451
- ((dir === 1) && (x < 0)) ||
452
- ((dir === 2) && (y === rows)) ||
453
- ((dir === 3) && (x === cols))) {
454
- x -= add_x[dir];
455
- y -= add_y[dir];
456
-
457
- dir = (dir + 1) % 4;
458
- count++;
459
- }
460
- }
461
-
462
- if ((x === i) && (y === j) && (dir === entry_dir[nextedge])) {
463
- /* we are back where we started off, so finalize the polygon */
464
- finalized = true;
465
- enter = nextedge;
466
- break;
467
- }
468
- }
469
- }
470
- }
471
- }
472
-
473
- if ((settings.linearRing) &&
474
- ((path[path.length - 1][0] !== origin[0]) ||
475
- (path[path.length - 1][1] !== origin[1])))
476
- path.push(origin);
477
-
478
- polygons.push(path);
479
- } /* end forall entry sites */
480
- }); /* end foreach i */
481
- }); /* end foreach j */
482
-
483
- return polygons;
484
- }
485
-
486
-
487
- function traceLinePaths(data, cellGrid, settings) {
488
- var nextedge,
489
- e,
490
- ee,
491
- cc,
492
- path,
493
- enter,
494
- x,
495
- y,
496
- finalized,
497
- origin,
498
- point,
499
- dir,
500
- count,
501
- found_entry,
502
- ve;
503
-
504
- var polygons = [];
505
- var rows = data.length - 1;
506
- var cols = data[0].length - 1;
507
-
508
- /*
509
- * directions for out-of-grid moves are:
510
- * 0 ... "down",
511
- * 1 ... "left",
512
- * 2 ... "up",
513
- * 3 ... "right"
514
- */
515
- var valid_entries = [ 'right', /* down */
516
- 'bottom', /* left */
517
- 'left', /* up */
518
- 'top' /* right */
519
- ];
520
- var add_x = [ 0, -1, 0, 1 ];
521
- var add_y = [ -1, 0, 1, 0 ];
522
- var entry_dir = {
523
- bottom: 1,
524
- left: 2,
525
- top: 3,
526
- right: 0
527
- };
528
-
529
- /* first, detect whether we need any outer frame */
530
- if (!settings.noFrame)
531
- if (requireLineFrame(data, settings.threshold)) {
532
- if (settings.linearRing)
533
- polygons.push([ [0, 0], [0, rows], [cols, rows], [cols, 0], [0, 0] ]);
534
- else
535
- polygons.push([ [0, 0], [0, rows], [cols, rows], [cols, 0] ]);
536
- }
537
-
538
- /* finally, start tracing back first polygon(s) */
539
-
540
- cellGrid.forEach(function(a, i) {
541
- a.forEach(function(cell, j) {
542
- nextedge = null;
543
-
544
- /* trace paths for all available edges that go through this cell */
545
- for (e = 0; e < 4; e++) {
546
- nextedge = valid_entries[e];
547
-
548
- if (typeof cell.edges[nextedge] !== 'object')
549
- continue;
550
-
551
- /* start a new, full path */
552
- path = [];
553
- ee = cell.edges[nextedge];
554
- enter = nextedge;
555
- x = i;
556
- y = j;
557
- finalized = false;
558
- origin = [ i + ee.path[0][0], j + ee.path[0][1] ];
559
-
560
- /* add start coordinate */
561
- path.push(origin);
562
-
563
- /* start traceback */
564
- while (!finalized) {
565
- cc = cellGrid[x][y];
566
-
567
- if (typeof cc.edges[enter] !== 'object')
568
- break;
569
-
570
- ee = cc.edges[enter];
571
-
572
- /* remove edge from cell */
573
- delete cc.edges[enter];
574
-
575
- /* add last point of edge to path arra, since we extend a polygon */
576
- point = ee.path[1];
577
- point[0] += x;
578
- point[1] += y;
579
- path.push(point);
580
-
581
- enter = ee.move.enter;
582
- x = x + ee.move.x;
583
- y = y + ee.move.y;
584
-
585
- /* handle out-of-grid moves */
586
- if ((typeof cellGrid[x] === 'undefined') ||
587
- (typeof cellGrid[x][y] === 'undefined')) {
588
-
589
- if (!settings.linearRing)
590
- break;
591
-
592
- dir = 0;
593
- count = 0;
594
-
595
- if (x === cols) {
596
- x--;
597
- dir = 0; /* move downwards */
598
- } else if (x < 0) {
599
- x++;
600
- dir = 2; /* move upwards */
601
- } else if (y === rows) {
602
- y--;
603
- dir = 3; /* move right */
604
- } else if (y < 0) {
605
- y++;
606
- dir = 1; /* move left */
607
- }
608
-
609
- if ((x === i) && (y === j) && (dir === entry_dir[nextedge])) {
610
- finalized = true;
611
- enter = nextedge;
612
- break;
613
- }
614
-
615
- while (1) {
616
- found_entry = false;
617
-
618
- if (count > 4)
619
- throw new Error('Direction change counter overflow! This should never happen!');
620
-
621
- if (!((typeof cellGrid[x] === 'undefined') ||
622
- (typeof cellGrid[x][y] === 'undefined'))) {
623
- cc = cellGrid[x][y];
624
-
625
- /* check for re-entry */
626
- ve = valid_entries[dir];
627
- if (typeof cc.edges[ve] === 'object') {
628
- /* found re-entry */
629
- ee = cc.edges[ve];
630
- path.push(entry_coordinate(x, y, dir, ee.path));
631
- enter = ve;
632
- found_entry = true;
633
- break;
634
- }
635
- }
636
-
637
- if (found_entry) {
638
- break;
639
- } else {
640
- path.push(skip_coordinate(x, y, dir));
641
-
642
- x += add_x[dir];
643
- y += add_y[dir];
644
-
645
- /* change direction if we'e moved out of grid again */
646
- if ((typeof cellGrid[x] === 'undefined') ||
647
- (typeof cellGrid[x][y] === 'undefined')) {
648
- if (((dir === 0) && (y < 0)) ||
649
- ((dir === 1) && (x < 0)) ||
650
- ((dir === 2) && (y === rows)) ||
651
- ((dir === 3) && (x === cols))) {
652
- x -= add_x[dir];
653
- y -= add_y[dir];
654
-
655
- dir = (dir + 1) % 4;
656
- count++;
657
- }
658
- }
659
-
660
- if ((x === i) && (y === j) && (dir === entry_dir[nextedge])) {
661
- /* we are back where we started off, so finalize the polygon */
662
- finalized = true;
663
- enter = nextedge;
664
- break;
665
- }
666
- }
667
- }
668
- }
669
- }
670
-
671
- if ((settings.linearRing) &&
672
- ((path[path.length - 1][0] !== origin[0]) ||
673
- (path[path.length - 1][1] !== origin[1])))
674
- path.push(origin);
675
-
676
- polygons.push(path);
677
- } /* end forall entry sites */
678
- }); /* end foreach i */
679
- }); /* end foreach j */
680
-
681
- return polygons;
682
- }
683
-
684
- /* quadTree node constructor */
685
- function TreeNode(data, x, y, dx, dy) {
686
- var dx_tmp = dx,
687
- dy_tmp = dy,
688
- msb_x = 0,
689
- msb_y = 0;
690
-
691
- /* left-bottom corner of current quadrant */
692
- this.x = x;
693
- this.y = y;
694
-
695
- /* minimum value in subtree under this node */
696
- this.lowerBound = null;
697
- /* maximum value in subtree under this node */
698
- this.upperBound = null;
699
-
700
- /*
701
- * child nodes are layed out in the following way:
702
- *
703
- * (x, y + 1) ---- (x + 1, y + 1)
704
- * | | |
705
- * | D | C |
706
- * | | |
707
- * |----------------------------|
708
- * | | |
709
- * | A | B |
710
- * | | |
711
- * (x, y) ------------ (x + 1, y)
712
- */
713
- this.childA = null;
714
- this.childB = null;
715
- this.childC = null;
716
- this.childD = null;
717
-
718
- if ((dx === 1) && (dy === 1)) {
719
- /* do not further subdivision */
720
- this.lowerBound = Math.min(
721
- data[y][x],
722
- data[y][x + 1],
723
- data[y + 1][x + 1],
724
- data[y + 1][x]
725
- );
726
- this.upperBound = Math.max(
727
- data[y][x],
728
- data[y][x + 1],
729
- data[y + 1][x + 1],
730
- data[y + 1][x]
731
- );
732
- } else {
733
- /* get most significant bit from dx */
734
- if (dx > 1) {
735
- while (dx_tmp !== 0) {
736
- dx_tmp = dx_tmp >> 1;
737
- msb_x++;
738
- }
739
-
740
- if (dx === (1 << (msb_x - 1)))
741
- msb_x--;
742
-
743
- dx_tmp = 1 << (msb_x - 1);
744
- }
745
-
746
- /* get most significant bit from dx */
747
- if (dy > 1) {
748
- while (dy_tmp !== 0) {
749
- dy_tmp = dy_tmp >> 1;
750
- msb_y++;
751
- }
752
-
753
- if (dy === (1 << (msb_y - 1)))
754
- msb_y--;
755
-
756
- dy_tmp = 1 << (msb_y - 1);
757
- }
758
-
759
- this.childA = new TreeNode(data, x, y, dx_tmp, dy_tmp);
760
- this.lowerBound = this.childA.lowerBound;
761
- this.upperBound = this.childA.upperBound;
762
-
763
- if (dx - dx_tmp > 0) {
764
- this.childB = new TreeNode(data, x + dx_tmp, y, dx - dx_tmp, dy_tmp);
765
- this.lowerBound = Math.min(this.lowerBound, this.childB.lowerBound);
766
- this.upperBound = Math.max(this.upperBound, this.childB.upperBound);
767
-
768
- if (dy - dy_tmp > 0) {
769
- this.childC = new TreeNode(data, x + dx_tmp, y + dy_tmp, dx - dx_tmp, dy - dy_tmp);
770
- this.lowerBound = Math.min(this.lowerBound, this.childC.lowerBound);
771
- this.upperBound = Math.max(this.upperBound, this.childC.upperBound);
772
- }
773
- }
774
-
775
- if (dy - dy_tmp > 0) {
776
- this.childD = new TreeNode(data, x, y + dy_tmp, dx_tmp, dy - dy_tmp);
777
- this.lowerBound = Math.min(this.lowerBound, this.childD.lowerBound);
778
- this.upperBound = Math.max(this.upperBound, this.childD.upperBound);
779
- }
780
- }
781
- }
782
-
783
-
784
- /**
785
- * Retrieve a list of cells within a particular range of values by
786
- * recursivly traversing the quad tree to it's leaves.
787
- *
788
- * @param subsumed If 'true' include all cells that are completely
789
- * subsumed within the specified range. Otherwise,
790
- * return only cells where at least one corner is
791
- * outside the specified range.
792
- *
793
- * @return An array of objects 'o' where each object has exactly two
794
- * properties: 'o.x' and 'o.y' denoting the left-bottom corner
795
- * of the corresponding cell.
796
- */
797
- TreeNode.prototype.cellsInBand = function(lowerBound, upperBound, subsumed) {
798
- var cells = [];
799
-
800
- subsumed = (typeof subsumed === 'undefined') ? true : subsumed;
801
-
802
- if ((this.lowerBound > upperBound) || (this.upperBound < lowerBound))
803
- return cells;
804
-
805
- if (!(this.childA || this.childB || this.childC || this.childD)) {
806
- if ((subsumed) ||
807
- (this.lowerBound <= lowerBound) ||
808
- (this.upperBound >= upperBound)) {
809
- cells.push({
810
- x: this.x,
811
- y: this.y
812
- });
813
- }
814
- } else {
815
- if (this.childA)
816
- cells = cells.concat(this.childA.cellsInBand(lowerBound, upperBound, subsumed));
817
-
818
- if (this.childB)
819
- cells = cells.concat(this.childB.cellsInBand(lowerBound, upperBound, subsumed));
820
-
821
- if (this.childD)
822
- cells = cells.concat(this.childD.cellsInBand(lowerBound, upperBound, subsumed));
823
-
824
- if (this.childC)
825
- cells = cells.concat(this.childC.cellsInBand(lowerBound, upperBound, subsumed));
826
- }
827
-
828
- return cells;
829
- };
830
-
831
-
832
- TreeNode.prototype.cellsBelowThreshold = function(threshold, subsumed) {
833
- var cells = [];
834
-
835
- subsumed = (typeof subsumed === 'undefined') ? true : subsumed;
836
-
837
- if (this.lowerBound > threshold)
838
- return cells;
839
-
840
- if (!(this.childA || this.childB || this.childC || this.childD)) {
841
- if ((subsumed) ||
842
- (this.upperBound >= threshold)) {
843
- cells.push({
844
- x: this.x,
845
- y: this.y
846
- });
847
- }
848
- } else {
849
- if (this.childA)
850
- cells = cells.concat(this.childA.cellsBelowThreshold(threshold, subsumed));
851
-
852
- if (this.childB)
853
- cells = cells.concat(this.childB.cellsBelowThreshold(threshold, subsumed));
854
-
855
- if (this.childD)
856
- cells = cells.concat(this.childD.cellsBelowThreshold(threshold, subsumed));
857
-
858
- if (this.childC)
859
- cells = cells.concat(this.childC.cellsBelowThreshold(threshold, subsumed));
860
- }
861
-
862
- return cells;
863
- };
864
-
865
-
866
- /*
867
- * Given a scalar field `data` construct a QuadTree
868
- * to efficiently lookup those parts of the scalar
869
- * field where values are within a particular
870
- * range of [lowerbound, upperbound] limits.
871
- */
872
- function QuadTree(data) {
873
- var i, cols;
874
-
875
- /* do some input checking */
876
- if (!data)
877
- throw new Error('data is required');
878
-
879
- if (!Array.isArray(data) ||
880
- !Array.isArray(data[0]))
881
- throw new Error('data must be scalar field, i.e. array of arrays');
882
-
883
- if (data.length < 2)
884
- throw new Error('data must contain at least two rows');
885
-
886
- /* check if we've got a regular grid */
887
- cols = data[0].length;
888
-
889
- if (cols < 2)
890
- throw new Error('data must contain at least two columns');
891
-
892
- for (i = 1; i < data.length; i++) {
893
- if (!Array.isArray(data[i]))
894
- throw new Error('Row ' + i + ' is not an array');
895
-
896
- if (data[i].length != cols)
897
- throw new Error('unequal row lengths detected, please provide a regular grid');
898
- }
899
-
900
- /* create pre-processing object */
901
- this.data = data;
902
- /* root node, i.e. entry to the data */
903
- this.root = new TreeNode(data, 0, 0, data[0].length - 1, data.length - 1);
904
- }
905
-
906
- /* eslint no-console: ["error", { allow: ["log"] }] */
907
-
908
-
909
- /*
910
- * Compute the iso lines for a scalar 2D field given
911
- * a certain threshold by applying the Marching Squares
912
- * Algorithm. The function returns a list of path coordinates
913
- */
914
-
915
- function isoLines(input, threshold, options) {
916
- var settings,
917
- i,
918
- j,
919
- useQuadTree = false,
920
- multiLine = false,
921
- tree = null,
922
- root = null,
923
- data = null,
924
- cellGrid = null,
925
- linePolygons = null,
926
- ret = [];
927
-
928
- /* validation */
929
- if (!input) throw new Error('data is required');
930
- if (threshold === undefined || threshold === null) throw new Error('threshold is required');
931
- if ((!!options) && (typeof options !== 'object')) throw new Error('options must be an object');
932
-
933
- /* process options */
934
- settings = isoLineOptions(options);
935
-
936
- /* check for input data */
937
- if (input instanceof QuadTree) {
938
- tree = input;
939
- root = input.root;
940
- data = input.data;
941
- if (!settings.noQuadTree)
942
- useQuadTree = true;
943
- } else if (Array.isArray(input) && Array.isArray(input[0])) {
944
- data = input;
945
- } else {
946
- throw new Error('input is neither array of arrays nor object retrieved from \'QuadTree()\'');
947
- }
948
-
949
- /* check and prepare input threshold(s) */
950
- if (Array.isArray(threshold)) {
951
- multiLine = true;
952
-
953
- /* activate QuadTree optimization if not explicitly forbidden by user settings */
954
- if (!settings.noQuadTree)
955
- useQuadTree = true;
956
-
957
- /* check if all minV are numbers */
958
- for (i = 0; i < threshold.length; i++)
959
- if (isNaN(+threshold[i]))
960
- throw new Error('threshold[' + i + '] is not a number');
961
- } else {
962
- if (isNaN(+threshold))
963
- throw new Error('threshold must be a number or array of numbers');
964
-
965
- threshold = [ threshold ];
966
- }
967
-
968
- /* create QuadTree root node if not already present */
969
- if ((useQuadTree) && (!root)) {
970
- tree = new QuadTree(data);
971
- root = tree.root;
972
- data = tree.data;
973
- }
974
-
975
- if (settings.verbose) {
976
- if(settings.polygons)
977
- console.log('MarchingSquaresJS-isoLines: returning single lines (polygons) for each grid cell');
978
- else
979
- console.log('MarchingSquaresJS-isoLines: returning line paths (polygons) for entire data grid');
980
-
981
- if (multiLine)
982
- console.log('MarchingSquaresJS-isoLines: multiple lines requested, returning array of line paths instead of lines for a single threshold');
983
- }
984
-
985
- /* Done with all input validation, now let's start computing stuff */
986
-
987
- /* loop over all threhsold values */
988
- threshold.forEach(function(t, i) {
989
- linePolygons = [];
990
-
991
- /* store bounds for current computation in settings object */
992
- settings.threshold = t;
993
-
994
- if(settings.verbose)
995
- console.log('MarchingSquaresJS-isoLines: computing iso lines for threshold ' + t);
996
-
997
- if (settings.polygons) {
998
- /* compose list of polygons for each single cell */
999
- if (useQuadTree) {
1000
- /* go through list of cells retrieved from QuadTree */
1001
- root
1002
- .cellsBelowThreshold(settings.threshold, true)
1003
- .forEach(function(c) {
1004
- linePolygons = linePolygons.concat(
1005
- cell2Polygons(
1006
- prepareCell(data,
1007
- c.x,
1008
- c.y,
1009
- settings),
1010
- c.x,
1011
- c.y,
1012
- settings
1013
- ));
1014
- });
1015
- } else {
1016
- /* go through entire array of input data */
1017
- for (j = 0; j < data.length - 1; ++j) {
1018
- for (i = 0; i < data[0].length - 1; ++i)
1019
- linePolygons = linePolygons.concat(
1020
- cell2Polygons(
1021
- prepareCell(data,
1022
- i,
1023
- j,
1024
- settings),
1025
- i,
1026
- j,
1027
- settings
1028
- ));
1029
- }
1030
- }
1031
- } else {
1032
- /* sparse grid of input data cells */
1033
- cellGrid = [];
1034
- for (i = 0; i < data[0].length - 1; ++i)
1035
- cellGrid[i] = [];
1036
-
1037
- /* compose list of polygons for entire input grid */
1038
- if (useQuadTree) {
1039
- /* collect the cells */
1040
- root
1041
- .cellsBelowThreshold(settings.threshold, false)
1042
- .forEach(function(c) {
1043
- cellGrid[c.x][c.y] = prepareCell(data,
1044
- c.x,
1045
- c.y,
1046
- settings);
1047
- });
1048
- } else {
1049
- /* prepare cells */
1050
- for (i = 0; i < data[0].length - 1; ++i) {
1051
- for (j = 0; j < data.length - 1; ++j) {
1052
- cellGrid[i][j] = prepareCell(data,
1053
- i,
1054
- j,
1055
- settings);
1056
- }
1057
- }
1058
- }
1059
-
1060
- linePolygons = traceLinePaths(data, cellGrid, settings);
1061
- }
1062
-
1063
- /* finally, add polygons to output array */
1064
- if (multiLine)
1065
- ret.push(linePolygons);
1066
- else
1067
- ret = linePolygons;
1068
-
1069
- if(typeof settings.successCallback === 'function')
1070
- settings.successCallback(ret, t);
1071
-
1072
- });
1073
-
1074
- return ret;
1075
- }
1076
-
1077
- /*
1078
- * Thats all for the public interface, below follows the actual
1079
- * implementation
1080
- */
1081
-
1082
- /*
1083
- * ################################
1084
- * Isocontour implementation below
1085
- * ################################
1086
- */
1087
-
1088
- function prepareCell(grid, x, y, settings) {
1089
- var left,
1090
- right,
1091
- top,
1092
- bottom,
1093
- average,
1094
- cell;
1095
-
1096
- var cval = 0;
1097
- var x3 = grid[y + 1][x];
1098
- var x2 = grid[y + 1][x + 1];
1099
- var x1 = grid[y][x + 1];
1100
- var x0 = grid[y][x];
1101
- var threshold = settings.threshold;
1102
-
1103
- /*
1104
- * Note that missing data within the grid will result
1105
- * in horribly failing to trace full polygon paths
1106
- */
1107
- if(isNaN(x0) || isNaN(x1) || isNaN(x2) || isNaN(x3)) {
1108
- return;
1109
- }
1110
-
1111
- /*
1112
- * Here we detect the type of the cell
1113
- *
1114
- * x3 ---- x2
1115
- * | |
1116
- * | |
1117
- * x0 ---- x1
1118
- *
1119
- * with edge points
1120
- *
1121
- * x0 = (x,y),
1122
- * x1 = (x + 1, y),
1123
- * x2 = (x + 1, y + 1), and
1124
- * x3 = (x, y + 1)
1125
- *
1126
- * and compute the polygon intersections with the edges
1127
- * of the cell. Each edge value may be (i) smaller, or (ii)
1128
- * greater or equal to the iso line threshold. We encode
1129
- * this property using 1 bit of information, where
1130
- *
1131
- * 0 ... below,
1132
- * 1 ... above or equal
1133
- *
1134
- * Then we store the cells value as vector
1135
- *
1136
- * cval = (x0, x1, x2, x3)
1137
- *
1138
- * where x0 is the least significant bit (0th),
1139
- * x1 the 2nd bit, and so on. This essentially
1140
- * enables us to work with a single integer number
1141
- */
1142
-
1143
- cval |= ((x3 >= threshold) ? 8 : 0);
1144
- cval |= ((x2 >= threshold) ? 4 : 0);
1145
- cval |= ((x1 >= threshold) ? 2 : 0);
1146
- cval |= ((x0 >= threshold) ? 1 : 0);
1147
-
1148
- /* make sure cval is a number */
1149
- cval = +cval;
1150
-
1151
- /* compose the cell object */
1152
- cell = {
1153
- cval: cval,
1154
- polygons: [],
1155
- edges: {},
1156
- x0: x0,
1157
- x1: x1,
1158
- x2: x2,
1159
- x3: x3
1160
- };
1161
-
1162
- /*
1163
- * Compute interpolated intersections of the polygon(s)
1164
- * with the cell borders and (i) add edges for polygon
1165
- * trace-back, or (ii) a list of small closed polygons
1166
- */
1167
- switch (cval) {
1168
- case 0:
1169
- if (settings.polygons)
1170
- cell.polygons.push([ [0, 0], [0, 1], [1, 1], [1, 0] ]);
1171
-
1172
- break;
1173
-
1174
- case 15:
1175
- /* cell is outside (above) threshold, no polygons */
1176
- break;
1177
-
1178
- case 14: /* 1110 */
1179
- left = settings.interpolate(x0, x3, threshold);
1180
- bottom = settings.interpolate(x0, x1, threshold);
1181
-
1182
- if (settings.polygons_full) {
1183
- cell.edges.left = {
1184
- path: [ [0, left], [bottom, 0] ],
1185
- move: {
1186
- x: 0,
1187
- y: -1,
1188
- enter: 'top'
1189
- }
1190
- };
1191
- }
1192
-
1193
- if (settings.polygons)
1194
- cell.polygons.push([ [0, 0], [0, left], [bottom, 0] ]);
1195
-
1196
- break;
1197
-
1198
- case 13: /* 1101 */
1199
- bottom = settings.interpolate(x0, x1, threshold);
1200
- right = settings.interpolate(x1, x2, threshold);
1201
-
1202
- if (settings.polygons_full) {
1203
- cell.edges.bottom = {
1204
- path: [ [bottom, 0], [1, right] ],
1205
- move: {
1206
- x: 1,
1207
- y: 0,
1208
- enter: 'left'
1209
- }
1210
- };
1211
- }
1212
-
1213
- if (settings.polygons)
1214
- cell.polygons.push([ [bottom, 0], [1, right], [1, 0] ]);
1215
-
1216
- break;
1217
-
1218
- case 11: /* 1011 */
1219
- right = settings.interpolate(x1, x2, threshold);
1220
- top = settings.interpolate(x3, x2, threshold);
1221
-
1222
- if (settings.polygons_full) {
1223
- cell.edges.right = {
1224
- path: [ [1, right], [top, 1] ],
1225
- move: {
1226
- x: 0,
1227
- y: 1,
1228
- enter: 'bottom'
1229
- }
1230
- };
1231
- }
1232
-
1233
- if (settings.polygons)
1234
- cell.polygons.push([ [1, right], [top, 1], [1, 1] ]);
1235
-
1236
- break;
1237
-
1238
- case 7: /* 0111 */
1239
- left = settings.interpolate(x0, x3, threshold);
1240
- top = settings.interpolate(x3, x2, threshold);
1241
-
1242
- if (settings.polygons_full) {
1243
- cell.edges.top = {
1244
- path: [ [top, 1], [0, left] ],
1245
- move: {
1246
- x: -1,
1247
- y: 0,
1248
- enter: 'right'
1249
- }
1250
- };
1251
- }
1252
-
1253
- if (settings.polygons)
1254
- cell.polygons.push([ [top, 1], [0, left], [0, 1] ]);
1255
-
1256
- break;
1257
-
1258
- case 1: /* 0001 */
1259
- left = settings.interpolate(x0, x3, threshold);
1260
- bottom = settings.interpolate(x0, x1, threshold);
1261
-
1262
- if (settings.polygons_full) {
1263
- cell.edges.bottom = {
1264
- path: [ [bottom, 0], [0, left] ],
1265
- move: {
1266
- x: -1,
1267
- y: 0,
1268
- enter: 'right'
1269
- }
1270
- };
1271
- }
1272
-
1273
- if (settings.polygons)
1274
- cell.polygons.push([ [bottom, 0], [0, left], [0, 1], [1, 1], [1, 0] ]);
1275
-
1276
- break;
1277
-
1278
- case 2: /* 0010 */
1279
- bottom = settings.interpolate(x0, x1, threshold);
1280
- right = settings.interpolate(x1, x2, threshold);
1281
-
1282
- if (settings.polygons_full) {
1283
- cell.edges.right = {
1284
- path: [ [1, right], [bottom, 0] ],
1285
- move: {
1286
- x: 0,
1287
- y: -1,
1288
- enter: 'top'
1289
- }
1290
- };
1291
- }
1292
-
1293
- if (settings.polygons)
1294
- cell.polygons.push([ [0, 0], [0, 1], [1, 1], [1, right], [bottom, 0] ]);
1295
-
1296
- break;
1297
-
1298
- case 4: /* 0100 */
1299
- right = settings.interpolate(x1, x2, threshold);
1300
- top = settings.interpolate(x3, x2, threshold);
1301
-
1302
- if (settings.polygons_full) {
1303
- cell.edges.top = {
1304
- path: [ [top, 1], [1, right] ],
1305
- move: {
1306
- x: 1,
1307
- y: 0,
1308
- enter: 'left'
1309
- }
1310
- };
1311
- }
1312
-
1313
- if (settings.polygons)
1314
- cell.polygons.push([ [0, 0], [0, 1], [top, 1], [1, right], [1, 0] ]);
1315
-
1316
- break;
1317
-
1318
- case 8: /* 1000 */
1319
- left = settings.interpolate(x0, x3, threshold);
1320
- top = settings.interpolate(x3, x2, threshold);
1321
-
1322
- if (settings.polygons_full) {
1323
- cell.edges.left = {
1324
- path: [ [0, left], [top, 1] ],
1325
- move: {
1326
- x: 0,
1327
- y: 1,
1328
- enter: 'bottom'
1329
- }
1330
- };
1331
- }
1332
-
1333
- if (settings.polygons)
1334
- cell.polygons.push([ [0, 0], [0, left], [top, 1], [1, 1], [1, 0] ]);
1335
-
1336
- break;
1337
-
1338
- case 12: /* 1100 */
1339
- left = settings.interpolate(x0, x3, threshold);
1340
- right = settings.interpolate(x1, x2, threshold);
1341
-
1342
- if (settings.polygons_full) {
1343
- cell.edges.left = {
1344
- path: [ [0, left], [1, right] ],
1345
- move: {
1346
- x: 1,
1347
- y: 0,
1348
- enter: 'left'
1349
- }
1350
- };
1351
- }
1352
-
1353
- if (settings.polygons)
1354
- cell.polygons.push([ [0, 0], [0, left], [1, right], [1, 0] ]);
1355
-
1356
- break;
1357
-
1358
- case 9: /* 1001 */
1359
- bottom = settings.interpolate(x0, x1, threshold);
1360
- top = settings.interpolate(x3, x2, threshold);
1361
-
1362
- if (settings.polygons_full) {
1363
- cell.edges.bottom = {
1364
- path: [ [bottom, 0], [top, 1] ],
1365
- move: {
1366
- x: 0,
1367
- y: 1,
1368
- enter: 'bottom'
1369
- }
1370
- };
1371
- }
1372
-
1373
- if (settings.polygons)
1374
- cell.polygons.push([ [bottom, 0], [top, 1], [1, 1], [1, 0] ]);
1375
-
1376
- break;
1377
-
1378
- case 3: /* 0011 */
1379
- left = settings.interpolate(x0, x3, threshold);
1380
- right = settings.interpolate(x1, x2, threshold);
1381
-
1382
- if (settings.polygons_full) {
1383
- cell.edges.right = {
1384
- path: [ [1, right], [0, left] ],
1385
- move: {
1386
- x: -1,
1387
- y: 0,
1388
- enter: 'right'
1389
- }
1390
- };
1391
- }
1392
-
1393
- if (settings.polygons)
1394
- cell.polygons.push([ [0, left], [0, 1], [1, 1], [1, right] ]);
1395
-
1396
- break;
1397
-
1398
- case 6: /* 0110 */
1399
- bottom = settings.interpolate(x0, x1, threshold);
1400
- top = settings.interpolate(x3, x2, threshold);
1401
-
1402
- if (settings.polygons_full) {
1403
- cell.edges.top = {
1404
- path: [ [top, 1], [bottom, 0] ],
1405
- move: {
1406
- x: 0,
1407
- y: -1,
1408
- enter: 'top'
1409
- }
1410
- };
1411
- }
1412
-
1413
- if (settings.polygons)
1414
- cell.polygons.push([ [0, 0], [0, 1], [top, 1], [bottom, 0] ]);
1415
-
1416
- break;
1417
-
1418
- case 10: /* 1010 */
1419
- left = settings.interpolate(x0, x3, threshold);
1420
- right = settings.interpolate(x1, x2, threshold);
1421
- bottom = settings.interpolate(x0, x1, threshold);
1422
- top = settings.interpolate(x3, x2, threshold);
1423
- average = (x0 + x1 + x2 + x3) / 4;
1424
-
1425
- if (settings.polygons_full) {
1426
- if (average < threshold) {
1427
- cell.edges.left = {
1428
- path: [ [0, left], [top, 1] ],
1429
- move: {
1430
- x: 0,
1431
- y: 1,
1432
- enter: 'bottom'
1433
- }
1434
- };
1435
- cell.edges.right = {
1436
- path: [ [1, right], [bottom, 0] ],
1437
- move: {
1438
- x: 0,
1439
- y: -1,
1440
- enter: 'top'
1441
- }
1442
- };
1443
- } else {
1444
- cell.edges.right = {
1445
- path: [ [1, right], [top, 1] ],
1446
- move: {
1447
- x: 0,
1448
- y: 1,
1449
- enter: 'bottom'
1450
- }
1451
- };
1452
- cell.edges.left = {
1453
- path: [ [0, left], [bottom, 0] ],
1454
- move: {
1455
- x: 0,
1456
- y: -1,
1457
- enter: 'top'
1458
- }
1459
- };
1460
- }
1461
- }
1462
-
1463
- if (settings.polygons) {
1464
- if (average < threshold) {
1465
- cell.polygons.push([ [0, 0], [0, left], [top, 1], [1, 1], [1, right], [bottom, 0] ]);
1466
- } else {
1467
- cell.polygons.push([ [0, 0], [0, left], [bottom, 0] ]);
1468
- cell.polygons.push([ [top, 1], [1, 1], [1, right] ]);
1469
- }
1470
- }
1471
-
1472
- break;
1473
-
1474
- case 5: /* 0101 */
1475
- left = settings.interpolate(x0, x3, threshold);
1476
- right = settings.interpolate(x1, x2, threshold);
1477
- bottom = settings.interpolate(x0, x1, threshold);
1478
- top = settings.interpolate(x3, x2, threshold);
1479
- average = (x0 + x1 + x2 + x3) / 4;
1480
-
1481
- if (settings.polygons_full) {
1482
- if (average < threshold) {
1483
- cell.edges.bottom = {
1484
- path: [ [bottom, 0], [0, left] ],
1485
- move: {
1486
- x: -1,
1487
- y: 0,
1488
- enter: 'right'
1489
- }
1490
- };
1491
- cell.edges.top = {
1492
- path: [ [top, 1], [1, right] ],
1493
- move: {
1494
- x: 1,
1495
- y: 0,
1496
- enter: 'left'
1497
- }
1498
- };
1499
- } else {
1500
- cell.edges.top = {
1501
- path: [ [top, 1], [0, left] ],
1502
- move: {
1503
- x: -1,
1504
- y: 0,
1505
- enter: 'right'
1506
- }
1507
- };
1508
- cell.edges.bottom = {
1509
- path: [ [bottom, 0], [1, right] ],
1510
- move: {
1511
- x: 1,
1512
- y: 0,
1513
- enter: 'left'
1514
- }
1515
- };
1516
- }
1517
- }
1518
-
1519
- if (settings.polygons) {
1520
- if (average < threshold) {
1521
- cell.polygons.push([ [0, left], [0, 1], [top, 1], [1, right], [1, 0], [bottom, 0] ]);
1522
- } else {
1523
- cell.polygons.push([ [0, left], [0, 1], [top, 1] ]);
1524
- cell.polygons.push([ [bottom, 0], [1, right], [1, 0] ]);
1525
- }
1526
- }
1527
-
1528
- break;
1529
- }
1530
-
1531
- return cell;
1532
- }
1533
-
1534
- /* eslint no-console: ["error", { allow: ["log"] }] */
1535
-
1536
-
1537
- /*
1538
- * lookup table to generate polygon paths or edges required to
1539
- * trace the full polygon(s)
1540
- */
1541
- var shapeCoordinates = {
1542
- square: function(cell, x0, x1, x2, x3, opt) {
1543
- if (opt.polygons)
1544
- cell.polygons.push([ [0,0], [0, 1], [1, 1], [1, 0] ]);
1545
- },
1546
-
1547
- triangle_bl: function(cell, x0, x1, x2, x3, opt) {
1548
- var bottomleft = opt.interpolate(x0, x1, opt.minV, opt.maxV);
1549
- var leftbottom = opt.interpolate(x0, x3, opt.minV, opt.maxV);
1550
-
1551
- if (opt.polygons_full) {
1552
- cell.edges.lb = {
1553
- path: [ [0, leftbottom], [bottomleft, 0] ],
1554
- move: {
1555
- x: 0,
1556
- y: -1,
1557
- enter: 'tl'
1558
- }
1559
- };
1560
- }
1561
-
1562
- if (opt.polygons)
1563
- cell.polygons.push([ [0, leftbottom], [bottomleft, 0], [0, 0] ]);
1564
- },
1565
-
1566
- triangle_br: function(cell, x0, x1, x2, x3, opt) {
1567
- var bottomright = opt.interpolate(x0, x1, opt.minV, opt.maxV);
1568
- var rightbottom = opt.interpolate(x1, x2, opt.minV, opt.maxV);
1569
-
1570
- if (opt.polygons_full) {
1571
- cell.edges.br = {
1572
- path: [ [bottomright, 0], [1, rightbottom] ],
1573
- move: {
1574
- x: 1,
1575
- y: 0,
1576
- enter: 'lb'
1577
- }
1578
- };
1579
- }
1580
-
1581
- if (opt.polygons)
1582
- cell.polygons.push([ [bottomright, 0], [1, rightbottom], [1, 0] ]);
1583
- },
1584
-
1585
- triangle_tr: function(cell, x0, x1, x2, x3, opt) {
1586
- var righttop = opt.interpolate(x1, x2, opt.minV, opt.maxV);
1587
- var topright = opt.interpolate(x3, x2, opt.minV, opt.maxV);
1588
-
1589
- if (opt.polygons_full) {
1590
- cell.edges.rt = {
1591
- path: [ [1, righttop], [topright, 1] ],
1592
- move: {
1593
- x: 0,
1594
- y: 1,
1595
- enter: 'br'
1596
- }
1597
- };
1598
- }
1599
-
1600
- if (opt.polygons)
1601
- cell.polygons.push([ [1, righttop], [topright, 1], [1, 1] ]);
1602
- },
1603
-
1604
- triangle_tl: function(cell, x0, x1, x2, x3, opt) {
1605
- var topleft = opt.interpolate(x3, x2, opt.minV, opt.maxV);
1606
- var lefttop = opt.interpolate(x0, x3, opt.minV, opt.maxV);
1607
-
1608
- if (opt.polygons_full) {
1609
- cell.edges.tl = {
1610
- path: [ [topleft, 1], [0, lefttop] ],
1611
- move: {
1612
- x: -1,
1613
- y: 0,
1614
- enter: 'rt'
1615
- }
1616
- };
1617
- }
1618
-
1619
- if (opt.polygons)
1620
- cell.polygons.push([ [0, lefttop], [0, 1], [topleft, 1] ]);
1621
- },
1622
-
1623
- tetragon_t: function(cell, x0, x1, x2, x3, opt) {
1624
- var righttop = opt.interpolate(x1, x2, opt.minV, opt.maxV);
1625
- var lefttop = opt.interpolate(x0, x3, opt.minV, opt.maxV);
1626
-
1627
- if (opt.polygons_full) {
1628
- cell.edges.rt = {
1629
- path: [ [1, righttop], [0, lefttop] ],
1630
- move: {
1631
- x: -1,
1632
- y: 0,
1633
- enter: 'rt'
1634
- }
1635
- };
1636
- }
1637
-
1638
- if (opt.polygons)
1639
- cell.polygons.push([ [0, lefttop], [0, 1], [1, 1], [1, righttop] ]);
1640
- },
1641
-
1642
- tetragon_r: function(cell, x0, x1, x2, x3, opt) {
1643
- var bottomright = opt.interpolate(x0, x1, opt.minV, opt.maxV);
1644
- var topright = opt.interpolate(x3, x2, opt.minV, opt.maxV);
1645
- if (opt.polygons_full) {
1646
- cell.edges.br = {
1647
- path: [ [bottomright, 0], [topright, 1] ],
1648
- move: {
1649
- x: 0,
1650
- y: 1,
1651
- enter: 'br'
1652
- }
1653
- };
1654
- }
1655
-
1656
- if (opt.polygons)
1657
- cell.polygons.push([ [bottomright, 0], [topright, 1], [1, 1], [1, 0] ]);
1658
- },
1659
-
1660
- tetragon_b: function(cell, x0, x1, x2, x3, opt) {
1661
- var leftbottom = opt.interpolate(x0, x3, opt.minV, opt.maxV);
1662
- var rightbottom = opt.interpolate(x1, x2, opt.minV, opt.maxV);
1663
-
1664
- if (opt.polygons_full) {
1665
- cell.edges.lb = {
1666
- path: [ [0, leftbottom], [1, rightbottom] ],
1667
- move: {
1668
- x: 1,
1669
- y: 0,
1670
- enter: 'lb'
1671
- }
1672
- };
1673
- }
1674
-
1675
- if (opt.polygons)
1676
- cell.polygons.push([ [0, 0], [0, leftbottom], [1, rightbottom], [1, 0] ]);
1677
- },
1678
-
1679
- tetragon_l: function(cell, x0, x1, x2, x3, opt) {
1680
- var topleft = opt.interpolate(x3, x2, opt.minV, opt.maxV);
1681
- var bottomleft = opt.interpolate(x0, x1, opt.minV, opt.maxV);
1682
-
1683
- if (opt.polygons_full) {
1684
- cell.edges.tl = {
1685
- path: [ [topleft, 1], [bottomleft, 0] ],
1686
- move: {
1687
- x: 0,
1688
- y: -1,
1689
- enter: 'tl'
1690
- }
1691
- };
1692
- }
1693
-
1694
- if (opt.polygons)
1695
- cell.polygons.push([ [0, 0], [0, 1], [topleft, 1], [bottomleft, 0] ]);
1696
- },
1697
-
1698
- tetragon_bl: function(cell, x0, x1, x2, x3, opt) {
1699
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
1700
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
1701
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
1702
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
1703
-
1704
- if (opt.polygons_full) {
1705
- cell.edges.bl = {
1706
- path: [ [bottomleft, 0], [0, leftbottom] ],
1707
- move: {
1708
- x: -1,
1709
- y: 0,
1710
- enter: 'rb'
1711
- }
1712
- };
1713
- cell.edges.lt = {
1714
- path: [ [0, lefttop], [bottomright, 0] ],
1715
- move: {
1716
- x: 0,
1717
- y: -1,
1718
- enter: 'tr'
1719
- }
1720
- };
1721
- }
1722
-
1723
- if (opt.polygons)
1724
- cell.polygons.push([ [bottomleft, 0], [0, leftbottom], [0, lefttop], [bottomright, 0] ]);
1725
- },
1726
-
1727
- tetragon_br: function(cell, x0, x1, x2, x3, opt) {
1728
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
1729
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
1730
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
1731
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
1732
-
1733
- if (opt.polygons_full) {
1734
- cell.edges.bl = {
1735
- path: [ [bottomleft, 0], [1, righttop] ],
1736
- move: {
1737
- x: 1,
1738
- y: 0,
1739
- enter: 'lt'
1740
- }
1741
- };
1742
- cell.edges.rb = {
1743
- path: [ [1, rightbottom], [bottomright, 0] ],
1744
- move: {
1745
- x: 0,
1746
- y: -1,
1747
- enter: 'tr'
1748
- }
1749
- };
1750
- }
1751
-
1752
- if (opt.polygons)
1753
- cell.polygons.push([ [bottomleft, 0], [1, righttop], [1, rightbottom], [bottomright, 0] ]);
1754
- },
1755
-
1756
- tetragon_tr: function(cell, x0, x1, x2, x3, opt) {
1757
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
1758
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
1759
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
1760
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
1761
-
1762
- if (opt.polygons_full) {
1763
- cell.edges.rb = {
1764
- path: [ [1, rightbottom], [topleft, 1] ],
1765
- move: {
1766
- x: 0,
1767
- y: 1,
1768
- enter: 'bl'
1769
- }
1770
- };
1771
- cell.edges.tr = {
1772
- path: [ [topright, 1], [1, righttop] ],
1773
- move: {
1774
- x: 1,
1775
- y: 0,
1776
- enter: 'lt'
1777
- }
1778
- };
1779
- }
1780
-
1781
- if (opt.polygons)
1782
- cell.polygons.push([ [1, rightbottom], [topleft, 1], [topright, 1], [1, righttop] ]);
1783
- },
1784
-
1785
- tetragon_tl: function(cell, x0, x1, x2, x3, opt) {
1786
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
1787
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
1788
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
1789
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
1790
-
1791
- if (opt.polygons_full) {
1792
- cell.edges.tr = {
1793
- path: [ [topright, 1], [0, leftbottom] ],
1794
- move: {
1795
- x: -1,
1796
- y: 0,
1797
- enter: 'rb'
1798
- }
1799
- };
1800
- cell.edges.lt = {
1801
- path: [ [0, lefttop], [topleft, 1] ],
1802
- move: {
1803
- x: 0,
1804
- y: 1,
1805
- enter: 'bl'
1806
- }
1807
- };
1808
- }
1809
-
1810
- if (opt.polygons)
1811
- cell.polygons.push([ [topright, 1], [0, leftbottom], [0, lefttop], [topleft, 1] ]);
1812
- },
1813
-
1814
- tetragon_lr: function(cell, x0, x1, x2, x3, opt) {
1815
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
1816
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
1817
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
1818
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
1819
-
1820
- if (opt.polygons_full) {
1821
- cell.edges.lt = {
1822
- path: [ [0, lefttop], [1, righttop] ],
1823
- move: {
1824
- x: 1,
1825
- y: 0,
1826
- enter: 'lt'
1827
- }
1828
- };
1829
- cell.edges.rb = {
1830
- path: [ [1, rightbottom], [0, leftbottom] ],
1831
- move: {
1832
- x: -1,
1833
- y: 0,
1834
- enter: 'rb'
1835
- }
1836
- };
1837
- }
1838
-
1839
- if (opt.polygons)
1840
- cell.polygons.push([ [0, leftbottom], [0, lefttop], [1, righttop], [1, rightbottom] ]);
1841
- },
1842
-
1843
- tetragon_tb: function(cell, x0, x1, x2, x3, opt) {
1844
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
1845
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
1846
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
1847
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
1848
-
1849
- if (opt.polygons_full) {
1850
- cell.edges.tr = {
1851
- path: [ [topright, 1], [bottomright, 0] ],
1852
- move: {
1853
- x: 0,
1854
- y: -1,
1855
- enter: 'tr'
1856
- }
1857
- };
1858
- cell.edges.bl = {
1859
- path: [ [bottomleft, 0], [topleft, 1] ],
1860
- move: {
1861
- x: 0,
1862
- y: 1,
1863
- enter: 'bl'
1864
- }
1865
- };
1866
- }
1867
-
1868
- if (opt.polygons)
1869
- cell.polygons.push([ [bottomleft, 0], [topleft, 1], [topright, 1], [bottomright, 0] ]);
1870
- },
1871
-
1872
- pentagon_tr: function(cell, x0, x1, x2, x3, opt) {
1873
- var topleft = opt.interpolate(x3, x2, opt.minV, opt.maxV);
1874
- var rightbottom = opt.interpolate(x1, x2, opt.minV, opt.maxV);
1875
-
1876
- if (opt.polygons_full) {
1877
- cell.edges.tl = {
1878
- path: [[topleft, 1], [1, rightbottom]],
1879
- move: {
1880
- x: 1,
1881
- y: 0,
1882
- enter: 'lb'
1883
- }
1884
- };
1885
- }
1886
-
1887
- if (opt.polygons)
1888
- cell.polygons.push([ [0, 0], [0, 1], [topleft, 1], [1, rightbottom], [1, 0] ]);
1889
- },
1890
-
1891
- pentagon_tl: function(cell, x0, x1, x2, x3, opt) {
1892
- var leftbottom = opt.interpolate(x0, x3, opt.minV, opt.maxV);
1893
- var topright = opt.interpolate(x3, x2, opt.minV, opt.maxV);
1894
-
1895
- if (opt.polygons_full) {
1896
- cell.edges.lb = {
1897
- path: [ [0, leftbottom], [topright, 1] ],
1898
- move: {
1899
- x: 0,
1900
- y: 1,
1901
- enter: 'br'
1902
- }
1903
- };
1904
- }
1905
-
1906
- if (opt.polygons)
1907
- cell.polygons.push([ [0, 0], [0, leftbottom], [topright, 1], [1, 1], [1, 0] ]);
1908
- },
1909
-
1910
- pentagon_br: function(cell, x0, x1, x2, x3, opt) {
1911
- var bottomleft = opt.interpolate(x0, x1, opt.minV, opt.maxV);
1912
- var righttop = opt.interpolate(x1, x2, opt.minV, opt.maxV);
1913
-
1914
- if (opt.polygons_full) {
1915
- cell.edges.rt = {
1916
- path: [ [1, righttop], [bottomleft, 0] ],
1917
- move: {
1918
- x: 0,
1919
- y: -1,
1920
- enter: 'tl'
1921
- }
1922
- };
1923
- }
1924
- if (opt.polygons)
1925
- cell.polygons.push([ [0, 0], [0, 1], [1, 1], [1, righttop], [bottomleft, 0] ]);
1926
- },
1927
-
1928
- pentagon_bl: function(cell, x0, x1, x2, x3, opt) {
1929
- var lefttop = opt.interpolate(x0, x3, opt.minV, opt.maxV);
1930
- var bottomright = opt.interpolate(x0, x1, opt.minV, opt.maxV);
1931
-
1932
- if (opt.polygons_full) {
1933
- cell.edges.br = {
1934
- path: [ [bottomright, 0], [0, lefttop] ],
1935
- move: {
1936
- x: -1,
1937
- y: 0,
1938
- enter: 'rt'
1939
- }
1940
- };
1941
- }
1942
-
1943
- if (opt.polygons)
1944
- cell.polygons.push([ [0, lefttop], [0, 1], [1, 1], [1, 0], [bottomright, 0] ]);
1945
- },
1946
-
1947
- pentagon_tr_rl: function(cell, x0, x1, x2, x3, opt) {
1948
- var lefttop = opt.interpolate(x0, x3, opt.minV, opt.maxV);
1949
- var topleft = opt.interpolate(x3, x2, opt.minV, opt.maxV);
1950
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
1951
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
1952
-
1953
- if (opt.polygons_full) {
1954
- cell.edges.tl = {
1955
- path: [ [topleft, 1], [1, righttop] ],
1956
- move: {
1957
- x: 1,
1958
- y: 0,
1959
- enter: 'lt'
1960
- }
1961
- };
1962
- cell.edges.rb = {
1963
- path: [ [1, rightbottom], [0, lefttop] ],
1964
- move: {
1965
- x: -1,
1966
- y: 0,
1967
- enter: 'rt'
1968
- }
1969
- };
1970
- }
1971
-
1972
- if (opt.polygons)
1973
- cell.polygons.push([ [0, lefttop], [0, 1], [topleft, 1], [1, righttop], [1, rightbottom] ]);
1974
- },
1975
-
1976
- pentagon_rb_bt: function(cell, x0, x1, x2, x3, opt) {
1977
- var righttop = opt.interpolate(x1, x2, opt.minV, opt.maxV);
1978
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
1979
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
1980
- var topright = opt.interpolate(x3, x2, opt.minV, opt.maxV);
1981
-
1982
- if (opt.polygons_full) {
1983
- cell.edges.rt = {
1984
- path: [ [1, righttop], [bottomright, 0] ],
1985
- move: {
1986
- x: 0,
1987
- y: -1,
1988
- enter: 'tr'
1989
- }
1990
- };
1991
- cell.edges.bl = {
1992
- path: [ [bottomleft, 0], [topright, 1] ],
1993
- move: {
1994
- x: 0,
1995
- y: 1,
1996
- enter: 'br'
1997
- }
1998
- };
1999
- }
2000
-
2001
- if (opt.polygons)
2002
- cell.polygons.push([ [topright, 1], [1, 1], [1, righttop], [bottomright, 0], [bottomleft, 0] ]);
2003
- },
2004
-
2005
- pentagon_bl_lr: function(cell, x0, x1, x2, x3, opt) {
2006
- var bottomright = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2007
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
2008
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
2009
- var rightbottom = opt.interpolate(x1, x2, opt.minV, opt.maxV);
2010
-
2011
- if (opt.polygons_full) {
2012
- cell.edges.br = {
2013
- path: [ [bottomright, 0], [0, leftbottom] ],
2014
- move: {
2015
- x: -1,
2016
- y: 0,
2017
- enter: 'rb'
2018
- }
2019
- };
2020
- cell.edges.lt = {
2021
- path: [ [0, lefttop], [1, rightbottom] ],
2022
- move: {
2023
- x: 1,
2024
- y: 0,
2025
- enter: 'lb'
2026
- }
2027
- };
2028
- }
2029
-
2030
- if (opt.polygons)
2031
- cell.polygons.push([ [bottomright, 0], [0, leftbottom], [0, lefttop], [1, rightbottom], [1, 0] ]);
2032
- },
2033
-
2034
- pentagon_lt_tb: function(cell, x0, x1, x2, x3, opt) {
2035
- var leftbottom = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2036
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
2037
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
2038
- var bottomleft = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2039
-
2040
- if (opt.polygons_full) {
2041
- cell.edges.lb = {
2042
- path: [ [0, leftbottom], [topleft, 1] ],
2043
- move: {
2044
- x: 0,
2045
- y: 1,
2046
- enter: 'bl'
2047
- }
2048
- };
2049
- cell.edges.tr = {
2050
- path: [ [topright, 1], [bottomleft, 0] ],
2051
- move: {
2052
- x: 0,
2053
- y: -1,
2054
- enter: 'tl'
2055
- }
2056
- };
2057
- }
2058
-
2059
- if (opt.polygons)
2060
- cell.polygons.push([ [0, 0], [0, leftbottom], [topleft, 1], [topright, 1], [bottomleft, 0] ]);
2061
- },
2062
-
2063
- pentagon_bl_tb: function(cell, x0, x1, x2, x3, opt) {
2064
- var lefttop = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2065
- var topleft = opt.interpolate(x3, x2, opt.minV, opt.maxV);
2066
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
2067
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
2068
-
2069
- if (opt.polygons_full) {
2070
- cell.edges.bl = {
2071
- path: [ [bottomleft, 0], [0, lefttop] ],
2072
- move: {
2073
- x: -1,
2074
- y: 0,
2075
- enter: 'rt'
2076
- }
2077
- };
2078
- cell.edges.tl = {
2079
- path: [ [ topleft, 1], [bottomright, 0] ],
2080
- move: {
2081
- x: 0,
2082
- y: -1,
2083
- enter: 'tr'
2084
- }
2085
- };
2086
- }
2087
-
2088
- if (opt.polygons)
2089
- cell.polygons.push([ [0, lefttop], [0, 1], [topleft, 1], [bottomright, 0], [bottomleft, 0] ]);
2090
- },
2091
-
2092
- pentagon_lt_rl: function(cell, x0, x1, x2, x3, opt) {
2093
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
2094
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
2095
- var topright = opt.interpolate(x3, x2, opt.minV, opt.maxV);
2096
- var righttop = opt.interpolate(x1, x3, opt.minV, opt.maxV);
2097
-
2098
- if (opt.polygons_full) {
2099
- cell.edges.lt = {
2100
- path: [ [0, lefttop], [topright, 1] ],
2101
- move: {
2102
- x: 0,
2103
- y: 1,
2104
- enter: 'br'
2105
- }
2106
- };
2107
- cell.edges.rt = {
2108
- path: [ [1, righttop], [0, leftbottom] ],
2109
- move: {
2110
- x: -1,
2111
- y: 0,
2112
- enter: 'rb'
2113
- }
2114
- };
2115
- }
2116
-
2117
- if (opt.polygons)
2118
- cell.polygons.push([ [0, leftbottom], [0, lefttop], [topright, 1], [1, 1], [1, righttop] ]);
2119
- },
2120
-
2121
- pentagon_tr_bt: function(cell, x0, x1, x2, x3, opt) {
2122
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
2123
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
2124
- var rightbottom = opt.interpolate(x1, x2, opt.minV, opt.maxV);
2125
- var bottomright = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2126
-
2127
- if (opt.polygons_full) {
2128
- cell.edges.br = {
2129
- path: [ [bottomright, 0], [topleft, 1] ],
2130
- move: {
2131
- x: 0,
2132
- y: 1,
2133
- enter: 'bl'
2134
- }
2135
- };
2136
- cell.edges.tr = {
2137
- path: [ [topright, 1], [1, rightbottom] ],
2138
- move: {
2139
- x: 1,
2140
- y: 0,
2141
- enter: 'lb'
2142
- }
2143
- };
2144
- }
2145
-
2146
- if (opt.polygons)
2147
- cell.polygons.push([ [topleft, 1], [topright, 1], [1, rightbottom], [1, 0], [bottomright, 0] ]);
2148
- },
2149
-
2150
- pentagon_rb_lr: function(cell, x0, x1, x2, x3, opt) {
2151
- var leftbottom = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2152
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
2153
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
2154
- var bottomleft = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2155
-
2156
- if (opt.polygons_full) {
2157
- cell.edges.lb = {
2158
- path: [ [0, leftbottom], [1, righttop] ],
2159
- move: {
2160
- x: 1,
2161
- y: 0,
2162
- enter: 'lt'
2163
- }
2164
- };
2165
- cell.edges.rb = {
2166
- path: [ [1, rightbottom], [bottomleft, 0] ],
2167
- move: {
2168
- x: 0,
2169
- y: -1,
2170
- enter: 'tl'
2171
- }
2172
- };
2173
- }
2174
- if (opt.polygons)
2175
- cell.polygons.push([ [0, 0], [0, leftbottom], [1, righttop], [1, rightbottom], [bottomleft, 0] ]);
2176
- },
2177
-
2178
- hexagon_lt_tr: function(cell, x0, x1, x2, x3, opt) {
2179
- var leftbottom = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2180
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
2181
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
2182
- var rightbottom = opt.interpolate(x1, x2, opt.minV, opt.maxV);
2183
-
2184
- if (opt.polygons_full) {
2185
- cell.edges.lb = {
2186
- path: [ [0, leftbottom], [topleft, 1] ],
2187
- move: {
2188
- x: 0,
2189
- y: 1,
2190
- enter: 'bl'
2191
- }
2192
- };
2193
- cell.edges.tr = {
2194
- path: [ [topright, 1], [1, rightbottom] ],
2195
- move: {
2196
- x: 1,
2197
- y: 0,
2198
- enter: 'lb'
2199
- }
2200
- };
2201
- }
2202
-
2203
- if (opt.polygons)
2204
- cell.polygons.push([ [0, 0], [0, leftbottom], [topleft, 1], [topright, 1], [1, rightbottom], [1, 0] ]);
2205
- },
2206
-
2207
- hexagon_bl_lt: function(cell, x0, x1, x2, x3, opt) {
2208
- var bottomright = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2209
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
2210
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
2211
- var topright = opt.interpolate(x3, x2, opt.minV, opt.maxV);
2212
-
2213
- if (opt.polygons_full) {
2214
- cell.edges.br = {
2215
- path: [ [bottomright, 0], [0, leftbottom] ],
2216
- move: {
2217
- x: -1,
2218
- y: 0,
2219
- enter: 'rb'
2220
- }
2221
- };
2222
- cell.edges.lt = {
2223
- path: [ [0, lefttop], [topright, 1] ],
2224
- move: {
2225
- x: 0,
2226
- y: 1,
2227
- enter: 'br'
2228
- }
2229
- };
2230
- }
2231
-
2232
- if (opt.polygons)
2233
- cell.polygons.push([ [bottomright, 0], [0, leftbottom], [0, lefttop], [topright, 1], [1, 1], [1, 0] ]);
2234
- },
2235
-
2236
- hexagon_bl_rb: function(cell, x0, x1, x2, x3, opt) {
2237
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
2238
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
2239
- var lefttop = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2240
- var righttop = opt.interpolate(x1, x2, opt.minV, opt.maxV);
2241
-
2242
- if (opt.polygons_full) {
2243
- cell.edges.bl = {
2244
- path: [ [bottomleft, 0], [0, lefttop] ],
2245
- move: {
2246
- x: -1,
2247
- y: 0,
2248
- enter: 'rt'
2249
- }
2250
- };
2251
- cell.edges.rt = {
2252
- path: [ [1, righttop], [bottomright, 0] ],
2253
- move: {
2254
- x: 0,
2255
- y: -1,
2256
- enter: 'tr'
2257
- }
2258
- };
2259
- }
2260
-
2261
- if (opt.polygons)
2262
- cell.polygons.push([ [bottomleft, 0], [0, lefttop], [0, 1], [1, 1], [1, righttop], [bottomright, 0] ]);
2263
- },
2264
-
2265
- hexagon_tr_rb: function(cell, x0, x1, x2, x3, opt) {
2266
- var bottomleft = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2267
- var topleft = opt.interpolate(x3, x2, opt.minV, opt.maxV);
2268
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
2269
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
2270
-
2271
- if (opt.polygons_full) {
2272
- cell.edges.tl = {
2273
- path: [ [topleft, 1], [1, righttop] ],
2274
- move: {
2275
- x: 1,
2276
- y: 0,
2277
- enter: 'lt'
2278
- }
2279
- };
2280
- cell.edges.rb = {
2281
- path: [ [1, rightbottom], [bottomleft, 0] ],
2282
- move: {
2283
- x: 0,
2284
- y: -1,
2285
- enter: 'tl'
2286
- }
2287
- };
2288
- }
2289
-
2290
- if (opt.polygons)
2291
- cell.polygons.push([ [0, 0], [0, 1], [topleft, 1], [1, righttop], [1, rightbottom], [bottomleft, 0] ]);
2292
- },
2293
-
2294
- hexagon_lt_rb: function(cell, x0, x1, x2, x3, opt) {
2295
- var leftbottom = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2296
- var topright = opt.interpolate(x3, x2, opt.minV, opt.maxV);
2297
- var righttop = opt.interpolate(x1, x2, opt.minV, opt.maxV);
2298
- var bottomleft = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2299
-
2300
- if (opt.polygons_full) {
2301
- cell.edges.lb = {
2302
- path: [ [0, leftbottom], [topright, 1] ],
2303
- move: {
2304
- x: 0,
2305
- y: 1,
2306
- enter: 'br'
2307
- }
2308
- };
2309
- cell.edges.rt = {
2310
- path: [ [1, righttop], [bottomleft, 0] ],
2311
- move: {
2312
- x: 0,
2313
- y: -1,
2314
- enter: 'tl'
2315
- }
2316
- };
2317
- }
2318
-
2319
- if (opt.polygons)
2320
- cell.polygons.push([ [0, 0], [0, leftbottom], [topright, 1], [1, 1], [1, righttop], [bottomleft, 0] ]);
2321
- },
2322
-
2323
- hexagon_bl_tr: function(cell, x0, x1, x2, x3, opt) {
2324
- var bottomright = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2325
- var lefttop = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2326
- var topleft = opt.interpolate(x3, x2, opt.minV, opt.maxV);
2327
- var rightbottom = opt.interpolate(x1, x2, opt.minV, opt.maxV);
2328
-
2329
- if (opt.polygons_full) {
2330
- cell.edges.br = {
2331
- path: [ [bottomright, 0], [0, lefttop] ],
2332
- move: {
2333
- x: -1,
2334
- y: 0,
2335
- enter: 'rt'
2336
- }
2337
- };
2338
- cell.edges.tl = {
2339
- path: [ [topleft, 1], [1, rightbottom] ],
2340
- move: {
2341
- x: 1,
2342
- y: 0,
2343
- enter: 'lb'
2344
- }
2345
- };
2346
- }
2347
-
2348
- if (opt.polygons)
2349
- cell.polygons.push([ [bottomright, 0], [0, lefttop], [0, 1], [topleft, 1], [1, rightbottom], [1, 0] ]);
2350
- },
2351
-
2352
- heptagon_tr: function(cell, x0, x1, x2, x3, opt) {
2353
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
2354
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
2355
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
2356
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
2357
- var topright = opt.interpolate(x3, x2, opt.minV, opt.maxV);
2358
- var righttop = opt.interpolate(x1, x2, opt.minV, opt.maxV);
2359
-
2360
- if (opt.polygons_full) {
2361
- cell.edges.bl = {
2362
- path: [ [bottomleft, 0], [0, leftbottom] ],
2363
- move: {
2364
- x: -1,
2365
- y: 0,
2366
- enter: 'rb'
2367
- }
2368
- };
2369
- cell.edges.lt = {
2370
- path: [ [0, lefttop], [topright, 1] ],
2371
- move: {
2372
- x: 0,
2373
- y: 1,
2374
- enter: 'br'
2375
- }
2376
- };
2377
- cell.edges.rt = {
2378
- path: [ [1, righttop], [bottomright, 0] ],
2379
- move: {
2380
- x: 0,
2381
- y: -1,
2382
- enter: 'tr'
2383
- }
2384
- };
2385
- }
2386
-
2387
- if (opt.polygons)
2388
- cell.polygons.push([ [bottomleft, 0], [0, leftbottom], [0, lefttop], [topright, 1], [1, 1], [1, righttop], [bottomright, 0] ]);
2389
- },
2390
-
2391
- heptagon_bl: function(cell, x0, x1, x2, x3, opt) {
2392
- var bottomleft = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2393
- var leftbottom = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2394
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
2395
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
2396
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
2397
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
2398
-
2399
- if (opt.polygons_full) {
2400
- cell.edges.lb = {
2401
- path: [ [0, leftbottom], [topleft, 1] ],
2402
- move: {
2403
- x: 0,
2404
- y: 1,
2405
- enter: 'bl'
2406
- }
2407
- };
2408
- cell.edges.tr = {
2409
- path: [ [topright, 1], [1, righttop] ],
2410
- move: {
2411
- x: 1,
2412
- y: 0,
2413
- enter: 'lt'
2414
- }
2415
- };
2416
- cell.edges.rb = {
2417
- path: [ [1, rightbottom], [bottomleft, 0] ],
2418
- move: {
2419
- x: 0,
2420
- y: -1,
2421
- enter: 'tl'
2422
- }
2423
- };
2424
- }
2425
-
2426
- if (opt.polygons)
2427
- cell.polygons.push([ [0, 0], [0, leftbottom], [topleft, 1], [topright, 1], [1, righttop], [1, rightbottom], [bottomleft, 0] ]);
2428
- },
2429
-
2430
- heptagon_tl: function(cell, x0, x1, x2, x3, opt) {
2431
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
2432
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
2433
- var lefttop = opt.interpolate(x0, x3, opt.minV, opt.maxV);
2434
- var topleft = opt.interpolate(x3, x2, opt.minV, opt.maxV);
2435
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
2436
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
2437
-
2438
- if (opt.polygons_full) {
2439
- cell.edges.bl = {
2440
- path: [ [bottomleft, 0], [0, lefttop] ],
2441
- move: {
2442
- x: -1,
2443
- y: 0,
2444
- enter: 'rt'
2445
- }
2446
- };
2447
- cell.edges.tl = {
2448
- path: [ [topleft, 1], [1, righttop] ],
2449
- move: {
2450
- x: 1,
2451
- y: 0,
2452
- enter: 'lt'
2453
- }
2454
- };
2455
- cell.edges.rb = {
2456
- path: [ [1, rightbottom], [bottomright, 0] ],
2457
- move: {
2458
- x: 0,
2459
- y: -1,
2460
- enter: 'tr'
2461
- }
2462
- };
2463
- }
2464
-
2465
- if (opt.polygons)
2466
- cell.polygons.push([ [bottomleft, 0], [0, lefttop], [0, 1], [topleft, 1], [1, righttop], [1, rightbottom], [bottomright, 0] ]);
2467
- },
2468
-
2469
- heptagon_br: function(cell, x0, x1, x2, x3, opt) {
2470
- var bottomright = opt.interpolate(x0, x1, opt.minV, opt.maxV);
2471
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
2472
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
2473
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
2474
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
2475
- var rightbottom = opt.interpolate(x1, x2, opt.minV, opt.maxV);
2476
-
2477
- if (opt.polygons_full) {
2478
- cell.edges.br = {
2479
- path: [ [bottomright, 0], [0, leftbottom] ],
2480
- move: {
2481
- x: -1,
2482
- y: 0,
2483
- enter: 'rb'
2484
- }
2485
- };
2486
- cell.edges.lt = {
2487
- path: [ [0, lefttop], [topleft, 1] ],
2488
- move: {
2489
- x: 0,
2490
- y: 1,
2491
- enter: 'bl'
2492
- }
2493
- };
2494
- cell.edges.tr = {
2495
- path: [ [topright, 1], [1, rightbottom] ],
2496
- move: {
2497
- x: 1,
2498
- y: 0,
2499
- enter: 'lb'
2500
- }
2501
- };
2502
- }
2503
-
2504
- if (opt.polygons)
2505
- cell.polygons.push([ [bottomright,0], [0, leftbottom], [0, lefttop], [topleft, 1], [topright, 1], [1, rightbottom], [1, 0] ]);
2506
- },
2507
-
2508
- octagon: function(cell, x0, x1, x2, x3, opt) {
2509
- var bottomleft = opt.interpolate_a(x0, x1, opt.minV, opt.maxV);
2510
- var bottomright = opt.interpolate_b(x0, x1, opt.minV, opt.maxV);
2511
- var leftbottom = opt.interpolate_a(x0, x3, opt.minV, opt.maxV);
2512
- var lefttop = opt.interpolate_b(x0, x3, opt.minV, opt.maxV);
2513
- var topleft = opt.interpolate_a(x3, x2, opt.minV, opt.maxV);
2514
- var topright = opt.interpolate_b(x3, x2, opt.minV, opt.maxV);
2515
- var righttop = opt.interpolate_b(x1, x2, opt.minV, opt.maxV);
2516
- var rightbottom = opt.interpolate_a(x1, x2, opt.minV, opt.maxV);
2517
-
2518
- if (opt.polygons_full) {
2519
- cell.edges.bl = {
2520
- path: [ [bottomleft, 0], [0, leftbottom] ],
2521
- move: {
2522
- x: -1,
2523
- y: 0,
2524
- enter: 'rb'
2525
- }
2526
- };
2527
- cell.edges.lt = {
2528
- path: [ [0, lefttop], [topleft, 1] ],
2529
- move: {
2530
- x: 0,
2531
- y: 1,
2532
- enter: 'bl'
2533
- }
2534
- };
2535
- cell.edges.tr = {
2536
- path: [ [topright, 1], [1, righttop] ],
2537
- move: {
2538
- x: 1,
2539
- y: 0,
2540
- enter: 'lt'
2541
- }
2542
- };
2543
- cell.edges.rb = {
2544
- path: [ [1, rightbottom], [bottomright, 0] ],
2545
- move: {
2546
- x: 0,
2547
- y: -1,
2548
- enter: 'tr'
2549
- }
2550
- };
2551
- }
2552
-
2553
- if (opt.polygons)
2554
- cell.polygons.push([ [bottomleft, 0], [0, leftbottom], [0, lefttop], [topleft, 1], [topright, 1], [1, righttop], [1, rightbottom], [bottomright, 0] ]);
2555
- }
2556
- };
2557
-
2558
-
2559
- /*
2560
- * Compute isobands(s) for a scalar 2D field given a certain
2561
- * threshold and a bandwidth by applying the Marching Squares
2562
- * Algorithm. The function returns a list of path coordinates
2563
- * either for individual polygons within each grid cell, or the
2564
- * outline of connected polygons.
2565
- */
2566
- function isoBands(input, minV, bandWidth, options) {
2567
- var i,
2568
- j,
2569
- settings,
2570
- useQuadTree = false,
2571
- tree = null,
2572
- root = null,
2573
- data = null,
2574
- cellGrid = null,
2575
- multiBand = false,
2576
- bw = [],
2577
- bandPolygons = [],
2578
- ret = [];
2579
-
2580
- /* basic input validation */
2581
- if (!input) throw new Error('data is required');
2582
- if (minV === undefined || minV === null) throw new Error('lowerBound is required');
2583
- if (bandWidth === undefined || bandWidth === null) throw new Error('bandWidth is required');
2584
- if ((!!options) && (typeof options !== 'object')) throw new Error('options must be an object');
2585
-
2586
- settings = isoBandOptions(options);
2587
-
2588
- /* check for input data */
2589
- if (input instanceof QuadTree) {
2590
- tree = input;
2591
- root = input.root;
2592
- data = input.data;
2593
- if (!settings.noQuadTree)
2594
- useQuadTree = true;
2595
- } else if (Array.isArray(input) && Array.isArray(input[0])) {
2596
- data = input;
2597
- } else {
2598
- throw new Error('input is neither array of arrays nor object retrieved from \'QuadTree()\'');
2599
- }
2600
-
2601
- /* check and prepare input thresholds */
2602
- if (Array.isArray(minV)) {
2603
- multiBand = true;
2604
-
2605
- /* activate QuadTree optimization if not explicitly forbidden by user settings */
2606
- if (!settings.noQuadTree)
2607
- useQuadTree = true;
2608
-
2609
- /* check if all minV are numbers */
2610
- for (i = 0; i < minV.length; i++)
2611
- if (isNaN(+minV[i]))
2612
- throw new Error('lowerBound[' + i + '] is not a number');
2613
-
2614
- if (Array.isArray(bandWidth)) {
2615
- if (minV.length !== bandWidth.length)
2616
- throw new Error('lowerBound and bandWidth have unequal lengths');
2617
-
2618
- /* check bandwidth values */
2619
- for (i = 0; i < bandWidth.length; i++)
2620
- if (isNaN(+bandWidth[i]))
2621
- throw new Error('bandWidth[' + i + '] is not a number');
2622
- } else {
2623
- if (isNaN(+bandWidth))
2624
- throw new Error('bandWidth must be a number');
2625
-
2626
- bw = [];
2627
- for (i = 0; i < minV.length; i++) {
2628
- bw.push(bandWidth);
2629
- }
2630
- bandWidth = bw;
2631
- }
2632
- } else {
2633
- if (isNaN(+minV))
2634
- throw new Error('lowerBound must be a number');
2635
-
2636
- minV = [ minV ];
2637
-
2638
- if (isNaN(+bandWidth))
2639
- throw new Error('bandWidth must be a number');
2640
-
2641
- bandWidth = [ bandWidth ];
2642
- }
2643
-
2644
- /* create QuadTree root node if not already present */
2645
- if ((useQuadTree) && (!root)) {
2646
- tree = new QuadTree(data);
2647
- root = tree.root;
2648
- data = tree.data;
2649
- }
2650
-
2651
- if (settings.verbose) {
2652
- if(settings.polygons)
2653
- console.log('MarchingSquaresJS-isoBands: returning single polygons for each grid cell');
2654
- else
2655
- console.log('MarchingSquaresJS-isoBands: returning polygon paths for entire data grid');
2656
-
2657
- if (multiBand)
2658
- console.log('MarchingSquaresJS-isoBands: multiple bands requested, returning array of band polygons instead of polygons for a single band');
2659
- }
2660
-
2661
- /* Done with all input validation, now let's start computing stuff */
2662
-
2663
- /* loop over all minV values */
2664
- minV.forEach(function(lowerBound, b) {
2665
- bandPolygons = [];
2666
-
2667
- /* store bounds for current computation in settings object */
2668
- settings.minV = lowerBound;
2669
- settings.maxV = lowerBound + bandWidth[b];
2670
-
2671
- if(settings.verbose)
2672
- console.log('MarchingSquaresJS-isoBands: computing isobands for [' + lowerBound + ':' + (lowerBound + bandWidth[b]) + ']');
2673
-
2674
- if (settings.polygons) {
2675
- /* compose list of polygons for each single cell */
2676
- if (useQuadTree) {
2677
- /* go through list of cells retrieved from QuadTree */
2678
- root
2679
- .cellsInBand(settings.minV, settings.maxV, true)
2680
- .forEach(function(c) {
2681
- bandPolygons = bandPolygons.concat(
2682
- cell2Polygons(
2683
- prepareCell$1(data,
2684
- c.x,
2685
- c.y,
2686
- settings),
2687
- c.x,
2688
- c.y,
2689
- settings
2690
- ));
2691
- });
2692
- } else {
2693
- /* go through entire array of input data */
2694
- for (j = 0; j < data.length - 1; ++j) {
2695
- for (i = 0; i < data[0].length - 1; ++i)
2696
- bandPolygons = bandPolygons.concat(
2697
- cell2Polygons(
2698
- prepareCell$1(data,
2699
- i,
2700
- j,
2701
- settings),
2702
- i,
2703
- j,
2704
- settings
2705
- ));
2706
- }
2707
- }
2708
- } else {
2709
- /* sparse grid of input data cells */
2710
- cellGrid = [];
2711
- for (i = 0; i < data[0].length - 1; ++i)
2712
- cellGrid[i] = [];
2713
-
2714
- /* compose list of polygons for entire input grid */
2715
- if (useQuadTree) {
2716
- /* collect the cells */
2717
- root
2718
- .cellsInBand(settings.minV, settings.maxV, false)
2719
- .forEach(function(c) {
2720
- cellGrid[c.x][c.y] = prepareCell$1(data,
2721
- c.x,
2722
- c.y,
2723
- settings);
2724
- });
2725
- } else {
2726
- /* prepare cells */
2727
- for (i = 0; i < data[0].length - 1; ++i) {
2728
- for (j = 0; j < data.length - 1; ++j) {
2729
- cellGrid[i][j] = prepareCell$1(data,
2730
- i,
2731
- j,
2732
- settings);
2733
- }
2734
- }
2735
- }
2736
-
2737
- bandPolygons = traceBandPaths(data, cellGrid, settings);
2738
- }
2739
-
2740
- /* finally, add polygons to output array */
2741
- if (multiBand)
2742
- ret.push(bandPolygons);
2743
- else
2744
- ret = bandPolygons;
2745
-
2746
- if(typeof settings.successCallback === 'function')
2747
- settings.successCallback(ret, lowerBound, bandWidth[b]);
2748
- });
2749
-
2750
- return ret;
2751
- }
2752
-
2753
- /*
2754
- * Thats all for the public interface, below follows the actual
2755
- * implementation
2756
- */
2757
-
2758
- /*
2759
- * For isoBands, each square is defined by the three states
2760
- * of its corner points. However, since computers use power-2
2761
- * values, we use 2bits per trit, i.e.:
2762
- *
2763
- * 00 ... below minV
2764
- * 01 ... between minV and maxV
2765
- * 10 ... above maxV
2766
- *
2767
- * Hence we map the 4-trit configurations as follows:
2768
- *
2769
- * 0000 => 0
2770
- * 0001 => 1
2771
- * 0002 => 2
2772
- * 0010 => 4
2773
- * 0011 => 5
2774
- * 0012 => 6
2775
- * 0020 => 8
2776
- * 0021 => 9
2777
- * 0022 => 10
2778
- * 0100 => 16
2779
- * 0101 => 17
2780
- * 0102 => 18
2781
- * 0110 => 20
2782
- * 0111 => 21
2783
- * 0112 => 22
2784
- * 0120 => 24
2785
- * 0121 => 25
2786
- * 0122 => 26
2787
- * 0200 => 32
2788
- * 0201 => 33
2789
- * 0202 => 34
2790
- * 0210 => 36
2791
- * 0211 => 37
2792
- * 0212 => 38
2793
- * 0220 => 40
2794
- * 0221 => 41
2795
- * 0222 => 42
2796
- * 1000 => 64
2797
- * 1001 => 65
2798
- * 1002 => 66
2799
- * 1010 => 68
2800
- * 1011 => 69
2801
- * 1012 => 70
2802
- * 1020 => 72
2803
- * 1021 => 73
2804
- * 1022 => 74
2805
- * 1100 => 80
2806
- * 1101 => 81
2807
- * 1102 => 82
2808
- * 1110 => 84
2809
- * 1111 => 85
2810
- * 1112 => 86
2811
- * 1120 => 88
2812
- * 1121 => 89
2813
- * 1122 => 90
2814
- * 1200 => 96
2815
- * 1201 => 97
2816
- * 1202 => 98
2817
- * 1210 => 100
2818
- * 1211 => 101
2819
- * 1212 => 102
2820
- * 1220 => 104
2821
- * 1221 => 105
2822
- * 1222 => 106
2823
- * 2000 => 128
2824
- * 2001 => 129
2825
- * 2002 => 130
2826
- * 2010 => 132
2827
- * 2011 => 133
2828
- * 2012 => 134
2829
- * 2020 => 136
2830
- * 2021 => 137
2831
- * 2022 => 138
2832
- * 2100 => 144
2833
- * 2101 => 145
2834
- * 2102 => 146
2835
- * 2110 => 148
2836
- * 2111 => 149
2837
- * 2112 => 150
2838
- * 2120 => 152
2839
- * 2121 => 153
2840
- * 2122 => 154
2841
- * 2200 => 160
2842
- * 2201 => 161
2843
- * 2202 => 162
2844
- * 2210 => 164
2845
- * 2211 => 165
2846
- * 2212 => 166
2847
- * 2220 => 168
2848
- * 2221 => 169
2849
- * 2222 => 170
2850
- */
2851
-
2852
- /*
2853
- * ####################################
2854
- * Some small helper functions
2855
- * ####################################
2856
- */
2857
-
2858
- function computeCenterAverage(bl, br, tr, tl, minV, maxV) {
2859
- var average = (tl + tr + br + bl) / 4;
2860
-
2861
- if (average > maxV)
2862
- return 2; /* above isoband limits */
2863
-
2864
- if (average < minV)
2865
- return 0; /* below isoband limits */
2866
-
2867
- return 1; /* within isoband limits */
2868
- }
2869
-
2870
-
2871
- function prepareCell$1(grid, x, y, opt) {
2872
- var cell,
2873
- center_avg;
2874
-
2875
- /* compose the 4-trit corner representation */
2876
- var cval = 0;
2877
- var x3 = grid[y + 1][x];
2878
- var x2 = grid[y + 1][x + 1];
2879
- var x1 = grid[y][x + 1];
2880
- var x0 = grid[y][x];
2881
- var minV = opt.minV;
2882
- var maxV = opt.maxV;
2883
-
2884
- /*
2885
- * Note that missing data within the grid will result
2886
- * in horribly failing to trace full polygon paths
2887
- */
2888
- if(isNaN(x0) || isNaN(x1) || isNaN(x2) || isNaN(x3)) {
2889
- return;
2890
- }
2891
-
2892
- /*
2893
- * Here we detect the type of the cell
2894
- *
2895
- * x3 ---- x2
2896
- * | |
2897
- * | |
2898
- * x0 ---- x1
2899
- *
2900
- * with edge points
2901
- *
2902
- * x0 = (x,y),
2903
- * x1 = (x + 1, y),
2904
- * x2 = (x + 1, y + 1), and
2905
- * x3 = (x, y + 1)
2906
- *
2907
- * and compute the polygon intersections with the edges
2908
- * of the cell. Each edge value may be (i) below, (ii) within,
2909
- * or (iii) above the values of the isoband limits. We
2910
- * encode this property using 2 bits of information, where
2911
- *
2912
- * 00 ... below,
2913
- * 01 ... within, and
2914
- * 10 ... above
2915
- *
2916
- * Then we store the cells value as vector
2917
- *
2918
- * cval = (x0, x1, x2, x3)
2919
- *
2920
- * where x0 are the two least significant bits (0th, 1st),
2921
- * x1 the 2nd and 3rd bit, and so on. This essentially
2922
- * enables us to work with a single integer number
2923
- */
2924
-
2925
- cval |= (x3 < minV) ? 0 : (x3 > maxV) ? 128 : 64;
2926
- cval |= (x2 < minV) ? 0 : (x2 > maxV) ? 32 : 16;
2927
- cval |= (x1 < minV) ? 0 : (x1 > maxV) ? 8 : 4;
2928
- cval |= (x0 < minV) ? 0 : (x0 > maxV) ? 2 : 1;
2929
-
2930
- /* make sure cval is a number */
2931
- cval = +cval;
2932
-
2933
- /*
2934
- * cell center average trit for ambiguous cases, where
2935
- * 0 ... below iso band
2936
- * 1 ... within iso band
2937
- * 2 ... above isoband
2938
- */
2939
- center_avg = 0;
2940
-
2941
- cell = {
2942
- cval: cval,
2943
- polygons: [],
2944
- edges: {},
2945
- x0: x0,
2946
- x1: x1,
2947
- x2: x2,
2948
- x3: x3,
2949
- x: x,
2950
- y: y
2951
- };
2952
-
2953
- /*
2954
- * Compute interpolated intersections of the polygon(s)
2955
- * with the cell borders and (i) add edges for polygon
2956
- * trace-back, or (ii) a list of small closed polygons
2957
- * according to look-up table
2958
- */
2959
- switch (cval) {
2960
- case 85: /* 1111 */
2961
- shapeCoordinates.square(cell, x0, x1, x2, x3, opt);
2962
- /* fall through */
2963
- case 0: /* 0000 */
2964
- /* fall through */
2965
- case 170: /* 2222 */
2966
- break;
2967
-
2968
- /* single triangle cases */
2969
-
2970
- case 169: /* 2221 */
2971
- shapeCoordinates.triangle_bl(cell, x0, x1, x2, x3, opt);
2972
- break;
2973
-
2974
- case 166: /* 2212 */
2975
- shapeCoordinates.triangle_br(cell, x0, x1, x2, x3, opt);
2976
- break;
2977
-
2978
- case 154: /* 2122 */
2979
- shapeCoordinates.triangle_tr(cell, x0, x1, x2, x3, opt);
2980
- break;
2981
-
2982
- case 106: /* 1222 */
2983
- shapeCoordinates.triangle_tl(cell, x0, x1, x2, x3, opt);
2984
- break;
2985
-
2986
- case 1: /* 0001 */
2987
- shapeCoordinates.triangle_bl(cell, x0, x1, x2, x3, opt);
2988
- break;
2989
-
2990
- case 4: /* 0010 */
2991
- shapeCoordinates.triangle_br(cell, x0, x1, x2, x3, opt);
2992
- break;
2993
-
2994
- case 16: /* 0100 */
2995
- shapeCoordinates.triangle_tr(cell, x0, x1, x2, x3, opt);
2996
- break;
2997
-
2998
- case 64: /* 1000 */
2999
- shapeCoordinates.triangle_tl(cell, x0, x1, x2, x3, opt);
3000
- break;
3001
-
3002
-
3003
- /* single trapezoid cases */
3004
-
3005
- case 168: /* 2220 */
3006
- shapeCoordinates.tetragon_bl(cell, x0, x1, x2, x3, opt);
3007
- break;
3008
-
3009
- case 162: /* 2202 */
3010
- shapeCoordinates.tetragon_br(cell, x0, x1, x2, x3, opt);
3011
- break;
3012
-
3013
- case 138: /* 2022 */
3014
- shapeCoordinates.tetragon_tr(cell, x0, x1, x2, x3, opt);
3015
- break;
3016
-
3017
- case 42: /* 0222 */
3018
- shapeCoordinates.tetragon_tl(cell, x0, x1, x2, x3, opt);
3019
- break;
3020
-
3021
- case 2: /* 0002 */
3022
- shapeCoordinates.tetragon_bl(cell, x0, x1, x2, x3, opt);
3023
- break;
3024
-
3025
- case 8: /* 0020 */
3026
- shapeCoordinates.tetragon_br(cell, x0, x1, x2, x3, opt);
3027
- break;
3028
-
3029
- case 32: /* 0200 */
3030
- shapeCoordinates.tetragon_tr(cell, x0, x1, x2, x3, opt);
3031
- break;
3032
-
3033
- case 128: /* 2000 */
3034
- shapeCoordinates.tetragon_tl(cell, x0, x1, x2, x3, opt);
3035
- break;
3036
-
3037
-
3038
- /* single rectangle cases */
3039
-
3040
- case 5: /* 0011 */
3041
- shapeCoordinates.tetragon_b(cell, x0, x1, x2, x3, opt);
3042
- break;
3043
-
3044
- case 20: /* 0110 */
3045
- shapeCoordinates.tetragon_r(cell, x0, x1, x2, x3, opt);
3046
- break;
3047
-
3048
- case 80: /* 1100 */
3049
- shapeCoordinates.tetragon_t(cell, x0, x1, x2, x3, opt);
3050
- break;
3051
-
3052
- case 65: /* 1001 */
3053
- shapeCoordinates.tetragon_l(cell, x0, x1, x2, x3, opt);
3054
- break;
3055
-
3056
- case 165: /* 2211 */
3057
- shapeCoordinates.tetragon_b(cell, x0, x1, x2, x3, opt);
3058
- break;
3059
-
3060
- case 150: /* 2112 */
3061
- shapeCoordinates.tetragon_r(cell, x0, x1, x2, x3, opt);
3062
- break;
3063
-
3064
- case 90: /* 1122 */
3065
- shapeCoordinates.tetragon_t(cell, x0, x1, x2, x3, opt);
3066
- break;
3067
-
3068
- case 105: /* 1221 */
3069
- shapeCoordinates.tetragon_l(cell, x0, x1, x2, x3, opt);
3070
- break;
3071
-
3072
- case 160: /* 2200 */
3073
- shapeCoordinates.tetragon_lr(cell, x0, x1, x2, x3, opt);
3074
- break;
3075
-
3076
- case 130: /* 2002 */
3077
- shapeCoordinates.tetragon_tb(cell, x0, x1, x2, x3, opt);
3078
- break;
3079
-
3080
- case 10: /* 0022 */
3081
- shapeCoordinates.tetragon_lr(cell, x0, x1, x2, x3, opt);
3082
- break;
3083
-
3084
- case 40: /* 0220 */
3085
- shapeCoordinates.tetragon_tb(cell, x0, x1, x2, x3, opt);
3086
- break;
3087
-
3088
-
3089
- /* single pentagon cases */
3090
-
3091
- case 101: /* 1211 */
3092
- shapeCoordinates.pentagon_tr(cell, x0, x1, x2, x3, opt);
3093
- break;
3094
-
3095
- case 149: /* 2111 */
3096
- shapeCoordinates.pentagon_tl(cell, x0, x1, x2, x3, opt);
3097
- break;
3098
-
3099
- case 86: /* 1112 */
3100
- shapeCoordinates.pentagon_bl(cell, x0, x1, x2, x3, opt);
3101
- break;
3102
-
3103
- case 89: /* 1121 */
3104
- shapeCoordinates.pentagon_br(cell, x0, x1, x2, x3, opt);
3105
- break;
3106
-
3107
- case 69: /* 1011 */
3108
- shapeCoordinates.pentagon_tr(cell, x0, x1, x2, x3, opt);
3109
- break;
3110
-
3111
- case 21: /* 0111 */
3112
- shapeCoordinates.pentagon_tl(cell, x0, x1, x2, x3, opt);
3113
- break;
3114
-
3115
- case 84: /* 1110 */
3116
- shapeCoordinates.pentagon_bl(cell, x0, x1, x2, x3, opt);
3117
- break;
3118
-
3119
- case 81: /* 1101 */
3120
- shapeCoordinates.pentagon_br(cell, x0, x1, x2, x3, opt);
3121
- break;
3122
-
3123
- case 96: /* 1200 */
3124
- shapeCoordinates.pentagon_tr_rl(cell, x0, x1, x2, x3, opt);
3125
- break;
3126
-
3127
- case 24: /* 0120 */
3128
- shapeCoordinates.pentagon_rb_bt(cell, x0, x1, x2, x3, opt);
3129
- break;
3130
-
3131
- case 6: /* 0012 */
3132
- shapeCoordinates.pentagon_bl_lr(cell, x0, x1, x2, x3, opt);
3133
- break;
3134
-
3135
- case 129: /* 2001 */
3136
- shapeCoordinates.pentagon_lt_tb(cell, x0, x1, x2, x3, opt);
3137
- break;
3138
-
3139
- case 74: /* 1022 */
3140
- shapeCoordinates.pentagon_tr_rl(cell, x0, x1, x2, x3, opt);
3141
- break;
3142
-
3143
- case 146: /* 2102 */
3144
- shapeCoordinates.pentagon_rb_bt(cell, x0, x1, x2, x3, opt);
3145
- break;
3146
-
3147
- case 164: /* 2210 */
3148
- shapeCoordinates.pentagon_bl_lr(cell, x0, x1, x2, x3, opt);
3149
- break;
3150
-
3151
- case 41: /* 0221 */
3152
- shapeCoordinates.pentagon_lt_tb(cell, x0, x1, x2, x3, opt);
3153
- break;
3154
-
3155
- case 66: /* 1002 */
3156
- shapeCoordinates.pentagon_bl_tb(cell, x0, x1, x2, x3, opt);
3157
- break;
3158
-
3159
- case 144: /* 2100 */
3160
- shapeCoordinates.pentagon_lt_rl(cell, x0, x1, x2, x3, opt);
3161
- break;
3162
-
3163
- case 36: /* 0210 */
3164
- shapeCoordinates.pentagon_tr_bt(cell, x0, x1, x2, x3, opt);
3165
- break;
3166
-
3167
- case 9: /* 0021 */
3168
- shapeCoordinates.pentagon_rb_lr(cell, x0, x1, x2, x3, opt);
3169
- break;
3170
-
3171
- case 104: /* 1220 */
3172
- shapeCoordinates.pentagon_bl_tb(cell, x0, x1, x2, x3, opt);
3173
- break;
3174
-
3175
- case 26: /* 0122 */
3176
- shapeCoordinates.pentagon_lt_rl(cell, x0, x1, x2, x3, opt);
3177
- break;
3178
-
3179
- case 134: /* 2012 */
3180
- shapeCoordinates.pentagon_tr_bt(cell, x0, x1, x2, x3, opt);
3181
- break;
3182
-
3183
- case 161: /* 2201 */
3184
- shapeCoordinates.pentagon_rb_lr(cell, x0, x1, x2, x3, opt);
3185
- break;
3186
-
3187
-
3188
- /* single hexagon cases */
3189
-
3190
- case 37: /* 0211 */
3191
- shapeCoordinates.hexagon_lt_tr(cell, x0, x1, x2, x3, opt);
3192
- break;
3193
-
3194
- case 148: /* 2110 */
3195
- shapeCoordinates.hexagon_bl_lt(cell, x0, x1, x2, x3, opt);
3196
- break;
3197
-
3198
- case 82: /* 1102 */
3199
- shapeCoordinates.hexagon_bl_rb(cell, x0, x1, x2, x3, opt);
3200
- break;
3201
-
3202
- case 73: /* 1021 */
3203
- shapeCoordinates.hexagon_tr_rb(cell, x0, x1, x2, x3, opt);
3204
- break;
3205
-
3206
- case 133: /* 2011 */
3207
- shapeCoordinates.hexagon_lt_tr(cell, x0, x1, x2, x3, opt);
3208
- break;
3209
-
3210
- case 22: /* 0112 */
3211
- shapeCoordinates.hexagon_bl_lt(cell, x0, x1, x2, x3, opt);
3212
- break;
3213
-
3214
- case 88: /* 1120 */
3215
- shapeCoordinates.hexagon_bl_rb(cell, x0, x1, x2, x3, opt);
3216
- break;
3217
-
3218
- case 97: /* 1201 */
3219
- shapeCoordinates.hexagon_tr_rb(cell, x0, x1, x2, x3, opt);
3220
- break;
3221
-
3222
- case 145: /* 2101 */
3223
- shapeCoordinates.hexagon_lt_rb(cell, x0, x1, x2, x3, opt);
3224
- break;
3225
-
3226
- case 25: /* 0121 */
3227
- shapeCoordinates.hexagon_lt_rb(cell, x0, x1, x2, x3, opt);
3228
- break;
3229
-
3230
- case 70: /* 1012 */
3231
- shapeCoordinates.hexagon_bl_tr(cell, x0, x1, x2, x3, opt);
3232
- break;
3233
-
3234
- case 100: /* 1210 */
3235
- shapeCoordinates.hexagon_bl_tr(cell, x0, x1, x2, x3, opt);
3236
- break;
3237
-
3238
-
3239
- /* 6-sided saddles */
3240
-
3241
- case 17: /* 0101 */
3242
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3243
- /* should never be center_avg === 2 */
3244
- if (center_avg === 0) {
3245
- shapeCoordinates.triangle_bl(cell, x0, x1, x2, x3, opt);
3246
- shapeCoordinates.triangle_tr(cell, x0, x1, x2, x3, opt);
3247
- } else {
3248
- shapeCoordinates.hexagon_lt_rb(cell, x0, x1, x2, x3, opt);
3249
- }
3250
- break;
3251
-
3252
- case 68: /* 1010 */
3253
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3254
- /* should never be center_avg === 2 */
3255
- if (center_avg === 0) {
3256
- shapeCoordinates.triangle_tl(cell, x0, x1, x2, x3, opt);
3257
- shapeCoordinates.triangle_br(cell, x0, x1, x2, x3, opt);
3258
- } else {
3259
- shapeCoordinates.hexagon_bl_tr(cell, x0, x1, x2, x3, opt);
3260
- }
3261
- break;
3262
-
3263
- case 153: /* 2121 */
3264
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3265
- /* should never be center_avg === 0 */
3266
- if (center_avg === 2) {
3267
- shapeCoordinates.triangle_bl(cell, x0, x1, x2, x3, opt);
3268
- shapeCoordinates.triangle_tr(cell, x0, x1, x2, x3, opt);
3269
- } else {
3270
- shapeCoordinates.hexagon_lt_rb(cell, x0, x1, x2, x3, opt);
3271
- }
3272
- break;
3273
-
3274
- case 102: /* 1212 */
3275
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3276
- /* should never be center_avg === 0 */
3277
- if (center_avg === 2) {
3278
- shapeCoordinates.triangle_tl(cell, x0, x1, x2, x3, opt);
3279
- shapeCoordinates.triangle_br(cell, x0, x1, x2, x3, opt);
3280
- } else {
3281
- shapeCoordinates.hexagon_bl_tr(cell, x0, x1, x2, x3, opt);
3282
- }
3283
- break;
3284
-
3285
-
3286
- /* 7-sided saddles */
3287
-
3288
- case 152: /* 2120 */
3289
-
3290
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3291
- /* should never be center_avg === 0 */
3292
- if (center_avg === 2) {
3293
- shapeCoordinates.triangle_tr(cell, x0, x1, x2, x3, opt);
3294
- shapeCoordinates.tetragon_bl(cell, x0, x1, x2, x3, opt);
3295
- } else {
3296
- shapeCoordinates.heptagon_tr(cell, x0, x1, x2, x3, opt);
3297
- }
3298
- break;
3299
-
3300
- case 137: /* 2021 */
3301
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3302
- /* should never be center_avg === 0 */
3303
- if (center_avg === 2) {
3304
- shapeCoordinates.triangle_bl(cell, x0, x1, x2, x3, opt);
3305
- shapeCoordinates.tetragon_tr(cell, x0, x1, x2, x3, opt);
3306
- } else {
3307
- shapeCoordinates.heptagon_bl(cell, x0, x1, x2, x3, opt);
3308
- }
3309
- break;
3310
-
3311
- case 98: /* 1202 */
3312
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3313
- /* should never be center_avg === 0 */
3314
- if (center_avg === 2) {
3315
- shapeCoordinates.triangle_tl(cell, x0, x1, x2, x3, opt);
3316
- shapeCoordinates.tetragon_br(cell, x0, x1, x2, x3, opt);
3317
- } else {
3318
- shapeCoordinates.heptagon_tl(cell, x0, x1, x2, x3, opt);
3319
- }
3320
- break;
3321
-
3322
- case 38: /* 0212 */
3323
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3324
- /* should never be center_avg === 0 */
3325
- if (center_avg === 2) {
3326
- shapeCoordinates.triangle_br(cell, x0, x1, x2, x3, opt);
3327
- shapeCoordinates.tetragon_tl(cell, x0, x1, x2, x3, opt);
3328
- } else {
3329
- shapeCoordinates.heptagon_br(cell, x0, x1, x2, x3, opt);
3330
- }
3331
- break;
3332
-
3333
- case 18: /* 0102 */
3334
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3335
- /* should never be center_avg === 2 */
3336
- if (center_avg === 0) {
3337
- shapeCoordinates.triangle_tr(cell, x0, x1, x2, x3, opt);
3338
- shapeCoordinates.tetragon_bl(cell, x0, x1, x2, x3, opt);
3339
- } else {
3340
- shapeCoordinates.heptagon_tr(cell, x0, x1, x2, x3, opt);
3341
- }
3342
- break;
3343
-
3344
- case 33: /* 0201 */
3345
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3346
- /* should never be center_avg === 2 */
3347
- if (center_avg === 0) {
3348
- shapeCoordinates.triangle_bl(cell, x0, x1, x2, x3, opt);
3349
- shapeCoordinates.tetragon_tr(cell, x0, x1, x2, x3, opt);
3350
- } else {
3351
- shapeCoordinates.heptagon_bl(cell, x0, x1, x2, x3, opt);
3352
- }
3353
- break;
3354
-
3355
- case 72: /* 1020 */
3356
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3357
- /* should never be center_avg === 2 */
3358
- if (center_avg === 0) {
3359
- shapeCoordinates.triangle_tl(cell, x0, x1, x2, x3, opt);
3360
- shapeCoordinates.tetragon_br(cell, x0, x1, x2, x3, opt);
3361
- } else {
3362
- shapeCoordinates.heptagon_tl(cell, x0, x1, x2, x3, opt);
3363
- }
3364
- break;
3365
-
3366
- case 132: /* 2010 */
3367
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3368
- /* should never be center_avg === 2 */
3369
- if (center_avg === 0) {
3370
- shapeCoordinates.triangle_br(cell, x0, x1, x2, x3, opt);
3371
- shapeCoordinates.tetragon_tl(cell, x0, x1, x2, x3, opt);
3372
- } else {
3373
- shapeCoordinates.heptagon_br(cell, x0, x1, x2, x3, opt);
3374
- }
3375
- break;
3376
-
3377
-
3378
- /* 8-sided saddles */
3379
-
3380
- case 136: /* 2020 */
3381
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3382
- if (center_avg === 0) {
3383
- shapeCoordinates.tetragon_tl(cell, x0, x1, x2, x3, opt);
3384
- shapeCoordinates.tetragon_br(cell, x0, x1, x2, x3, opt);
3385
- } else if (center_avg === 1) {
3386
- shapeCoordinates.octagon(cell, x0, x1, x2, x3, opt);
3387
- } else {
3388
- shapeCoordinates.tetragon_bl(cell, x0, x1, x2, x3, opt);
3389
- shapeCoordinates.tetragon_tr(cell, x0, x1, x2, x3, opt);
3390
- }
3391
- break;
3392
-
3393
- case 34: /* 0202 */
3394
- center_avg = computeCenterAverage(x0, x1, x2, x3, minV, maxV);
3395
- if (center_avg === 0) {
3396
- shapeCoordinates.tetragon_bl(cell, x0, x1, x2, x3, opt);
3397
- shapeCoordinates.tetragon_tr(cell, x0, x1, x2, x3, opt);
3398
- } else if (center_avg === 1) {
3399
- shapeCoordinates.octagon(cell, x0, x1, x2, x3, opt);
3400
- } else {
3401
- shapeCoordinates.tetragon_tl(cell, x0, x1, x2, x3, opt);
3402
- shapeCoordinates.tetragon_br(cell, x0, x1, x2, x3, opt);
3403
- }
3404
- break;
3405
- }
3406
-
3407
- return cell;
3408
- }
3409
-
3410
- export { isoLines, isoLines as isoContours, isoBands, QuadTree, QuadTree as quadTree };