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
@@ -24,14 +24,14 @@ function compareCurvaturesAtInterface(
24
24
  psO: number[][]) {
25
25
 
26
26
  // Get x' and y' for incoming curve evaluated at 0
27
- let [dxI, dyI] = tangentAt0(psI); // max bitlength increase / max shift === 3
27
+ const [dxI, dyI] = tangentAt0(psI); // max bitlength increase / max shift === 3
28
28
  // Get x'' and y'' for incoming curve evaluated at 0
29
- let [ddxI, ddyI] = evaluate2ndDerivativeAt0(psI); // max bitlength increase / max shift === 5
29
+ const [ddxI, ddyI] = evaluate2ndDerivativeAt0(psI); // max bitlength increase / max shift === 5
30
30
 
31
31
  // Get x' and y' for outgoing curve evaluated at 0
32
- let [dxO, dyO] = tangentAt0(psO); // max bitlength increase / max shift === 3
32
+ const [dxO, dyO] = tangentAt0(psO); // max bitlength increase / max shift === 3
33
33
  // Get x'' and y'' for outgoing curve evaluated at 0
34
- let [ddxO, ddyO] = evaluate2ndDerivativeAt0(psO); // max bitlength increase / max shift === 5
34
+ const [ddxO, ddyO] = evaluate2ndDerivativeAt0(psO); // max bitlength increase / max shift === 5
35
35
 
36
36
  //console.log('κI: ', κ(psI, 0));
37
37
  //console.log('κO: ', κ(psO, 0));
@@ -59,40 +59,40 @@ function compareCurvaturesAtInterface(
59
59
  //let d = (dxI*dxI + dyI*dyI )**3;
60
60
 
61
61
  // We need to resort to exact floating point arithmetic at this point
62
- let a = eDiff(
62
+ const a = eDiff(
63
63
  twoProduct(dxI, ddyI),
64
64
  twoProduct(dyI, ddxI)
65
65
  );
66
- let c = eDiff(
66
+ const c = eDiff(
67
67
  twoProduct(dxO, ddyO),
68
68
  twoProduct(dyO, ddxO)
69
69
  );
70
70
 
71
- let signA = eSign(a);
72
- let signC = eSign(c);
71
+ const signA = eSign(a);
72
+ const signC = eSign(c);
73
73
  if (signA !== signC) {
74
74
  //console.log('branch 3');
75
75
  return signA - signC;
76
76
  }
77
77
 
78
- let b = fastExpansionSum(
78
+ const b = fastExpansionSum(
79
79
  twoProduct(dxO, dxO),
80
80
  twoProduct(dyO, dyO)
81
81
  );
82
- let d = fastExpansionSum(
82
+ const d = fastExpansionSum(
83
83
  twoProduct(dxI, dxI),
84
84
  twoProduct(dyI, dyI)
85
85
  );
86
86
 
87
- let b2 = expansionProduct(b, b);
88
- let b3 = expansionProduct(b2, b);
89
- let d2 = expansionProduct(d, d);
90
- let d3 = expansionProduct(d2, d);
87
+ const b2 = expansionProduct(b, b);
88
+ const b3 = expansionProduct(b2, b);
89
+ const d2 = expansionProduct(d, d);
90
+ const d3 = expansionProduct(d2, d);
91
91
 
92
92
  if (signA !== 0 || signC !== 0) {
93
93
  //console.log('branch 4');
94
- let a2 = expansionProduct(a, a);
95
- let c2 = expansionProduct(c, c);
94
+ const a2 = expansionProduct(a, a);
95
+ const c2 = expansionProduct(c, c);
96
96
 
97
97
  // max aggregate bitlength increase (let original bitlength === p):
98
98
  // κ -> (2 x ((p+3)+(p+5) + 1)) + (3 x ((p+3) + 1)) === 7p + 30
@@ -101,9 +101,9 @@ function compareCurvaturesAtInterface(
101
101
  // results without resorting to infinite precision) we get 51 bits.
102
102
 
103
103
 
104
- let κI = expansionProduct(a2,b3);
105
- let κO = expansionProduct(c2,d3);
106
- let δκ = eSign(eDiff(κI, κO));
104
+ const κI = expansionProduct(a2,b3);
105
+ const κO = expansionProduct(c2,d3);
106
+ const δκ = eSign(eDiff(κI, κO));
107
107
 
108
108
  if (δκ !== 0) {
109
109
  //console.log('branch 5');
@@ -125,32 +125,32 @@ function compareCurvaturesAtInterface(
125
125
  // <=> i²b⁵ > j²d⁵
126
126
 
127
127
  // Get x′′′ and y′′′ for incoming curve evaluated at 1
128
- let [dddxI, dddyI] = toPowerBasis_3rdDerivative(psI); // max bitlength increase === max shift === 6
129
- let [dddxO, dddyO] = toPowerBasis_3rdDerivative(psO); // max bitlength increase === max shift === 6
128
+ const [dddxI, dddyI] = toPowerBasis_3rdDerivative(psI); // max bitlength increase === max shift === 6
129
+ const [dddxO, dddyO] = toPowerBasis_3rdDerivative(psO); // max bitlength increase === max shift === 6
130
130
 
131
- let e = eDiff(
131
+ const e = eDiff(
132
132
  twoProduct(dxI, dddyI),
133
133
  twoProduct(dyI, dddxI)
134
134
  );
135
135
 
136
- let f = fastExpansionSum(
136
+ const f = fastExpansionSum(
137
137
  twoProduct(dxI, ddxI),
138
138
  twoProduct(dyI, ddyI)
139
139
  );
140
140
 
141
- let g = eDiff(
141
+ const g = eDiff(
142
142
  twoProduct(dxO, dddyO),
143
143
  twoProduct(dyO, dddxO)
144
144
  );
145
145
 
146
- let h = fastExpansionSum(
146
+ const h = fastExpansionSum(
147
147
  twoProduct(dxO, ddxO),
148
148
  twoProduct(dyO, ddyO)
149
149
  );
150
150
 
151
151
  // (de - 3af)²b⁵ > (bg - 3ch)²d⁵
152
152
  // i²b⁵ > j²d⁵
153
- let i = eDiff(
153
+ const i = eDiff(
154
154
  expansionProduct(d, e),
155
155
  scaleExpansion(
156
156
  expansionProduct(a, f),
@@ -158,7 +158,7 @@ function compareCurvaturesAtInterface(
158
158
  )
159
159
  );
160
160
 
161
- let j = eDiff(
161
+ const j = eDiff(
162
162
  expansionProduct(b, g),
163
163
  scaleExpansion(
164
164
  expansionProduct(c, h),
@@ -166,8 +166,8 @@ function compareCurvaturesAtInterface(
166
166
  )
167
167
  );
168
168
 
169
- let signI = eSign(i);
170
- let signJ = eSign(j);
169
+ const signI = eSign(i);
170
+ const signJ = eSign(j);
171
171
  if (signA !== signC) {
172
172
  return signI - signJ;
173
173
  }
@@ -177,15 +177,15 @@ function compareCurvaturesAtInterface(
177
177
  return 0;
178
178
  }
179
179
 
180
- let i2 = expansionProduct(i,i);
181
- let b5 = expansionProduct(b2,b3);
182
- let j2 = expansionProduct(j,j);
183
- let d5 = expansionProduct(d2,d3);
180
+ const i2 = expansionProduct(i,i);
181
+ const b5 = expansionProduct(b2,b3);
182
+ const j2 = expansionProduct(j,j);
183
+ const d5 = expansionProduct(d2,d3);
184
184
 
185
- let dκI = expansionProduct(i2,b5);
186
- let dκO = expansionProduct(j2,d5);
185
+ const dκI = expansionProduct(i2,b5);
186
+ const dκO = expansionProduct(j2,d5);
187
187
 
188
- let sgn = eSign(eDiff(dκI, dκO));
188
+ const sgn = eSign(eDiff(dκI, dκO));
189
189
 
190
190
  return signI > 0 ? sgn : -sgn;
191
191
 
@@ -21,18 +21,18 @@ function clone(cpNode: CpNode): CpNode {
21
21
  // Don't change this function to be recursive, the call stack may
22
22
  // overflow if there are too many CpNodes.
23
23
 
24
- let nodeMap: Map<CpNode, CpNode> = new Map();
24
+ const nodeMap: Map<CpNode, CpNode> = new Map();
25
25
 
26
- let newCpNode = new CpNode(cpNode.cp, cpNode.isHoleClosing, cpNode.isIntersection);
26
+ const newCpNode = new CpNode(cpNode.cp, cpNode.isHoleClosing, cpNode.isIntersection);
27
27
 
28
28
  nodeMap.set(cpNode, newCpNode);
29
- let cpStack = [{ cpNode, newCpNode }];
29
+ const cpStack = [{ cpNode, newCpNode }];
30
30
 
31
31
  while (cpStack.length) {
32
- let { cpNode, newCpNode } = cpStack.pop();
32
+ const { cpNode, newCpNode } = cpStack.pop();
33
33
 
34
- for (let edge of EDGES) {
35
- let node = cpNode[edge];
34
+ for (const edge of EDGES) {
35
+ const node = cpNode[edge];
36
36
  let newNode = nodeMap.get(node);
37
37
  if (!newNode) {
38
38
  newNode = new CpNode(node.cp, node.isHoleClosing, node.isIntersection);
@@ -8,13 +8,13 @@ import { CpNode } from "../cp-node.js";
8
8
  * @param cpNode The [[CpNode]] to remove.
9
9
  */
10
10
  function removeCpNode(cpNode: CpNode, cpTree?: LlRbTree<CpNode>): void {
11
- let prev = cpNode.prev;
12
- let next = cpNode.next;
11
+ const prev = cpNode.prev;
12
+ const next = cpNode.next;
13
13
  prev.next = next;
14
14
  next.prev = prev;
15
15
 
16
- let nextOpposite = next.prevOnCircle;
17
- let prevOpposite = prev.nextOnCircle;
16
+ const nextOpposite = next.prevOnCircle;
17
+ const prevOpposite = prev.nextOnCircle;
18
18
  nextOpposite.next = prevOpposite;
19
19
  prevOpposite.prev = nextOpposite;
20
20
 
package/src/cp-node.ts CHANGED
@@ -1,5 +1,5 @@
1
- /** @hidden */
2
- declare var _debug_: Debug;
1
+ /** @internal */
2
+ declare const _debug_: Debug;
3
3
 
4
4
  import { LlRbTree } from 'flo-ll-rb-tree';
5
5
  import { Debug } from './debug/debug.js';
@@ -115,9 +115,9 @@ class CpNode {
115
115
  * edges.
116
116
  */
117
117
  getChildren() {
118
- let children: CpNode[] = [];
118
+ const children: CpNode[] = [];
119
119
 
120
- let cp = this.next;
120
+ const cp = this.next;
121
121
  let cp_ = cp;
122
122
  do {
123
123
  children.push(cp_);
@@ -141,8 +141,8 @@ class CpNode {
141
141
  get vertexChildren() {
142
142
  if (this.isTerminating()) { return []; }
143
143
 
144
- let cp: CpNode = this;
145
- let children: CpNode[] = [];
144
+ const cp: CpNode = this;
145
+ const children: CpNode[] = [];
146
146
 
147
147
  let cp_ = cp;
148
148
  while (cp_ !== cp.prevOnCircle) {
@@ -159,8 +159,8 @@ class CpNode {
159
159
  * starting from the current one and going anti-clockwise around the shape.
160
160
  */
161
161
  public getAllOnLoop() {
162
- let cpStart: CpNode = this;
163
- let cps: CpNode[] = [cpStart];
162
+ const cpStart: CpNode = this;
163
+ const cps: CpNode[] = [cpStart];
164
164
  let cp: CpNode = this.next;
165
165
 
166
166
  while (cp !== cpStart) {
@@ -193,7 +193,7 @@ class CpNode {
193
193
  cp: ContactPoint,
194
194
  prev_: CpNode) {
195
195
 
196
- let cpNode = new CpNode(cp, isHoleClosing, isIntersection);
196
+ const cpNode = new CpNode(cp, isHoleClosing, isIntersection);
197
197
  if (typeof _debug_ !== 'undefined') {
198
198
  _debug_.generated.elems.cpNode.push({
199
199
  generated: _debug_.generated,
@@ -231,10 +231,10 @@ class CpNode {
231
231
  * [[CpNode]].
232
232
  */
233
233
  public getCpNodesOnCircle(exclThis = false) {
234
- let startCp = this as CpNode;
234
+ const startCp = this as CpNode;
235
235
  let cp = startCp;
236
236
 
237
- let cps: CpNode[] = [];
237
+ const cps: CpNode[] = [];
238
238
  do {
239
239
  if (exclThis) {
240
240
  exclThis = false;
@@ -255,7 +255,7 @@ class CpNode {
255
255
  * @param cpNode2 Another [[CpNode]]
256
256
  */
257
257
  static isOnSameCircle(cpNode1: CpNode, cpNode2: CpNode) {
258
- let cpNodes = cpNode1.getCpNodesOnCircle(true);
258
+ const cpNodes = cpNode1.getCpNodesOnCircle(true);
259
259
 
260
260
  return cpNodes.indexOf(cpNode2) >= 0;
261
261
  }
@@ -284,8 +284,8 @@ class CpNode {
284
284
  * (except this.prevOnCircle) is terminating.
285
285
  */
286
286
  public isFullyTerminating() {
287
- let otherOnCircle = this.prevOnCircle.getCpNodesOnCircle(true);
288
- let isFullyTerminating = otherOnCircle.every(cpNode => cpNode.isTerminating());
287
+ const otherOnCircle = this.prevOnCircle.getCpNodesOnCircle(true);
288
+ const isFullyTerminating = otherOnCircle.every(cpNode => cpNode.isTerminating());
289
289
 
290
290
  return isFullyTerminating;
291
291
  }
@@ -296,7 +296,7 @@ class CpNode {
296
296
  * .nextOnCircle) that exits the circle.
297
297
  */
298
298
  public getFirstExit() {
299
- let startNode = this as CpNode;
299
+ const startNode = this as CpNode;
300
300
  let cpNode = startNode;
301
301
 
302
302
  while (cpNode.next === cpNode.prevOnCircle) {
@@ -333,16 +333,16 @@ class CpNode {
333
333
  * preserve symmetry - see [[isTerminating]] for more details.
334
334
  */
335
335
  public isOneProng() {
336
- let cp1 = this;
336
+ const cp1 = this;
337
337
 
338
338
  if (cp1.cp.circle.radius === 0) {
339
339
  return true;
340
340
  }
341
341
 
342
- let cp2 = cp1.nextOnCircle;
342
+ const cp2 = cp1.nextOnCircle;
343
343
 
344
- let p1 = cp1.cp.pointOnShape.p;
345
- let p2 = cp2.cp.pointOnShape.p;
344
+ const p1 = cp1.cp.pointOnShape.p;
345
+ const p2 = cp2.cp.pointOnShape.p;
346
346
 
347
347
  return (p1[0] === p2[0] && p1[1] === p2[1]);
348
348
  }
@@ -357,7 +357,7 @@ class CpNode {
357
357
  * [[getRealProngCount]] instead which will return 1 in these cases.
358
358
  */
359
359
  public getProngCount() {
360
- let startCp = this as CpNode;
360
+ const startCp = this as CpNode;
361
361
  let cp = startCp;
362
362
 
363
363
  let i = 0;
package/src/curve.ts CHANGED
@@ -66,37 +66,37 @@ const DEGREE_LIMIT = DEGREES[4];
66
66
  function getCorner(psI: number[][], psO: number[][]): Corner {
67
67
  // getInterfaceCcw must return a number !== 0 if psI and psO are not the
68
68
  // same as seen as a curve extension with t ∈ [-∞,+∞]
69
- let ccw = getInterfaceCcw(psI, psO);
70
- let isSharp = ccw < 0;
71
- let isDull = ccw > 0;
69
+ const ccw = getInterfaceCcw(psI, psO);
70
+ const isSharp = ccw < 0;
71
+ const isDull = ccw > 0;
72
72
 
73
73
  // Find (non-normalized) tangent of curve.ps at t === 1
74
- let p0E = psI[psI.length-2];
75
- let p1E = psI[psI.length-1];
76
- let xE = p1E[0] - p0E[0];
77
- let yE = p1E[1] - p0E[1];
78
- let tangentAtEnd = [xE,yE];
74
+ const p0E = psI[psI.length-2];
75
+ const p1E = psI[psI.length-1];
76
+ const xE = p1E[0] - p0E[0];
77
+ const yE = p1E[1] - p0E[1];
78
+ const tangentAtEnd = [xE,yE];
79
79
 
80
80
  // Find (non-normalized) tangent of curve.next.ps at t === 0
81
- let p0S = psO[0];
82
- let p1S = psO[1];
83
- let xS = p1S[0] - p0S[0];
84
- let yS = p1S[1] - p0S[1];
85
- let tangentAtStart = [xS,yS];
81
+ const p0S = psO[0];
82
+ const p1S = psO[1];
83
+ const xS = p1S[0] - p0S[0];
84
+ const yS = p1S[1] - p0S[1];
85
+ const tangentAtStart = [xS,yS];
86
86
 
87
87
  // These use square root and are thus not exact
88
- let tangents_ = [
88
+ const tangents_ = [
89
89
  toUnitVector(tangentAtEnd),
90
90
  toUnitVector(tangentAtStart),
91
91
  ];
92
92
 
93
93
  // The cross calculated below should be exact due to beziers having been
94
94
  // normalized!
95
- let crossTangents = cross(tangents_[0], tangents_[1]);
95
+ const crossTangents = cross(tangents_[0], tangents_[1]);
96
96
 
97
97
  let isQuiteSharp: boolean;
98
98
  let isQuiteDull: boolean;
99
- let dotTangents = dot(tangentAtEnd, tangentAtStart);
99
+ const dotTangents = dot(tangentAtEnd, tangentAtStart);
100
100
  if (dotTangents > 0) {
101
101
  // Curves go in same direction
102
102
  isQuiteSharp = crossTangents < -DEGREE_LIMIT;
@@ -122,9 +122,9 @@ function getCorner(psI: number[][], psO: number[][]): Corner {
122
122
  * Returns information about the corner created at the end of this curve
123
123
  * (at t === 1) and the start of the next curve (at t === 0).
124
124
  */
125
- let getCornerAtEnd = memoize(function(curve: Curve) {
126
- let psE = curve.ps;
127
- let psS = curve.next.ps;
125
+ const getCornerAtEnd = memoize(function(curve: Curve) {
126
+ const psE = curve.ps;
127
+ const psS = curve.next.ps;
128
128
 
129
129
  return getCorner(psE, psS);
130
130
  });
@@ -5,9 +5,9 @@ import { drawFs } from 'flo-draw';
5
5
  function boundingHull(
6
6
  g: SVGGElement,
7
7
  hull: number[][],
8
- style: string = 'thin5 black nofill') {
8
+ style = 'thin5 black nofill') {
9
9
 
10
- let $polygon = drawFs.polygon(g, hull, style);
10
+ const $polygon = drawFs.polygon(g, hull, style);
11
11
 
12
12
  return $polygon;
13
13
  }
@@ -6,15 +6,15 @@ import { getCurveToNext } from '../../../get-curve-to-next.js';
6
6
  /** @hidden */
7
7
  function drawBranch(g: SVGGElement, branch: CpNode[], delay?: number) {
8
8
 
9
- let classes = 'thin5 purple nofill';
9
+ const classes = 'thin5 purple nofill';
10
10
 
11
- let $svgs: SVGElement[] = [];
11
+ const $svgs: SVGElement[] = [];
12
12
  let i = 0;
13
13
 
14
- for (let cpNode of branch) {
14
+ for (const cpNode of branch) {
15
15
  if (cpNode.isTerminating()) { continue; }
16
16
  //let bezier = cpNode.matCurveToNextVertex;
17
- let bezier = getCurveToNext(cpNode);
17
+ const bezier = getCurveToNext(cpNode);
18
18
  if (!bezier) { continue; }
19
19
  i++;
20
20
  $svgs.push( ...drawFs.bezier(g, bezier, classes, delay));
@@ -3,10 +3,10 @@ import { Circle } from '../../../circle.js';
3
3
 
4
4
  /** @hidden */
5
5
  function culls(g: SVGGElement, culls: Circle[]) {
6
- let $elems: SVGElement[] = [];
6
+ const $elems: SVGElement[] = [];
7
7
 
8
- for (let circle of culls) {
9
- let p = circle.center;
8
+ for (const circle of culls) {
9
+ const p = circle.center;
10
10
 
11
11
  $elems.push(drawCircle(g, p, 0.4, 'cyan thin5 nofill'));
12
12
  }
@@ -24,7 +24,7 @@ function drawCircle(
24
24
 
25
25
  const XMLNS = 'http://www.w3.org/2000/svg';
26
26
 
27
- let $circle = document.createElementNS(XMLNS, 'circle');
27
+ const $circle = document.createElementNS(XMLNS, 'circle');
28
28
  $circle.setAttributeNS(null, "cx", center[0].toString());
29
29
  $circle.setAttributeNS(null, "cy", center[1].toString());
30
30
  $circle.setAttributeNS(null, "r", radiusPercent.toString() + '%');
@@ -6,9 +6,9 @@ function drawCirclePercent(
6
6
  radiusPercent: number,
7
7
  classes: string) {
8
8
 
9
- const XMLNS = 'http://www.w3.org/2000/svg';
9
+ const XMLNS = 'http://www.w3.org/2000/svg';
10
10
 
11
- let $circle = document.createElementNS(XMLNS, 'circle');
11
+ const $circle = document.createElementNS(XMLNS, 'circle');
12
12
  $circle.setAttributeNS(null, "cx", center[0].toString());
13
13
  $circle.setAttributeNS(null, "cy", center[1].toString());
14
14
  $circle.setAttributeNS(null, "r", radiusPercent.toString() + '%');
@@ -30,7 +30,7 @@ function notImplementedYet<T extends IDebugElems[keyof IDebugElems]> (g: SVGElem
30
30
 
31
31
 
32
32
  /** @hidden */
33
- let drawElemFunctions: TDrawElemFunctions = {
33
+ const drawElemFunctions: TDrawElemFunctions = {
34
34
  oneProng: drawOneProng,
35
35
  oneProngAtDullCorner,
36
36
 
@@ -6,9 +6,9 @@ import { Curve } from '../../../curve.js';
6
6
  function dullCorner(g: SVGGElement, curve: Curve) {
7
7
  const scaleFactor = 1;
8
8
 
9
- let ps = curve.ps;
10
- let p = curve.ps[ps.length-1];
11
- let $pos = drawFs.dot(g, p, 0.5*scaleFactor, 'orange');
9
+ const ps = curve.ps;
10
+ const p = curve.ps[ps.length-1];
11
+ const $pos = drawFs.dot(g, p, 0.5*scaleFactor, 'orange');
12
12
 
13
13
  return $pos;
14
14
  }
@@ -4,11 +4,11 @@ import { drawCirclePercent } from './draw-circle-percent.js';
4
4
 
5
5
  /** @hidden */
6
6
  function leaves(g: SVGGElement, leaves: CpNode[]) {
7
- let $elems: SVGElement[] = [];
7
+ const $elems: SVGElement[] = [];
8
8
 
9
- for (let cpNode of leaves) {
10
- let cp = cpNode.cp;
11
- let p = cp.circle.center;
9
+ for (const cpNode of leaves) {
10
+ const cp = cpNode.cp;
11
+ const p = cp.circle.center;
12
12
 
13
13
  $elems.push(drawCirclePercent(g, p, 0.5, 'pinker thin5 nofill'));
14
14
  }
@@ -4,10 +4,10 @@ import { drawFs } from "flo-draw";
4
4
  /** @hidden */
5
5
  function looseBoundingBox(g: SVGGElement, box: number[][]) {
6
6
 
7
- let [[x0, y0],[x1, y1]] = box;
7
+ const [[x0, y0],[x1, y1]] = box;
8
8
  box = [[x0, y0],[x1, y0],[x1,y1],[x0,y1]];
9
9
 
10
- let $box = drawFs.polygon(g, box, 'thin5 brown nofill');
10
+ const $box = drawFs.polygon(g, box, 'thin5 brown nofill');
11
11
 
12
12
  return $box;
13
13
  }
@@ -7,22 +7,22 @@ import { getCurveToNext } from '../../../get-curve-to-next.js';
7
7
  /** @hidden */
8
8
  function drawMat(type: 'mat' | 'sat') {
9
9
 
10
- let classes: string = type === 'mat'
10
+ const classes: string = type === 'mat'
11
11
  ? 'thin5 purple nofill'
12
12
  : 'thin10 red nofill';
13
13
 
14
14
  return (g: SVGGElement, mat: Mat) => {
15
- let cpNode = mat.cpNode;
15
+ const cpNode = mat.cpNode;
16
16
 
17
17
  if (!cpNode) { return undefined; }
18
18
 
19
- let $svgs: SVGElement[] = [];
19
+ const $svgs: SVGElement[] = [];
20
20
  let i = 0;
21
21
 
22
22
  traverseEdges(cpNode, cpNode => {
23
23
  if (cpNode.isTerminating()) { return; }
24
24
 
25
- let bezier = getCurveToNext(cpNode);
25
+ const bezier = getCurveToNext(cpNode);
26
26
 
27
27
  if (!bezier) { return; }
28
28
 
@@ -4,9 +4,9 @@ import { CpNode } from '../../../cp-node.js';
4
4
 
5
5
  /** @hidden */
6
6
  function maxVertex(g: SVGGElement, cpNode: CpNode) {
7
- let circle = cpNode.cp.circle;
7
+ const circle = cpNode.cp.circle;
8
8
 
9
- let $elems = drawFs.circle(g, circle, 'brown thin10 nofill');
9
+ const $elems = drawFs.circle(g, circle, 'brown thin10 nofill');
10
10
 
11
11
  return $elems;
12
12
  }
@@ -5,14 +5,14 @@ import { IPointOnShape } from '../../../point-on-shape.js';
5
5
 
6
6
  /** @hidden */
7
7
  function minY(g: SVGGElement, pos: IPointOnShape) {
8
- let p = evalDeCasteljau(pos.curve.ps, pos.t) ;
8
+ const p = evalDeCasteljau(pos.curve.ps, pos.t) ;
9
9
 
10
- let ps = toCubic(pos.curve.ps);
10
+ const ps = toCubic(pos.curve.ps);
11
11
  //console.log('x: ', getX(ps));
12
12
  //console.log('y: ', getY(ps));
13
13
  //console.log('t: ', pos.t);
14
14
 
15
- let $elems = drawFs.crossHair(
15
+ const $elems = drawFs.crossHair(
16
16
  g, p, 'red thin10 nofill'
17
17
  );
18
18
 
@@ -5,11 +5,11 @@ import { getOsculatingCircle, IPointOnShape } from '../../../point-on-shape.js';
5
5
  /** @hidden */
6
6
  function oneProngAtDullCorner(g: SVGGElement, pos: IPointOnShape) {
7
7
  //let oCircle = PointOnShape.getOsculatingCircle(Number.POSITIVE_INFINITY, pos);
8
- let oCircle = getOsculatingCircle(Number.POSITIVE_INFINITY, pos);
8
+ const oCircle = getOsculatingCircle(Number.POSITIVE_INFINITY, pos);
9
9
 
10
- let $center = drawFs.dot(g, pos.p, 0.1, 'orange');
11
- let $circle = drawFs.dot(g, oCircle.center, 0.25, 'orange');
12
- let $pos = drawFs.circle(g, oCircle, 'orange thin10 nofill');
10
+ const $center = drawFs.dot(g, pos.p, 0.1, 'orange');
11
+ const $circle = drawFs.dot(g, oCircle.center, 0.25, 'orange');
12
+ const $pos = drawFs.circle(g, oCircle, 'orange thin10 nofill');
13
13
 
14
14
  return [...$center, ...$circle, ...$pos];
15
15
  }
@@ -9,15 +9,15 @@ const scaleFactor = 0.5;
9
9
 
10
10
  /** @hidden */
11
11
  function drawOneProng(g: SVGGElement, pos: IPointOnShape, classes: string, delay = 0) {
12
- let circle = scaleCircle(
12
+ const circle = scaleCircle(
13
13
  //PointOnShape.getOsculatingCircle(Number.POSITIVE_INFINITY, pos),
14
14
  getOsculatingCircle(Number.POSITIVE_INFINITY, pos),
15
15
  1
16
16
  );
17
17
 
18
- let $center = drawFs.dot(g, pos.p, 0.1*scaleFactor, 'gray', delay);
19
- let $circle = drawFs.dot(g, circle.center, 0.25*scaleFactor, 'gray', delay);
20
- let $pos = drawFs.circle(g, circle, 'gray thin10 nofill', delay);
18
+ const $center = drawFs.dot(g, pos.p, 0.1*scaleFactor, 'gray', delay);
19
+ const $circle = drawFs.dot(g, circle.center, 0.25*scaleFactor, 'gray', delay);
20
+ const $pos = drawFs.circle(g, circle, 'gray thin10 nofill', delay);
21
21
 
22
22
  return [...$center, ...$circle, ...$pos];
23
23
  }
@@ -6,8 +6,8 @@ import { Curve } from '../../../curve.js';
6
6
  function sharpCorner(g: SVGGElement, curve: Curve) {
7
7
  const scaleFactor = 1;
8
8
 
9
- let p = curve.ps[curve.ps.length-1];
10
- let $pos = drawFs.dot(g, p, 0.6*scaleFactor, 'green');
9
+ const p = curve.ps[curve.ps.length-1];
10
+ const $pos = drawFs.dot(g, p, 0.6*scaleFactor, 'green');
11
11
 
12
12
  return $pos;
13
13
  }
@@ -9,17 +9,17 @@ const scaleFactor = 0.3;
9
9
 
10
10
  /** @hidden */
11
11
  function threeProng(g: SVGGElement, threeProng: ThreeProngForDebugging) {
12
- let circle = scaleCircle(
12
+ const circle = scaleCircle(
13
13
  threeProng.circle,
14
14
  1
15
15
  );
16
- let poss = threeProng.poss;
16
+ const poss = threeProng.poss;
17
17
 
18
- let $cp1 = drawFs.dot(g, poss[0].p, 0.1*1*scaleFactor, 'blue');
19
- let $cp2 = drawFs.dot(g, poss[1].p, 0.1*2*scaleFactor, 'blue');
20
- let $cp3 = drawFs.dot(g, poss[2].p, 0.1*3*scaleFactor, 'blue');
21
- let $center = drawFs.dot(g, circle.center, 0.3*scaleFactor, 'blue');
22
- let $circle = drawFs.circle(g, circle, 'blue thin2 nofill');
18
+ const $cp1 = drawFs.dot(g, poss[0].p, 0.1*1*scaleFactor, 'blue');
19
+ const $cp2 = drawFs.dot(g, poss[1].p, 0.1*2*scaleFactor, 'blue');
20
+ const $cp3 = drawFs.dot(g, poss[2].p, 0.1*3*scaleFactor, 'blue');
21
+ const $center = drawFs.dot(g, circle.center, 0.3*scaleFactor, 'blue');
22
+ const $circle = drawFs.circle(g, circle, 'blue thin2 nofill');
23
23
 
24
24
  return [...$center, ...$cp1, ...$cp2, ...$cp3, ...$circle];
25
25
  }