flo-mat 2.0.1 → 2.0.2

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 (289) hide show
  1. package/.eslintrc.cjs +69 -0
  2. package/README.md +9 -27
  3. package/browser/index.js +29720 -7125
  4. package/browser/index.min.js +1 -2
  5. package/node/circle.js +3 -3
  6. package/node/circle.js.map +1 -1
  7. package/node/compare-curvatures-at-interface.js +36 -36
  8. package/node/compare-curvatures-at-interface.js.map +1 -1
  9. package/node/cp-node/clone.js +6 -6
  10. package/node/cp-node/clone.js.map +1 -1
  11. package/node/cp-node/remove.js +4 -4
  12. package/node/cp-node/remove.js.map +1 -1
  13. package/node/cp-node.js +18 -18
  14. package/node/cp-node.js.map +1 -1
  15. package/node/curve.d.ts +1 -1
  16. package/node/curve.js +19 -19
  17. package/node/curve.js.map +1 -1
  18. package/node/debug/debug.d.ts +1 -1
  19. package/node/debug/functions/draw-elem/bounding-hull.js +1 -1
  20. package/node/debug/functions/draw-elem/bounding-hull.js.map +1 -1
  21. package/node/debug/functions/draw-elem/branch.js +4 -4
  22. package/node/debug/functions/draw-elem/branch.js.map +1 -1
  23. package/node/debug/functions/draw-elem/culls.js +4 -4
  24. package/node/debug/functions/draw-elem/culls.js.map +1 -1
  25. package/node/debug/functions/draw-elem/draw-circle-percent.js +1 -1
  26. package/node/debug/functions/draw-elem/draw-circle-percent.js.map +1 -1
  27. package/node/debug/functions/draw-elem/draw-elem.d.ts +2 -2
  28. package/node/debug/functions/draw-elem/draw-elem.js +1 -1
  29. package/node/debug/functions/draw-elem/draw-elem.js.map +1 -1
  30. package/node/debug/functions/draw-elem/dull-corner.js +3 -3
  31. package/node/debug/functions/draw-elem/dull-corner.js.map +1 -1
  32. package/node/debug/functions/draw-elem/leaves.js +4 -4
  33. package/node/debug/functions/draw-elem/leaves.js.map +1 -1
  34. package/node/debug/functions/draw-elem/loose-bounding-box.js +2 -2
  35. package/node/debug/functions/draw-elem/loose-bounding-box.js.map +1 -1
  36. package/node/debug/functions/draw-elem/mat.js +4 -4
  37. package/node/debug/functions/draw-elem/mat.js.map +1 -1
  38. package/node/debug/functions/draw-elem/max-vertex.js +2 -2
  39. package/node/debug/functions/draw-elem/max-vertex.js.map +1 -1
  40. package/node/debug/functions/draw-elem/min-y.js +3 -3
  41. package/node/debug/functions/draw-elem/min-y.js.map +1 -1
  42. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js +4 -4
  43. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js.map +1 -1
  44. package/node/debug/functions/draw-elem/one-prong.js +4 -4
  45. package/node/debug/functions/draw-elem/one-prong.js.map +1 -1
  46. package/node/debug/functions/draw-elem/sharp-corner.js +2 -2
  47. package/node/debug/functions/draw-elem/sharp-corner.js.map +1 -1
  48. package/node/debug/functions/draw-elem/three-prong.js +7 -7
  49. package/node/debug/functions/draw-elem/three-prong.js.map +1 -1
  50. package/node/debug/functions/draw-elem/tight-bounding-box.js +1 -1
  51. package/node/debug/functions/draw-elem/tight-bounding-box.js.map +1 -1
  52. package/node/debug/functions/draw-elem/two-prong.js +1 -1
  53. package/node/debug/functions/draw-elem/two-prong.js.map +1 -1
  54. package/node/debug/functions/draw-elem/vertex.js +13 -13
  55. package/node/debug/functions/draw-elem/vertex.js.map +1 -1
  56. package/node/debug/functions/general.d.ts +1 -1
  57. package/node/debug/functions/general.js +1 -1
  58. package/node/debug/functions/general.js.map +1 -1
  59. package/node/debug/functions/three-prong.d.ts +1 -1
  60. package/node/debug/functions/three-prong.js +37 -37
  61. package/node/debug/functions/three-prong.js.map +1 -1
  62. package/node/debug/functions/two-prong.d.ts +1 -1
  63. package/node/debug/functions/two-prong.js +15 -15
  64. package/node/debug/functions/two-prong.js.map +1 -1
  65. package/node/find-mats.js +16 -19
  66. package/node/find-mats.js.map +1 -1
  67. package/node/get-boundary-bezier-parts-to-next.js +8 -8
  68. package/node/get-boundary-bezier-parts-to-next.js.map +1 -1
  69. package/node/get-boundary-beziers-to-next.js +8 -8
  70. package/node/get-boundary-beziers-to-next.js.map +1 -1
  71. package/node/get-branches.js +7 -7
  72. package/node/get-branches.js.map +1 -1
  73. package/node/get-curve/get-curve-between.js +21 -21
  74. package/node/get-curve/get-curve-between.js.map +1 -1
  75. package/node/get-curve/get-edge-direction.js +13 -13
  76. package/node/get-curve/get-edge-direction.js.map +1 -1
  77. package/node/get-interface-ccw.js +12 -12
  78. package/node/get-interface-ccw.js.map +1 -1
  79. package/node/loop/get-max-coordinate.js +9 -9
  80. package/node/loop/get-max-coordinate.js.map +1 -1
  81. package/node/loop.js +4 -4
  82. package/node/loop.js.map +1 -1
  83. package/node/mat/add-to-cp-graph.js +8 -8
  84. package/node/mat/add-to-cp-graph.js.map +1 -1
  85. package/node/mat/closest-boundary-point/closest-points-on-curve.js +5 -6
  86. package/node/mat/closest-boundary-point/closest-points-on-curve.js.map +1 -1
  87. package/node/mat/closest-boundary-point/cull-bezier-pieces.js +1 -1
  88. package/node/mat/closest-boundary-point/cull-bezier-pieces.js.map +1 -1
  89. package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.js +5 -5
  90. package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.js.map +1 -1
  91. package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.js +5 -5
  92. package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.js.map +1 -1
  93. package/node/mat/closest-boundary-point/get-best-distance-squared.js +5 -5
  94. package/node/mat/closest-boundary-point/get-best-distance-squared.js.map +1 -1
  95. package/node/mat/closest-boundary-point/get-close-boundary-points.js +15 -15
  96. package/node/mat/closest-boundary-point/get-close-boundary-points.js.map +1 -1
  97. package/node/mat/closest-boundary-point/get-closest-boundary-point.js +4 -4
  98. package/node/mat/closest-boundary-point/get-closest-boundary-point.js.map +1 -1
  99. package/node/mat/create-new-cp-tree.js +3 -3
  100. package/node/mat/create-new-cp-tree.js.map +1 -1
  101. package/node/mat/elem-type-two-prong.d.ts +1 -1
  102. package/node/mat/find-mat/add-1-prong.js +3 -3
  103. package/node/mat/find-mat/add-1-prong.js.map +1 -1
  104. package/node/mat/find-mat/add-2-prong.js +40 -40
  105. package/node/mat/find-mat/add-2-prong.js.map +1 -1
  106. package/node/mat/find-mat/add-3-prong.js +1 -1
  107. package/node/mat/find-mat/add-3-prong.js.map +1 -1
  108. package/node/mat/find-mat/add-debug-info.js +16 -18
  109. package/node/mat/find-mat/add-debug-info.js.map +1 -1
  110. package/node/mat/find-mat/create-get-interesting-points-on-loop.js +4 -4
  111. package/node/mat/find-mat/create-get-interesting-points-on-loop.js.map +1 -1
  112. package/node/mat/find-mat/create-initial-cp-graph.js +11 -11
  113. package/node/mat/find-mat/create-initial-cp-graph.js.map +1 -1
  114. package/node/mat/find-mat/find-2-prong/add-debug-info.js +2 -2
  115. package/node/mat/find-mat/find-2-prong/add-debug-info.js.map +1 -1
  116. package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.js +5 -5
  117. package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.js.map +1 -1
  118. package/node/mat/find-mat/find-2-prong/find-2-prong.js +25 -25
  119. package/node/mat/find-mat/find-2-prong/find-2-prong.js.map +1 -1
  120. package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.js +7 -7
  121. package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.js.map +1 -1
  122. package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.js +4 -4
  123. package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
  124. package/node/mat/find-mat/find-2-prong/x-for-debugging.d.ts +1 -1
  125. package/node/mat/find-mat/find-3-prong/calc-better-x.js +4 -4
  126. package/node/mat/find-mat/find-3-prong/calc-better-x.js.map +1 -1
  127. package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.js +3 -3
  128. package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.js.map +1 -1
  129. package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.js +35 -35
  130. package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.js.map +1 -1
  131. package/node/mat/find-mat/find-3-prong/find-3-prong.js +14 -14
  132. package/node/mat/find-mat/find-3-prong/find-3-prong.js.map +1 -1
  133. package/node/mat/find-mat/find-3-prong/get-closest-points.js +1 -1
  134. package/node/mat/find-mat/find-3-prong/get-closest-points.js.map +1 -1
  135. package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.js +2 -2
  136. package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.js.map +1 -1
  137. package/node/mat/find-mat/find-and-add-2-prongs.js +12 -13
  138. package/node/mat/find-mat/find-and-add-2-prongs.js.map +1 -1
  139. package/node/mat/find-mat/find-and-add-3-prongs.js +16 -17
  140. package/node/mat/find-mat/find-and-add-3-prongs.js.map +1 -1
  141. package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.js +6 -6
  142. package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.js.map +1 -1
  143. package/node/mat/find-mat/get-potential-2-prongs.js +4 -4
  144. package/node/mat/find-mat/get-potential-2-prongs.js.map +1 -1
  145. package/node/mat/find-mat/get-sharp-corners.js +4 -4
  146. package/node/mat/find-mat/get-sharp-corners.js.map +1 -1
  147. package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.js +3 -3
  148. package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.js.map +1 -1
  149. package/node/mat/get-boundary-piece-beziers.js +5 -5
  150. package/node/mat/get-boundary-piece-beziers.js.map +1 -1
  151. package/node/mat/get-contact-circles-at-interface.js +1 -1
  152. package/node/mat/get-contact-circles-at-interface.js.map +1 -1
  153. package/node/mat/get-leaves.js +2 -2
  154. package/node/mat/get-leaves.js.map +1 -1
  155. package/node/mat/get-neighboring-cps.js +1 -1
  156. package/node/mat/get-neighboring-cps.js.map +1 -1
  157. package/node/mat/is-another-cp-closeby.js +9 -9
  158. package/node/mat/is-another-cp-closeby.js.map +1 -1
  159. package/node/mat/simplify-mat-map-only.js +15 -15
  160. package/node/mat/simplify-mat-map-only.js.map +1 -1
  161. package/node/mat/to-scale-axis/add-debug-info.js +1 -1
  162. package/node/mat/to-scale-axis/add-debug-info.js.map +1 -1
  163. package/node/mat/to-scale-axis/cull-non-cycles.js +5 -5
  164. package/node/mat/to-scale-axis/cull-non-cycles.js.map +1 -1
  165. package/node/mat/to-scale-axis/cull.js +5 -5
  166. package/node/mat/to-scale-axis/cull.js.map +1 -1
  167. package/node/mat/trim-mat.js +1 -1
  168. package/node/mat/trim-mat.js.map +1 -1
  169. package/node/point-on-shape.d.ts +4 -4
  170. package/node/point-on-shape.js +16 -16
  171. package/node/point-on-shape.js.map +1 -1
  172. package/node/simplify-mat.js +10 -10
  173. package/node/simplify-mat.js.map +1 -1
  174. package/node/svg/get-loop-bounds.d.ts +1 -1
  175. package/node/svg/get-loop-bounds.js +13 -13
  176. package/node/svg/get-loop-bounds.js.map +1 -1
  177. package/node/svg/get-shape-bounds.d.ts +2 -2
  178. package/node/svg/get-shape-bounds.js +4 -4
  179. package/node/svg/get-shape-bounds.js.map +1 -1
  180. package/node/sweep-line/sweep-line.js +8 -8
  181. package/node/sweep-line/sweep-line.js.map +1 -1
  182. package/node/to-scale-axis.js +16 -15
  183. package/node/to-scale-axis.js.map +1 -1
  184. package/node/traverse-edges.js +2 -2
  185. package/node/traverse-edges.js.map +1 -1
  186. package/node/traverse-vertices.js +2 -2
  187. package/node/traverse-vertices.js.map +1 -1
  188. package/package.json +28 -23
  189. package/src/circle.ts +3 -3
  190. package/src/compare-curvatures-at-interface.ts +36 -36
  191. package/src/cp-node/clone.ts +6 -6
  192. package/src/cp-node/remove.ts +4 -4
  193. package/src/cp-node.ts +20 -20
  194. package/src/curve.ts +19 -19
  195. package/src/debug/functions/draw-elem/bounding-hull.ts +2 -2
  196. package/src/debug/functions/draw-elem/branch.ts +4 -4
  197. package/src/debug/functions/draw-elem/culls.ts +4 -4
  198. package/src/debug/functions/draw-elem/draw-circle-percent.ts +2 -2
  199. package/src/debug/functions/draw-elem/draw-elem.ts +1 -1
  200. package/src/debug/functions/draw-elem/dull-corner.ts +3 -3
  201. package/src/debug/functions/draw-elem/leaves.ts +4 -4
  202. package/src/debug/functions/draw-elem/loose-bounding-box.ts +2 -2
  203. package/src/debug/functions/draw-elem/mat.ts +4 -4
  204. package/src/debug/functions/draw-elem/max-vertex.ts +2 -2
  205. package/src/debug/functions/draw-elem/min-y.ts +3 -3
  206. package/src/debug/functions/draw-elem/one-prong-at-dull-corner.ts +4 -4
  207. package/src/debug/functions/draw-elem/one-prong.ts +4 -4
  208. package/src/debug/functions/draw-elem/sharp-corner.ts +2 -2
  209. package/src/debug/functions/draw-elem/three-prong.ts +7 -7
  210. package/src/debug/functions/draw-elem/tight-bounding-box.ts +1 -1
  211. package/src/debug/functions/draw-elem/two-prong.ts +1 -1
  212. package/src/debug/functions/draw-elem/vertex.ts +20 -14
  213. package/src/debug/functions/general.ts +3 -3
  214. package/src/debug/functions/three-prong.ts +37 -37
  215. package/src/debug/functions/two-prong.ts +15 -15
  216. package/src/find-mats.ts +19 -19
  217. package/src/get-boundary-bezier-parts-to-next.ts +8 -8
  218. package/src/get-boundary-beziers-to-next.ts +8 -8
  219. package/src/get-branches.ts +7 -7
  220. package/src/get-curve/get-curve-between.ts +21 -21
  221. package/src/get-curve/get-edge-direction.ts +13 -14
  222. package/src/get-interface-ccw.ts +12 -12
  223. package/src/loop/get-max-coordinate.ts +7 -7
  224. package/src/loop.ts +4 -4
  225. package/src/mat/add-to-cp-graph.ts +8 -8
  226. package/src/mat/closest-boundary-point/closest-points-on-curve.ts +5 -6
  227. package/src/mat/closest-boundary-point/cull-bezier-pieces.ts +1 -1
  228. package/src/mat/closest-boundary-point/cull-by-loose-bounding-box.ts +5 -5
  229. package/src/mat/closest-boundary-point/cull-by-tight-boundary-box.ts +5 -5
  230. package/src/mat/closest-boundary-point/get-best-distance-squared.ts +5 -5
  231. package/src/mat/closest-boundary-point/get-close-boundary-points.ts +15 -15
  232. package/src/mat/closest-boundary-point/get-closest-boundary-point.ts +4 -4
  233. package/src/mat/cmp-cp-on-delta.ts +5 -5
  234. package/src/mat/create-new-cp-tree.ts +3 -3
  235. package/src/mat/find-mat/add-1-prong.ts +5 -5
  236. package/src/mat/find-mat/add-2-prong.ts +42 -42
  237. package/src/mat/find-mat/add-3-prong.ts +1 -1
  238. package/src/mat/find-mat/add-debug-info.ts +18 -20
  239. package/src/mat/find-mat/create-get-interesting-points-on-loop.ts +4 -4
  240. package/src/mat/find-mat/create-initial-cp-graph.ts +11 -11
  241. package/src/mat/find-mat/find-2-prong/add-debug-info.ts +4 -4
  242. package/src/mat/find-mat/find-2-prong/cull-bezier-pieces.ts +5 -5
  243. package/src/mat/find-mat/find-2-prong/find-2-prong.ts +27 -27
  244. package/src/mat/find-mat/find-2-prong/find-equidistant-point-on-line.ts +7 -7
  245. package/src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts +4 -4
  246. package/src/mat/find-mat/find-3-prong/calc-better-x.ts +4 -4
  247. package/src/mat/find-mat/find-3-prong/calc-initial-3-prong-center.ts +3 -3
  248. package/src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts +37 -37
  249. package/src/mat/find-mat/find-3-prong/find-3-prong.ts +16 -16
  250. package/src/mat/find-mat/find-3-prong/get-closest-points.ts +1 -1
  251. package/src/mat/find-mat/find-and-add-2-prongs-on-all-paths.ts +2 -2
  252. package/src/mat/find-mat/find-and-add-2-prongs.ts +14 -16
  253. package/src/mat/find-mat/find-and-add-3-prongs.ts +19 -19
  254. package/src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts +6 -6
  255. package/src/mat/find-mat/get-potential-2-prongs.ts +4 -4
  256. package/src/mat/find-mat/get-sharp-corners.ts +4 -4
  257. package/src/mat/find-mat/get-total-abs-curvature.ts +1 -1
  258. package/src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts +3 -3
  259. package/src/mat/get-boundary-piece-beziers.ts +5 -5
  260. package/src/mat/get-contact-circles-at-interface.ts +1 -1
  261. package/src/mat/get-edges-as-array.ts +2 -2
  262. package/src/mat/get-leaves.ts +2 -2
  263. package/src/mat/get-neighboring-cps.ts +1 -1
  264. package/src/mat/is-another-cp-closeby.ts +9 -9
  265. package/src/mat/simplify-mat-map-only.ts +15 -15
  266. package/src/mat/to-scale-axis/add-debug-info.ts +6 -3
  267. package/src/mat/to-scale-axis/add-to-tree.ts +10 -10
  268. package/src/mat/to-scale-axis/calc-groups.ts +19 -19
  269. package/src/mat/to-scale-axis/create-spacial-tree.ts +4 -4
  270. package/src/mat/to-scale-axis/cull-non-cycles.ts +5 -5
  271. package/src/mat/to-scale-axis/cull.ts +5 -5
  272. package/src/mat/to-scale-axis/get-engulfed-vertices.ts +18 -18
  273. package/src/mat/trim-mat.ts +1 -1
  274. package/src/point-on-shape.ts +16 -16
  275. package/src/simplify-mat.ts +10 -10
  276. package/src/svg/get-curvature-at-interface.ts +6 -8
  277. package/src/svg/get-extreme.ts +1 -1
  278. package/src/svg/get-loop-bounds.ts +13 -13
  279. package/src/svg/get-shape-bounds.ts +4 -4
  280. package/src/sweep-line/are-boxes-intersecting.ts +4 -4
  281. package/src/sweep-line/sweep-line.ts +8 -8
  282. package/src/to-scale-axis.ts +18 -17
  283. package/src/traverse-edges.ts +2 -2
  284. package/src/traverse-vertices.ts +2 -2
  285. package/webpack.config.cjs +12 -63
  286. package/browser/index.min.js.LICENSE.txt +0 -2819
  287. package/browser/index.module.js +0 -7149
  288. package/browser/index.module.min.js +0 -2
  289. package/browser/index.module.min.js.LICENSE.txt +0 -2819
