flo-mat 2.0.1 → 2.0.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 (405) hide show
  1. package/.eslintrc.cjs +69 -0
  2. package/README.md +9 -27
  3. package/browser/index.js +29604 -7008
  4. package/browser/index.min.js +1 -2
  5. package/node/circle.d.ts +20 -20
  6. package/node/circle.js +31 -31
  7. package/node/circle.js.map +1 -1
  8. package/node/compare-curvatures-at-interface.d.ts +19 -19
  9. package/node/compare-curvatures-at-interface.js +124 -124
  10. package/node/compare-curvatures-at-interface.js.map +1 -1
  11. package/node/contact-point.d.ts +26 -26
  12. package/node/contact-point.js +25 -25
  13. package/node/cp-node/clone.d.ts +8 -8
  14. package/node/cp-node/clone.js +31 -31
  15. package/node/cp-node/clone.js.map +1 -1
  16. package/node/cp-node/remove.d.ts +9 -9
  17. package/node/cp-node/remove.js +19 -19
  18. package/node/cp-node/remove.js.map +1 -1
  19. package/node/cp-node.d.ts +202 -202
  20. package/node/cp-node.js +320 -320
  21. package/node/cp-node.js.map +1 -1
  22. package/node/curve.d.ts +46 -46
  23. package/node/curve.js +88 -88
  24. package/node/curve.js.map +1 -1
  25. package/node/debug/cp-node-for-debugging.d.ts +11 -11
  26. package/node/debug/cp-node-for-debugging.js +1 -1
  27. package/node/debug/debug-elem-types.d.ts +32 -32
  28. package/node/debug/debug-elem-types.js +1 -1
  29. package/node/debug/debug.d.ts +50 -50
  30. package/node/debug/debug.js +75 -75
  31. package/node/debug/functions/draw-elem/bounding-hull.d.ts +3 -3
  32. package/node/debug/functions/draw-elem/bounding-hull.js +7 -7
  33. package/node/debug/functions/draw-elem/bounding-hull.js.map +1 -1
  34. package/node/debug/functions/draw-elem/branch.d.ts +4 -4
  35. package/node/debug/functions/draw-elem/branch.js +22 -22
  36. package/node/debug/functions/draw-elem/branch.js.map +1 -1
  37. package/node/debug/functions/draw-elem/culls.d.ts +4 -4
  38. package/node/debug/functions/draw-elem/culls.js +21 -21
  39. package/node/debug/functions/draw-elem/culls.js.map +1 -1
  40. package/node/debug/functions/draw-elem/draw-circle-percent.d.ts +3 -3
  41. package/node/debug/functions/draw-elem/draw-circle-percent.js +12 -12
  42. package/node/debug/functions/draw-elem/draw-circle-percent.js.map +1 -1
  43. package/node/debug/functions/draw-elem/draw-elem.d.ts +8 -8
  44. package/node/debug/functions/draw-elem/draw-elem.js +45 -45
  45. package/node/debug/functions/draw-elem/draw-elem.js.map +1 -1
  46. package/node/debug/functions/draw-elem/dull-corner.d.ts +4 -4
  47. package/node/debug/functions/draw-elem/dull-corner.js +10 -10
  48. package/node/debug/functions/draw-elem/dull-corner.js.map +1 -1
  49. package/node/debug/functions/draw-elem/leaves.d.ts +4 -4
  50. package/node/debug/functions/draw-elem/leaves.js +12 -12
  51. package/node/debug/functions/draw-elem/leaves.js.map +1 -1
  52. package/node/debug/functions/draw-elem/loop.d.ts +4 -4
  53. package/node/debug/functions/draw-elem/loop.js +11 -11
  54. package/node/debug/functions/draw-elem/loops.d.ts +4 -4
  55. package/node/debug/functions/draw-elem/loops.js +6 -6
  56. package/node/debug/functions/draw-elem/loose-bounding-box.d.ts +3 -3
  57. package/node/debug/functions/draw-elem/loose-bounding-box.js +9 -9
  58. package/node/debug/functions/draw-elem/loose-bounding-box.js.map +1 -1
  59. package/node/debug/functions/draw-elem/mat.d.ts +4 -4
  60. package/node/debug/functions/draw-elem/mat.js +30 -30
  61. package/node/debug/functions/draw-elem/mat.js.map +1 -1
  62. package/node/debug/functions/draw-elem/max-vertex.d.ts +4 -4
  63. package/node/debug/functions/draw-elem/max-vertex.js +8 -8
  64. package/node/debug/functions/draw-elem/max-vertex.js.map +1 -1
  65. package/node/debug/functions/draw-elem/min-y.d.ts +4 -4
  66. package/node/debug/functions/draw-elem/min-y.js +13 -13
  67. package/node/debug/functions/draw-elem/min-y.js.map +1 -1
  68. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.d.ts +4 -4
  69. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js +12 -12
  70. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js.map +1 -1
  71. package/node/debug/functions/draw-elem/one-prong.d.ts +4 -4
  72. package/node/debug/functions/draw-elem/one-prong.js +16 -16
  73. package/node/debug/functions/draw-elem/one-prong.js.map +1 -1
  74. package/node/debug/functions/draw-elem/sharp-corner.d.ts +4 -4
  75. package/node/debug/functions/draw-elem/sharp-corner.js +9 -9
  76. package/node/debug/functions/draw-elem/sharp-corner.js.map +1 -1
  77. package/node/debug/functions/draw-elem/three-prong.d.ts +4 -4
  78. package/node/debug/functions/draw-elem/three-prong.js +16 -16
  79. package/node/debug/functions/draw-elem/three-prong.js.map +1 -1
  80. package/node/debug/functions/draw-elem/tight-bounding-box.d.ts +3 -3
  81. package/node/debug/functions/draw-elem/tight-bounding-box.js +7 -7
  82. package/node/debug/functions/draw-elem/tight-bounding-box.js.map +1 -1
  83. package/node/debug/functions/draw-elem/two-prong.d.ts +4 -4
  84. package/node/debug/functions/draw-elem/two-prong.js +36 -36
  85. package/node/debug/functions/draw-elem/two-prong.js.map +1 -1
  86. package/node/debug/functions/draw-elem/vertex.d.ts +4 -4
  87. package/node/debug/functions/draw-elem/vertex.js +27 -27
  88. package/node/debug/functions/draw-elem/vertex.js.map +1 -1
  89. package/node/debug/functions/general.d.ts +48 -48
  90. package/node/debug/functions/general.js +52 -52
  91. package/node/debug/functions/general.js.map +1 -1
  92. package/node/debug/functions/three-prong.d.ts +11 -11
  93. package/node/debug/functions/three-prong.js +184 -184
  94. package/node/debug/functions/three-prong.js.map +1 -1
  95. package/node/debug/functions/two-prong.d.ts +13 -13
  96. package/node/debug/functions/two-prong.js +117 -117
  97. package/node/debug/functions/two-prong.js.map +1 -1
  98. package/node/debug/three-prong-for-debugging.d.ts +31 -31
  99. package/node/debug/three-prong-for-debugging.js +20 -20
  100. package/node/debug/two-prong-for-debugging.d.ts +26 -26
  101. package/node/debug/two-prong-for-debugging.js +1 -1
  102. package/node/find-mats.d.ts +26 -26
  103. package/node/find-mats.js +122 -125
  104. package/node/find-mats.js.map +1 -1
  105. package/node/get-boundary-bezier-parts-to-next.d.ts +9 -9
  106. package/node/get-boundary-bezier-parts-to-next.js +42 -42
  107. package/node/get-boundary-bezier-parts-to-next.js.map +1 -1
  108. package/node/get-boundary-beziers-to-next.d.ts +8 -8
  109. package/node/get-boundary-beziers-to-next.js +44 -44
  110. package/node/get-boundary-beziers-to-next.js.map +1 -1
  111. package/node/get-bounding-box-.d.ts +2 -2
  112. package/node/get-bounding-box-.js +4 -4
  113. package/node/get-branches.d.ts +12 -12
  114. package/node/get-branches.js +68 -68
  115. package/node/get-branches.js.map +1 -1
  116. package/node/get-curve/get-curve-between.d.ts +9 -9
  117. package/node/get-curve/get-curve-between.js +56 -56
  118. package/node/get-curve/get-curve-between.js.map +1 -1
  119. package/node/get-curve/get-edge-direction.d.ts +9 -9
  120. package/node/get-curve/get-edge-direction.js +53 -53
  121. package/node/get-curve/get-edge-direction.js.map +1 -1
  122. package/node/get-curve-to-next.d.ts +9 -9
  123. package/node/get-curve-to-next.js +11 -11
  124. package/node/get-interface-ccw.d.ts +24 -24
  125. package/node/get-interface-ccw.js +97 -97
  126. package/node/get-interface-ccw.js.map +1 -1
  127. package/node/index.d.ts +36 -36
  128. package/node/index.js +32 -32
  129. package/node/loop/get-max-coordinate.d.ts +10 -10
  130. package/node/loop/get-max-coordinate.js +43 -43
  131. package/node/loop/get-max-coordinate.js.map +1 -1
  132. package/node/loop.d.ts +16 -16
  133. package/node/loop.js +34 -34
  134. package/node/loop.js.map +1 -1
  135. package/node/mat/add-to-cp-graph.d.ts +16 -16
  136. package/node/mat/add-to-cp-graph.js +30 -30
  137. package/node/mat/add-to-cp-graph.js.map +1 -1
  138. package/node/mat/bezier-piece.d.ts +12 -12
  139. package/node/mat/bezier-piece.js +1 -1
  140. package/node/mat/closest-boundary-point/closest-points-on-curve.d.ts +14 -14
  141. package/node/mat/closest-boundary-point/closest-points-on-curve.js +72 -73
  142. package/node/mat/closest-boundary-point/closest-points-on-curve.js.map +1 -1
  143. package/node/mat/closest-boundary-point/cull-bezier-pieces.d.ts +9 -9
  144. package/node/mat/closest-boundary-point/cull-bezier-pieces.js +19 -19
  145. package/node/mat/closest-boundary-point/cull-bezier-pieces.js.map +1 -1
  146. package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.d.ts +11 -11
  147. package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.js +24 -24
  148. package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.js.map +1 -1
  149. package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.d.ts +11 -11
  150. package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.js +26 -26
  151. package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.js.map +1 -1
  152. package/node/mat/closest-boundary-point/get-best-distance-squared.d.ts +8 -8
  153. package/node/mat/closest-boundary-point/get-best-distance-squared.js +24 -24
  154. package/node/mat/closest-boundary-point/get-best-distance-squared.js.map +1 -1
  155. package/node/mat/closest-boundary-point/get-close-boundary-points.d.ts +17 -17
  156. package/node/mat/closest-boundary-point/get-close-boundary-points.js +80 -80
  157. package/node/mat/closest-boundary-point/get-close-boundary-points.js.map +1 -1
  158. package/node/mat/closest-boundary-point/get-closest-boundary-point.d.ts +18 -18
  159. package/node/mat/closest-boundary-point/get-closest-boundary-point.js +40 -40
  160. package/node/mat/closest-boundary-point/get-closest-boundary-point.js.map +1 -1
  161. package/node/mat/corner.d.ts +37 -37
  162. package/node/mat/corner.js +1 -1
  163. package/node/mat/create-new-cp-tree.d.ts +9 -9
  164. package/node/mat/create-new-cp-tree.js +23 -23
  165. package/node/mat/create-new-cp-tree.js.map +1 -1
  166. package/node/mat/elem-type-two-prong.d.ts +3 -3
  167. package/node/mat/elem-type-two-prong.js +1 -1
  168. package/node/mat/find-mat/add-1-prong.d.ts +12 -12
  169. package/node/mat/find-mat/add-1-prong.js +42 -42
  170. package/node/mat/find-mat/add-1-prong.js.map +1 -1
  171. package/node/mat/find-mat/add-2-prong.d.ts +21 -21
  172. package/node/mat/find-mat/add-2-prong.js +192 -192
  173. package/node/mat/find-mat/add-2-prong.js.map +1 -1
  174. package/node/mat/find-mat/add-3-prong.d.ts +19 -19
  175. package/node/mat/find-mat/add-3-prong.js +54 -54
  176. package/node/mat/find-mat/add-3-prong.js.map +1 -1
  177. package/node/mat/find-mat/add-debug-info.d.ts +9 -9
  178. package/node/mat/find-mat/add-debug-info.js +67 -69
  179. package/node/mat/find-mat/add-debug-info.js.map +1 -1
  180. package/node/mat/find-mat/create-get-interesting-points-on-loop.d.ts +11 -11
  181. package/node/mat/find-mat/create-get-interesting-points-on-loop.js +51 -51
  182. package/node/mat/find-mat/create-get-interesting-points-on-loop.js.map +1 -1
  183. package/node/mat/find-mat/create-initial-cp-graph.d.ts +12 -12
  184. package/node/mat/find-mat/create-initial-cp-graph.js +40 -40
  185. package/node/mat/find-mat/create-initial-cp-graph.js.map +1 -1
  186. package/node/mat/find-mat/find-2-prong/add-debug-info.d.ts +8 -8
  187. package/node/mat/find-mat/find-2-prong/add-debug-info.js +21 -21
  188. package/node/mat/find-mat/find-2-prong/add-debug-info.js.map +1 -1
  189. package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.d.ts +11 -11
  190. package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.js +29 -29
  191. package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.js.map +1 -1
  192. package/node/mat/find-mat/find-2-prong/find-2-prong.d.ts +37 -37
  193. package/node/mat/find-mat/find-2-prong/find-2-prong.js +232 -232
  194. package/node/mat/find-mat/find-2-prong/find-2-prong.js.map +1 -1
  195. package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.d.ts +9 -9
  196. package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.js +39 -39
  197. package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.js.map +1 -1
  198. package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.d.ts +11 -11
  199. package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.js +37 -37
  200. package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
  201. package/node/mat/find-mat/find-2-prong/x-for-debugging.d.ts +9 -9
  202. package/node/mat/find-mat/find-2-prong/x-for-debugging.js +1 -1
  203. package/node/mat/find-mat/find-3-prong/calc-better-x.d.ts +19 -19
  204. package/node/mat/find-mat/find-3-prong/calc-better-x.js +36 -36
  205. package/node/mat/find-mat/find-3-prong/calc-better-x.js.map +1 -1
  206. package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.d.ts +13 -13
  207. package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.js +25 -25
  208. package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.js.map +1 -1
  209. package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.d.ts +22 -22
  210. package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.js +159 -159
  211. package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.js.map +1 -1
  212. package/node/mat/find-mat/find-3-prong/find-3-prong.d.ts +16 -16
  213. package/node/mat/find-mat/find-3-prong/find-3-prong.js +76 -76
  214. package/node/mat/find-mat/find-3-prong/find-3-prong.js.map +1 -1
  215. package/node/mat/find-mat/find-3-prong/get-closest-points.d.ts +9 -9
  216. package/node/mat/find-mat/find-3-prong/get-closest-points.js +16 -16
  217. package/node/mat/find-mat/find-3-prong/get-closest-points.js.map +1 -1
  218. package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.d.ts +15 -15
  219. package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.js +20 -20
  220. package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.js.map +1 -1
  221. package/node/mat/find-mat/find-and-add-2-prongs.d.ts +16 -16
  222. package/node/mat/find-mat/find-and-add-2-prongs.js +73 -74
  223. package/node/mat/find-mat/find-and-add-2-prongs.js.map +1 -1
  224. package/node/mat/find-mat/find-and-add-3-prongs.d.ts +13 -13
  225. package/node/mat/find-mat/find-and-add-3-prongs.js +146 -147
  226. package/node/mat/find-mat/find-and-add-3-prongs.js.map +1 -1
  227. package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.d.ts +14 -14
  228. package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.js +33 -33
  229. package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.js.map +1 -1
  230. package/node/mat/find-mat/get-potential-2-prongs.d.ts +4 -4
  231. package/node/mat/find-mat/get-potential-2-prongs.js +16 -16
  232. package/node/mat/find-mat/get-potential-2-prongs.js.map +1 -1
  233. package/node/mat/find-mat/get-sharp-corners.d.ts +4 -4
  234. package/node/mat/find-mat/get-sharp-corners.js +17 -17
  235. package/node/mat/find-mat/get-sharp-corners.js.map +1 -1
  236. package/node/mat/geometry/get-closest-square-distance-to-rect.d.ts +5 -5
  237. package/node/mat/geometry/get-closest-square-distance-to-rect.js +49 -49
  238. package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.d.ts +5 -5
  239. package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.js +15 -15
  240. package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.js.map +1 -1
  241. package/node/mat/get-boundary-piece-beziers.d.ts +11 -11
  242. package/node/mat/get-boundary-piece-beziers.js +58 -58
  243. package/node/mat/get-boundary-piece-beziers.js.map +1 -1
  244. package/node/mat/get-contact-circles-at-interface.d.ts +8 -8
  245. package/node/mat/get-contact-circles-at-interface.js +20 -20
  246. package/node/mat/get-contact-circles-at-interface.js.map +1 -1
  247. package/node/mat/get-largest-vertex.d.ts +4 -4
  248. package/node/mat/get-largest-vertex.js +9 -9
  249. package/node/mat/get-leaves.d.ts +4 -4
  250. package/node/mat/get-leaves.js +12 -12
  251. package/node/mat/get-leaves.js.map +1 -1
  252. package/node/mat/get-neighboring-cps.d.ts +14 -14
  253. package/node/mat/get-neighboring-cps.js +30 -30
  254. package/node/mat/get-neighboring-cps.js.map +1 -1
  255. package/node/mat/get-two-prong-type.d.ts +5 -5
  256. package/node/mat/get-two-prong-type.js +8 -8
  257. package/node/mat/is-another-cp-closeby.d.ts +20 -20
  258. package/node/mat/is-another-cp-closeby.js +55 -55
  259. package/node/mat/is-another-cp-closeby.js.map +1 -1
  260. package/node/mat/simplify-mat-map-only.d.ts +23 -23
  261. package/node/mat/simplify-mat-map-only.js +80 -80
  262. package/node/mat/simplify-mat-map-only.js.map +1 -1
  263. package/node/mat/to-scale-axis/add-debug-info.d.ts +7 -7
  264. package/node/mat/to-scale-axis/add-debug-info.js +13 -13
  265. package/node/mat/to-scale-axis/add-debug-info.js.map +1 -1
  266. package/node/mat/to-scale-axis/cull-non-cycles.d.ts +9 -9
  267. package/node/mat/to-scale-axis/cull-non-cycles.js +51 -51
  268. package/node/mat/to-scale-axis/cull-non-cycles.js.map +1 -1
  269. package/node/mat/to-scale-axis/cull.d.ts +12 -12
  270. package/node/mat/to-scale-axis/cull.js +132 -132
  271. package/node/mat/to-scale-axis/cull.js.map +1 -1
  272. package/node/mat/trim-mat.d.ts +8 -8
  273. package/node/mat/trim-mat.js +16 -16
  274. package/node/mat/trim-mat.js.map +1 -1
  275. package/node/mat.d.ts +22 -22
  276. package/node/mat.js +1 -1
  277. package/node/point-on-shape.d.ts +73 -73
  278. package/node/point-on-shape.js +167 -167
  279. package/node/point-on-shape.js.map +1 -1
  280. package/node/simplify-mat.d.ts +16 -16
  281. package/node/simplify-mat.js +71 -71
  282. package/node/simplify-mat.js.map +1 -1
  283. package/node/svg/get-loop-bounds.d.ts +12 -12
  284. package/node/svg/get-loop-bounds.js +80 -80
  285. package/node/svg/get-loop-bounds.js.map +1 -1
  286. package/node/svg/get-min-y-pos.d.ts +8 -8
  287. package/node/svg/get-min-y-pos.js +9 -9
  288. package/node/svg/get-shape-bounds.d.ts +9 -9
  289. package/node/svg/get-shape-bounds.js +35 -35
  290. package/node/svg/get-shape-bounds.js.map +1 -1
  291. package/node/sweep-line/sweep-line.d.ts +18 -18
  292. package/node/sweep-line/sweep-line.js +72 -72
  293. package/node/sweep-line/sweep-line.js.map +1 -1
  294. package/node/to-scale-axis.d.ts +16 -16
  295. package/node/to-scale-axis.js +74 -73
  296. package/node/to-scale-axis.js.map +1 -1
  297. package/node/traverse-edges.d.ts +10 -10
  298. package/node/traverse-edges.js +21 -21
  299. package/node/traverse-edges.js.map +1 -1
  300. package/node/traverse-vertices.d.ts +12 -12
  301. package/node/traverse-vertices.js +27 -27
  302. package/node/traverse-vertices.js.map +1 -1
  303. package/package.json +29 -24
  304. package/src/circle.ts +3 -3
  305. package/src/compare-curvatures-at-interface.ts +36 -36
  306. package/src/cp-node/clone.ts +6 -6
  307. package/src/cp-node/remove.ts +4 -4
  308. package/src/cp-node.ts +20 -20
  309. package/src/curve.ts +19 -19
  310. package/src/debug/functions/draw-elem/bounding-hull.ts +2 -2
  311. package/src/debug/functions/draw-elem/branch.ts +4 -4
  312. package/src/debug/functions/draw-elem/culls.ts +4 -4
  313. package/src/debug/functions/draw-elem/draw-circle-percent.ts +2 -2
  314. package/src/debug/functions/draw-elem/draw-elem.ts +1 -1
  315. package/src/debug/functions/draw-elem/dull-corner.ts +3 -3
  316. package/src/debug/functions/draw-elem/leaves.ts +4 -4
  317. package/src/debug/functions/draw-elem/loose-bounding-box.ts +2 -2
  318. package/src/debug/functions/draw-elem/mat.ts +4 -4
  319. package/src/debug/functions/draw-elem/max-vertex.ts +2 -2
  320. package/src/debug/functions/draw-elem/min-y.ts +3 -3
  321. package/src/debug/functions/draw-elem/one-prong-at-dull-corner.ts +4 -4
  322. package/src/debug/functions/draw-elem/one-prong.ts +4 -4
  323. package/src/debug/functions/draw-elem/sharp-corner.ts +2 -2
  324. package/src/debug/functions/draw-elem/three-prong.ts +7 -7
  325. package/src/debug/functions/draw-elem/tight-bounding-box.ts +1 -1
  326. package/src/debug/functions/draw-elem/two-prong.ts +1 -1
  327. package/src/debug/functions/draw-elem/vertex.ts +20 -14
  328. package/src/debug/functions/general.ts +3 -3
  329. package/src/debug/functions/three-prong.ts +37 -37
  330. package/src/debug/functions/two-prong.ts +15 -15
  331. package/src/find-mats.ts +19 -19
  332. package/src/get-boundary-bezier-parts-to-next.ts +8 -8
  333. package/src/get-boundary-beziers-to-next.ts +8 -8
  334. package/src/get-branches.ts +7 -7
  335. package/src/get-curve/get-curve-between.ts +21 -21
  336. package/src/get-curve/get-edge-direction.ts +13 -14
  337. package/src/get-interface-ccw.ts +12 -12
  338. package/src/loop/get-max-coordinate.ts +7 -7
  339. package/src/loop.ts +4 -4
  340. package/src/mat/add-to-cp-graph.ts +8 -8
  341. package/src/mat/closest-boundary-point/closest-points-on-curve.ts +5 -6
  342. package/src/mat/closest-boundary-point/cull-bezier-pieces.ts +1 -1
  343. package/src/mat/closest-boundary-point/cull-by-loose-bounding-box.ts +5 -5
  344. package/src/mat/closest-boundary-point/cull-by-tight-boundary-box.ts +5 -5
  345. package/src/mat/closest-boundary-point/get-best-distance-squared.ts +5 -5
  346. package/src/mat/closest-boundary-point/get-close-boundary-points.ts +15 -15
  347. package/src/mat/closest-boundary-point/get-closest-boundary-point.ts +4 -4
  348. package/src/mat/cmp-cp-on-delta.ts +5 -5
  349. package/src/mat/create-new-cp-tree.ts +3 -3
  350. package/src/mat/find-mat/add-1-prong.ts +5 -5
  351. package/src/mat/find-mat/add-2-prong.ts +42 -42
  352. package/src/mat/find-mat/add-3-prong.ts +1 -1
  353. package/src/mat/find-mat/add-debug-info.ts +18 -20
  354. package/src/mat/find-mat/create-get-interesting-points-on-loop.ts +4 -4
  355. package/src/mat/find-mat/create-initial-cp-graph.ts +11 -11
  356. package/src/mat/find-mat/find-2-prong/add-debug-info.ts +4 -4
  357. package/src/mat/find-mat/find-2-prong/cull-bezier-pieces.ts +5 -5
  358. package/src/mat/find-mat/find-2-prong/find-2-prong.ts +27 -27
  359. package/src/mat/find-mat/find-2-prong/find-equidistant-point-on-line.ts +7 -7
  360. package/src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts +4 -4
  361. package/src/mat/find-mat/find-3-prong/calc-better-x.ts +4 -4
  362. package/src/mat/find-mat/find-3-prong/calc-initial-3-prong-center.ts +3 -3
  363. package/src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts +37 -37
  364. package/src/mat/find-mat/find-3-prong/find-3-prong.ts +16 -16
  365. package/src/mat/find-mat/find-3-prong/get-closest-points.ts +1 -1
  366. package/src/mat/find-mat/find-and-add-2-prongs-on-all-paths.ts +2 -2
  367. package/src/mat/find-mat/find-and-add-2-prongs.ts +14 -16
  368. package/src/mat/find-mat/find-and-add-3-prongs.ts +19 -19
  369. package/src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts +6 -6
  370. package/src/mat/find-mat/get-potential-2-prongs.ts +4 -4
  371. package/src/mat/find-mat/get-sharp-corners.ts +4 -4
  372. package/src/mat/find-mat/get-total-abs-curvature.ts +1 -1
  373. package/src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts +3 -3
  374. package/src/mat/get-boundary-piece-beziers.ts +5 -5
  375. package/src/mat/get-contact-circles-at-interface.ts +1 -1
  376. package/src/mat/get-edges-as-array.ts +2 -2
  377. package/src/mat/get-leaves.ts +2 -2
  378. package/src/mat/get-neighboring-cps.ts +1 -1
  379. package/src/mat/is-another-cp-closeby.ts +9 -9
  380. package/src/mat/simplify-mat-map-only.ts +15 -15
  381. package/src/mat/to-scale-axis/add-debug-info.ts +6 -3
  382. package/src/mat/to-scale-axis/add-to-tree.ts +10 -10
  383. package/src/mat/to-scale-axis/calc-groups.ts +19 -19
  384. package/src/mat/to-scale-axis/create-spacial-tree.ts +4 -4
  385. package/src/mat/to-scale-axis/cull-non-cycles.ts +5 -5
  386. package/src/mat/to-scale-axis/cull.ts +5 -5
  387. package/src/mat/to-scale-axis/get-engulfed-vertices.ts +18 -18
  388. package/src/mat/trim-mat.ts +1 -1
  389. package/src/point-on-shape.ts +16 -16
  390. package/src/simplify-mat.ts +10 -10
  391. package/src/svg/get-curvature-at-interface.ts +6 -8
  392. package/src/svg/get-extreme.ts +1 -1
  393. package/src/svg/get-loop-bounds.ts +13 -13
  394. package/src/svg/get-shape-bounds.ts +4 -4
  395. package/src/sweep-line/are-boxes-intersecting.ts +4 -4
  396. package/src/sweep-line/sweep-line.ts +8 -8
  397. package/src/to-scale-axis.ts +18 -17
  398. package/src/traverse-edges.ts +2 -2
  399. package/src/traverse-vertices.ts +2 -2
  400. package/tsconfig.json +0 -1
  401. package/webpack.config.cjs +12 -63
  402. package/browser/index.min.js.LICENSE.txt +0 -2819
  403. package/browser/index.module.js +0 -7149
  404. package/browser/index.module.min.js +0 -2
  405. package/browser/index.module.min.js.LICENSE.txt +0 -2819
