flo-mat 2.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/.eslintrc.cjs +69 -0
  2. package/README.md +9 -27
  3. package/browser/index.js +29604 -7008
  4. package/browser/index.min.js +1 -2
  5. package/node/circle.d.ts +20 -20
  6. package/node/circle.js +31 -31
  7. package/node/circle.js.map +1 -1
  8. package/node/compare-curvatures-at-interface.d.ts +19 -19
  9. package/node/compare-curvatures-at-interface.js +124 -124
  10. package/node/compare-curvatures-at-interface.js.map +1 -1
  11. package/node/contact-point.d.ts +26 -26
  12. package/node/contact-point.js +25 -25
  13. package/node/cp-node/clone.d.ts +8 -8
  14. package/node/cp-node/clone.js +31 -31
  15. package/node/cp-node/clone.js.map +1 -1
  16. package/node/cp-node/remove.d.ts +9 -9
  17. package/node/cp-node/remove.js +19 -19
  18. package/node/cp-node/remove.js.map +1 -1
  19. package/node/cp-node.d.ts +202 -202
  20. package/node/cp-node.js +320 -320
  21. package/node/cp-node.js.map +1 -1
  22. package/node/curve.d.ts +46 -46
  23. package/node/curve.js +88 -88
  24. package/node/curve.js.map +1 -1
  25. package/node/debug/cp-node-for-debugging.d.ts +11 -11
  26. package/node/debug/cp-node-for-debugging.js +1 -1
  27. package/node/debug/debug-elem-types.d.ts +32 -32
  28. package/node/debug/debug-elem-types.js +1 -1
  29. package/node/debug/debug.d.ts +50 -50
  30. package/node/debug/debug.js +75 -75
  31. package/node/debug/functions/draw-elem/bounding-hull.d.ts +3 -3
  32. package/node/debug/functions/draw-elem/bounding-hull.js +7 -7
  33. package/node/debug/functions/draw-elem/bounding-hull.js.map +1 -1
  34. package/node/debug/functions/draw-elem/branch.d.ts +4 -4
  35. package/node/debug/functions/draw-elem/branch.js +22 -22
  36. package/node/debug/functions/draw-elem/branch.js.map +1 -1
  37. package/node/debug/functions/draw-elem/culls.d.ts +4 -4
  38. package/node/debug/functions/draw-elem/culls.js +21 -21
  39. package/node/debug/functions/draw-elem/culls.js.map +1 -1
  40. package/node/debug/functions/draw-elem/draw-circle-percent.d.ts +3 -3
  41. package/node/debug/functions/draw-elem/draw-circle-percent.js +12 -12
  42. package/node/debug/functions/draw-elem/draw-circle-percent.js.map +1 -1
  43. package/node/debug/functions/draw-elem/draw-elem.d.ts +8 -8
  44. package/node/debug/functions/draw-elem/draw-elem.js +45 -45
  45. package/node/debug/functions/draw-elem/draw-elem.js.map +1 -1
  46. package/node/debug/functions/draw-elem/dull-corner.d.ts +4 -4
  47. package/node/debug/functions/draw-elem/dull-corner.js +10 -10
  48. package/node/debug/functions/draw-elem/dull-corner.js.map +1 -1
  49. package/node/debug/functions/draw-elem/leaves.d.ts +4 -4
  50. package/node/debug/functions/draw-elem/leaves.js +12 -12
  51. package/node/debug/functions/draw-elem/leaves.js.map +1 -1
  52. package/node/debug/functions/draw-elem/loop.d.ts +4 -4
  53. package/node/debug/functions/draw-elem/loop.js +11 -11
  54. package/node/debug/functions/draw-elem/loops.d.ts +4 -4
  55. package/node/debug/functions/draw-elem/loops.js +6 -6
  56. package/node/debug/functions/draw-elem/loose-bounding-box.d.ts +3 -3
  57. package/node/debug/functions/draw-elem/loose-bounding-box.js +9 -9
  58. package/node/debug/functions/draw-elem/loose-bounding-box.js.map +1 -1
  59. package/node/debug/functions/draw-elem/mat.d.ts +4 -4
  60. package/node/debug/functions/draw-elem/mat.js +30 -30
  61. package/node/debug/functions/draw-elem/mat.js.map +1 -1
  62. package/node/debug/functions/draw-elem/max-vertex.d.ts +4 -4
  63. package/node/debug/functions/draw-elem/max-vertex.js +8 -8
  64. package/node/debug/functions/draw-elem/max-vertex.js.map +1 -1
  65. package/node/debug/functions/draw-elem/min-y.d.ts +4 -4
  66. package/node/debug/functions/draw-elem/min-y.js +13 -13
  67. package/node/debug/functions/draw-elem/min-y.js.map +1 -1
  68. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.d.ts +4 -4
  69. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js +12 -12
  70. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js.map +1 -1
  71. package/node/debug/functions/draw-elem/one-prong.d.ts +4 -4
  72. package/node/debug/functions/draw-elem/one-prong.js +16 -16
  73. package/node/debug/functions/draw-elem/one-prong.js.map +1 -1
  74. package/node/debug/functions/draw-elem/sharp-corner.d.ts +4 -4
  75. package/node/debug/functions/draw-elem/sharp-corner.js +9 -9
  76. package/node/debug/functions/draw-elem/sharp-corner.js.map +1 -1
  77. package/node/debug/functions/draw-elem/three-prong.d.ts +4 -4
  78. package/node/debug/functions/draw-elem/three-prong.js +16 -16
  79. package/node/debug/functions/draw-elem/three-prong.js.map +1 -1
  80. package/node/debug/functions/draw-elem/tight-bounding-box.d.ts +3 -3
  81. package/node/debug/functions/draw-elem/tight-bounding-box.js +7 -7
  82. package/node/debug/functions/draw-elem/tight-bounding-box.js.map +1 -1
  83. package/node/debug/functions/draw-elem/two-prong.d.ts +4 -4
  84. package/node/debug/functions/draw-elem/two-prong.js +36 -36
  85. package/node/debug/functions/draw-elem/two-prong.js.map +1 -1
  86. package/node/debug/functions/draw-elem/vertex.d.ts +4 -4
  87. package/node/debug/functions/draw-elem/vertex.js +27 -27
  88. package/node/debug/functions/draw-elem/vertex.js.map +1 -1
  89. package/node/debug/functions/general.d.ts +48 -48
  90. package/node/debug/functions/general.js +52 -52
  91. package/node/debug/functions/general.js.map +1 -1
  92. package/node/debug/functions/three-prong.d.ts +11 -11
  93. package/node/debug/functions/three-prong.js +184 -184
  94. package/node/debug/functions/three-prong.js.map +1 -1
  95. package/node/debug/functions/two-prong.d.ts +13 -13
  96. package/node/debug/functions/two-prong.js +117 -117
  97. package/node/debug/functions/two-prong.js.map +1 -1
  98. package/node/debug/three-prong-for-debugging.d.ts +31 -31
  99. package/node/debug/three-prong-for-debugging.js +20 -20
  100. package/node/debug/two-prong-for-debugging.d.ts +26 -26
  101. package/node/debug/two-prong-for-debugging.js +1 -1
  102. package/node/find-mats.d.ts +26 -26
  103. package/node/find-mats.js +122 -125
  104. package/node/find-mats.js.map +1 -1
  105. package/node/get-boundary-bezier-parts-to-next.d.ts +9 -9
  106. package/node/get-boundary-bezier-parts-to-next.js +42 -42
  107. package/node/get-boundary-bezier-parts-to-next.js.map +1 -1
  108. package/node/get-boundary-beziers-to-next.d.ts +8 -8
  109. package/node/get-boundary-beziers-to-next.js +44 -44
  110. package/node/get-boundary-beziers-to-next.js.map +1 -1
  111. package/node/get-bounding-box-.d.ts +2 -2
  112. package/node/get-bounding-box-.js +4 -4
  113. package/node/get-branches.d.ts +12 -12
  114. package/node/get-branches.js +68 -68
  115. package/node/get-branches.js.map +1 -1
  116. package/node/get-curve/get-curve-between.d.ts +9 -9
  117. package/node/get-curve/get-curve-between.js +56 -56
  118. package/node/get-curve/get-curve-between.js.map +1 -1
  119. package/node/get-curve/get-edge-direction.d.ts +9 -9
  120. package/node/get-curve/get-edge-direction.js +53 -53
  121. package/node/get-curve/get-edge-direction.js.map +1 -1
  122. package/node/get-curve-to-next.d.ts +9 -9
  123. package/node/get-curve-to-next.js +11 -11
  124. package/node/get-interface-ccw.d.ts +24 -24
  125. package/node/get-interface-ccw.js +97 -97
  126. package/node/get-interface-ccw.js.map +1 -1
  127. package/node/index.d.ts +36 -36
  128. package/node/index.js +32 -32
  129. package/node/loop/get-max-coordinate.d.ts +10 -10
  130. package/node/loop/get-max-coordinate.js +43 -43
  131. package/node/loop/get-max-coordinate.js.map +1 -1
  132. package/node/loop.d.ts +16 -16
  133. package/node/loop.js +34 -34
  134. package/node/loop.js.map +1 -1
  135. package/node/mat/add-to-cp-graph.d.ts +16 -16
  136. package/node/mat/add-to-cp-graph.js +30 -30
  137. package/node/mat/add-to-cp-graph.js.map +1 -1
  138. package/node/mat/bezier-piece.d.ts +12 -12
  139. package/node/mat/bezier-piece.js +1 -1
  140. package/node/mat/closest-boundary-point/closest-points-on-curve.d.ts +14 -14
  141. package/node/mat/closest-boundary-point/closest-points-on-curve.js +72 -73
  142. package/node/mat/closest-boundary-point/closest-points-on-curve.js.map +1 -1
  143. package/node/mat/closest-boundary-point/cull-bezier-pieces.d.ts +9 -9
  144. package/node/mat/closest-boundary-point/cull-bezier-pieces.js +19 -19
  145. package/node/mat/closest-boundary-point/cull-bezier-pieces.js.map +1 -1
  146. package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.d.ts +11 -11
  147. package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.js +24 -24
  148. package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.js.map +1 -1
  149. package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.d.ts +11 -11
  150. package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.js +26 -26
  151. package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.js.map +1 -1
  152. package/node/mat/closest-boundary-point/get-best-distance-squared.d.ts +8 -8
  153. package/node/mat/closest-boundary-point/get-best-distance-squared.js +24 -24
  154. package/node/mat/closest-boundary-point/get-best-distance-squared.js.map +1 -1
  155. package/node/mat/closest-boundary-point/get-close-boundary-points.d.ts +17 -17
  156. package/node/mat/closest-boundary-point/get-close-boundary-points.js +80 -80
  157. package/node/mat/closest-boundary-point/get-close-boundary-points.js.map +1 -1
  158. package/node/mat/closest-boundary-point/get-closest-boundary-point.d.ts +18 -18
  159. package/node/mat/closest-boundary-point/get-closest-boundary-point.js +40 -40
  160. package/node/mat/closest-boundary-point/get-closest-boundary-point.js.map +1 -1
  161. package/node/mat/corner.d.ts +37 -37
  162. package/node/mat/corner.js +1 -1
  163. package/node/mat/create-new-cp-tree.d.ts +9 -9
  164. package/node/mat/create-new-cp-tree.js +23 -23
  165. package/node/mat/create-new-cp-tree.js.map +1 -1
  166. package/node/mat/elem-type-two-prong.d.ts +3 -3
  167. package/node/mat/elem-type-two-prong.js +1 -1
  168. package/node/mat/find-mat/add-1-prong.d.ts +12 -12
  169. package/node/mat/find-mat/add-1-prong.js +42 -42
  170. package/node/mat/find-mat/add-1-prong.js.map +1 -1
  171. package/node/mat/find-mat/add-2-prong.d.ts +21 -21
  172. package/node/mat/find-mat/add-2-prong.js +192 -192
  173. package/node/mat/find-mat/add-2-prong.js.map +1 -1
  174. package/node/mat/find-mat/add-3-prong.d.ts +19 -19
  175. package/node/mat/find-mat/add-3-prong.js +54 -54
  176. package/node/mat/find-mat/add-3-prong.js.map +1 -1
  177. package/node/mat/find-mat/add-debug-info.d.ts +9 -9
  178. package/node/mat/find-mat/add-debug-info.js +67 -69
  179. package/node/mat/find-mat/add-debug-info.js.map +1 -1
  180. package/node/mat/find-mat/create-get-interesting-points-on-loop.d.ts +11 -11
  181. package/node/mat/find-mat/create-get-interesting-points-on-loop.js +51 -51
  182. package/node/mat/find-mat/create-get-interesting-points-on-loop.js.map +1 -1
  183. package/node/mat/find-mat/create-initial-cp-graph.d.ts +12 -12
  184. package/node/mat/find-mat/create-initial-cp-graph.js +40 -40
  185. package/node/mat/find-mat/create-initial-cp-graph.js.map +1 -1
  186. package/node/mat/find-mat/find-2-prong/add-debug-info.d.ts +8 -8
  187. package/node/mat/find-mat/find-2-prong/add-debug-info.js +21 -21
  188. package/node/mat/find-mat/find-2-prong/add-debug-info.js.map +1 -1
  189. package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.d.ts +11 -11
  190. package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.js +29 -29
  191. package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.js.map +1 -1
  192. package/node/mat/find-mat/find-2-prong/find-2-prong.d.ts +37 -37
  193. package/node/mat/find-mat/find-2-prong/find-2-prong.js +232 -232
  194. package/node/mat/find-mat/find-2-prong/find-2-prong.js.map +1 -1
  195. package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.d.ts +9 -9
  196. package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.js +39 -39
  197. package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.js.map +1 -1
  198. package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.d.ts +11 -11
  199. package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.js +37 -37
  200. package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
  201. package/node/mat/find-mat/find-2-prong/x-for-debugging.d.ts +9 -9
  202. package/node/mat/find-mat/find-2-prong/x-for-debugging.js +1 -1
  203. package/node/mat/find-mat/find-3-prong/calc-better-x.d.ts +19 -19
  204. package/node/mat/find-mat/find-3-prong/calc-better-x.js +36 -36
  205. package/node/mat/find-mat/find-3-prong/calc-better-x.js.map +1 -1
  206. package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.d.ts +13 -13
  207. package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.js +25 -25
  208. package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.js.map +1 -1
  209. package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.d.ts +22 -22
  210. package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.js +159 -159
  211. package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.js.map +1 -1
  212. package/node/mat/find-mat/find-3-prong/find-3-prong.d.ts +16 -16
  213. package/node/mat/find-mat/find-3-prong/find-3-prong.js +76 -76
  214. package/node/mat/find-mat/find-3-prong/find-3-prong.js.map +1 -1
  215. package/node/mat/find-mat/find-3-prong/get-closest-points.d.ts +9 -9
  216. package/node/mat/find-mat/find-3-prong/get-closest-points.js +16 -16
  217. package/node/mat/find-mat/find-3-prong/get-closest-points.js.map +1 -1
  218. package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.d.ts +15 -15
  219. package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.js +20 -20
  220. package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.js.map +1 -1
  221. package/node/mat/find-mat/find-and-add-2-prongs.d.ts +16 -16
  222. package/node/mat/find-mat/find-and-add-2-prongs.js +73 -74
  223. package/node/mat/find-mat/find-and-add-2-prongs.js.map +1 -1
  224. package/node/mat/find-mat/find-and-add-3-prongs.d.ts +13 -13
  225. package/node/mat/find-mat/find-and-add-3-prongs.js +146 -147
  226. package/node/mat/find-mat/find-and-add-3-prongs.js.map +1 -1
  227. package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.d.ts +14 -14
  228. package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.js +33 -33
  229. package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.js.map +1 -1
  230. package/node/mat/find-mat/get-potential-2-prongs.d.ts +4 -4
  231. package/node/mat/find-mat/get-potential-2-prongs.js +16 -16
  232. package/node/mat/find-mat/get-potential-2-prongs.js.map +1 -1
  233. package/node/mat/find-mat/get-sharp-corners.d.ts +4 -4
  234. package/node/mat/find-mat/get-sharp-corners.js +17 -17
  235. package/node/mat/find-mat/get-sharp-corners.js.map +1 -1
  236. package/node/mat/geometry/get-closest-square-distance-to-rect.d.ts +5 -5
  237. package/node/mat/geometry/get-closest-square-distance-to-rect.js +49 -49
  238. package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.d.ts +5 -5
  239. package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.js +15 -15
  240. package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.js.map +1 -1
  241. package/node/mat/get-boundary-piece-beziers.d.ts +11 -11
  242. package/node/mat/get-boundary-piece-beziers.js +58 -58
  243. package/node/mat/get-boundary-piece-beziers.js.map +1 -1
  244. package/node/mat/get-contact-circles-at-interface.d.ts +8 -8
  245. package/node/mat/get-contact-circles-at-interface.js +20 -20
  246. package/node/mat/get-contact-circles-at-interface.js.map +1 -1
  247. package/node/mat/get-largest-vertex.d.ts +4 -4
  248. package/node/mat/get-largest-vertex.js +9 -9
  249. package/node/mat/get-leaves.d.ts +4 -4
  250. package/node/mat/get-leaves.js +12 -12
  251. package/node/mat/get-leaves.js.map +1 -1
  252. package/node/mat/get-neighboring-cps.d.ts +14 -14
  253. package/node/mat/get-neighboring-cps.js +30 -30
  254. package/node/mat/get-neighboring-cps.js.map +1 -1
  255. package/node/mat/get-two-prong-type.d.ts +5 -5
  256. package/node/mat/get-two-prong-type.js +8 -8
  257. package/node/mat/is-another-cp-closeby.d.ts +20 -20
  258. package/node/mat/is-another-cp-closeby.js +55 -55
  259. package/node/mat/is-another-cp-closeby.js.map +1 -1
  260. package/node/mat/simplify-mat-map-only.d.ts +23 -23
  261. package/node/mat/simplify-mat-map-only.js +80 -80
  262. package/node/mat/simplify-mat-map-only.js.map +1 -1
  263. package/node/mat/to-scale-axis/add-debug-info.d.ts +7 -7
  264. package/node/mat/to-scale-axis/add-debug-info.js +13 -13
  265. package/node/mat/to-scale-axis/add-debug-info.js.map +1 -1
  266. package/node/mat/to-scale-axis/cull-non-cycles.d.ts +9 -9
  267. package/node/mat/to-scale-axis/cull-non-cycles.js +51 -51
  268. package/node/mat/to-scale-axis/cull-non-cycles.js.map +1 -1
  269. package/node/mat/to-scale-axis/cull.d.ts +12 -12
  270. package/node/mat/to-scale-axis/cull.js +132 -132
  271. package/node/mat/to-scale-axis/cull.js.map +1 -1
  272. package/node/mat/trim-mat.d.ts +8 -8
  273. package/node/mat/trim-mat.js +16 -16
  274. package/node/mat/trim-mat.js.map +1 -1
  275. package/node/mat.d.ts +22 -22
  276. package/node/mat.js +1 -1
  277. package/node/point-on-shape.d.ts +73 -73
  278. package/node/point-on-shape.js +167 -167
  279. package/node/point-on-shape.js.map +1 -1
  280. package/node/simplify-mat.d.ts +16 -16
  281. package/node/simplify-mat.js +71 -71
  282. package/node/simplify-mat.js.map +1 -1
  283. package/node/svg/get-loop-bounds.d.ts +12 -12
  284. package/node/svg/get-loop-bounds.js +80 -80
  285. package/node/svg/get-loop-bounds.js.map +1 -1
  286. package/node/svg/get-min-y-pos.d.ts +8 -8
  287. package/node/svg/get-min-y-pos.js +9 -9
  288. package/node/svg/get-shape-bounds.d.ts +9 -9
  289. package/node/svg/get-shape-bounds.js +35 -35
  290. package/node/svg/get-shape-bounds.js.map +1 -1
  291. package/node/sweep-line/sweep-line.d.ts +18 -18
  292. package/node/sweep-line/sweep-line.js +72 -72
  293. package/node/sweep-line/sweep-line.js.map +1 -1
  294. package/node/to-scale-axis.d.ts +16 -16
  295. package/node/to-scale-axis.js +74 -73
  296. package/node/to-scale-axis.js.map +1 -1
  297. package/node/traverse-edges.d.ts +10 -10
  298. package/node/traverse-edges.js +21 -21
  299. package/node/traverse-edges.js.map +1 -1
  300. package/node/traverse-vertices.d.ts +12 -12
  301. package/node/traverse-vertices.js +27 -27
  302. package/node/traverse-vertices.js.map +1 -1
  303. package/package.json +29 -24
  304. package/src/circle.ts +3 -3
  305. package/src/compare-curvatures-at-interface.ts +36 -36
  306. package/src/cp-node/clone.ts +6 -6
  307. package/src/cp-node/remove.ts +4 -4
  308. package/src/cp-node.ts +20 -20
  309. package/src/curve.ts +19 -19
  310. package/src/debug/functions/draw-elem/bounding-hull.ts +2 -2
  311. package/src/debug/functions/draw-elem/branch.ts +4 -4
  312. package/src/debug/functions/draw-elem/culls.ts +4 -4
  313. package/src/debug/functions/draw-elem/draw-circle-percent.ts +2 -2
  314. package/src/debug/functions/draw-elem/draw-elem.ts +1 -1
  315. package/src/debug/functions/draw-elem/dull-corner.ts +3 -3
  316. package/src/debug/functions/draw-elem/leaves.ts +4 -4
  317. package/src/debug/functions/draw-elem/loose-bounding-box.ts +2 -2
  318. package/src/debug/functions/draw-elem/mat.ts +4 -4
  319. package/src/debug/functions/draw-elem/max-vertex.ts +2 -2
  320. package/src/debug/functions/draw-elem/min-y.ts +3 -3
  321. package/src/debug/functions/draw-elem/one-prong-at-dull-corner.ts +4 -4
  322. package/src/debug/functions/draw-elem/one-prong.ts +4 -4
  323. package/src/debug/functions/draw-elem/sharp-corner.ts +2 -2
  324. package/src/debug/functions/draw-elem/three-prong.ts +7 -7
  325. package/src/debug/functions/draw-elem/tight-bounding-box.ts +1 -1
  326. package/src/debug/functions/draw-elem/two-prong.ts +1 -1
  327. package/src/debug/functions/draw-elem/vertex.ts +20 -14
  328. package/src/debug/functions/general.ts +3 -3
  329. package/src/debug/functions/three-prong.ts +37 -37
  330. package/src/debug/functions/two-prong.ts +15 -15
  331. package/src/find-mats.ts +19 -19
  332. package/src/get-boundary-bezier-parts-to-next.ts +8 -8
  333. package/src/get-boundary-beziers-to-next.ts +8 -8
  334. package/src/get-branches.ts +7 -7
  335. package/src/get-curve/get-curve-between.ts +21 -21
  336. package/src/get-curve/get-edge-direction.ts +13 -14
  337. package/src/get-interface-ccw.ts +12 -12
  338. package/src/loop/get-max-coordinate.ts +7 -7
  339. package/src/loop.ts +4 -4
  340. package/src/mat/add-to-cp-graph.ts +8 -8
  341. package/src/mat/closest-boundary-point/closest-points-on-curve.ts +5 -6
  342. package/src/mat/closest-boundary-point/cull-bezier-pieces.ts +1 -1
  343. package/src/mat/closest-boundary-point/cull-by-loose-bounding-box.ts +5 -5
  344. package/src/mat/closest-boundary-point/cull-by-tight-boundary-box.ts +5 -5
  345. package/src/mat/closest-boundary-point/get-best-distance-squared.ts +5 -5
  346. package/src/mat/closest-boundary-point/get-close-boundary-points.ts +15 -15
  347. package/src/mat/closest-boundary-point/get-closest-boundary-point.ts +4 -4
  348. package/src/mat/cmp-cp-on-delta.ts +5 -5
  349. package/src/mat/create-new-cp-tree.ts +3 -3
  350. package/src/mat/find-mat/add-1-prong.ts +5 -5
  351. package/src/mat/find-mat/add-2-prong.ts +42 -42
  352. package/src/mat/find-mat/add-3-prong.ts +1 -1
  353. package/src/mat/find-mat/add-debug-info.ts +18 -20
  354. package/src/mat/find-mat/create-get-interesting-points-on-loop.ts +4 -4
  355. package/src/mat/find-mat/create-initial-cp-graph.ts +11 -11
  356. package/src/mat/find-mat/find-2-prong/add-debug-info.ts +4 -4
  357. package/src/mat/find-mat/find-2-prong/cull-bezier-pieces.ts +5 -5
  358. package/src/mat/find-mat/find-2-prong/find-2-prong.ts +27 -27
  359. package/src/mat/find-mat/find-2-prong/find-equidistant-point-on-line.ts +7 -7
  360. package/src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts +4 -4
  361. package/src/mat/find-mat/find-3-prong/calc-better-x.ts +4 -4
  362. package/src/mat/find-mat/find-3-prong/calc-initial-3-prong-center.ts +3 -3
  363. package/src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts +37 -37
  364. package/src/mat/find-mat/find-3-prong/find-3-prong.ts +16 -16
  365. package/src/mat/find-mat/find-3-prong/get-closest-points.ts +1 -1
  366. package/src/mat/find-mat/find-and-add-2-prongs-on-all-paths.ts +2 -2
  367. package/src/mat/find-mat/find-and-add-2-prongs.ts +14 -16
  368. package/src/mat/find-mat/find-and-add-3-prongs.ts +19 -19
  369. package/src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts +6 -6
  370. package/src/mat/find-mat/get-potential-2-prongs.ts +4 -4
  371. package/src/mat/find-mat/get-sharp-corners.ts +4 -4
  372. package/src/mat/find-mat/get-total-abs-curvature.ts +1 -1
  373. package/src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts +3 -3
  374. package/src/mat/get-boundary-piece-beziers.ts +5 -5
  375. package/src/mat/get-contact-circles-at-interface.ts +1 -1
  376. package/src/mat/get-edges-as-array.ts +2 -2
  377. package/src/mat/get-leaves.ts +2 -2
  378. package/src/mat/get-neighboring-cps.ts +1 -1
  379. package/src/mat/is-another-cp-closeby.ts +9 -9
  380. package/src/mat/simplify-mat-map-only.ts +15 -15
  381. package/src/mat/to-scale-axis/add-debug-info.ts +6 -3
  382. package/src/mat/to-scale-axis/add-to-tree.ts +10 -10
  383. package/src/mat/to-scale-axis/calc-groups.ts +19 -19
  384. package/src/mat/to-scale-axis/create-spacial-tree.ts +4 -4
  385. package/src/mat/to-scale-axis/cull-non-cycles.ts +5 -5
  386. package/src/mat/to-scale-axis/cull.ts +5 -5
  387. package/src/mat/to-scale-axis/get-engulfed-vertices.ts +18 -18
  388. package/src/mat/trim-mat.ts +1 -1
  389. package/src/point-on-shape.ts +16 -16
  390. package/src/simplify-mat.ts +10 -10
  391. package/src/svg/get-curvature-at-interface.ts +6 -8
  392. package/src/svg/get-extreme.ts +1 -1
  393. package/src/svg/get-loop-bounds.ts +13 -13
  394. package/src/svg/get-shape-bounds.ts +4 -4
  395. package/src/sweep-line/are-boxes-intersecting.ts +4 -4
  396. package/src/sweep-line/sweep-line.ts +8 -8
  397. package/src/to-scale-axis.ts +18 -17
  398. package/src/traverse-edges.ts +2 -2
  399. package/src/traverse-vertices.ts +2 -2
  400. package/tsconfig.json +0 -1
  401. package/webpack.config.cjs +12 -63
  402. package/browser/index.min.js.LICENSE.txt +0 -2819
  403. package/browser/index.module.js +0 -7149
  404. package/browser/index.module.min.js +0 -2
  405. package/browser/index.module.min.js.LICENSE.txt +0 -2819
