flo-mat 2.0.0 → 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 -7345
  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 +30 -25
  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 -2907
  287. package/browser/index.module.js +0 -7369
  288. package/browser/index.module.min.js +0 -2
  289. package/browser/index.module.min.js.LICENSE.txt +0 -2907
@@ -1 +1 @@
1
- {"version":3,"file":"two-prong.js","sourceRoot":"","sources":["../../../src/debug/functions/two-prong.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"two-prong.js","sourceRoot":"","sources":["../../../src/debug/functions/two-prong.ts"],"names":[],"mappings":"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"}
package/node/find-mats.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { simplifyPaths } from 'flo-boolean';
2
2
  import { findAndAddAll3Prongs } from './mat/find-mat/find-and-add-3-prongs.js';
3
3
  import { createInitialCpGraph } from './mat/find-mat/create-initial-cp-graph.js';
4
- ;
5
4
  import { addDebugInfo1, addDebugInfo2, addDebugInfo3, addDebugInfo4 } from './mat/find-mat/add-debug-info.js';
6
5
  import { getPotential2Prongs } from './mat/find-mat/get-potential-2-prongs.js';
7
6
  import { getSharpCorners } from './mat/find-mat/get-sharp-corners.js';
@@ -33,17 +32,15 @@ import { getLoopsMetrics } from './loop/get-max-coordinate.js';
33
32
  * in [1,100].
34
33
  */
35
34
  function findMats(bezierLoops, maxCurviness = 0.4, maxLength = 4) {
36
- if (typeof _debug_ !== 'undefined') {
37
- var timingStart = performance.now();
38
- }
35
+ // if (typeof _debug_ !== 'undefined') { var timingStart = performance.now(); }
39
36
  let maxCoordinate;
40
37
  let minBezLength;
41
38
  ({ maxCurviness, maxLength, maxCoordinate, minBezLength } =
42
39
  getSizeParams(bezierLoops, maxCurviness, maxLength));
43
- let loopss = simplifyPaths(bezierLoops, maxCoordinate);
44
- let mats = [];
45
- for (let loops of loopss) {
46
- let mat = findMat(loops, minBezLength, maxCurviness, maxLength, maxCoordinate);
40
+ const loopss = simplifyPaths(bezierLoops, maxCoordinate);
41
+ const mats = [];
42
+ for (const loops of loopss) {
43
+ const mat = findMat(loops, minBezLength, maxCurviness, maxLength, maxCoordinate);
47
44
  if (mat) {
48
45
  mats.push(mat);
49
46
  }
@@ -52,14 +49,14 @@ function findMats(bezierLoops, maxCurviness = 0.4, maxLength = 4) {
52
49
  }
53
50
  function getSizeParams(bezierLoops, maxCurviness, maxLength) {
54
51
  // Gather some shape metrics
55
- let { maxCoordinate, maxRadius } = getLoopsMetrics(bezierLoops);
56
- let expMax = Math.ceil(Math.log2(maxCoordinate));
57
- let minBezLengthSigBits = 14;
52
+ const { maxCoordinate, maxRadius } = getLoopsMetrics(bezierLoops);
53
+ const expMax = Math.ceil(Math.log2(maxCoordinate));
54
+ const minBezLengthSigBits = 14;
58
55
  /**
59
56
  * If a curve is shorter than this value then no points on it will be
60
57
  * selected for the purpose of finding the MAT.
61
58
  */
62
- let minBezLength = 2 ** expMax * 2 ** (-minBezLengthSigBits);
59
+ const minBezLength = 2 ** expMax * 2 ** (-minBezLengthSigBits);
63
60
  // Limit the tolerance to a reasonable level
64
61
  if (maxCurviness < 0.05) {
65
62
  maxCurviness = 0.05;
@@ -75,8 +72,8 @@ function getSizeParams(bezierLoops, maxCurviness, maxLength) {
75
72
  maxLength = 100;
76
73
  }
77
74
  // Adjust length tolerance according to a reference max coordinate
78
- let expMaxRadius = Math.ceil(Math.log2(maxRadius));
79
- let maxLengthSigBits = 10; // 1024 x 1024
75
+ const expMaxRadius = Math.ceil(Math.log2(maxRadius));
76
+ const maxLengthSigBits = 10; // 1024 x 1024
80
77
  maxLength = maxLength * (2 ** expMaxRadius * 2 ** (-maxLengthSigBits));
81
78
  return { maxCurviness, maxLength, maxCoordinate, minBezLength };
82
79
  }
@@ -90,10 +87,10 @@ function findMat(loops, minBezLength, maxCurviness, maxLength, maxCoordinate) {
90
87
  addDebugInfo1(loops);
91
88
  // Gets interesting points on the shape, i.e. those that makes sense to use
92
89
  // for the 2-prong procedure.
93
- let pointsPerLoop = loops.map(getInterestingPointsOnLoop(minBezLength, maxCurviness, maxLength));
94
- let for2ProngsPerLoop = getPotential2Prongs(pointsPerLoop);
95
- let sharpCornersPerLoop = getSharpCorners(pointsPerLoop);
96
- let cpTrees = new Map();
90
+ const pointsPerLoop = loops.map(getInterestingPointsOnLoop(minBezLength, maxCurviness, maxLength));
91
+ const for2ProngsPerLoop = getPotential2Prongs(pointsPerLoop);
92
+ const sharpCornersPerLoop = getSharpCorners(pointsPerLoop);
93
+ const cpTrees = new Map();
97
94
  let cpNode = createInitialCpGraph(loops, cpTrees, sharpCornersPerLoop);
98
95
  findAndAddHoleClosing2Prongs(loops, cpTrees, maxCoordinate);
99
96
  if (typeof _debug_ !== 'undefined') {
@@ -118,7 +115,7 @@ function findMat(loops, minBezLength, maxCurviness, maxLength, maxCoordinate) {
118
115
  return undefined;
119
116
  }
120
117
  }
121
- let mat = { cpNode, cpTrees };
118
+ const mat = { cpNode, cpTrees };
122
119
  addDebugInfo4(mat);
123
120
  return mat;
124
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"find-mats.js","sourceRoot":"","sources":["../src/find-mats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-mats.js","sourceRoot":"","sources":["../src/find-mats.ts"],"names":[],"mappings":"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"}
@@ -4,18 +4,18 @@
4
4
  * @param cpNode
5
5
  */
6
6
  function getBoundaryBezierPartsToNext(cpNode) {
7
- let cpThis = cpNode;
8
- let cpNext = cpNode.next;
9
- let posThis = cpThis.cp.pointOnShape;
10
- let posNext = cpNext.cp.pointOnShape;
11
- let curveThis = posThis.curve;
12
- let curveNext = posNext.curve;
7
+ const cpThis = cpNode;
8
+ const cpNext = cpNode.next;
9
+ const posThis = cpThis.cp.pointOnShape;
10
+ const posNext = cpNext.cp.pointOnShape;
11
+ const curveThis = posThis.curve;
12
+ const curveNext = posNext.curve;
13
13
  if (curveThis.loop !== curveNext.loop) {
14
14
  // It is a hole-closer going over to the other loop - a kind of terminal
15
15
  // CpNode.
16
16
  return undefined;
17
17
  }
18
- let bezierParts = [];
18
+ const bezierParts = [];
19
19
  if (curveNext === curveThis) {
20
20
  bezierParts.push({ ps: posThis.curve.ps, ts: [posThis.t, posNext.t] });
21
21
  }
@@ -33,7 +33,7 @@ function addSkippedBeziers(bezierParts, curveStart, curveEnd, t1) {
33
33
  let curveThis = curveStart;
34
34
  do {
35
35
  curveThis = curveThis.next;
36
- let bezierPart = curveThis === curveEnd
36
+ const bezierPart = curveThis === curveEnd
37
37
  ? { ps: curveThis.ps, ts: [0, t1] }
38
38
  : { ps: curveThis.ps, ts: [0, 1] };
39
39
  bezierParts.push(bezierPart);
@@ -1 +1 @@
1
- {"version":3,"file":"get-boundary-bezier-parts-to-next.js","sourceRoot":"","sources":["../src/get-boundary-bezier-parts-to-next.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,MAAc;IAChD,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,IAAI,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IACrC,IAAI,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IAErC,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9B,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAE9B,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;QACnC,wEAAwE;QACxE,UAAU;QACV,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,WAAW,GAAkB,EAAE,CAAC;IAEpC,IAAI,SAAS,KAAK,SAAS,EAAE;QACzB,WAAW,CAAC,IAAI,CACZ,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC;KACL;SAAM;QACH,WAAW,CAAC,IAAI,CACZ,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAC/C,CAAC;QAEF,iBAAiB,CACT,WAAW,EACX,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,CAAC,CAChB,CAAC;KACL;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAGD;;;GAGG;AACH,SAAS,iBAAiB,CAClB,WAA+C,EAC/C,UAAkB,EAClB,QAAkB,EAClB,EAAmB;IAEvB,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,GAAG;QACC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,IAAI,UAAU,GAAG,SAAS,KAAK,QAAQ;YACnC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YACnC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;QAEtC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAChC,QAAQ,SAAS,KAAK,QAAQ,EAAE;AAGrC,CAAC;AAGD,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
1
+ {"version":3,"file":"get-boundary-bezier-parts-to-next.js","sourceRoot":"","sources":["../src/get-boundary-bezier-parts-to-next.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IAE3B,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IAEvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAEhC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;QACnC,wEAAwE;QACxE,UAAU;QACV,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,WAAW,GAAkB,EAAE,CAAC;IAEtC,IAAI,SAAS,KAAK,SAAS,EAAE;QACzB,WAAW,CAAC,IAAI,CACZ,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC;KACL;SAAM;QACH,WAAW,CAAC,IAAI,CACZ,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAC/C,CAAC;QAEF,iBAAiB,CACT,WAAW,EACX,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,CAAC,CAChB,CAAC;KACL;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAGD;;;GAGG;AACH,SAAS,iBAAiB,CAClB,WAA+C,EAC/C,UAAkB,EAClB,QAAkB,EAClB,EAAmB;IAEvB,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,GAAG;QACC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ;YACrC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YACnC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;QAEtC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAChC,QAAQ,SAAS,KAAK,QAAQ,EAAE;AAGrC,CAAC;AAGD,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
@@ -6,18 +6,18 @@ import { fromTo } from 'flo-bezier3';
6
6
  * @param cpNode
7
7
  */
8
8
  function getBoundaryBeziersToNext(cpNode) {
9
- let cpThis = cpNode;
10
- let cpNext = cpNode.next;
11
- let posThis = cpThis.cp.pointOnShape;
12
- let posNext = cpNext.cp.pointOnShape;
13
- let curveThis = posThis.curve;
14
- let curveNext = posNext.curve;
9
+ const cpThis = cpNode;
10
+ const cpNext = cpNode.next;
11
+ const posThis = cpThis.cp.pointOnShape;
12
+ const posNext = cpNext.cp.pointOnShape;
13
+ const curveThis = posThis.curve;
14
+ const curveNext = posNext.curve;
15
15
  if (curveThis.loop !== curveNext.loop) {
16
16
  // It is a hole-closer going over to the other loop - a kind of terminal
17
17
  // CpNode.
18
18
  return undefined;
19
19
  }
20
- let beziers = [];
20
+ const beziers = [];
21
21
  if (curveNext === curveThis) {
22
22
  beziers.push(fromTo(posThis.curve.ps, posThis.t, posNext.t));
23
23
  }
@@ -35,7 +35,7 @@ function addSkippedBeziers(beziers, curveStart, curveEnd, t1) {
35
35
  let curveThis = curveStart;
36
36
  do {
37
37
  curveThis = curveThis.next;
38
- let tEnd = curveThis === curveEnd ? t1 : 1;
38
+ const tEnd = curveThis === curveEnd ? t1 : 1;
39
39
  beziers.push(
40
40
  // qqq from0ToT(curveThis.ps, tEnd)
41
41
  fromTo(curveThis.ps, 0, tEnd));
@@ -1 +1 @@
1
- {"version":3,"file":"get-boundary-beziers-to-next.js","sourceRoot":"","sources":["../src/get-boundary-beziers-to-next.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,MAAc;IAC5C,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,IAAI,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IACrC,IAAI,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IAErC,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9B,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAE9B,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;QACnC,wEAAwE;QACxE,UAAU;QACV,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,SAAS,KAAK,SAAS,EAAE;QACzB,OAAO,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CACjD,CAAC;KACL;SAAM;QACH,OAAO,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CACzC,CAAC;QAEF,iBAAiB,CACT,OAAO,EACP,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,CAAC,CAChB,CAAC;KACL;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAGD;;;GAGG;AACH,SAAS,iBAAiB,CAClB,OAAyB,EACzB,UAAkB,EAClB,QAAkB,EAClB,EAAmB;IAEvB,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,GAAG;QACC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,IAAI,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI;QACR,oCAAoC;QACpC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAChC,CAAC;KACL,QAAQ,SAAS,KAAK,QAAQ,EAAE;AACrC,CAAC;AAGD,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
1
+ {"version":3,"file":"get-boundary-beziers-to-next.js","sourceRoot":"","sources":["../src/get-boundary-beziers-to-next.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,MAAc;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IAE3B,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IAEvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAEhC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;QACnC,wEAAwE;QACxE,UAAU;QACV,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,IAAI,SAAS,KAAK,SAAS,EAAE;QACzB,OAAO,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CACjD,CAAC;KACL;SAAM;QACH,OAAO,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CACzC,CAAC;QAEF,iBAAiB,CACT,OAAO,EACP,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,CAAC,CAChB,CAAC;KACL;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAGD;;;GAGG;AACH,SAAS,iBAAiB,CAClB,OAAyB,EACzB,UAAkB,EAClB,QAAkB,EAClB,EAAmB;IAEvB,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,GAAG;QACC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI;QACR,oCAAoC;QACpC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAChC,CAAC;KACL,QAAQ,SAAS,KAAK,QAAQ,EAAE;AACrC,CAAC;AAGD,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
@@ -17,13 +17,13 @@ function getBranches(cpNode, tolerance = defaultTolerance) {
17
17
  while (!cpNode.isFullyTerminating()) {
18
18
  cpNode = cpNode.next;
19
19
  }
20
- let branches = [];
20
+ const branches = [];
21
21
  // Since the tree is unrooted we must iterate in all directions from the
22
22
  // given vertex.
23
- let cps = [cpNode.prevOnCircle];
23
+ const cps = [cpNode.prevOnCircle];
24
24
  let branchCpNodes = [];
25
25
  while (cps.length) {
26
- let cp = cps.pop();
26
+ const cp = cps.pop();
27
27
  branchCpNodes.push(cp);
28
28
  let children = cp.getChildren();
29
29
  if (cp.isFullyTerminating()) {
@@ -50,10 +50,10 @@ function getBranches(cpNode, tolerance = defaultTolerance) {
50
50
  cps.push(...children);
51
51
  continue;
52
52
  }
53
- let backPointingTan = toUnitVector(tangent(getCurveToNext(cp.next.prevOnCircle), 0));
54
- let forwardPointingTan = toUnitVector(tangent(getCurveToNext(children[0]), 0));
55
- let cross_ = cross(backPointingTan, forwardPointingTan);
56
- let angle = Math.abs(Math.asin(cross_) * (180 / Math.PI));
53
+ const backPointingTan = toUnitVector(tangent(getCurveToNext(cp.next.prevOnCircle), 0));
54
+ const forwardPointingTan = toUnitVector(tangent(getCurveToNext(children[0]), 0));
55
+ const cross_ = cross(backPointingTan, forwardPointingTan);
56
+ const angle = Math.abs(Math.asin(cross_) * (180 / Math.PI));
57
57
  if (angle > tolerance) {
58
58
  branches.push(branchCpNodes);
59
59
  branchCpNodes = [];
@@ -1 +1 @@
1
- {"version":3,"file":"get-branches.js","sourceRoot":"","sources":["../src/get-branches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-branches.js","sourceRoot":"","sources":["../src/get-branches.ts"],"names":[],"mappings":"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"}
@@ -11,43 +11,43 @@ const TOLERANCE_USE_LINE = 0.0001; // else cubic
11
11
  * @param cpNodeTo
12
12
  */
13
13
  function getCurveBetween(cpNodeFrom, cpNodeTo) {
14
- let fromCc = cpNodeFrom.cp.circle.center;
15
- let fromL = getEdgeDirection(cpNodeFrom);
16
- let toCc = cpNodeTo.cp.circle.center;
17
- let toL = getEdgeDirection(cpNodeTo.prevOnCircle);
18
- let mid = lineLineIntersection(fromL, toL);
19
- let c = fromTo(fromCc, toCc);
14
+ const fromCc = cpNodeFrom.cp.circle.center;
15
+ const fromL = getEdgeDirection(cpNodeFrom);
16
+ const toCc = cpNodeTo.cp.circle.center;
17
+ const toL = getEdgeDirection(cpNodeTo.prevOnCircle);
18
+ const mid = lineLineIntersection(fromL, toL);
19
+ const c = fromTo(fromCc, toCc);
20
20
  let twisted;
21
21
  if (!mid) {
22
22
  twisted = true;
23
23
  }
24
24
  else {
25
- let a = fromTo(fromCc, mid);
26
- let b = fromTo(toCc, mid);
25
+ const a = fromTo(fromCc, mid);
26
+ const b = fromTo(toCc, mid);
27
27
  twisted = dot(a, c) < 0 || dot(b, c) > 0;
28
28
  }
29
29
  if (!twisted) {
30
30
  return [fromCc, mid, toCc];
31
31
  }
32
- let r = rotate90Degrees(c);
33
- let w1 = fromTo(fromL[0], fromL[1]); // This is a unit vector
34
- let w2 = fromTo(toL[0], toL[1]); // This is a unit vector
35
- let d1 = Math.abs(cross(c, w1)) / (3 * 3);
36
- let d2 = Math.abs(cross(c, w2)) / (3 * 3);
32
+ const r = rotate90Degrees(c);
33
+ const w1 = fromTo(fromL[0], fromL[1]); // This is a unit vector
34
+ const w2 = fromTo(toL[0], toL[1]); // This is a unit vector
35
+ const d1 = Math.abs(cross(c, w1)) / (3 * 3);
36
+ const d2 = Math.abs(cross(c, w2)) / (3 * 3);
37
37
  if (d1 > TOLERANCE_ADD_2PRONG || d2 > TOLERANCE_ADD_2PRONG) {
38
38
  // TODO - not within tolerance - must add additional 2-prong
39
39
  return [fromCc, toCc];
40
40
  }
41
41
  if (d1 > TOLERANCE_USE_LINE || d2 > TOLERANCE_USE_LINE) {
42
42
  // approximate with cubic bezier
43
- let m1 = interpolate(fromCc, toCc, 1 / 3);
44
- let m2 = interpolate(fromCc, toCc, 2 / 3);
45
- let v1 = translate(r, m1);
46
- let v2 = translate(r, m2);
47
- let l1 = [m1, v1];
48
- let l2 = [m2, v2];
49
- let mid1 = lineLineIntersection(fromL, l1);
50
- let mid2 = lineLineIntersection(toL, l2);
43
+ const m1 = interpolate(fromCc, toCc, 1 / 3);
44
+ const m2 = interpolate(fromCc, toCc, 2 / 3);
45
+ const v1 = translate(r, m1);
46
+ const v2 = translate(r, m2);
47
+ const l1 = [m1, v1];
48
+ const l2 = [m2, v2];
49
+ const mid1 = lineLineIntersection(fromL, l1);
50
+ const mid2 = lineLineIntersection(toL, l2);
51
51
  return [fromCc, mid1, mid2, toCc];
52
52
  }
53
53
  // Within tolerance - approximate with a straight line.
@@ -1 +1 @@
1
- {"version":3,"file":"get-curve-between.js","sourceRoot":"","sources":["../../src/get-curve/get-curve-between.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-curve-between.js","sourceRoot":"","sources":["../../src/get-curve/get-curve-between.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAC3D,oBAAoB,EACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,cAAc;AACd,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,cAAc;AACd,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,aAAa;AAGhD;;;;;GAKG;AACH,SAAS,eAAe,CAChB,UAAkB,EAClB,QAAgB;IAEpB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE3C,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACvC,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEpD,MAAM,GAAG,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;IAE9B,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC,GAAG,EAAE;QACN,OAAO,GAAG,IAAI,CAAC;KAClB;SAAM;QACH,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAI,GAAG,CAAC,CAAC;QAE9B,OAAO,GAAG,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC1C;IAED,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;KAC9B;IAED,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;IAC/D,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,wBAAwB;IAE7D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAE1C,IAAI,EAAE,GAAG,oBAAoB,IAAI,EAAE,GAAG,oBAAoB,EAAE;QACxD,4DAA4D;QAC5D,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACzB;IAED,IAAI,EAAE,GAAG,kBAAkB,IAAI,EAAE,GAAG,kBAAkB,EAAE;QACpD,gCAAgC;QAChC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,EAAC,IAAI,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,EAAC,IAAI,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,EAAI,EAAE,CAAC,CAAC;QAE7C,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACrC;IAED,uDAAuD;IACvD,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -8,13 +8,13 @@ import { isPosSharpCorner } from '../point-on-shape.js';
8
8
  * @param cpNode
9
9
  */
10
10
  function getEdgeDirection(cpNode) {
11
- let circleCenter = cpNode.cp.circle.center;
12
- let cp1 = cpNode;
13
- let cp2 = cpNode.nextOnCircle;
14
- let pos1 = cp1.cp.pointOnShape;
15
- let pos2 = cp2.cp.pointOnShape;
16
- let p1 = pos1.p;
17
- let p2 = pos2.p;
11
+ const circleCenter = cpNode.cp.circle.center;
12
+ const cp1 = cpNode;
13
+ const cp2 = cpNode.nextOnCircle;
14
+ const pos1 = cp1.cp.pointOnShape;
15
+ const pos2 = cp2.cp.pointOnShape;
16
+ const p1 = pos1.p;
17
+ const p2 = pos2.p;
18
18
  let vDir;
19
19
  //if (!PointOnShape.isSharpCorner(pos1)) {
20
20
  if (!isPosSharpCorner(pos1)) {
@@ -37,17 +37,17 @@ function getEdgeDirection(cpNode) {
37
37
  curve1 = pos1.curve.next;
38
38
  curve2 = pos1.curve;
39
39
  }
40
- let tan1 = toUnitVector(tangent(curve1.ps, 0));
41
- let tan2 = reverse(toUnitVector(tangent(curve2.ps, 1)));
42
- let x = dot(tan1, tan2);
40
+ const tan1 = toUnitVector(tangent(curve1.ps, 0));
41
+ const tan2 = reverse(toUnitVector(tangent(curve2.ps, 1)));
42
+ const x = dot(tan1, tan2);
43
43
  // Recall the identities sin(acos(x)) = sqrt(1-x^2), etc. Also
44
44
  // recall the half angle formulas. Then the rotation matrix, R, can
45
45
  // be calculated.
46
- let cosθ = Math.sqrt((1 + x) / 2);
47
- let sinθ = Math.sqrt((1 - x) / 2);
46
+ const cosθ = Math.sqrt((1 + x) / 2);
47
+ const sinθ = Math.sqrt((1 - x) / 2);
48
48
  vDir = rotate(sinθ, cosθ, tan2);
49
49
  }
50
- let v = translate(toUnitVector(vDir), circleCenter);
50
+ const v = translate(toUnitVector(vDir), circleCenter);
51
51
  return [circleCenter, v];
52
52
  }
53
53
  export { getEdgeDirection };
@@ -1 +1 @@
1
- {"version":3,"file":"get-edge-direction.js","sourceRoot":"","sources":["../../src/get-curve/get-edge-direction.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EACzE,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,MAAc;IAEpC,IAAI,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IAE3C,IAAI,GAAG,GAAG,MAAM,CAAC;IACjB,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;IAE9B,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;IAC/B,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;IAE/B,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAChB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAEhB,IAAI,IAAI,CAAC;IAET,0CAA0C;IAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACzB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;YACpC,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY;SAChD;aAAM;YACH,IAAI,GAAG,eAAe,CAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,iBAAiB;SAC9D;KACJ;SAAM;QACH,IAAI,MAAM,CAAC;QACX,IAAI,MAAM,CAAC;QACX,0DAA0D;QAC1D,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;YACd,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YACpB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;SACvB;QAED,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,GAAG,OAAO,CAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;QAE1D,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,+DAA+D;QAC/D,oEAAoE;QACpE,iBAAiB;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACnC;IAED,IAAI,CAAC,GAAG,SAAS,CACb,YAAY,CAAC,IAAI,CAAC,EAClB,YAAY,CACf,CAAC;IAEF,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"get-edge-direction.js","sourceRoot":"","sources":["../../src/get-curve/get-edge-direction.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EACzE,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IAE7C,MAAM,GAAG,GAAG,MAAM,CAAC;IACnB,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;IAEhC,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;IAEjC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAElB,IAAI,IAAI,CAAC;IAET,0CAA0C;IAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACzB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;YACpC,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY;SAChD;aAAM;YACH,IAAI,GAAG,eAAe,CAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,iBAAiB;SAC9D;KACJ;SAAM;QACH,IAAI,MAAM,CAAC;QACX,IAAI,MAAM,CAAC;QACX,0DAA0D;QAC1D,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;YACd,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YACpB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;SACvB;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,CAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;QAE5D,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,+DAA+D;QAC/D,oEAAoE;QACpE,iBAAiB;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QAEhC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACnC;IAED,MAAM,CAAC,GAAG,SAAS,CACf,YAAY,CAAC,IAAI,CAAC,EAClB,YAAY,CACf,CAAC;IAEF,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -25,13 +25,13 @@ import { compareCurvaturesAtInterface } from "./compare-curvatures-at-interface.
25
25
  */
26
26
  // TODO - improve and make at least 46-bitlength precondition
27
27
  function getInterfaceCcw(psI, psO) {
28
- let lenI = psI.length;
28
+ const lenI = psI.length;
29
29
  // second last control point of incoming curve
30
- let p0 = psI[lenI - 2];
30
+ const p0 = psI[lenI - 2];
31
31
  // last control point of incoming curve / first control point of outgoing
32
- let p1 = psO[0];
32
+ const p1 = psO[0];
33
33
  // second control point of outgoing curve
34
- let p2 = psO[1];
34
+ const p2 = psO[1];
35
35
  /*
36
36
  if (typeof _bez_debug_ !== 'undefined') {
37
37
  let maxBitLength = 25;
@@ -58,29 +58,29 @@ function getInterfaceCcw(psI, psO) {
58
58
  }
59
59
  */
60
60
  // Max one bit can be added in the calculations below due to bit-alignment
61
- let xE = p1[0] - p0[0]; // tangent x-coordinate
62
- let yE = p1[1] - p0[1]; // tangent y-coordinate
63
- let xS = p2[0] - p1[0]; // tangent x-coordinate
64
- let yS = p2[1] - p1[1]; // tangent y-coordinate
61
+ const xE = p1[0] - p0[0]; // tangent x-coordinate
62
+ const yE = p1[1] - p0[1]; // tangent y-coordinate
63
+ const xS = p2[0] - p1[0]; // tangent x-coordinate
64
+ const yS = p2[1] - p1[1]; // tangent y-coordinate
65
65
  // If the tangent is to be found at t === 0 or t === 1 then using a basic
66
66
  // property of bezier curves we can find the tangents easily as below
67
67
  // (non-normalized) tangent of incoming curve at t === 1
68
- let tangentAtEnd = [xE, yE];
68
+ const tangentAtEnd = [xE, yE];
69
69
  // (non-normalized) tangent of outgoing curve at t === 0
70
- let tangentAtStart = [xS, yS];
70
+ const tangentAtStart = [xS, yS];
71
71
  // The cross calculated below will have a max bitlength of
72
72
  // (2*(maxBitLength+1))+1 === e.g. (2*(25+1)) + 1 === 53
73
73
  // If the preconditions are met it is exact
74
74
  //let crossTangents = cross(tangentAtEnd, tangentAtStart);
75
75
  // The cross below is exact by adaptive infinite precision
76
- let crossTangents = orient2d(p0, p1, p2);
76
+ const crossTangents = orient2d(p0, p1, p2);
77
77
  if (crossTangents !== 0) {
78
78
  return crossTangents;
79
79
  }
80
80
  // The dot calculated below will have a max bitlength of
81
81
  // (2*(maxBitLength+1))+1 === e.g. (2*(25+1)) + 1 === 53
82
82
  // If the preconditions are met it is exact
83
- let dotTangents = dot(tangentAtEnd, tangentAtStart);
83
+ const dotTangents = dot(tangentAtEnd, tangentAtStart);
84
84
  if (dotTangents > 0) {
85
85
  // Curves go in same direction at interface - neither clock or
86
86
  // anti-clockwise.
@@ -1 +1 @@
1
- {"version":3,"file":"get-interface-ccw.js","sourceRoot":"","sources":["../src/get-interface-ccw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAGpF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,6DAA6D;AAC7D,SAAS,eAAe,CAAC,GAAe,EAAE,GAAe;IACrD,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IAEtB,8CAA8C;IAC9C,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC;IACrB,yEAAyE;IACzE,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,yCAAyC;IACzC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;;MAwBE;IAEF,0EAA0E;IAC1E,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,uBAAuB;IACnD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,uBAAuB;IAChD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,uBAAuB;IAC7C,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,uBAAuB;IAEnD,0EAA0E;IACvE,qEAAqE;IAErE,wDAAwD;IACxD,IAAI,YAAY,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;IAC3B,wDAAwD;IAC3D,IAAI,cAAc,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;IAE1B,2DAA2D;IAC3D,wDAAwD;IACxD,2CAA2C;IAC3C,0DAA0D;IAE1D,0DAA0D;IAC1D,IAAI,aAAa,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5C,IAAI,aAAa,KAAK,CAAC,EAAE;QACxB,OAAO,aAAa,CAAC;KAClB;IAED,yDAAyD;IACzD,wDAAwD;IACxD,2CAA2C;IAC3C,IAAI,WAAW,GAAG,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACpD,IAAI,WAAW,GAAG,CAAC,EAAE;QACjB,+DAA+D;QAC/D,kBAAkB;QAClB,uEAAuE;QACvE,0CAA0C;QAC1C,OAAO,CAAC,CAAC;KACZ;IAED,4EAA4E;IAC5E,qEAAqE;IACrE,sEAAsE;IAEtE,oBAAoB;IACpB,OAAO,4BAA4B,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"get-interface-ccw.js","sourceRoot":"","sources":["../src/get-interface-ccw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAGpF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,6DAA6D;AAC7D,SAAS,eAAe,CAAC,GAAe,EAAE,GAAe;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IAExB,8CAA8C;IAC9C,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC;IACvB,yEAAyE;IACzE,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAClB,yCAAyC;IACzC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;;;MAwBE;IAEF,0EAA0E;IAC1E,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,uBAAuB;IACrD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,uBAAuB;IAClD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,uBAAuB;IAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,uBAAuB;IAErD,0EAA0E;IACvE,qEAAqE;IAErE,wDAAwD;IACxD,MAAM,YAAY,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;IAC7B,wDAAwD;IAC3D,MAAM,cAAc,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;IAE5B,2DAA2D;IAC3D,wDAAwD;IACxD,2CAA2C;IAC3C,0DAA0D;IAE1D,0DAA0D;IAC1D,MAAM,aAAa,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE9C,IAAI,aAAa,KAAK,CAAC,EAAE;QACxB,OAAO,aAAa,CAAC;KAClB;IAED,yDAAyD;IACzD,wDAAwD;IACxD,2CAA2C;IAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,WAAW,GAAG,CAAC,EAAE;QACjB,+DAA+D;QAC/D,kBAAkB;QAClB,uEAAuE;QACvE,0CAA0C;QAC1C,OAAO,CAAC,CAAC;KACZ;IAED,4EAA4E;IAC5E,qEAAqE;IACrE,sEAAsE;IAEtE,oBAAoB;IACpB,OAAO,4BAA4B,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -11,12 +11,12 @@ function getLoopsMetrics(loops) {
11
11
  let maxX = Number.NEGATIVE_INFINITY;
12
12
  let minY = Number.POSITIVE_INFINITY;
13
13
  let maxY = Number.NEGATIVE_INFINITY;
14
- for (let loop of loops) {
15
- for (let ps of loop) {
16
- for (let p of ps) {
17
- let x = p[0];
18
- let y = p[1];
19
- let c = max(abs(x), abs(y));
14
+ for (const loop of loops) {
15
+ for (const ps of loop) {
16
+ for (const p of ps) {
17
+ const x = p[0];
18
+ const y = p[1];
19
+ const c = max(abs(x), abs(y));
20
20
  if (c > maxCoordinate) {
21
21
  maxCoordinate = c;
22
22
  }
@@ -35,9 +35,9 @@ function getLoopsMetrics(loops) {
35
35
  }
36
36
  }
37
37
  }
38
- let width = maxX - minX;
39
- let height = maxY - minY;
40
- let maxRadius = max(width, height);
38
+ const width = maxX - minX;
39
+ const height = maxY - minY;
40
+ const maxRadius = max(width, height);
41
41
  return { maxCoordinate, maxRadius };
42
42
  }
43
43
  export { getLoopsMetrics };
@@ -1 +1 @@
1
- {"version":3,"file":"get-max-coordinate.js","sourceRoot":"","sources":["../../src/loop/get-max-coordinate.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAGrB;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAqB;IAI1C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAEpC,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QAAE,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE;YAAE,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE;gBAC/D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,aAAa,EAAE;oBAAE,aAAa,GAAG,CAAC,CAAC;iBAAE;gBAC7C,IAAI,CAAC,GAAG,IAAI,EAAE;oBAAE,IAAI,GAAG,CAAC,CAAC;iBAAE;gBAC3B,IAAI,CAAC,GAAG,IAAI,EAAE;oBAAE,IAAI,GAAG,CAAC,CAAC;iBAAE;gBAC3B,IAAI,CAAC,GAAG,IAAI,EAAE;oBAAE,IAAI,GAAG,CAAC,CAAC;iBAAE;gBAC3B,IAAI,CAAC,GAAG,IAAI,EAAE;oBAAE,IAAI,GAAG,CAAC,CAAC;iBAAE;aAC9B;SAAE;KAAE;IAEL,IAAI,KAAK,GAAI,IAAI,GAAG,IAAI,CAAC;IACzB,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACzB,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEnC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"get-max-coordinate.js","sourceRoot":"","sources":["../../src/loop/get-max-coordinate.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAGrB;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAqB;IAI1C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QAAE,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;YAAE,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;gBACrE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,GAAG,aAAa,EAAE;oBAAE,aAAa,GAAG,CAAC,CAAC;iBAAE;gBAC7C,IAAI,CAAC,GAAG,IAAI,EAAE;oBAAE,IAAI,GAAG,CAAC,CAAC;iBAAE;gBAC3B,IAAI,CAAC,GAAG,IAAI,EAAE;oBAAE,IAAI,GAAG,CAAC,CAAC;iBAAE;gBAC3B,IAAI,CAAC,GAAG,IAAI,EAAE;oBAAE,IAAI,GAAG,CAAC,CAAC;iBAAE;gBAC3B,IAAI,CAAC,GAAG,IAAI,EAAE;oBAAE,IAAI,GAAG,CAAC,CAAC;iBAAE;aAC9B;SAAE;KAAE;IAEL,MAAM,KAAK,GAAI,IAAI,GAAG,IAAI,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAErC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
package/node/loop.js CHANGED
@@ -2,8 +2,8 @@
2
2
  * @param beziers A pre-ordered array of bezier curves to add initially.
3
3
  */
4
4
  function loopFromBeziers(beziers = []) {
5
- let curves = [];
6
- let loop = {
5
+ const curves = [];
6
+ const loop = {
7
7
  beziers,
8
8
  curves
9
9
  };
@@ -12,7 +12,7 @@ function loopFromBeziers(beziers = []) {
12
12
  }
13
13
  let prev;
14
14
  for (let i = 0; i < beziers.length; i++) {
15
- let curve = {
15
+ const curve = {
16
16
  loop,
17
17
  ps: beziers[i],
18
18
  prev,
@@ -26,7 +26,7 @@ function loopFromBeziers(beziers = []) {
26
26
  curves.push(curve);
27
27
  }
28
28
  // close loop
29
- let lastCurve = curves[curves.length - 1];
29
+ const lastCurve = curves[curves.length - 1];
30
30
  curves[0].prev = lastCurve;
31
31
  lastCurve.next = curves[0];
32
32
  return loop;
package/node/loop.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,SAAS,eAAe,CAAC,UAAwB,EAAE;IAC/C,IAAI,MAAM,GAAY,EAAE,CAAC;IAEzB,IAAI,IAAI,GAAS;QACb,OAAO;QACP,MAAM;KACT,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAAE,OAAO,IAAI,CAAC;KAAE;IAErC,IAAI,IAAW,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAEjC,IAAI,KAAK,GAAU;YACf,IAAI;YACJ,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YACd,IAAI;YACJ,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,CAAC;SACT,CAAC;QAEF,IAAI,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SAAE;QAChC,IAAI,GAAG,KAAK,CAAC;QAEb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtB;IAED,aAAa;IACb,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE3B,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,OAAO,EAAQ,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,SAAS,eAAe,CAAC,UAAwB,EAAE;IAC/C,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,MAAM,IAAI,GAAS;QACf,OAAO;QACP,MAAM;KACT,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAAE,OAAO,IAAI,CAAC;KAAE;IAErC,IAAI,IAAW,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAEjC,MAAM,KAAK,GAAU;YACjB,IAAI;YACJ,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YACd,IAAI;YACJ,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,CAAC;SACT,CAAC;QAEF,IAAI,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SAAE;QAChC,IAAI,GAAG,KAAK,CAAC;QAEb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtB;IAED,aAAa;IACb,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE3B,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,OAAO,EAAQ,eAAe,EAAE,CAAA"}
@@ -10,19 +10,19 @@ import { getNeighbouringPoints } from './get-neighboring-cps.js';
10
10
  * @hidden
11
11
  */
12
12
  function addToCpGraph(circle, orders, cpTrees, poss, neighbors) {
13
- let newCps = poss.map((pos, i) => {
14
- let cpTree = cpTrees.get(pos.curve.loop);
15
- let newCp_ = { pointOnShape: pos, circle, order: orders[i], order2: 0 };
16
- let neighboringCp = neighbors
13
+ const newCps = poss.map((pos, i) => {
14
+ const cpTree = cpTrees.get(pos.curve.loop);
15
+ const newCp_ = { pointOnShape: pos, circle, order: orders[i], order2: 0 };
16
+ const neighboringCp = neighbors
17
17
  ? neighbors[i]
18
18
  : getNeighbouringPoints(cpTree, pos, orders[i], 0);
19
- let newCp = CpNode.insert(false, false, cpTree, newCp_, neighboringCp[0]);
19
+ const newCp = CpNode.insert(false, false, cpTree, newCp_, neighboringCp[0]);
20
20
  return newCp;
21
21
  });
22
- let len = poss.length;
22
+ const len = poss.length;
23
23
  for (let i = 0; i < len; i++) {
24
- let indxPrev = i === 0 ? len - 1 : i - 1;
25
- let indxNext = i === len - 1 ? 0 : i + 1;
24
+ const indxPrev = i === 0 ? len - 1 : i - 1;
25
+ const indxNext = i === len - 1 ? 0 : i + 1;
26
26
  newCps[i].prevOnCircle = newCps[indxPrev];
27
27
  newCps[i].nextOnCircle = newCps[indxNext];
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add-to-cp-graph.js","sourceRoot":"","sources":["../../src/mat/add-to-cp-graph.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE;;;;;;;;GAQG;AACH,SAAS,YAAY,CACb,MAAgB,EAChB,MAAkB,EAClB,OAAoC,EACpC,IAAyB,EACzB,SAAuB;IAE3B,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAC7B,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,MAAM,GAAiB,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAEtF,IAAI,aAAa,GAAG,SAAS;YACzB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CACjB,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,CAAC,CAAC,CAAC,CACvB,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAK,CAAC,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;QACzC,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAK,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;QAEzC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC7C;AACL,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"add-to-cp-graph.js","sourceRoot":"","sources":["../../src/mat/add-to-cp-graph.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE;;;;;;;;GAQG;AACH,SAAS,YAAY,CACb,MAAgB,EAChB,MAAkB,EAClB,OAAoC,EACpC,IAAyB,EACzB,SAAuB;IAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAiB,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAExF,MAAM,aAAa,GAAG,SAAS;YAC3B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CACnB,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,CAAC,CAAC,CAAC,CACvB,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAK,CAAC,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAK,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;QAE3C,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC7C;AACL,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -18,8 +18,7 @@ function closestPointsOnCurve(curve, p, [tS, tE] = [0, 1], touchedCurve, t) {
18
18
  ? ddDeflate(_poly, t)
19
19
  : _poly;
20
20
  // let roots: Omit<RootInterval,'multiplicity'>[] = allRootsMultiWithErrBounds(
21
- let roots;
22
- roots = allRootsCertified(poly, tS, tE);
21
+ const roots = allRootsCertified(poly, tS, tE);
23
22
  // Also test the endpoints
24
23
  let push0 = true;
25
24
  let push1 = true;
@@ -57,11 +56,11 @@ function closestPointsOnCurve(curve, p, [tS, tE] = [0, 1], touchedCurve, t) {
57
56
  else {
58
57
  roots.push({ tS: tE, tE: tE });
59
58
  }
60
- let ps = roots.map(root => {
61
- let tS = root.tS;
62
- let tE = root.tE;
59
+ const ps = roots.map(root => {
60
+ const tS = root.tS;
61
+ const tE = root.tE;
63
62
  // TODO - tS, tE should always stay within [0,1] - modify findRootsMulti
64
- let t = tS < 0
63
+ const t = tS < 0
65
64
  ? 0
66
65
  : tE > 1 ? 1 : (tS + tE) / 2;
67
66
  // TODO - why does evalDeCasteljau not work here?