@@ -1,48 +1,48 @@
1
- import { CpNode } from '../../cp-node.js';
2
- /** @hidden */
3
- export interface IGeneralDebugFunctions {
4
- nameObj: (obj: any, pre?: string) => void;
5
- δToString: (cpNodes: CpNode[]) => string[];
6
- δsToString: (cpNodes: CpNode[][]) => string[][];
7
- pointToStr: (p: number[], decimalPlaces?: number) => string;
8
- pointsToStr: (ps: number[][], decimalPlaces?: number) => string[];
9
- }
10
- /**
11
- * @hidden
12
- * Name the given object - for debugging purposes only
13
- */
14
- declare function nameObj(o: any, pre?: string): void;
15
- /**
16
- * @hidden
17
- * Transforms a boundary piece (δ) into a human readable string.
18
- * @param cpNodes A boundary piece given by two CpNodes.
19
- */
20
- declare function δToString(cpNodes: CpNode[]): string[];
21
- /**
22
- * @hidden
23
- * Transforms an array of boundary pieces (δs) into a human readable string.
24
- * @param cpNodes An array of boundary pieces.
25
- */
26
- declare function δsToString(cpNodes: CpNode[][]): string[][];
27
- /**
28
- * @hidden
29
- * Convert the given points into a human readable string.
30
- * @param ps
31
- */
32
- declare function pointsToStr(ps: number[][], decimalPlaces?: number): string[];
33
- /**
34
- * @hidden
35
- * Converts the given point into a human readable string.
36
- * @param p The point
37
- * @param decimalPlaces number of decimal places
38
- */
39
- declare function pointToStr(p: number[], decimalPlaces?: number): string;
40
- /** @hidden */
41
- declare let generalDebugFunctions: {
42
- δToString: typeof δToString;
43
- δsToString: typeof δsToString;
44
- pointToStr: typeof pointToStr;
45
- pointsToStr: typeof pointsToStr;
46
- nameObj: typeof nameObj;
47
- };
48
- export { generalDebugFunctions };
1
+ import { CpNode } from '../../cp-node.js';
2
+ /** @hidden */
3
+ export interface IGeneralDebugFunctions {
4
+ nameObj: (obj: any, pre?: string) => void;
5
+ δToString: (cpNodes: CpNode[]) => string[];
6
+ δsToString: (cpNodes: CpNode[][]) => string[][];
7
+ pointToStr: (p: number[], decimalPlaces?: number) => string;
8
+ pointsToStr: (ps: number[][], decimalPlaces?: number) => string[];
9
+ }
10
+ /**
11
+ * @hidden
12
+ * Name the given object - for debugging purposes only
13
+ */
14
+ declare function nameObj(o: any, pre?: string): void;
15
+ /**
16
+ * @hidden
17
+ * Transforms a boundary piece (δ) into a human readable string.
18
+ * @param cpNodes A boundary piece given by two CpNodes.
19
+ */
20
+ declare function δToString(cpNodes: CpNode[]): string[];
21
+ /**
22
+ * @hidden
23
+ * Transforms an array of boundary pieces (δs) into a human readable string.
24
+ * @param cpNodes An array of boundary pieces.
25
+ */
26
+ declare function δsToString(cpNodes: CpNode[][]): string[][];
27
+ /**
28
+ * @hidden
29
+ * Convert the given points into a human readable string.
30
+ * @param ps
31
+ */
32
+ declare function pointsToStr(ps: number[][], decimalPlaces?: number): string[];
33
+ /**
34
+ * @hidden
35
+ * Converts the given point into a human readable string.
36
+ * @param p The point
37
+ * @param decimalPlaces number of decimal places
38
+ */
39
+ declare function pointToStr(p: number[], decimalPlaces?: number): string;
40
+ /** @hidden */
41
+ declare const generalDebugFunctions: {
42
+ δToString: typeof δToString;
43
+ δsToString: typeof δsToString;
44
+ pointToStr: typeof pointToStr;
45
+ pointsToStr: typeof pointsToStr;
46
+ nameObj: typeof nameObj;
47
+ };
48
+ export { generalDebugFunctions };
@@ -1,53 +1,53 @@
1
- import { posToHumanString } from '../../point-on-shape.js';
2
- /** @hidden */
3
- let i = 0;
4
- /**
5
- * @hidden
6
- * Name the given object - for debugging purposes only
7
- */
8
- function nameObj(o, pre = '') {
9
- o.name = '' + pre + i++;
10
- }
11
- /**
12
- * @hidden
13
- * Transforms a boundary piece (δ) into a human readable string.
14
- * @param cpNodes A boundary piece given by two CpNodes.
15
- */
16
- function δToString(cpNodes) {
17
- return cpNodes.map(cpNode => posToHumanString(cpNode.cp.pointOnShape));
18
- }
19
- /**
20
- * @hidden
21
- * Transforms an array of boundary pieces (δs) into a human readable string.
22
- * @param cpNodes An array of boundary pieces.
23
- */
24
- function δsToString(cpNodes) {
25
- return cpNodes.map(δToString);
26
- }
27
- /**
28
- * @hidden
29
- * Convert the given points into a human readable string.
30
- * @param ps
31
- */
32
- function pointsToStr(ps, decimalPlaces = 3) {
33
- return ps.map(p => pointToStr(p, decimalPlaces));
34
- }
35
- /**
36
- * @hidden
37
- * Converts the given point into a human readable string.
38
- * @param p The point
39
- * @param decimalPlaces number of decimal places
40
- */
41
- function pointToStr(p, decimalPlaces = 3) {
42
- return p[0].toFixed(decimalPlaces) + ', ' + p[1].toFixed(decimalPlaces);
43
- }
44
- /** @hidden */
45
- let generalDebugFunctions /*: IGeneralDebugFunctions*/ = {
46
- δToString,
47
- δsToString,
48
- pointToStr,
49
- pointsToStr,
50
- nameObj,
51
- };
52
- export { generalDebugFunctions };
1
+ import { posToHumanString } from '../../point-on-shape.js';
2
+ /** @hidden */
3
+ let i = 0;
4
+ /**
5
+ * @hidden
6
+ * Name the given object - for debugging purposes only
7
+ */
8
+ function nameObj(o, pre = '') {
9
+ o.name = '' + pre + i++;
10
+ }
11
+ /**
12
+ * @hidden
13
+ * Transforms a boundary piece (δ) into a human readable string.
14
+ * @param cpNodes A boundary piece given by two CpNodes.
15
+ */
16
+ function δToString(cpNodes) {
17
+ return cpNodes.map(cpNode => posToHumanString(cpNode.cp.pointOnShape));
18
+ }
19
+ /**
20
+ * @hidden
21
+ * Transforms an array of boundary pieces (δs) into a human readable string.
22
+ * @param cpNodes An array of boundary pieces.
23
+ */
24
+ function δsToString(cpNodes) {
25
+ return cpNodes.map(δToString);
26
+ }
27
+ /**
28
+ * @hidden
29
+ * Convert the given points into a human readable string.
30
+ * @param ps
31
+ */
32
+ function pointsToStr(ps, decimalPlaces = 3) {
33
+ return ps.map(p => pointToStr(p, decimalPlaces));
34
+ }
35
+ /**
36
+ * @hidden
37
+ * Converts the given point into a human readable string.
38
+ * @param p The point
39
+ * @param decimalPlaces number of decimal places
40
+ */
41
+ function pointToStr(p, decimalPlaces = 3) {
42
+ return p[0].toFixed(decimalPlaces) + ', ' + p[1].toFixed(decimalPlaces);
43
+ }
44
+ /** @hidden */
45
+ const generalDebugFunctions /*: IGeneralDebugFunctions*/ = {
46
+ δToString,
47
+ δsToString,
48
+ pointToStr,
49
+ pointsToStr,
50
+ nameObj,
51
+ };
52
+ export { generalDebugFunctions };
53
53
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../src/debug/functions/general.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAa3D,cAAc;AACd,IAAI,CAAC,GAAG,CAAC,CAAC;AACV;;;GAGG;AACH,SAAS,OAAO,CAAC,CAAM,EAAE,MAAc,EAAE;IACxC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;AACzB,CAAC;AAGD;;;;GAIG;AACH,SAAS,SAAS,CAAC,OAAiB;IACnC,OAAO,OAAO,CAAC,GAAG,CACjB,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAClD,CAAC;AACH,CAAC;AAGD;;;;GAIG;AACH,SAAS,UAAU,CAAC,OAAmB;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAGD;;;;GAIG;AACH,SAAS,WAAW,CAAC,EAAc,EAAE,aAAa,GAAG,CAAC;IACrD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;AAClD,CAAC;AAGD;;;;;GAKG;AACH,SAAS,UAAU,CAAC,CAAW,EAAE,gBAAwB,CAAC;IACzD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACzE,CAAC;AAGD,cAAc;AACd,IAAI,qBAAqB,CAAA,4BAA4B,GAAG;IACvD,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,OAAO;CACP,CAAA;AAGD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../src/debug/functions/general.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAa3D,cAAc;AACd,IAAI,CAAC,GAAG,CAAC,CAAC;AACV;;;GAGG;AACH,SAAS,OAAO,CAAC,CAAM,EAAE,GAAG,GAAG,EAAE;IAChC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;AACzB,CAAC;AAGD;;;;GAIG;AACH,SAAS,SAAS,CAAC,OAAiB;IACnC,OAAO,OAAO,CAAC,GAAG,CACjB,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAClD,CAAC;AACH,CAAC;AAGD;;;;GAIG;AACH,SAAS,UAAU,CAAC,OAAmB;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAGD;;;;GAIG;AACH,SAAS,WAAW,CAAC,EAAc,EAAE,aAAa,GAAG,CAAC;IACrD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;AAClD,CAAC;AAGD;;;;;GAKG;AACH,SAAS,UAAU,CAAC,CAAW,EAAE,aAAa,GAAG,CAAC;IACjD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACzE,CAAC;AAGD,cAAc;AACd,MAAM,qBAAqB,CAAA,4BAA4B,GAAG;IACzD,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,OAAO;CACP,CAAA;AAGD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
@@ -1,11 +1,11 @@
1
- /** @hidden */
2
- export interface IThreeProngDebugFunctions {
3
- drawSpokes: (g: SVGGElement, n: number) => void;
4
- traceConvergence: (g: SVGGElement, n: number, indx: number) => void;
5
- showBoundary: (g: SVGGElement, n: number, indx: number) => void;
6
- logδs: (n: number) => void;
7
- logNearest: (showSpokes?: boolean, showTrace?: boolean, showBoundaries?: boolean) => (g: SVGGElement, p: number[], showDelay?: number) => void;
8
- }
9
- /** @hidden */
10
- declare let threeProngDebugFunctions: IThreeProngDebugFunctions;
11
- export { threeProngDebugFunctions };
1
+ /** @hidden */
2
+ export interface IThreeProngDebugFunctions {
3
+ drawSpokes: (g: SVGGElement, n: number) => void;
4
+ traceConvergence: (g: SVGGElement, n: number, indx: number) => void;
5
+ showBoundary: (g: SVGGElement, n: number, indx: number) => void;
6
+ logδs: (n: number) => void;
7
+ logNearest: (showSpokes?: boolean, showTrace?: boolean, showBoundaries?: boolean) => (g: SVGGElement, p: number[], showDelay?: number) => void;
8
+ }
9
+ /** @hidden */
10
+ declare const threeProngDebugFunctions: IThreeProngDebugFunctions;
11
+ export { threeProngDebugFunctions };
@@ -1,185 +1,185 @@
1
- import { drawFs } from 'flo-draw';
2
- import { equal, getObjClosestTo } from 'flo-vector2d';
3
- /**
4
- * @hidden
5
- * Draws 3 lines from the given 3-prong center to its 3 contact points.
6
- * @param n - The 3-prong's zero-based index.
7
- */
8
- function drawSpokes(g, n) {
9
- let threeProng = _debug_.generated.elems.threeProng[n];
10
- //let g = threeProng.generated.g;
11
- let cc = threeProng.circle.center;
12
- let poss = threeProng.poss;
13
- //_debug_.fs.draw.line(g, [poss[0].p, cc], 'thin5 red');
14
- //_debug_.fs.draw.line(g, [poss[1].p, cc], 'thin5 red');
15
- //_debug_.fs.draw.line(g, [poss[2].p, cc], 'thin5 red');
16
- drawFs.line(g, [poss[0].p, cc], 'thin5 red');
17
- drawFs.line(g, [poss[1].p, cc], 'thin5 red');
18
- drawFs.line(g, [poss[2].p, cc], 'thin5 red');
19
- }
20
- /**
21
- * @hidden
22
- * Shows the circle for each boundary iteration.
23
- * @param n_ - The 3-prong's zero-based index. If ommitted, all will be shown.
24
- * @param idx - The specific boundary iteration index to view. If ommitted, all
25
- * will be shown.
26
- */
27
- function traceConvergence(g, n_, idx) {
28
- let sIndx;
29
- let eIndx;
30
- if (n_ === undefined) {
31
- sIndx = 0;
32
- eIndx = _debug_.generated.elems.threeProng.length;
33
- }
34
- else {
35
- sIndx = n_;
36
- eIndx = n_ + 1;
37
- }
38
- for (let n = sIndx; n < eIndx; n++) {
39
- let forDebugging = _debug_.generated.elems.threeProng[n];
40
- //let g = forDebugging.generated.g;
41
- console.log(forDebugging);
42
- let candidateThreeProngs = forDebugging.candidateThreeProngs;
43
- //-----------------------------
44
- //---- Get start and end index
45
- //-----------------------------
46
- let startIndx;
47
- let endIndx;
48
- if (n_ === undefined || idx === -1) {
49
- startIndx = forDebugging.bestIndx;
50
- endIndx = forDebugging.bestIndx + 1;
51
- }
52
- else {
53
- if (idx === undefined) {
54
- startIndx = 0;
55
- endIndx = candidateThreeProngs.length;
56
- }
57
- else {
58
- startIndx = idx;
59
- endIndx = idx + 1;
60
- }
61
- }
62
- //---------------------------------
63
- //---- Draw candidate three-prongs
64
- //---------------------------------
65
- for (let i = startIndx; i < endIndx; i++) {
66
- let circle = candidateThreeProngs[i].circle;
67
- if (forDebugging.bestIndx === i) {
68
- drawFs.dot(g, circle.center, 0.2, 'green');
69
- drawFs.circle(g, circle, 'black thin10 nofill');
70
- }
71
- else {
72
- drawFs.dot(g, circle.center, 0.2, 'cyan');
73
- drawFs.circle(g, circle, 'cyan thin5 nofill');
74
- }
75
- }
76
- }
77
- }
78
- /**
79
- * @hidden
80
- * Shows the actual boundary for each iteration.
81
- * @param n The 3-prong's zero-based index.
82
- * @param idx The specific boundary iteration index to view. If ommitted will
83
- * show all.
84
- */
85
- function showBoundary(g, n, idx) {
86
- let debugInfo = _debug_.generated.elems.threeProng[n];
87
- //let g = debugInfo.generated.g;
88
- let candidateThreeProngs = debugInfo.candidateThreeProngs;
89
- let startIndx = idx === undefined ? 0 : idx;
90
- let endIndx = idx === undefined ? candidateThreeProngs.length : idx;
91
- // Draw relevant δs
92
- let cpss = debugInfo.cpss;
93
- let j = 0;
94
- // For each iteration of δ3s (indexed by j)
95
- for (let idx = 1; idx < cpss.length - 1; idx++) {
96
- if (!(j >= startIndx && j <= endIndx)) {
97
- j++;
98
- continue;
99
- }
100
- let δ3s = [
101
- cpss[0],
102
- cpss[idx],
103
- cpss[cpss.length - 1]
104
- ];
105
- // For each of the 3 δs
106
- for (let i = 0; i < 3; i++) {
107
- let δ = δ3s[i];
108
- let δS = δ[0]; // Delta Start
109
- let δE = δ[1]; // Delta End
110
- let posS = δS.cp.pointOnShape;
111
- let posE = δE.cp.pointOnShape;
112
- let pS = posS.p;
113
- let pE = posE.p;
114
- let r = 1 + (i * 0.5);
115
- if (equal(pS, pE)) {
116
- drawFs.crossHair(g, pS, 'red thin10 nofill', r);
117
- }
118
- else {
119
- drawFs.crossHair(g, pS, 'green thin10 nofill', r);
120
- drawFs.crossHair(g, pE, 'blue thin10 nofill', r);
121
- }
122
- }
123
- j++;
124
- }
125
- }
126
- /**
127
- * @hidden
128
- * @param n The 3-prong's zero-based index.
129
- */
130
- function logδs(n) {
131
- let threeProng = _debug_.generated.elems.threeProng[n];
132
- console.log(threeProng.cpss);
133
- }
134
- /**
135
- * @hidden
136
- * @param p
137
- */
138
- function logNearest(showSpokes = true, showTrace = true, showBoundaries = true) {
139
- return function (g, p, showDelay = 1000) {
140
- let generated = _debug_.generated;
141
- let threeProng = getObjClosestTo(p, generated.elems.threeProng, threeProng => threeProng.circle ? threeProng.circle.center : [0, 0]);
142
- let circle = threeProng.circle;
143
- //let g = threeProng.generated.g;
144
- console.log(threeProng);
145
- let circle2 = {
146
- center: circle.center,
147
- radius: circle.radius || 1
148
- };
149
- //let draw = _debug_.fs.draw;
150
- drawFs.circle(g, circle2, 'blue thin10 nofill', showDelay);
151
- drawFs.crossHair(g, circle.center, 'red thin2 nofill', 2, showDelay);
152
- if (showSpokes) {
153
- drawFs.line(g, [threeProng.poss[0].p, circle.center], 'blue thin5 nofill', showDelay);
154
- drawFs.line(g, [threeProng.poss[1].p, circle.center], 'blue thin5 nofill', showDelay);
155
- drawFs.line(g, [threeProng.poss[2].p, circle.center], 'blue thin5 nofill', showDelay);
156
- }
157
- if (showBoundaries) {
158
- let boundaries = threeProng.boundaries;
159
- let boundaryS = boundaries[0];
160
- let boundaryE = boundaries[boundaries.length - 1];
161
- drawFs.beziers(g, boundaryS, 'red thin20 nofill', showDelay);
162
- for (let i = 1; i < boundaries.length - 1; i++) {
163
- let boundary = boundaries[i];
164
- drawFs.beziers(g, boundary, 'green thin20 nofill', showDelay);
165
- }
166
- drawFs.beziers(g, boundaryE, 'blue thin20 nofill', showDelay);
167
- }
168
- if (showTrace) {
169
- let traces = threeProng.traces;
170
- for (let trace of traces) {
171
- drawFs.polyline(g, trace, 'red thin5 nofill', showDelay);
172
- }
173
- }
174
- };
175
- }
176
- /** @hidden */
177
- let threeProngDebugFunctions = {
178
- drawSpokes,
179
- traceConvergence,
180
- showBoundary,
181
- logδs,
182
- logNearest
183
- };
184
- export { threeProngDebugFunctions };
1
+ import { drawFs } from 'flo-draw';
2
+ import { equal, getObjClosestTo } from 'flo-vector2d';
3
+ /**
4
+ * @hidden
5
+ * Draws 3 lines from the given 3-prong center to its 3 contact points.
6
+ * @param n - The 3-prong's zero-based index.
7
+ */
8
+ function drawSpokes(g, n) {
9
+ const threeProng = _debug_.generated.elems.threeProng[n];
10
+ //const g = threeProng.generated.g;
11
+ const cc = threeProng.circle.center;
12
+ const poss = threeProng.poss;
13
+ //_debug_.fs.draw.line(g, [poss[0].p, cc], 'thin5 red');
14
+ //_debug_.fs.draw.line(g, [poss[1].p, cc], 'thin5 red');
15
+ //_debug_.fs.draw.line(g, [poss[2].p, cc], 'thin5 red');
16
+ drawFs.line(g, [poss[0].p, cc], 'thin5 red');
17
+ drawFs.line(g, [poss[1].p, cc], 'thin5 red');
18
+ drawFs.line(g, [poss[2].p, cc], 'thin5 red');
19
+ }
20
+ /**
21
+ * @hidden
22
+ * Shows the circle for each boundary iteration.
23
+ * @param n_ - The 3-prong's zero-based index. If ommitted, all will be shown.
24
+ * @param idx - The specific boundary iteration index to view. If ommitted, all
25
+ * will be shown.
26
+ */
27
+ function traceConvergence(g, n_, idx) {
28
+ let sIndx;
29
+ let eIndx;
30
+ if (n_ === undefined) {
31
+ sIndx = 0;
32
+ eIndx = _debug_.generated.elems.threeProng.length;
33
+ }
34
+ else {
35
+ sIndx = n_;
36
+ eIndx = n_ + 1;
37
+ }
38
+ for (let n = sIndx; n < eIndx; n++) {
39
+ const forDebugging = _debug_.generated.elems.threeProng[n];
40
+ //const g = forDebugging.generated.g;
41
+ console.log(forDebugging);
42
+ const candidateThreeProngs = forDebugging.candidateThreeProngs;
43
+ //-----------------------------
44
+ //---- Get start and end index
45
+ //-----------------------------
46
+ let startIndx;
47
+ let endIndx;
48
+ if (n_ === undefined || idx === -1) {
49
+ startIndx = forDebugging.bestIndx;
50
+ endIndx = forDebugging.bestIndx + 1;
51
+ }
52
+ else {
53
+ if (idx === undefined) {
54
+ startIndx = 0;
55
+ endIndx = candidateThreeProngs.length;
56
+ }
57
+ else {
58
+ startIndx = idx;
59
+ endIndx = idx + 1;
60
+ }
61
+ }
62
+ //---------------------------------
63
+ //---- Draw candidate three-prongs
64
+ //---------------------------------
65
+ for (let i = startIndx; i < endIndx; i++) {
66
+ const circle = candidateThreeProngs[i].circle;
67
+ if (forDebugging.bestIndx === i) {
68
+ drawFs.dot(g, circle.center, 0.2, 'green');
69
+ drawFs.circle(g, circle, 'black thin10 nofill');
70
+ }
71
+ else {
72
+ drawFs.dot(g, circle.center, 0.2, 'cyan');
73
+ drawFs.circle(g, circle, 'cyan thin5 nofill');
74
+ }
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * @hidden
80
+ * Shows the actual boundary for each iteration.
81
+ * @param n The 3-prong's zero-based index.
82
+ * @param idx The specific boundary iteration index to view. If ommitted will
83
+ * show all.
84
+ */
85
+ function showBoundary(g, n, idx) {
86
+ const debugInfo = _debug_.generated.elems.threeProng[n];
87
+ //const g = debugInfo.generated.g;
88
+ const candidateThreeProngs = debugInfo.candidateThreeProngs;
89
+ const startIndx = idx === undefined ? 0 : idx;
90
+ const endIndx = idx === undefined ? candidateThreeProngs.length : idx;
91
+ // Draw relevant δs
92
+ const cpss = debugInfo.cpss;
93
+ let j = 0;
94
+ // For each iteration of δ3s (indexed by j)
95
+ for (let idx = 1; idx < cpss.length - 1; idx++) {
96
+ if (!(j >= startIndx && j <= endIndx)) {
97
+ j++;
98
+ continue;
99
+ }
100
+ const δ3s = [
101
+ cpss[0],
102
+ cpss[idx],
103
+ cpss[cpss.length - 1]
104
+ ];
105
+ // For each of the 3 δs
106
+ for (let i = 0; i < 3; i++) {
107
+ const δ = δ3s[i];
108
+ const δS = δ[0]; // Delta Start
109
+ const δE = δ[1]; // Delta End
110
+ const posS = δS.cp.pointOnShape;
111
+ const posE = δE.cp.pointOnShape;
112
+ const pS = posS.p;
113
+ const pE = posE.p;
114
+ const r = 1 + (i * 0.5);
115
+ if (equal(pS, pE)) {
116
+ drawFs.crossHair(g, pS, 'red thin10 nofill', r);
117
+ }
118
+ else {
119
+ drawFs.crossHair(g, pS, 'green thin10 nofill', r);
120
+ drawFs.crossHair(g, pE, 'blue thin10 nofill', r);
121
+ }
122
+ }
123
+ j++;
124
+ }
125
+ }
126
+ /**
127
+ * @hidden
128
+ * @param n The 3-prong's zero-based index.
129
+ */
130
+ function logδs(n) {
131
+ const threeProng = _debug_.generated.elems.threeProng[n];
132
+ console.log(threeProng.cpss);
133
+ }
134
+ /**
135
+ * @hidden
136
+ * @param p
137
+ */
138
+ function logNearest(showSpokes = true, showTrace = true, showBoundaries = true) {
139
+ return function (g, p, showDelay = 1000) {
140
+ const generated = _debug_.generated;
141
+ const threeProng = getObjClosestTo(p, generated.elems.threeProng, threeProng => threeProng.circle ? threeProng.circle.center : [0, 0]);
142
+ const circle = threeProng.circle;
143
+ //const g = threeProng.generated.g;
144
+ console.log(threeProng);
145
+ const circle2 = {
146
+ center: circle.center,
147
+ radius: circle.radius || 1
148
+ };
149
+ //const draw = _debug_.fs.draw;
150
+ drawFs.circle(g, circle2, 'blue thin10 nofill', showDelay);
151
+ drawFs.crossHair(g, circle.center, 'red thin2 nofill', 2, showDelay);
152
+ if (showSpokes) {
153
+ drawFs.line(g, [threeProng.poss[0].p, circle.center], 'blue thin5 nofill', showDelay);
154
+ drawFs.line(g, [threeProng.poss[1].p, circle.center], 'blue thin5 nofill', showDelay);
155
+ drawFs.line(g, [threeProng.poss[2].p, circle.center], 'blue thin5 nofill', showDelay);
156
+ }
157
+ if (showBoundaries) {
158
+ const boundaries = threeProng.boundaries;
159
+ const boundaryS = boundaries[0];
160
+ const boundaryE = boundaries[boundaries.length - 1];
161
+ drawFs.beziers(g, boundaryS, 'red thin20 nofill', showDelay);
162
+ for (let i = 1; i < boundaries.length - 1; i++) {
163
+ const boundary = boundaries[i];
164
+ drawFs.beziers(g, boundary, 'green thin20 nofill', showDelay);
165
+ }
166
+ drawFs.beziers(g, boundaryE, 'blue thin20 nofill', showDelay);
167
+ }
168
+ if (showTrace) {
169
+ const traces = threeProng.traces;
170
+ for (const trace of traces) {
171
+ drawFs.polyline(g, trace, 'red thin5 nofill', showDelay);
172
+ }
173
+ }
174
+ };
175
+ }
176
+ /** @hidden */
177
+ const threeProngDebugFunctions = {
178
+ drawSpokes,
179
+ traceConvergence,
180
+ showBoundary,
181
+ logδs,
182
+ logNearest
183
+ };
184
+ export { threeProngDebugFunctions };
185
185
  //# sourceMappingURL=three-prong.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"three-prong.js","sourceRoot":"","sources":["../../../src/debug/functions/three-prong.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"three-prong.js","sourceRoot":"","sources":["../../../src/debug/functions/three-prong.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAmBtD;;;;GAIG;AACH,SAAS,UAAU,CAAC,CAAc,EAAE,CAAS;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzD,mCAAmC;IACnC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAE7B,wDAAwD;IACxD,wDAAwD;IACxD,wDAAwD;IAExD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC;AAGD;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,CAAc,EAAE,EAAU,EAAE,GAAW;IAChE,IAAI,KAAK,CAAC;IACV,IAAI,KAAK,CAAC;IACV,IAAI,EAAE,KAAK,SAAS,EAAE;QACrB,KAAK,GAAG,CAAC,CAAC;QACV,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;KAClD;SAAM;QACN,KAAK,GAAG,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,GAAC,CAAC,CAAC;KACb;IAED,KAAK,IAAI,CAAC,GAAC,KAAK,EAAE,CAAC,GAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAE/B,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3D,qCAAqC;QAErC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE1B,MAAM,oBAAoB,GAAG,YAAY,CAAC,oBAAoB,CAAC;QAE/D,+BAA+B;QAC/B,8BAA8B;QAC9B,+BAA+B;QAC/B,IAAI,SAAS,CAAC;QACd,IAAI,OAAO,CAAC;QACZ,IAAI,EAAE,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;YACnC,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC;YAClC,OAAO,GAAK,YAAY,CAAC,QAAQ,GAAC,CAAC,CAAC;SACpC;aAAM;YACN,IAAI,GAAG,KAAK,SAAS,EAAE;gBACtB,SAAS,GAAG,CAAC,CAAC;gBACd,OAAO,GAAK,oBAAoB,CAAC,MAAM,CAAC;aACxC;iBAAM;gBACN,SAAS,GAAG,GAAG,CAAC;gBAChB,OAAO,GAAK,GAAG,GAAC,CAAC,CAAC;aAClB;SACD;QAED,mCAAmC;QACnC,kCAAkC;QAClC,mCAAmC;QACnC,KAAK,IAAI,CAAC,GAAC,SAAS,EAAE,CAAC,GAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9C,IAAI,YAAY,CAAC,QAAQ,KAAK,CAAC,EAAE;gBAChC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;aAChD;iBAAM;gBACN,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;aAC9C;SACD;KACD;AACF,CAAC;AAGD;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,CAAc,EAAE,CAAS,EAAE,GAAW;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxD,kCAAkC;IAElC,MAAM,oBAAoB,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAE5D,MAAM,SAAS,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,MAAM,OAAO,GAAK,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IAExE,mBAAmB;IACnB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,2CAA2C;IAC3C,KAAK,IAAI,GAAG,GAAC,CAAC,EAAE,GAAG,GAAC,IAAI,CAAC,MAAM,GAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAEzC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE;YACtC,CAAC,EAAE,CAAC;YACJ,SAAS;SACT;QAED,MAAM,GAAG,GAAG;YACX,IAAI,CAAC,CAAC,CAAC;YACP,IAAI,CAAC,GAAG,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;SACnB,CAAC;QAGF,uBAAuB;QACvB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;YAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YAE7B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC;YAEhC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAElB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;YAEtB,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;aAChD;iBAAM;gBACN,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;aACjD;SACD;QAED,CAAC,EAAE,CAAC;KACJ;AACF,CAAC;AAGD;;;GAGG;AACH,SAAS,KAAK,CAAC,CAAS;IACvB,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAGD;;;GAGG;AACH,SAAS,UAAU,CACjB,UAAU,GAAG,IAAI,EACjB,SAAS,GAAG,IAAI,EAChB,cAAc,GAAG,IAAI;IAEtB,OAAO,UAAS,CAAc,EAAE,CAAW,EAAE,SAAS,GAAG,IAAI;QAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,MAAM,UAAU,GAAG,eAAe,CACjC,CAAC,EACD,SAAS,CAAC,KAAK,CAAC,UAAU,EAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAClE,CAAC;QAGF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,mCAAmC;QAEnC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAExB,MAAM,OAAO,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;SAC1B,CAAC;QAEF,+BAA+B;QAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAErE,IAAI,UAAU,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;SACtF;QAGD,IAAI,cAAc,EAAE;YACnB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;YAElD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;YAC7D,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,UAAU,CAAC,MAAM,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC;aAC9D;YACD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;SAC9D;QAED,IAAI,SAAS,EAAE;YACd,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAA;aACxD;SACD;IACF,CAAC,CAAA;AACF,CAAC;AAGD,cAAc;AACd,MAAM,wBAAwB,GAA8B;IAC3D,UAAU;IACV,gBAAgB;IAChB,YAAY;IACZ,KAAK;IACL,UAAU;CACV,CAAA;AAGD,OAAO,EAAE,wBAAwB,EAAE,CAAA"}