@@ -1,17 +1,17 @@
1
- import { IPointOnShape } from '../../point-on-shape.js';
2
- import { BezierPiece } from '../bezier-piece.js';
3
- /**
4
- * @hidden
5
- * Returns the closest boundary point to the given point, limited to the given
6
- * bezier pieces, including the beziers actually checked after culling.
7
- * @param bezierPieces
8
- * @param point
9
- * @param touchedCurve
10
- * @param t
11
- * @param extreme
12
- */
13
- declare function getCloseBoundaryPoints(bezierPieces: BezierPiece[], point: number[], y: IPointOnShape, distance: number): {
14
- pos: IPointOnShape;
15
- d: number;
16
- }[];
17
- export { getCloseBoundaryPoints };
1
+ import { IPointOnShape } from '../../point-on-shape.js';
2
+ import { BezierPiece } from '../bezier-piece.js';
3
+ /**
4
+ * @hidden
5
+ * Returns the closest boundary point to the given point, limited to the given
6
+ * bezier pieces, including the beziers actually checked after culling.
7
+ * @param bezierPieces
8
+ * @param point
9
+ * @param touchedCurve
10
+ * @param t
11
+ * @param extreme
12
+ */
13
+ declare function getCloseBoundaryPoints(bezierPieces: BezierPiece[], point: number[], y: IPointOnShape, distance: number): {
14
+ pos: IPointOnShape;
15
+ d: number;
16
+ }[];
17
+ export { getCloseBoundaryPoints };
@@ -1,81 +1,81 @@
1
- import { distanceBetween } from 'flo-vector2d';
2
- import { PointOnShape } from '../../point-on-shape.js';
3
- import { cullBezierPieces } from './cull-bezier-pieces.js';
4
- import { closestPointsOnCurve } from './closest-points-on-curve.js';
5
- /**
6
- * @hidden
7
- * Returns the closest boundary point to the given point, limited to the given
8
- * bezier pieces, including the beziers actually checked after culling.
9
- * @param bezierPieces
10
- * @param point
11
- * @param touchedCurve
12
- * @param t
13
- * @param extreme
14
- */
15
- function getCloseBoundaryPoints(bezierPieces, point, y, distance) {
16
- let touchedCurve = y.curve;
17
- let t = y.t;
18
- let p_ = y.p;
19
- bezierPieces = cullBezierPieces(bezierPieces, point);
20
- // TODO - integrate with is-another-cp-closeby - we MUST check angle too!
21
- let DISTANCE_TOLERANCE = 1e-9;
22
- let posInfos = [];
23
- for (let i = 0; i < bezierPieces.length; i++) {
24
- let bezierPiece = bezierPieces[i];
25
- // TOOD - important - should be able to return multiple points
26
- let ps = closestPointsOnCurve(bezierPiece.curve, point, bezierPiece.ts, touchedCurve, t);
27
- //if (ps === undefined) { continue; }
28
- for (let j = 0; j < ps.length; j++) {
29
- let p = ps[j];
30
- let d = distanceBetween(p.p, point);
31
- let curve = bezierPiece.curve;
32
- let t_ = p.t;
33
- if (Math.abs(d - distance) < DISTANCE_TOLERANCE) {
34
- if (t_ === 0) {
35
- t_ = 1;
36
- curve = bezierPiece.curve.prev;
37
- }
38
- posInfos.push({ pos: new PointOnShape(curve, t_), d });
39
- }
40
- }
41
- }
42
- if (posInfos.length > 1) {
43
- // Remove ones that are too close together.
44
- // TODO - in future remove all these checks and join n-prongs when they
45
- // are being added - much simpler and more symmetric. Remeber order when
46
- // comparing closeness!
47
- let indexesToCheck = [];
48
- for (let i = 0; i < posInfos.length; i++) {
49
- let pi = posInfos[i];
50
- // Only check if they are close to the edges. Why??
51
- //if (pi.pos.t < 1e-2 || 1-pi.pos.t < 1e-2) {
52
- indexesToCheck.push(i);
53
- //}
54
- }
55
- let indexesToRemove = [];
56
- for (let i = 0; i < indexesToCheck.length; i++) {
57
- for (let j = i + 1; j < indexesToCheck.length; j++) {
58
- if (i === j) {
59
- continue;
60
- }
61
- let p1 = posInfos[indexesToCheck[i]].pos.p;
62
- let p2 = posInfos[indexesToCheck[j]].pos.p;
63
- // Below checks for source point too - similar to
64
- // isAnotherCpCloseBy
65
- let p3 = p_;
66
- if ((Math.abs(p1[0] - p2[0]) < 1e-6 &&
67
- Math.abs(p1[1] - p2[1]) < 1e-6) ||
68
- (Math.abs(p1[0] - p3[0]) < 1e-6 &&
69
- Math.abs(p1[1] - p3[1]) < 1e-6)) {
70
- indexesToRemove.push(indexesToCheck[i]);
71
- }
72
- }
73
- }
74
- for (let i = indexesToRemove.length - 1; i >= 0; i--) {
75
- posInfos.splice(indexesToRemove[i], 1);
76
- }
77
- }
78
- return posInfos;
79
- }
80
- export { getCloseBoundaryPoints };
1
+ import { distanceBetween } from 'flo-vector2d';
2
+ import { PointOnShape } from '../../point-on-shape.js';
3
+ import { cullBezierPieces } from './cull-bezier-pieces.js';
4
+ import { closestPointsOnCurve } from './closest-points-on-curve.js';
5
+ /**
6
+ * @hidden
7
+ * Returns the closest boundary point to the given point, limited to the given
8
+ * bezier pieces, including the beziers actually checked after culling.
9
+ * @param bezierPieces
10
+ * @param point
11
+ * @param touchedCurve
12
+ * @param t
13
+ * @param extreme
14
+ */
15
+ function getCloseBoundaryPoints(bezierPieces, point, y, distance) {
16
+ const touchedCurve = y.curve;
17
+ const t = y.t;
18
+ const p_ = y.p;
19
+ bezierPieces = cullBezierPieces(bezierPieces, point);
20
+ // TODO - integrate with is-another-cp-closeby - we MUST check angle too!
21
+ const DISTANCE_TOLERANCE = 1e-9;
22
+ const posInfos = [];
23
+ for (let i = 0; i < bezierPieces.length; i++) {
24
+ const bezierPiece = bezierPieces[i];
25
+ // TOOD - important - should be able to return multiple points
26
+ const ps = closestPointsOnCurve(bezierPiece.curve, point, bezierPiece.ts, touchedCurve, t);
27
+ //if (ps === undefined) { continue; }
28
+ for (let j = 0; j < ps.length; j++) {
29
+ const p = ps[j];
30
+ const d = distanceBetween(p.p, point);
31
+ let curve = bezierPiece.curve;
32
+ let t_ = p.t;
33
+ if (Math.abs(d - distance) < DISTANCE_TOLERANCE) {
34
+ if (t_ === 0) {
35
+ t_ = 1;
36
+ curve = bezierPiece.curve.prev;
37
+ }
38
+ posInfos.push({ pos: new PointOnShape(curve, t_), d });
39
+ }
40
+ }
41
+ }
42
+ if (posInfos.length > 1) {
43
+ // Remove ones that are too close together.
44
+ // TODO - in future remove all these checks and join n-prongs when they
45
+ // are being added - much simpler and more symmetric. Remeber order when
46
+ // comparing closeness!
47
+ const indexesToCheck = [];
48
+ for (let i = 0; i < posInfos.length; i++) {
49
+ const pi = posInfos[i];
50
+ // Only check if they are close to the edges. Why??
51
+ //if (pi.pos.t < 1e-2 || 1-pi.pos.t < 1e-2) {
52
+ indexesToCheck.push(i);
53
+ //}
54
+ }
55
+ const indexesToRemove = [];
56
+ for (let i = 0; i < indexesToCheck.length; i++) {
57
+ for (let j = i + 1; j < indexesToCheck.length; j++) {
58
+ if (i === j) {
59
+ continue;
60
+ }
61
+ const p1 = posInfos[indexesToCheck[i]].pos.p;
62
+ const p2 = posInfos[indexesToCheck[j]].pos.p;
63
+ // Below checks for source point too - similar to
64
+ // isAnotherCpCloseBy
65
+ const p3 = p_;
66
+ if ((Math.abs(p1[0] - p2[0]) < 1e-6 &&
67
+ Math.abs(p1[1] - p2[1]) < 1e-6) ||
68
+ (Math.abs(p1[0] - p3[0]) < 1e-6 &&
69
+ Math.abs(p1[1] - p3[1]) < 1e-6)) {
70
+ indexesToRemove.push(indexesToCheck[i]);
71
+ }
72
+ }
73
+ }
74
+ for (let i = indexesToRemove.length - 1; i >= 0; i--) {
75
+ posInfos.splice(indexesToRemove[i], 1);
76
+ }
77
+ }
78
+ return posInfos;
79
+ }
80
+ export { getCloseBoundaryPoints };
81
81
  //# sourceMappingURL=get-close-boundary-points.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-close-boundary-points.js","sourceRoot":"","sources":["../../../src/mat/closest-boundary-point/get-close-boundary-points.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-close-boundary-points.js","sourceRoot":"","sources":["../../../src/mat/closest-boundary-point/get-close-boundary-points.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