@@ -1,5 +1,5 @@
1
- /** @hidden */
2
- declare var _debug_: Debug;
1
+ /** @internal */
2
+ declare const _debug_: Debug;
3
3
 
4
4
  import {
5
5
  fromTo, circumCenter, len, distanceBetween, toUnitVector, rotate90Degrees,
@@ -40,33 +40,33 @@ function find3ProngForDelta3s(
40
40
  const TOLERANCE = extreme * 1e-10;
41
41
  const MAX_ITERATIONS = 10;
42
42
 
43
- let δs_ = [
43
+ const δs_ = [
44
44
  δs[0],
45
45
  δs[idx],
46
46
  δs[δs.length-1]
47
47
  ];
48
48
 
49
- let bezierPieces_ = [
49
+ const bezierPieces_ = [
50
50
  bezierPiecess[0],
51
51
  bezierPiecess[idx],
52
52
  bezierPiecess[δs.length-1]
53
53
  ];
54
54
 
55
- let δ3ss = [
55
+ const δ3ss = [
56
56
  [δs_[0], δs_[1], δs_[2]],
57
57
  [δs_[1], δs_[2], δs_[0]],
58
58
  [δs_[2], δs_[0], δs_[1]],
59
59
  ];
60
60
 
61
- let bezierPiecess_ = [
61
+ const bezierPiecess_ = [
62
62
  [bezierPieces_[0], bezierPieces_[1], bezierPieces_[2]],
63
63
  [bezierPieces_[1], bezierPieces_[2], bezierPieces_[0]],
64
64
  [bezierPieces_[2], bezierPieces_[0], bezierPieces_[1]],
65
65
  ]
66
66
 
67
67
 
68
- let δ3s = δ3ss[k];
69
- let bezierPiece3s = bezierPiecess_[k];
68
+ const δ3s = δ3ss[k];
69
+ const bezierPiece3s = bezierPiecess_[k];
70
70
 
71
71
  if (δ3s[0][0].isSharp()) { return undefined; }
72
72
 
@@ -77,9 +77,9 @@ function find3ProngForDelta3s(
77
77
  let x = calcInitial3ProngCenter(δ3s, bezierPiece3s);
78
78
 
79
79
  if (typeof _debug_ !== 'undefined') {
80
- let threeProngs = _debug_.generated.elems.threeProng;
81
- let d = threeProngs[threeProngs.length-1];
82
- let trace = d.traces[d.traces.length-1];
80
+ const threeProngs = _debug_.generated.elems.threeProng;
81
+ const d = threeProngs[threeProngs.length-1];
82
+ const trace = d.traces[d.traces.length-1];
83
83
  trace.push(x);
84
84
  }
85
85
 
@@ -99,7 +99,7 @@ function find3ProngForDelta3s(
99
99
 
100
100
  circumCenter_ = circumCenter(ps.map(x => x.p));
101
101
 
102
- let vectorToZeroV = calcVectorToZeroV_StraightToIt(x, circumCenter_);
102
+ const vectorToZeroV = calcVectorToZeroV_StraightToIt(x, circumCenter_);
103
103
 
104
104
  if (!Number.isFinite(vectorToZeroV[0]) || !Number.isFinite(vectorToZeroV[1])) {
105
105
 
@@ -109,27 +109,27 @@ function find3ProngForDelta3s(
109
109
  // loop. This check, for instance, would be eliminated completely.
110
110
  return undefined;
111
111
  }
112
- let upds = calcBetterX(bezierPiece3s, x, vectorToZeroV);
112
+ const upds = calcBetterX(bezierPiece3s, x, vectorToZeroV);
113
113
  x = upds.newX;
114
114
  ps = upds.newPs;
115
115
 
116
116
  if (typeof _debug_ !== 'undefined') {
117
- let threeProngs = _debug_.generated.elems.threeProng;
118
- let d = threeProngs[threeProngs.length-1];
119
- let trace = d.traces[d.traces.length-1];
117
+ const threeProngs = _debug_.generated.elems.threeProng;
118
+ const d = threeProngs[threeProngs.length-1];
119
+ const trace = d.traces[d.traces.length-1];
120
120
  trace.push(x);
121
121
  }
122
122
 
123
- let V = len(vectorToZeroV); // The 'potential'
123
+ const V = len(vectorToZeroV); // The 'potential'
124
124
 
125
125
  tolerance = Math.abs(V - upds.newV);
126
126
  }
127
127
 
128
- let radius = (distanceBetween(x, ps[0].p) +
128
+ const radius = (distanceBetween(x, ps[0].p) +
129
129
  distanceBetween(x, ps[1].p) +
130
130
  distanceBetween(x, ps[2].p)) / 3;
131
131
 
132
- let circle = { center: x, radius };
132
+ const circle = { center: x, radius };
133
133
 
134
134
  //-------------------------------------------------------------------------
135
135
  // Calculate the unit tangent vector at 3-prong circle points - they should
@@ -138,12 +138,12 @@ function find3ProngForDelta3s(
138
138
  //-------------------------------------------------------------------------
139
139
  let totalAngleError = 0;
140
140
  for (let i=0; i<3; i++) {
141
- let p = ps[i];
141
+ const p = ps[i];
142
142
  //----------------------------
143
143
  // Tangent of circle at point
144
144
  //----------------------------
145
- let v = toUnitVector(fromTo(p.p, x));
146
- let v1 = rotate90Degrees(v);
145
+ const v = toUnitVector(fromTo(p.p, x));
146
+ const v1 = rotate90Degrees(v);
147
147
 
148
148
 
149
149
  //-----------------------------------
@@ -151,13 +151,13 @@ function find3ProngForDelta3s(
151
151
  //-----------------------------------
152
152
  //if (PointOnShape.isDullCorner(p)) {
153
153
  if (isPosDullCorner(p)) {
154
- //let corner = Curve.getCornerAtEnd(p.curve);
155
- let corner = getCornerAtEnd(p.curve);
156
- let tans = corner.tangents;
157
- let perps = tans.map( rotate90Degrees );
154
+ //const corner = Curve.getCornerAtEnd(p.curve);
155
+ const corner = getCornerAtEnd(p.curve);
156
+ const tans = corner.tangents;
157
+ const perps = tans.map( rotate90Degrees );
158
158
 
159
- let angleError1 = Math.asin( cross( perps[0], v ) );
160
- let angleError2 = Math.asin( cross( v, perps[1] ) );
159
+ const angleError1 = Math.asin( cross( perps[0], v ) );
160
+ const angleError2 = Math.asin( cross( v, perps[1] ) );
161
161
 
162
162
  let angleError = 0;
163
163
  if (angleError1 > 0) { angleError += angleError1; }
@@ -168,7 +168,7 @@ function find3ProngForDelta3s(
168
168
  //---------------------------
169
169
  // Tangent of curve at point
170
170
  //---------------------------
171
- let v2 = toUnitVector( tangent(p.curve.ps, p.t) );
171
+ const v2 = toUnitVector( tangent(p.curve.ps, p.t) );
172
172
 
173
173
  // Cross is more numerically stable than Vector.dot at angles a
174
174
  // multiple of Math.PI **and** is close to the actual angle value
@@ -176,7 +176,7 @@ function find3ProngForDelta3s(
176
176
  // tolerance.
177
177
 
178
178
  // Should be close to zero and is close to the actual angle.
179
- let cross_ = Math.abs( Math.asin( cross(v1, v2) ) );
179
+ const cross_ = Math.abs( Math.asin( cross(v1, v2) ) );
180
180
 
181
181
  totalAngleError += cross_;
182
182
  }
@@ -187,21 +187,21 @@ function find3ProngForDelta3s(
187
187
  // point to the 3-prong. It should be around 0. If not, this is not a good
188
188
  // candidate for the 3-prong.
189
189
  //-------------------------------------------------------------------------
190
- let closestDs = [];
190
+ const closestDs = [];
191
191
  for (let i=0; i<bezierPiecess.length; i++) {
192
- let p = getClosestBoundaryPoint(
192
+ const p = getClosestBoundaryPoint(
193
193
  bezierPiecess[i], x, undefined, undefined
194
194
  );
195
195
 
196
196
  closestDs.push( distanceBetween(p.pos.p, x) );
197
197
  }
198
- let closestD = Math.min(...closestDs);
199
- let radiusDelta = Math.abs(radius - closestD);
198
+ const closestD = Math.min(...closestDs);
199
+ const radiusDelta = Math.abs(radius - closestD);
200
200
 
201
201
  // Weights below still need to be optimized.
202
- let W1 = 1;
203
- let W2 = 1;
204
- let error = W1*radiusDelta + W2*totalAngleError;
202
+ const W1 = 1;
203
+ const W2 = 1;
204
+ const error = W1*radiusDelta + W2*totalAngleError;
205
205
 
206
206
  return { ps, circle, error, δ3s };
207
207
  }
@@ -1,5 +1,5 @@
1
- /** @hidden */
2
- declare var _debug_: Debug;
1
+ /** @internal */
2
+ declare const _debug_: Debug;
3
3
 
4
4
  import { fromTo } from 'flo-bezier3';
5
5
  import { Debug } from '../../../debug/debug.js';
@@ -19,18 +19,18 @@ import { getBoundaryPieceBeziers } from '../../get-boundary-piece-beziers.js';
19
19
  * tolerances.
20
20
  */
21
21
  function find3Prong(δs: CpNode[][], extreme: number) {
22
- let bezierPiecess = δs.map(getBoundaryPieceBeziers);
22
+ const bezierPiecess = δs.map(getBoundaryPieceBeziers);
23
23
 
24
24
  if (typeof _debug_ !== 'undefined') {
25
- let threeProngs = _debug_.generated.elems.threeProng;
25
+ const threeProngs = _debug_.generated.elems.threeProng;
26
26
  threeProngs.push(createEmptyThreeProngForDebugging());
27
27
 
28
- let d = threeProngs[threeProngs.length-1];
28
+ const d = threeProngs[threeProngs.length-1];
29
29
  d.boundaries = [];
30
- for (let bezierPieces of bezierPiecess) {
31
- let boundary: number[][][] = [];
30
+ for (const bezierPieces of bezierPiecess) {
31
+ const boundary: number[][][] = [];
32
32
  d.boundaries.push(boundary);
33
- for (let bezierPiece of bezierPieces) {
33
+ for (const bezierPiece of bezierPieces) {
34
34
  /* qqq
35
35
  let bezier = fromTo(bezierPiece.curve.ps)(
36
36
  bezierPiece.ts[0], bezierPiece.ts[1]
@@ -46,7 +46,7 @@ function find3Prong(δs: CpNode[][], extreme: number) {
46
46
  d.traces = [];
47
47
  }
48
48
 
49
- let candidateThreeProngs = [];
49
+ const candidateThreeProngs = [];
50
50
 
51
51
  // The best candidate amongst the different 'permutations' of the given δs.
52
52
  let threeProng: {
@@ -59,17 +59,17 @@ function find3Prong(δs: CpNode[][], extreme: number) {
59
59
  for (let i=1; i<δs.length-1; i++) {
60
60
  for (let k=0; k<3; k++) {
61
61
  if (typeof _debug_ !== 'undefined') {
62
- let threeProngs = _debug_.generated.elems.threeProng;
63
- let d = threeProngs[threeProngs.length-1];
64
- let trace: number[][] = [];
62
+ const threeProngs = _debug_.generated.elems.threeProng;
63
+ const d = threeProngs[threeProngs.length-1];
64
+ const trace: number[][] = [];
65
65
  d.traces.push(trace);
66
66
  }
67
67
 
68
- let threeProngInfo =
68
+ const threeProngInfo =
69
69
  find3ProngForDelta3s(δs, i, k, bezierPiecess, extreme);
70
70
  if (!threeProngInfo) { continue; }
71
71
 
72
- let { circle, ps, error, δ3s } = threeProngInfo;
72
+ const { circle, ps, error, δ3s } = threeProngInfo;
73
73
 
74
74
  if (typeof _debug_ !== 'undefined') {
75
75
  candidateThreeProngs.push({ circle, ps });
@@ -87,8 +87,8 @@ function find3Prong(δs: CpNode[][], extreme: number) {
87
87
  //threeProng.δ3s = [δs[0], δs[bestIndx+1], δs[δs.length-1]];
88
88
 
89
89
  if (typeof _debug_ !== 'undefined') {
90
- let threeProngs = _debug_.generated.elems.threeProng;
91
- let d = threeProngs[threeProngs.length-1];
90
+ const threeProngs = _debug_.generated.elems.threeProng;
91
+ const d = threeProngs[threeProngs.length-1];
92
92
 
93
93
  d.generated = _debug_.generated;
94
94
  d.circle = threeProng.circle;
@@ -13,7 +13,7 @@ function getClosestPoints(
13
13
  bezierPiece3s: BezierPiece[][]) {
14
14
 
15
15
  return bezierPiece3s.map(bezierPieces => {
16
- let posInfo = getClosestBoundaryPoint(
16
+ const posInfo = getClosestBoundaryPoint(
17
17
  bezierPieces,
18
18
  x,
19
19
  undefined, // curve
@@ -23,8 +23,8 @@ function findAndAdd2ProngsOnAllPaths(
23
23
  let cpNode;
24
24
 
25
25
  for (let k=0; k<for2Prongss.length; k++) {
26
- let for2Prongs = for2Prongss[k];
27
- let _cpNode = findAndAdd2Prongs(loops, cpGraphs, k, for2Prongs, extreme);
26
+ const for2Prongs = for2Prongss[k];
27
+ const _cpNode = findAndAdd2Prongs(loops, cpGraphs, k, for2Prongs, extreme);
28
28
  cpNode = cpNode || _cpNode;
29
29
  }
30
30
 
@@ -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';
@@ -29,28 +29,26 @@ function findAndAdd2Prongs(
29
29
  for2Prongs: IPointOnShape[],
30
30
  extreme: number) {
31
31
 
32
- let len = for2Prongs.length;
33
- let index = indexLinear(len);
34
- //let index = indexInterlaced(len); // Keep for possible future use.
32
+ const len = for2Prongs.length;
33
+ const index = indexLinear(len);
34
+ //const index = indexInterlaced(len); // Keep for possible future use.
35
35
  let cpNode_;
36
36
 
37
- let bounds = getShapeBounds(loops);
38
- let squaredDiagonalLength =
37
+ const bounds = getShapeBounds(loops);
38
+ const squaredDiagonalLength =
39
39
  (bounds.maxX.p[0] - bounds.minX.p[0])**2 +
40
40
  (bounds.maxY.p[1] - bounds.minY.p[1])**2;
41
41
 
42
42
  for (let i=0; i<len; i++) {
43
- let pos = for2Prongs[index[i]];
43
+ const pos = for2Prongs[index[i]];
44
44
 
45
- let twoProngInfo: { circle: Circle, zs: { pos: IPointOnShape, d: number }[] };
46
-
47
- twoProngInfo = find2Prong(
45
+ const twoProngInfo: { circle: Circle, zs: { pos: IPointOnShape, d: number }[] } = find2Prong(
48
46
  loops, extreme, squaredDiagonalLength, cpGraphs, pos, false, k
49
47
  );
50
48
 
51
49
  if (twoProngInfo) {
52
- let { circle, zs } = twoProngInfo;
53
- let cpNode = add2Prong(cpGraphs, circle, pos, zs, false, extreme);
50
+ const { circle, zs } = twoProngInfo;
51
+ const cpNode = add2Prong(cpGraphs, circle, pos, zs, false, extreme);
54
52
  cpNode_ = cpNode_ || cpNode;
55
53
  }
56
54
 
@@ -71,7 +69,7 @@ function findAndAdd2Prongs(
71
69
  * @param n
72
70
  */
73
71
  function indexLinear(n: number) {
74
- let arr = [];
72
+ const arr = [];
75
73
  for (let i=0; i<n; i++) {
76
74
  arr.push(i);
77
75
  }
@@ -86,8 +84,8 @@ function indexLinear(n: number) {
86
84
  * @param n
87
85
  */
88
86
  function indexInterlaced(n: number) {
89
- let source: { [index:number]: boolean } = {};
90
- let arr = [];
87
+ const source: { [index:number]: boolean } = {};
88
+ const arr = [];
91
89
  // l is the lowest power of 2 so that 2^l > n
92
90
  let l = Math.pow(2, Math.floor(Math.log2(n)));
93
91
 
@@ -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';
@@ -27,22 +27,22 @@ function findAndAddAll3Prongs(
27
27
  // Don't change this function to be recursive, the call stack may overflow
28
28
  // if there are too many two-prongs.
29
29
 
30
- let visitedEdges = new Map<CpNode, Set<CpNode>>();
30
+ const visitedEdges = new Map<CpNode, Set<CpNode>>();
31
31
 
32
- let edgesToCheck = [{ fromCpNode: undefined as CpNode, cpStart }];
32
+ const edgesToCheck = [{ fromCpNode: undefined as CpNode, cpStart }];
33
33
 
34
34
  while (edgesToCheck.length) {
35
- let { fromCpNode, cpStart } = edgesToCheck.shift();
35
+ const { fromCpNode, cpStart } = edgesToCheck.shift();
36
36
 
37
37
  markEdgeAsTaken(visitedEdges, fromCpNode, cpStart);
38
38
 
39
- for (let cpNode of cpStart.getCpNodesOnCircle()) {
39
+ for (const cpNode of cpStart.getCpNodesOnCircle()) {
40
40
 
41
41
  //if (!PointOnShape.isSharpCorner(cpNode.cp.pointOnShape)) {
42
42
  if (!isPosSharpCorner(cpNode.cp.pointOnShape)) {
43
43
  if (findAndAdd3Prongs(cpGraphs, cpNode, extreme) === undefined) {
44
44
  return; // only for debugging purposes
45
- };
45
+ }
46
46
  }
47
47
 
48
48
  if (hasEdgeBeenTaken(visitedEdges, cpNode, cpNode.next)) {
@@ -89,10 +89,10 @@ function hasEdgeBeenTaken(
89
89
  let cps: Set<CpNode>;
90
90
 
91
91
  cps = visitedEdges.get(cp1);
92
- let takenForward = cps && cps.has(cp2);
92
+ const takenForward = cps && cps.has(cp2);
93
93
 
94
94
  cps = visitedEdges.get(cp2);
95
- let takenBackwards = cps && cps.has(cp1);
95
+ const takenBackwards = cps && cps.has(cp1);
96
96
 
97
97
  return takenForward || takenBackwards;
98
98
  }
@@ -112,11 +112,11 @@ function traverseShape(cpStart: CpNode) {
112
112
  return [cpNode];
113
113
  }
114
114
 
115
- let visitedCps = [];
115
+ const visitedCps = [];
116
116
  do {
117
117
  visitedCps.push(cpNode);
118
118
 
119
- let next = cpNode.next.prevOnCircle;
119
+ const next = cpNode.next.prevOnCircle;
120
120
  cpNode = cpNode === next
121
121
  ? cpNode = cpNode.next.next // Terminal vertex
122
122
  : cpNode = next // Take last exit
@@ -179,14 +179,14 @@ function findAndAdd3Prong(
179
179
  visitedCps : CpNode[],
180
180
  extreme : number) {
181
181
 
182
- let δs = [];
183
- for (let visitedCp of visitedCps) {
182
+ const δs = [];
183
+ for (const visitedCp of visitedCps) {
184
184
  δs.push([visitedCp, visitedCp.next]);
185
185
  }
186
186
 
187
- let threeProng = find3Prong(δs, extreme);
187
+ const threeProng = find3Prong(δs, extreme);
188
188
 
189
- let orders = [];
189
+ const orders = [];
190
190
  for (let i=0; i<3; i++) {
191
191
  orders.push(
192
192
  //PointOnShape.calcOrder(threeProng.circle, threeProng.ps[i])
@@ -194,7 +194,7 @@ function findAndAdd3Prong(
194
194
  );
195
195
  }
196
196
 
197
- let circle = add3Prong(cpGraphs, orders, threeProng);
197
+ const circle = add3Prong(cpGraphs, orders, threeProng);
198
198
 
199
199
  if (typeof _debug_ !== 'undefined') {
200
200
  add3ProngDebugInfo(circle, visitedCps);
@@ -207,9 +207,9 @@ function add3ProngDebugInfo(
207
207
  circle: Circle,
208
208
  visitedCps: CpNode[]) {
209
209
 
210
- let threeProngs = _debug_.generated.elems.threeProng;
211
- let len = threeProngs.length;
212
- let data = threeProngs[len-1];
210
+ const threeProngs = _debug_.generated.elems.threeProng;
211
+ const len = threeProngs.length;
212
+ const data = threeProngs[len-1];
213
213
  data.visitedCps = visitedCps;
214
214
  data.circle = circle;
215
215
  }
@@ -21,19 +21,19 @@ function findAndAddHoleClosing2Prongs(
21
21
  cpTrees: Map<Loop,LlRbTree<CpNode>>,
22
22
  extreme: number) {
23
23
 
24
- let bounds = getShapeBounds(loops);
25
- let squaredDiagonalLength =
24
+ const bounds = getShapeBounds(loops);
25
+ const squaredDiagonalLength =
26
26
  (bounds.maxX.p[0] - bounds.minX.p[0])**2 +
27
27
  (bounds.maxY.p[1] - bounds.minY.p[1])**2;
28
28
 
29
29
  // Find the topmost points on each loop.
30
- let minYs = loops.map(getMinYPos);
30
+ const minYs = loops.map(getMinYPos);
31
31
 
32
32
  // We start at 1 since 0 is the outer (root) loop
33
33
  for (let k=1; k<minYs.length; k++) {
34
- let posSource = minYs[k];
34
+ const posSource = minYs[k];
35
35
 
36
- let holeClosingTwoProng = find2Prong(
36
+ const holeClosingTwoProng = find2Prong(
37
37
  loops, extreme, squaredDiagonalLength, cpTrees, posSource, true, k
38
38
  );
39
39
 
@@ -43,7 +43,7 @@ function findAndAddHoleClosing2Prongs(
43
43
 
44
44
  // TODO important - handle case of n-prong, i.e. more than one antipode
45
45
  // - currently we only handle case of single antipode (the general case)
46
- let { circle, zs: posAntipodes } = holeClosingTwoProng;
46
+ const { circle, zs: posAntipodes } = holeClosingTwoProng;
47
47
 
48
48
  add2Prong(cpTrees, circle, posSource, [posAntipodes[0]], true, extreme);
49
49
  }
@@ -3,12 +3,12 @@ import { IPointOnShape, isPosQuiteSharpCorner } from '../../point-on-shape.js';
3
3
 
4
4
  /** @hidden */
5
5
  function getPotential2Prongs(possPerLoop: IPointOnShape[][]) {
6
- let for2ProngsArray = [];
6
+ const for2ProngsArray = [];
7
7
 
8
- for (let poss of possPerLoop) {
9
- let for2Prongs = [];
8
+ for (const poss of possPerLoop) {
9
+ const for2Prongs = [];
10
10
 
11
- for (let pos of poss) {
11
+ for (const pos of poss) {
12
12
  if (!isPosQuiteSharpCorner(pos)) {
13
13
  for2Prongs.push(pos);
14
14
  }
@@ -3,12 +3,12 @@ import { IPointOnShape, isPosQuiteSharpCorner } from '../../point-on-shape.js';
3
3
 
4
4
  /** @hidden */
5
5
  function getSharpCorners(possPerLoop: IPointOnShape[][]) {
6
- let sharpCornersPerLoop = [];
6
+ const sharpCornersPerLoop = [];
7
7
 
8
- for (let poss of possPerLoop) {
9
- let sharpCorners = [];
8
+ for (const poss of possPerLoop) {
9
+ const sharpCorners = [];
10
10
 
11
- for (let pos of poss) {
11
+ for (const pos of poss) {
12
12
  //if (PointOnShape.isQuiteSharpCorner(pos)) {
13
13
  if (isPosQuiteSharpCorner(pos)) {
14
14
  sharpCorners.push(pos);
@@ -6,7 +6,7 @@ import { getTotalBy } from './get-total-by.js';
6
6
  /**
7
7
  * @hidden
8
8
  */
9
- let getTotalAbsoluteCurvature = getTotalBy(
9
+ const getTotalAbsoluteCurvature = getTotalBy(
10
10
  curve => (
11
11
  totalAbsoluteCurvature(curve.ps, [0,1]) +
12
12
  Math.abs(getCurvatureAtInterface(curve))
@@ -7,14 +7,14 @@ import {
7
7
  * @hidden
8
8
  */
9
9
  function getClosestSquaredDistanceToRotatedRect(ps: number[][], p: number[]) {
10
- let ds = [0,1,2,3].map(i => squaredDistanceBetweenPointAndLineSegment(
10
+ const ds = [0,1,2,3].map(i => squaredDistanceBetweenPointAndLineSegment(
11
11
  p,
12
12
  [ps[i], ps[(i+1) % 4]]
13
13
  )
14
14
  );
15
15
 
16
- let width = squaredDistanceBetween(ps[0], ps[1]);
17
- let height = squaredDistanceBetween(ps[0], ps[3]);
16
+ const width = squaredDistanceBetween(ps[0], ps[1]);
17
+ const height = squaredDistanceBetween(ps[0], ps[3]);
18
18
 
19
19
  if (ds[0] <= height && ds[2] <= height &&
20
20
  ds[1] <= width && ds[3] <= width) {
@@ -14,9 +14,9 @@ import { compareCps } from '../contact-point.js';
14
14
  */
15
15
  function getBoundaryPieceBeziers(cpNodes: CpNode[]): BezierPiece[] {
16
16
  let cpThis = cpNodes[0];
17
- let cpEnd = cpNodes[1];
17
+ const cpEnd = cpNodes[1];
18
18
 
19
- let bezierPieces = [];
19
+ const bezierPieces = [];
20
20
 
21
21
  // As opposed to going around the circle and taking the last exit
22
22
  let goStraight = true;
@@ -29,8 +29,8 @@ function getBoundaryPieceBeziers(cpNodes: CpNode[]): BezierPiece[] {
29
29
 
30
30
  goStraight = false;
31
31
 
32
- let posThis = cpThis .cp.pointOnShape;
33
- let posNext = cpThis.next.cp.pointOnShape;
32
+ const posThis = cpThis .cp.pointOnShape;
33
+ const posNext = cpThis.next.cp.pointOnShape;
34
34
 
35
35
  if (posNext.curve === posThis.curve &&
36
36
  //PointOnShape.isQuiteSharpCorner(posThis) &&
@@ -81,7 +81,7 @@ function addSkippedBeziers(
81
81
  let curveThis = curveStart;
82
82
  do {
83
83
  curveThis = curveThis.next;
84
- let tEnd = curveThis === curveEnd ? t1 : 1;
84
+ const tEnd = curveThis === curveEnd ? t1 : 1;
85
85
  bezierPieces.push({ curve: curveThis, ts: [0, tEnd] });
86
86
  } while (curveThis !== curveEnd);
87
87
  }
@@ -8,7 +8,7 @@ import { IPointOnShape } from '../point-on-shape.js';
8
8
  * @param curve
9
9
  */
10
10
  function getContactCirclesAtInterface(curve: Curve): IPointOnShape[] {
11
- let { isQuiteSharp, isQuiteDull } = getCornerAtEnd(curve);
11
+ const { isQuiteSharp, isQuiteDull } = getCornerAtEnd(curve);
12
12
 
13
13
  if (isQuiteSharp) {
14
14
  return [new PointOnShape(curve, 1)];
@@ -2,9 +2,9 @@ import { CpNode } from '../cp-node.js';
2
2
  import { traverseEdges } from '../traverse-edges.js';
3
3
 
4
4
 
5
- /** @hidden */
5
+ /** @internal */
6
6
  function getEdgesAsArray(cpNode: CpNode) {
7
- let cpNodes: CpNode[] = [];
7
+ const cpNodes: CpNode[] = [];
8
8
 
9
9
  traverseEdges(
10
10
  cpNode,
@@ -3,9 +3,9 @@ import { CpNode } from '../cp-node.js';
3
3
 
4
4
  /** @hidden */
5
5
  function getLeaves(cpNode: CpNode) {
6
- let leaves: CpNode[] = [];
6
+ const leaves: CpNode[] = [];
7
7
 
8
- let cps = cpNode.getAllOnLoop();
8
+ const cps = cpNode.getAllOnLoop();
9
9
  cps.forEach(function(cp) {
10
10
  if (cp.isTerminating()) {
11
11
  leaves.push(cp);
@@ -18,7 +18,7 @@ function getNeighbouringPoints(
18
18
  order: number,
19
19
  order2: number) {
20
20
 
21
- let cps = cpTree.findBounds(
21
+ const cps = cpTree.findBounds(
22
22
  new CpNode({ pointOnShape: pos, circle: undefined, order, order2 }, false, false)
23
23
  );
24
24
 
@@ -48,28 +48,28 @@ function isAnotherCpCloseby(
48
48
  // It seems this can be zero else the ordering should be correct
49
49
  //const DISTANCE_THRESHOLD = 0;
50
50
 
51
- let cpTree = cpTrees.get(pos.curve.loop);
52
- let cpNodes = getNeighbouringPoints(cpTree, pos, order, order2);
51
+ const cpTree = cpTrees.get(pos.curve.loop);
52
+ const cpNodes = getNeighbouringPoints(cpTree, pos, order, order2);
53
53
  if (!cpNodes[0]) { return false }
54
54
 
55
- for (let cpNode of cpNodes) {
56
- let pos2 = cpNode.cp.pointOnShape;
57
- let p1 = pos.p;
58
- let p2 = pos2.p;
55
+ for (const cpNode of cpNodes) {
56
+ const pos2 = cpNode.cp.pointOnShape;
57
+ const p1 = pos.p;
58
+ const p2 = pos2.p;
59
59
 
60
60
  if (distanceBetween(p1,p2) > DISTANCE_THRESHOLD) {
61
61
  continue;
62
62
  }
63
63
 
64
- let v1 = toUnitVector(fromTo(
64
+ const v1 = toUnitVector(fromTo(
65
65
  cpNode.cp.pointOnShape.p,
66
66
  cpNode.cp.circle.center
67
67
  ));
68
- let v2 = toUnitVector(fromTo(
68
+ const v2 = toUnitVector(fromTo(
69
69
  p1,
70
70
  circle.center
71
71
  ));
72
- let cosTheta = dot(v1,v2);
72
+ const cosTheta = dot(v1,v2);
73
73
 
74
74
  if (cosTheta > ANGLE_THRESHOLD) {
75
75
  //console.log(`%c${cosTheta} - ${distanceBetween(p1,p2)}`, `color: ${color}`);