- import { Curve } from '../../curve.js';
2
- import { IPointOnShape } from '../../point-on-shape.js';
3
- import { BezierPiece } from '../bezier-piece.js';
4
- /**
5
- * @hidden
6
- * Returns the closest boundary point to the given point, limited to the given
7
- * bezier pieces, including the beziers actually checked after culling.
8
- * @param bezierPieces
9
- * @param point
10
- * @param touchedCurve
11
- * @param t
12
- * @param extreme
13
- */
14
- declare function getClosestBoundaryPoint(bezierPieces: BezierPiece[], point: number[], touchedCurve: Curve, t: number): {
15
- pos: IPointOnShape;
16
- d: number;
17
- };
18
- export { getClosestBoundaryPoint };
1
+ import { Curve } from '../../curve.js';
2
+ import { IPointOnShape } from '../../point-on-shape.js';
3
+ import { BezierPiece } from '../bezier-piece.js';
4
+ /**
5
+ * @hidden
6
+ * Returns the closest boundary point to the given point, limited to the given
7
+ * bezier pieces, including the beziers actually checked after culling.
8
+ * @param bezierPieces
9
+ * @param point
10
+ * @param touchedCurve
11
+ * @param t
12
+ * @param extreme
13
+ */
14
+ declare function getClosestBoundaryPoint(bezierPieces: BezierPiece[], point: number[], touchedCurve: Curve, t: number): {
15
+ pos: IPointOnShape;
16
+ d: number;
17
+ };
18
+ export { getClosestBoundaryPoint };
@@ -1,41 +1,41 @@
1
- import { distanceBetween, getObjClosestTo } from 'flo-vector2d';
2
- import { PointOnShape } from '../../point-on-shape.js';
3
- import { cullBezierPieces } from './cull-bezier-pieces.js';
4
- import { closestPointsOnCurve } from './closest-points-on-curve.js';
5
- /**
6
- * @hidden
7
- * Returns the closest boundary point to the given point, limited to the given
8
- * bezier pieces, including the beziers actually checked after culling.
9
- * @param bezierPieces
10
- * @param point
11
- * @param touchedCurve
12
- * @param t
13
- * @param extreme
14
- */
15
- function getClosestBoundaryPoint(bezierPieces, point, touchedCurve, t) {
16
- bezierPieces = cullBezierPieces(bezierPieces, point);
17
- let bestDistance = Number.POSITIVE_INFINITY;
18
- let posInfo;
19
- for (let i = 0; i < bezierPieces.length; i++) {
20
- let bezierPiece = bezierPieces[i];
21
- let ps = closestPointsOnCurve(bezierPiece.curve, point, bezierPiece.ts, touchedCurve, t);
22
- let p = getObjClosestTo(point, ps, p => p.p);
23
- if (p === undefined) {
24
- continue;
25
- }
26
- let d = distanceBetween(p.p, point);
27
- let curve = bezierPiece.curve;
28
- let t_ = p.t;
29
- if (d < bestDistance) {
30
- if (t_ === 0) {
31
- t_ = 1;
32
- curve = bezierPiece.curve.prev;
33
- }
34
- posInfo = { pos: new PointOnShape(curve, t_), d };
35
- bestDistance = d;
36
- }
37
- }
38
- return posInfo;
39
- }
40
- export { getClosestBoundaryPoint };
1
+ import { distanceBetween, getObjClosestTo } from 'flo-vector2d';
2
+ import { PointOnShape } from '../../point-on-shape.js';
3
+ import { cullBezierPieces } from './cull-bezier-pieces.js';
4
+ import { closestPointsOnCurve } from './closest-points-on-curve.js';
5
+ /**
6
+ * @hidden
7
+ * Returns the closest boundary point to the given point, limited to the given
8
+ * bezier pieces, including the beziers actually checked after culling.
9
+ * @param bezierPieces
10
+ * @param point
11
+ * @param touchedCurve
12
+ * @param t
13
+ * @param extreme
14
+ */
15
+ function getClosestBoundaryPoint(bezierPieces, point, touchedCurve, t) {
16
+ bezierPieces = cullBezierPieces(bezierPieces, point);
17
+ let bestDistance = Number.POSITIVE_INFINITY;
18
+ let posInfo;
19
+ for (let i = 0; i < bezierPieces.length; i++) {
20
+ const bezierPiece = bezierPieces[i];
21
+ const ps = closestPointsOnCurve(bezierPiece.curve, point, bezierPiece.ts, touchedCurve, t);
22
+ const p = getObjClosestTo(point, ps, p => p.p);
23
+ if (p === undefined) {
24
+ continue;
25
+ }
26
+ const d = distanceBetween(p.p, point);
27
+ let curve = bezierPiece.curve;
28
+ let t_ = p.t;
29
+ if (d < bestDistance) {
30
+ if (t_ === 0) {
31
+ t_ = 1;
32
+ curve = bezierPiece.curve.prev;
33
+ }
34
+ posInfo = { pos: new PointOnShape(curve, t_), d };
35
+ bestDistance = d;
36
+ }
37
+ }
38
+ return posInfo;
39
+ }
40
+ export { getClosestBoundaryPoint };
41
41
  //# sourceMappingURL=get-closest-boundary-point.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-closest-boundary-point.js","sourceRoot":"","sources":["../../../src/mat/closest-boundary-point/get-closest-boundary-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAiB,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CACxB,YAA2B,EAC3B,KAAe,EACrB,YAAmB,EACnB,CAAS;IAEV,YAAY,GAAG,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAErD,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC5C,IAAI,OAA0C,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAElC,IAAI,EAAE,GAAG,oBAAoB,CAC3B,WAAW,CAAC,KAAK,EACjB,KAAK,EACL,WAAW,CAAC,EAAE,EACd,YAAY,EACZ,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5C,IAAI,CAAC,KAAK,SAAS,EAAE;YAAE,SAAS;SAAE;QAElC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAC9B,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC;QAEZ,IAAI,CAAC,GAAG,YAAY,EAAE;YACrB,IAAI,EAAE,KAAK,CAAC,EAAE;gBACb,EAAE,GAAG,CAAC,CAAC;gBACP,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;aAC/B;YAED,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAClD,YAAY,GAAG,CAAC,CAAC;SACjB;KACD;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAGD,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"get-closest-boundary-point.js","sourceRoot":"","sources":["../../../src/mat/closest-boundary-point/get-closest-boundary-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAiB,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CACxB,YAA2B,EAC3B,KAAe,EACrB,YAAmB,EACnB,CAAS;IAEV,YAAY,GAAG,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAErD,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC5C,IAAI,OAA0C,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpC,MAAM,EAAE,GAAG,oBAAoB,CAC7B,WAAW,CAAC,KAAK,EACjB,KAAK,EACL,WAAW,CAAC,EAAE,EACd,YAAY,EACZ,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE9C,IAAI,CAAC,KAAK,SAAS,EAAE;YAAE,SAAS;SAAE;QAElC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEtC,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAC9B,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC;QAEZ,IAAI,CAAC,GAAG,YAAY,EAAE;YACrB,IAAI,EAAE,KAAK,CAAC,EAAE;gBACb,EAAE,GAAG,CAAC,CAAC;gBACP,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;aAC/B;YAED,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAClD,YAAY,GAAG,CAAC,CAAC;SACjB;KACD;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAGD,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,37 +1,37 @@
1
- /**
2
- * @hidden
3
- * Represents a corner on the shape boundary, i.e. a point where two bezier
4
- * curves meet. Typically used internally only.
5
- */
6
- interface Corner {
7
- /**
8
- * The unit tangents at the points t === 1 of the first curve and at
9
- * t === 0 of the second respectively.
10
- */
11
- tangents: number[][];
12
- /** The cross of the unit tangents. */
13
- crossTangents: number;
14
- /**
15
- * True if the corner is sharp, i.e. > 0 radians as one goes in a positive
16
- * direction around the shape boundary.
17
- */
18
- isSharp: boolean;
19
- /**
20
- * True if the corner is dull, i.e. < 0 radians as one goes in a positive
21
- * direction around the shape boundary.
22
- */
23
- isDull: boolean;
24
- /**
25
- * True if the corner is quite sharp, i.e. > δ radians as one goes in a
26
- * positive direction around the shape boundary where δ is some
27
- * pre-determined parameter.
28
- */
29
- isQuiteSharp: boolean;
30
- /**
31
- * True if the corner is quite dull, i.e. < δ radians as one goes in a
32
- * positive direction around the shape boundary where δ is some
33
- * pre-determined parameter.
34
- */
35
- isQuiteDull: boolean;
36
- }
37
- export { Corner };
1
+ /**
2
+ * @hidden
3
+ * Represents a corner on the shape boundary, i.e. a point where two bezier
4
+ * curves meet. Typically used internally only.
5
+ */
6
+ interface Corner {
7
+ /**
8
+ * The unit tangents at the points t === 1 of the first curve and at
9
+ * t === 0 of the second respectively.
10
+ */
11
+ tangents: number[][];
12
+ /** The cross of the unit tangents. */
13
+ crossTangents: number;
14
+ /**
15
+ * True if the corner is sharp, i.e. > 0 radians as one goes in a positive
16
+ * direction around the shape boundary.
17
+ */
18
+ isSharp: boolean;
19
+ /**
20
+ * True if the corner is dull, i.e. < 0 radians as one goes in a positive
21
+ * direction around the shape boundary.
22
+ */
23
+ isDull: boolean;
24
+ /**
25
+ * True if the corner is quite sharp, i.e. > δ radians as one goes in a
26
+ * positive direction around the shape boundary where δ is some
27
+ * pre-determined parameter.
28
+ */
29
+ isQuiteSharp: boolean;
30
+ /**
31
+ * True if the corner is quite dull, i.e. < δ radians as one goes in a
32
+ * positive direction around the shape boundary where δ is some
33
+ * pre-determined parameter.
34
+ */
35
+ isQuiteDull: boolean;
36
+ }
37
+ export { Corner };
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=corner.js.map
@@ -1,9 +1,9 @@
1
- import { LlRbTree } from 'flo-ll-rb-tree';
2
- import { CpNode } from '../cp-node.js';
3
- import { Loop } from '../loop.js';
4
- /**
5
- * @hidden
6
- * @param cpNode
7
- */
8
- declare function createNewCpTree(cpNode: CpNode): Map<Loop, LlRbTree<CpNode>>;
9
- export { createNewCpTree };
1
+ import { LlRbTree } from 'flo-ll-rb-tree';
2
+ import { CpNode } from '../cp-node.js';
3
+ import { Loop } from '../loop.js';
4
+ /**
5
+ * @hidden
6
+ * @param cpNode
7
+ */
8
+ declare function createNewCpTree(cpNode: CpNode): Map<Loop, LlRbTree<CpNode>>;
9
+ export { createNewCpTree };
@@ -1,24 +1,24 @@
1
- import { LlRbTree } from 'flo-ll-rb-tree';
2
- import { CpNode } from '../cp-node.js';
3
- /**
4
- * @hidden
5
- * @param cpNode
6
- */
7
- function createNewCpTree(cpNode) {
8
- let newCpTrees = new Map();
9
- let cps = cpNode.getAllOnLoop();
10
- cps.forEach(f);
11
- function f(cpNode) {
12
- let loop = cpNode.cp.pointOnShape.curve.loop;
13
- let cpTree = newCpTrees.get(loop);
14
- if (!cpTree) {
15
- // qqq cpTree = new LlRbTree(CpNode.comparator, [], true);
16
- cpTree = new LlRbTree(CpNode.comparator, false);
17
- newCpTrees.set(loop, cpTree);
18
- }
19
- cpTree.insert(cpNode);
20
- }
21
- return newCpTrees;
22
- }
23
- export { createNewCpTree };
1
+ import { LlRbTree } from 'flo-ll-rb-tree';
2
+ import { CpNode } from '../cp-node.js';
3
+ /**
4
+ * @hidden
5
+ * @param cpNode
6
+ */
7
+ function createNewCpTree(cpNode) {
8
+ const newCpTrees = new Map();
9
+ const cps = cpNode.getAllOnLoop();
10
+ cps.forEach(f);
11
+ function f(cpNode) {
12
+ const loop = cpNode.cp.pointOnShape.curve.loop;
13
+ let cpTree = newCpTrees.get(loop);
14
+ if (!cpTree) {
15
+ // qqq cpTree = new LlRbTree(CpNode.comparator, [], true);
16
+ cpTree = new LlRbTree(CpNode.comparator, false);
17
+ newCpTrees.set(loop, cpTree);
18
+ }
19
+ cpTree.insert(cpNode);
20
+ }
21
+ return newCpTrees;
22
+ }
23
+ export { createNewCpTree };
24
24
  //# sourceMappingURL=create-new-cp-tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-new-cp-tree.js","sourceRoot":"","sources":["../../src/mat/create-new-cp-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvC;;;GAGG;AACH,SAAS,eAAe,CAAC,MAAc;IACtC,IAAI,UAAU,GAA+B,IAAI,GAAG,EAAE,CAAC;IAEvD,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAEhC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,CAAC,MAAc;QACxB,IAAI,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7C,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE;YACZ,2DAA2D;YAC3D,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAChD,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC7B;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"create-new-cp-tree.js","sourceRoot":"","sources":["../../src/mat/create-new-cp-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvC;;;GAGG;AACH,SAAS,eAAe,CAAC,MAAc;IACtC,MAAM,UAAU,GAA+B,IAAI,GAAG,EAAE,CAAC;IAEzD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAElC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,CAAC,MAAc;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/C,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE;YACZ,2DAA2D;YAC3D,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAChD,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC7B;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -1,3 +1,3 @@
1
- /** @hidden */
2
- declare type ElemType_TwoProng = 'twoProng_regular' | 'twoProng_holeClosing';
3
- export { ElemType_TwoProng };
1
+ /** @hidden */
2
+ type ElemType_TwoProng = 'twoProng_regular' | 'twoProng_holeClosing';
3
+ export { ElemType_TwoProng };
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=elem-type-two-prong.js.map
@@ -1,12 +1,12 @@
1
- import { LlRbTree } from 'flo-ll-rb-tree';
2
- import { Loop } from '../../loop.js';
3
- import { IPointOnShape } from '../../point-on-shape.js';
4
- import { CpNode } from '../../cp-node.js';
5
- /**
6
- * @hidden
7
- * Add a 1-prong to the MAT.
8
- * @param cpGraphs
9
- * @param pos
10
- */
11
- declare function add1Prong(maxOsculatingCircleRadius: number, cpGraphs: Map<Loop, LlRbTree<CpNode>>, pos: IPointOnShape): void;
12
- export { add1Prong };
1
+ import { LlRbTree } from 'flo-ll-rb-tree';
2
+ import { Loop } from '../../loop.js';
3
+ import { IPointOnShape } from '../../point-on-shape.js';
4
+ import { CpNode } from '../../cp-node.js';
5
+ /**
6
+ * @hidden
7
+ * Add a 1-prong to the MAT.
8
+ * @param cpGraphs
9
+ * @param pos
10
+ */
11
+ declare function add1Prong(maxOsculatingCircleRadius: number, cpGraphs: Map<Loop, LlRbTree<CpNode>>, pos: IPointOnShape): void;
12
+ export { add1Prong };
@@ -1,43 +1,43 @@
1
- import { getOsculatingCircle, calcPosOrder, isPosDullCorner } from '../../point-on-shape.js';
2
- import { addToCpGraph } from '../add-to-cp-graph.js';
3
- import { isAnotherCpCloseby } from '../is-another-cp-closeby.js';
4
- /**
5
- * @hidden
6
- * Add a 1-prong to the MAT.
7
- * @param cpGraphs
8
- * @param pos
9
- */
10
- function add1Prong(maxOsculatingCircleRadius, cpGraphs, pos) {
11
- //if (PointOnShape.isDullCorner(pos)) {
12
- if (isPosDullCorner(pos)) {
13
- // This is a 1-prong at a dull corner.
14
- // TODO IMPORTANT
15
- // Remove this line, uncomment piece below it and implement the
16
- // following strategy to find the 3-prongs: if deltas are conjoined due
17
- // to dull corner, split the conjoinment by inserting successively
18
- // closer (binary division) 2-prongs. If a 2-prong actually fails,
19
- // simply remove the 1-prong at the dull corner. In this way **all**
20
- // terminal points are found, e.g. zoom in on top left leg of ant.
21
- // Afterthought: there is a better way - split points by two prongs.
22
- //toRemove.push(posNode); // this!
23
- if (typeof _debug_ !== 'undefined') {
24
- _debug_.generated.elems.oneProngAtDullCorner.push(pos);
25
- }
26
- return;
27
- }
28
- //let circle = PointOnShape.getOsculatingCircle(maxOsculatingCircleRadius, pos);
29
- let circle = getOsculatingCircle(maxOsculatingCircleRadius, pos);
30
- //let order = PointOnShape.calcOrder(circle, pos);
31
- let order = calcPosOrder(circle, pos);
32
- // Make sure there isn't already a ContactPoint close by - it can cause
33
- // floating point stability issues.
34
- if (isAnotherCpCloseby(cpGraphs, pos, circle, order, 0, 1000, 'magenta')) {
35
- return;
36
- }
37
- addToCpGraph(circle, [-0.5, +0.5], cpGraphs, [pos, pos]);
38
- if (typeof _debug_ !== 'undefined') {
39
- _debug_.generated.elems.oneProng.push(pos);
40
- }
41
- }
42
- export { add1Prong };
1
+ import { getOsculatingCircle, calcPosOrder, isPosDullCorner } from '../../point-on-shape.js';
2
+ import { addToCpGraph } from '../add-to-cp-graph.js';
3
+ import { isAnotherCpCloseby } from '../is-another-cp-closeby.js';
4
+ /**
5
+ * @hidden
6
+ * Add a 1-prong to the MAT.
7
+ * @param cpGraphs
8
+ * @param pos
9
+ */
10
+ function add1Prong(maxOsculatingCircleRadius, cpGraphs, pos) {
11
+ //if (PointOnShape.isDullCorner(pos)) {
12
+ if (isPosDullCorner(pos)) {
13
+ // This is a 1-prong at a dull corner.
14
+ // TODO IMPORTANT
15
+ // Remove this line, uncomment piece below it and implement the
16
+ // following strategy to find the 3-prongs: if deltas are conjoined due
17
+ // to dull corner, split the conjoinment by inserting successively
18
+ // closer (binary division) 2-prongs. If a 2-prong actually fails,
19
+ // simply remove the 1-prong at the dull corner. In this way **all**
20
+ // terminal points are found, e.g. zoom in on top left leg of ant.
21
+ // Afterthought: there is a better way - split points by two prongs.
22
+ //toRemove.push(posNode); // this!
23
+ if (typeof _debug_ !== 'undefined') {
24
+ _debug_.generated.elems.oneProngAtDullCorner.push(pos);
25
+ }
26
+ return;
27
+ }
28
+ //let circle = PointOnShape.getOsculatingCircle(maxOsculatingCircleRadius, pos);
29
+ const circle = getOsculatingCircle(maxOsculatingCircleRadius, pos);
30
+ //const order = PointOnShape.calcOrder(circle, pos);
31
+ const order = calcPosOrder(circle, pos);
32
+ // Make sure there isn't already a ContactPoint close by - it can cause
33
+ // floating point stability issues.
34
+ if (isAnotherCpCloseby(cpGraphs, pos, circle, order, 0, 1000, 'magenta')) {
35
+ return;
36
+ }
37
+ addToCpGraph(circle, [-0.5, +0.5], cpGraphs, [pos, pos]);
38
+ if (typeof _debug_ !== 'undefined') {
39
+ _debug_.generated.elems.oneProng.push(pos);
40
+ }
41
+ }
42
+ export { add1Prong };
43
43
  //# sourceMappingURL=add-1-prong.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-1-prong.js","sourceRoot":"","sources":["../../../src/mat/find-mat/add-1-prong.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAiB,MAAM,yBAAyB,CAAC;AAE5G,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE;;;;;GAKG;AACH,SAAS,SAAS,CAChB,yBAAiC,EAC3B,QAAoC,EACpC,GAAkB;IAEzB,uCAAuC;IACpC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;QAC5B,sCAAsC;QAEtC,kBAAkB;QAClB,gEAAgE;QAChE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QAC/D,kEAAkE;QAClE,oEAAoE;QAE1E,kCAAkC;QAElC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;YAC1B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1D;QAEP,OAAO;KACP;IAED,gFAAgF;IAChF,IAAI,MAAM,GAAG,mBAAmB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAEjE,kDAAkD;IAClD,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,uEAAuE;IACvE,mCAAmC;IACnC,IAAI,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE;QACzE,OAAO;KACP;IAEE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAE5D,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAC7B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9C;AACL,CAAC;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"add-1-prong.js","sourceRoot":"","sources":["../../../src/mat/find-mat/add-1-prong.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAiB,MAAM,yBAAyB,CAAC;AAE5G,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE;;;;;GAKG;AACH,SAAS,SAAS,CAChB,yBAAiC,EAC3B,QAAoC,EACpC,GAAkB;IAEzB,uCAAuC;IACpC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;QAC5B,sCAAsC;QAEtC,kBAAkB;QAClB,gEAAgE;QAChE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QAC/D,kEAAkE;QAClE,oEAAoE;QAE1E,kCAAkC;QAElC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;YAC1B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1D;QAEP,OAAO;KACP;IAED,gFAAgF;IAChF,MAAM,MAAM,GAAG,mBAAmB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAEnE,oDAAoD;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,uEAAuE;IACvE,mCAAmC;IACnC,IAAI,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE;QACzE,OAAO;KACP;IAEE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAE5D,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAC7B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9C;AACL,CAAC;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}