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,4 +1,4 @@
1
- import { CpNode } from '../cp-node.js';
2
- /** @hidden */
3
- declare function getLeaves(cpNode: CpNode): CpNode[];
4
- export { getLeaves };
1
+ import { CpNode } from '../cp-node.js';
2
+ /** @hidden */
3
+ declare function getLeaves(cpNode: CpNode): CpNode[];
4
+ export { getLeaves };
@@ -1,13 +1,13 @@
1
- /** @hidden */
2
- function getLeaves(cpNode) {
3
- let leaves = [];
4
- let cps = cpNode.getAllOnLoop();
5
- cps.forEach(function (cp) {
6
- if (cp.isTerminating()) {
7
- leaves.push(cp);
8
- }
9
- });
10
- return leaves;
11
- }
12
- export { getLeaves };
1
+ /** @hidden */
2
+ function getLeaves(cpNode) {
3
+ const leaves = [];
4
+ const cps = cpNode.getAllOnLoop();
5
+ cps.forEach(function (cp) {
6
+ if (cp.isTerminating()) {
7
+ leaves.push(cp);
8
+ }
9
+ });
10
+ return leaves;
11
+ }
12
+ export { getLeaves };
13
13
  //# sourceMappingURL=get-leaves.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-leaves.js","sourceRoot":"","sources":["../../src/mat/get-leaves.ts"],"names":[],"mappings":"AAGA,cAAc;AACd,SAAS,SAAS,CAAC,MAAc;IAC7B,IAAI,MAAM,GAAa,EAAE,CAAC;IAE1B,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAChC,GAAG,CAAC,OAAO,CAAC,UAAS,EAAE;QACnB,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnB;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"get-leaves.js","sourceRoot":"","sources":["../../src/mat/get-leaves.ts"],"names":[],"mappings":"AAGA,cAAc;AACd,SAAS,SAAS,CAAC,MAAc;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAClC,GAAG,CAAC,OAAO,CAAC,UAAS,EAAE;QACnB,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnB;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1,14 +1,14 @@
1
- import { LlRbTree } from 'flo-ll-rb-tree';
2
- import { IPointOnShape } from '../point-on-shape.js';
3
- import { CpNode } from '../cp-node.js';
4
- /**
5
- * @hidden
6
- * Returns the boundary piece that starts at the immediate previous point on the
7
- * shape and ends at the immediate next point.
8
- * @param cpTree
9
- * @param pos
10
- * @param order
11
- * @param order2
12
- */
13
- declare function getNeighbouringPoints(cpTree: LlRbTree<CpNode>, pos: IPointOnShape, order: number, order2: number): CpNode[];
14
- export { getNeighbouringPoints };
1
+ import { LlRbTree } from 'flo-ll-rb-tree';
2
+ import { IPointOnShape } from '../point-on-shape.js';
3
+ import { CpNode } from '../cp-node.js';
4
+ /**
5
+ * @hidden
6
+ * Returns the boundary piece that starts at the immediate previous point on the
7
+ * shape and ends at the immediate next point.
8
+ * @param cpTree
9
+ * @param pos
10
+ * @param order
11
+ * @param order2
12
+ */
13
+ declare function getNeighbouringPoints(cpTree: LlRbTree<CpNode>, pos: IPointOnShape, order: number, order2: number): CpNode[];
14
+ export { getNeighbouringPoints };
@@ -1,31 +1,31 @@
1
- import { CpNode } from '../cp-node.js';
2
- /**
3
- * @hidden
4
- * Returns the boundary piece that starts at the immediate previous point on the
5
- * shape and ends at the immediate next point.
6
- * @param cpTree
7
- * @param pos
8
- * @param order
9
- * @param order2
10
- */
11
- function getNeighbouringPoints(cpTree, pos, order, order2) {
12
- let cps = cpTree.findBounds(new CpNode({ pointOnShape: pos, circle: undefined, order, order2 }, false, false));
13
- if (!cps[0] && !cps[1]) {
14
- // The tree is still empty
15
- return [undefined, undefined];
16
- }
17
- if (!cps[0] || !cps[1]) {
18
- // Smaller than all -> cptree.min() === cps[1].data OR
19
- // Larger than all -> cptree.max() === cps[0].data
20
- return [
21
- cpTree.max(cpTree.root),
22
- cpTree.min(cpTree.root)
23
- ];
24
- }
25
- return [
26
- cps[0].datum,
27
- cps[1].datum
28
- ];
29
- }
30
- export { getNeighbouringPoints };
1
+ import { CpNode } from '../cp-node.js';
2
+ /**
3
+ * @hidden
4
+ * Returns the boundary piece that starts at the immediate previous point on the
5
+ * shape and ends at the immediate next point.
6
+ * @param cpTree
7
+ * @param pos
8
+ * @param order
9
+ * @param order2
10
+ */
11
+ function getNeighbouringPoints(cpTree, pos, order, order2) {
12
+ const cps = cpTree.findBounds(new CpNode({ pointOnShape: pos, circle: undefined, order, order2 }, false, false));
13
+ if (!cps[0] && !cps[1]) {
14
+ // The tree is still empty
15
+ return [undefined, undefined];
16
+ }
17
+ if (!cps[0] || !cps[1]) {
18
+ // Smaller than all -> cptree.min() === cps[1].data OR
19
+ // Larger than all -> cptree.max() === cps[0].data
20
+ return [
21
+ cpTree.max(cpTree.root),
22
+ cpTree.min(cpTree.root)
23
+ ];
24
+ }
25
+ return [
26
+ cps[0].datum,
27
+ cps[1].datum
28
+ ];
29
+ }
30
+ export { getNeighbouringPoints };
31
31
  //# sourceMappingURL=get-neighboring-cps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-neighboring-cps.js","sourceRoot":"","sources":["../../src/mat/get-neighboring-cps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CACtB,MAAwB,EACxB,GAAkB,EAClB,KAAa,EACb,MAAc;IAElB,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CACvB,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CACpF,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACpB,0BAA0B;QAC1B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAa,CAAC;KAC7C;IAED,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACpB,sDAAsD;QACtD,mDAAmD;QACnD,OAAO;YACH,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;KACjB;IAED,OAAO;QACH,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;QACZ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;KACH,CAAC;AAClB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
1
+ {"version":3,"file":"get-neighboring-cps.js","sourceRoot":"","sources":["../../src/mat/get-neighboring-cps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CACtB,MAAwB,EACxB,GAAkB,EAClB,KAAa,EACb,MAAc;IAElB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CACzB,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CACpF,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACpB,0BAA0B;QAC1B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAa,CAAC;KAC7C;IAED,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACpB,sDAAsD;QACtD,mDAAmD;QACnD,OAAO;YACH,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;KACjB;IAED,OAAO;QACH,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;QACZ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;KACH,CAAC;AAClB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
- import { TwoProngForDebugging } from '../debug/two-prong-for-debugging.js';
2
- import { ElemType_TwoProng } from './elem-type-two-prong.js';
3
- /** @hidden */
4
- declare function getTwoProngType(e: TwoProngForDebugging): ElemType_TwoProng;
5
- export { getTwoProngType };
1
+ import { TwoProngForDebugging } from '../debug/two-prong-for-debugging.js';
2
+ import { ElemType_TwoProng } from './elem-type-two-prong.js';
3
+ /** @hidden */
4
+ declare function getTwoProngType(e: TwoProngForDebugging): ElemType_TwoProng;
5
+ export { getTwoProngType };
@@ -1,9 +1,9 @@
1
- /** @hidden */
2
- function getTwoProngType(e) {
3
- if (e.holeClosing) {
4
- return 'twoProng_holeClosing';
5
- }
6
- return 'twoProng_regular';
7
- }
8
- export { getTwoProngType };
1
+ /** @hidden */
2
+ function getTwoProngType(e) {
3
+ if (e.holeClosing) {
4
+ return 'twoProng_holeClosing';
5
+ }
6
+ return 'twoProng_regular';
7
+ }
8
+ export { getTwoProngType };
9
9
  //# sourceMappingURL=get-two-prong-type.js.map
@@ -1,20 +1,20 @@
1
- import { LlRbTree } from 'flo-ll-rb-tree';
2
- import { Loop } from '../loop.js';
3
- import { CpNode } from '../cp-node.js';
4
- import { IPointOnShape } from '../point-on-shape.js';
5
- import { Circle } from '../circle.js';
6
- /**
7
- * @hidden
8
- * Returns true if another CpNode is close to the given implied (via pos, order
9
- * and order2) CpNode.
10
- * @param cpTrees
11
- * @param pos
12
- * @param circle
13
- * @param order
14
- * @param order2
15
- * @param extreme The maximum coordinate value used to calculate floating point
16
- * tolerances.
17
- * @param color Used for debugging only
18
- */
19
- declare function isAnotherCpCloseby(cpTrees: Map<Loop, LlRbTree<CpNode>>, pos: IPointOnShape, circle: Circle, order: number, order2: number, extreme: number, color: string): boolean;
20
- export { isAnotherCpCloseby };
1
+ import { LlRbTree } from 'flo-ll-rb-tree';
2
+ import { Loop } from '../loop.js';
3
+ import { CpNode } from '../cp-node.js';
4
+ import { IPointOnShape } from '../point-on-shape.js';
5
+ import { Circle } from '../circle.js';
6
+ /**
7
+ * @hidden
8
+ * Returns true if another CpNode is close to the given implied (via pos, order
9
+ * and order2) CpNode.
10
+ * @param cpTrees
11
+ * @param pos
12
+ * @param circle
13
+ * @param order
14
+ * @param order2
15
+ * @param extreme The maximum coordinate value used to calculate floating point
16
+ * tolerances.
17
+ * @param color Used for debugging only
18
+ */
19
+ declare function isAnotherCpCloseby(cpTrees: Map<Loop, LlRbTree<CpNode>>, pos: IPointOnShape, circle: Circle, order: number, order2: number, extreme: number, color: string): boolean;
20
+ export { isAnotherCpCloseby };
@@ -1,56 +1,56 @@
1
- import { distanceBetween, toUnitVector, fromTo, dot } from 'flo-vector2d';
2
- import { getNeighbouringPoints } from './get-neighboring-cps.js';
3
- /** @hidden */
4
- //const ANGLE_THRESHOLD = Math.cos(3 * (Math.PI / 180)); // 3 degrees
5
- const ANGLE_THRESHOLD = 0.9986295347545738; // === Math.cos(3 degrees)
6
- //const ANGLE_THRESHOLD = 0.9848077530122080; // === Math.cos(10 degrees)
7
- //const ANGLE_THRESHOLD = 0.9998476951563913; // === Math.cos(1 degrees)
8
- //const ANGLE_THRESHOLD = 0.9999984769132877; // === Math.cos(0.1 degrees)
9
- //const ANGLE_THRESHOLD = 0.9999999847691291 // === Math.cos(0.01 degrees)
10
- /**
11
- * @hidden
12
- * Returns true if another CpNode is close to the given implied (via pos, order
13
- * and order2) CpNode.
14
- * @param cpTrees
15
- * @param pos
16
- * @param circle
17
- * @param order
18
- * @param order2
19
- * @param extreme The maximum coordinate value used to calculate floating point
20
- * tolerances.
21
- * @param color Used for debugging only
22
- */
23
- function isAnotherCpCloseby(cpTrees, pos, circle, order, order2, extreme, color) {
24
- //console.log(extreme)
25
- //const DISTANCE_THRESHOLD = extreme * 1e-1;
26
- //const DISTANCE_THRESHOLD = extreme * 1e-1;
27
- const DISTANCE_THRESHOLD = extreme * 1e-4;
28
- //const DISTANCE_THRESHOLD = extreme * 1e-4; - was this
29
- //const DISTANCE_THRESHOLD = extreme * 1e-6;
30
- //const DISTANCE_THRESHOLD = extreme * 1e-12;
31
- // It seems this can be zero else the ordering should be correct
32
- //const DISTANCE_THRESHOLD = 0;
33
- let cpTree = cpTrees.get(pos.curve.loop);
34
- let cpNodes = getNeighbouringPoints(cpTree, pos, order, order2);
35
- if (!cpNodes[0]) {
36
- return false;
37
- }
38
- for (let cpNode of cpNodes) {
39
- let pos2 = cpNode.cp.pointOnShape;
40
- let p1 = pos.p;
41
- let p2 = pos2.p;
42
- if (distanceBetween(p1, p2) > DISTANCE_THRESHOLD) {
43
- continue;
44
- }
45
- let v1 = toUnitVector(fromTo(cpNode.cp.pointOnShape.p, cpNode.cp.circle.center));
46
- let v2 = toUnitVector(fromTo(p1, circle.center));
47
- let cosTheta = dot(v1, v2);
48
- if (cosTheta > ANGLE_THRESHOLD) {
49
- //console.log(`%c${cosTheta} - ${distanceBetween(p1,p2)}`, `color: ${color}`);
50
- return true;
51
- }
52
- }
53
- return false;
54
- }
55
- export { isAnotherCpCloseby };
1
+ import { distanceBetween, toUnitVector, fromTo, dot } from 'flo-vector2d';
2
+ import { getNeighbouringPoints } from './get-neighboring-cps.js';
3
+ /** @hidden */
4
+ //const ANGLE_THRESHOLD = Math.cos(3 * (Math.PI / 180)); // 3 degrees
5
+ const ANGLE_THRESHOLD = 0.9986295347545738; // === Math.cos(3 degrees)
6
+ //const ANGLE_THRESHOLD = 0.9848077530122080; // === Math.cos(10 degrees)
7
+ //const ANGLE_THRESHOLD = 0.9998476951563913; // === Math.cos(1 degrees)
8
+ //const ANGLE_THRESHOLD = 0.9999984769132877; // === Math.cos(0.1 degrees)
9
+ //const ANGLE_THRESHOLD = 0.9999999847691291 // === Math.cos(0.01 degrees)
10
+ /**
11
+ * @hidden
12
+ * Returns true if another CpNode is close to the given implied (via pos, order
13
+ * and order2) CpNode.
14
+ * @param cpTrees
15
+ * @param pos
16
+ * @param circle
17
+ * @param order
18
+ * @param order2
19
+ * @param extreme The maximum coordinate value used to calculate floating point
20
+ * tolerances.
21
+ * @param color Used for debugging only
22
+ */
23
+ function isAnotherCpCloseby(cpTrees, pos, circle, order, order2, extreme, color) {
24
+ //console.log(extreme)
25
+ //const DISTANCE_THRESHOLD = extreme * 1e-1;
26
+ //const DISTANCE_THRESHOLD = extreme * 1e-1;
27
+ const DISTANCE_THRESHOLD = extreme * 1e-4;
28
+ //const DISTANCE_THRESHOLD = extreme * 1e-4; - was this
29
+ //const DISTANCE_THRESHOLD = extreme * 1e-6;
30
+ //const DISTANCE_THRESHOLD = extreme * 1e-12;
31
+ // It seems this can be zero else the ordering should be correct
32
+ //const DISTANCE_THRESHOLD = 0;
33
+ const cpTree = cpTrees.get(pos.curve.loop);
34
+ const cpNodes = getNeighbouringPoints(cpTree, pos, order, order2);
35
+ if (!cpNodes[0]) {
36
+ return false;
37
+ }
38
+ for (const cpNode of cpNodes) {
39
+ const pos2 = cpNode.cp.pointOnShape;
40
+ const p1 = pos.p;
41
+ const p2 = pos2.p;
42
+ if (distanceBetween(p1, p2) > DISTANCE_THRESHOLD) {
43
+ continue;
44
+ }
45
+ const v1 = toUnitVector(fromTo(cpNode.cp.pointOnShape.p, cpNode.cp.circle.center));
46
+ const v2 = toUnitVector(fromTo(p1, circle.center));
47
+ const cosTheta = dot(v1, v2);
48
+ if (cosTheta > ANGLE_THRESHOLD) {
49
+ //console.log(`%c${cosTheta} - ${distanceBetween(p1,p2)}`, `color: ${color}`);
50
+ return true;
51
+ }
52
+ }
53
+ return false;
54
+ }
55
+ export { isAnotherCpCloseby };
56
56
  //# sourceMappingURL=is-another-cp-closeby.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-another-cp-closeby.js","sourceRoot":"","sources":["../../src/mat/is-another-cp-closeby.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAK1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,cAAc;AACd,qEAAqE;AACrE,MAAM,eAAe,GAAG,kBAAkB,CAAC,CAAC,2BAA2B;AACvE,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAG9E;;;;;;;;;;;;GAYG;AACH,SAAS,kBAAkB,CACnB,OAAmC,EACnC,GAAkB,EAClB,MAAc,EACd,KAAa,EACb,MAAc,EACd,OAAe,EACf,KAAa;IAEjB,sBAAsB;IACtB,6CAA6C;IAC7C,4CAA4C;IAC5C,MAAM,kBAAkB,GAAG,OAAO,GAAG,IAAI,CAAC;IAC1C,uDAAuD;IACvD,4CAA4C;IAC5C,6CAA6C;IAC7C,gEAAgE;IAChE,+BAA+B;IAE/B,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAAE,OAAO,KAAK,CAAA;KAAE;IAEjC,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;QACxB,IAAI,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;QAClC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QACf,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEhB,IAAI,eAAe,CAAC,EAAE,EAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE;YAC7C,SAAS;SACZ;QAED,IAAI,EAAE,GAAG,YAAY,CAAC,MAAM,CACxB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EACxB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAC1B,CAAC,CAAC;QACH,IAAI,EAAE,GAAG,YAAY,CAAC,MAAM,CACxB,EAAE,EACF,MAAM,CAAC,MAAM,CAChB,CAAC,CAAC;QACH,IAAI,QAAQ,GAAG,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QAE1B,IAAI,QAAQ,GAAG,eAAe,EAAE;YAC5B,8EAA8E;YAC9E,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAGD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"is-another-cp-closeby.js","sourceRoot":"","sources":["../../src/mat/is-another-cp-closeby.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAK1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,cAAc;AACd,qEAAqE;AACrE,MAAM,eAAe,GAAG,kBAAkB,CAAC,CAAC,2BAA2B;AACvE,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAG9E;;;;;;;;;;;;GAYG;AACH,SAAS,kBAAkB,CACnB,OAAmC,EACnC,GAAkB,EAClB,MAAc,EACd,KAAa,EACb,MAAc,EACd,OAAe,EACf,KAAa;IAEjB,sBAAsB;IACtB,6CAA6C;IAC7C,4CAA4C;IAC5C,MAAM,kBAAkB,GAAG,OAAO,GAAG,IAAI,CAAC;IAC1C,uDAAuD;IACvD,4CAA4C;IAC5C,6CAA6C;IAC7C,gEAAgE;IAChE,+BAA+B;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAAE,OAAO,KAAK,CAAA;KAAE;IAEjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,eAAe,CAAC,EAAE,EAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE;YAC7C,SAAS;SACZ;QAED,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAC1B,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EACxB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAC1B,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAC1B,EAAE,EACF,MAAM,CAAC,MAAM,CAChB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QAE5B,IAAI,QAAQ,GAAG,eAAe,EAAE;YAC5B,8EAA8E;YAC9E,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAGD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1,23 +1,23 @@
1
- import { CpNode } from '../cp-node.js';
2
- /**
3
- * Simplifies the given MAT by replacing the piecewise quad beziers composing
4
- * the MAT with fewer ones to within a given tolerance. Returns the map of
5
- * to be deleted nodes only - does not actually delete them. Use simplifyMat
6
- * instead if you want to delete the nodes.
7
- * @param cpNode A representation of the MAT
8
- * @param anlgeTolerance Tolerance given as the degrees difference of the unit
9
- * direction vectors at the interface between curves. A tolerance of zero means
10
- * perfect smoothness is required - defaults to 15.
11
- * @param hausdorffTolerance The approximate maximum Hausdorff Distance tolerance -
12
- * defaults to 0.1
13
- * @param hausdorffSpacing The spacing on the curves used to calculate the Hausdorff
14
- * Distance - defaults to 1
15
- */
16
- declare function simplifyMatMapOnly(cpNode: CpNode, anlgeTolerance?: number, hausdorffTolerance?: number, hausdorffSpacing?: number): {
17
- simpleMap: Map<CpNode, {
18
- ps: number[][];
19
- ts: number[];
20
- }>;
21
- cpNode: CpNode;
22
- };
23
- export { simplifyMatMapOnly };
1
+ import { CpNode } from '../cp-node.js';
2
+ /**
3
+ * Simplifies the given MAT by replacing the piecewise quad beziers composing
4
+ * the MAT with fewer ones to within a given tolerance. Returns the map of
5
+ * to be deleted nodes only - does not actually delete them. Use simplifyMat
6
+ * instead if you want to delete the nodes.
7
+ * @param cpNode A representation of the MAT
8
+ * @param anlgeTolerance Tolerance given as the degrees difference of the unit
9
+ * direction vectors at the interface between curves. A tolerance of zero means
10
+ * perfect smoothness is required - defaults to 15.
11
+ * @param hausdorffTolerance The approximate maximum Hausdorff Distance tolerance -
12
+ * defaults to 0.1
13
+ * @param hausdorffSpacing The spacing on the curves used to calculate the Hausdorff
14
+ * Distance - defaults to 1
15
+ */
16
+ declare function simplifyMatMapOnly(cpNode: CpNode, anlgeTolerance?: number, hausdorffTolerance?: number, hausdorffSpacing?: number): {
17
+ simpleMap: Map<CpNode, {
18
+ ps: number[][];
19
+ ts: number[];
20
+ }>;
21
+ cpNode: CpNode;
22
+ };
23
+ export { simplifyMatMapOnly };
@@ -1,81 +1,81 @@
1
- import { closestPointOnBezier, hausdorffDistance, toCubic } from 'flo-bezier3';
2
- import { getBranches } from '../get-branches.js';
3
- import { getCurveToNext } from '../get-curve-to-next.js';
4
- import { getCurveBetween } from '../get-curve/get-curve-between.js';
5
- /**
6
- * Simplifies the given MAT by replacing the piecewise quad beziers composing
7
- * the MAT with fewer ones to within a given tolerance. Returns the map of
8
- * to be deleted nodes only - does not actually delete them. Use simplifyMat
9
- * instead if you want to delete the nodes.
10
- * @param cpNode A representation of the MAT
11
- * @param anlgeTolerance Tolerance given as the degrees difference of the unit
12
- * direction vectors at the interface between curves. A tolerance of zero means
13
- * perfect smoothness is required - defaults to 15.
14
- * @param hausdorffTolerance The approximate maximum Hausdorff Distance tolerance -
15
- * defaults to 0.1
16
- * @param hausdorffSpacing The spacing on the curves used to calculate the Hausdorff
17
- * Distance - defaults to 1
18
- */
19
- function simplifyMatMapOnly(cpNode, anlgeTolerance = 15, hausdorffTolerance = 1e-1, hausdorffSpacing = 1e0) {
20
- let simpleMap = new Map();
21
- // Start from a leaf
22
- while (!cpNode.isTerminating()) {
23
- cpNode = cpNode.next;
24
- }
25
- let branches = getBranches(cpNode, anlgeTolerance);
26
- let canDeletes = [];
27
- for (let k = 0; k < branches.length; k++) {
28
- let branch = branches[k];
29
- // Try to remove some
30
- let j = 0;
31
- while (j < branch.length) {
32
- let i = j;
33
- while (true) {
34
- j++;
35
- if (j === branch.length) {
36
- break;
37
- }
38
- let hd = getTotalHausdorffDistance(i, j, branch, hausdorffSpacing);
39
- if (hd > hausdorffTolerance) {
40
- break;
41
- }
42
- else {
43
- canDeletes.push(branch[j]);
44
- }
45
- }
46
- if (i + 1 === j) {
47
- // no simplification occured
48
- }
49
- else {
50
- let branStart = branch[i];
51
- let branEnd = branch[j - 1];
52
- let medial = toCubic(getCurveBetween(branStart, branEnd.next));
53
- let rev = medial.slice().reverse();
54
- let curCpNode = branStart;
55
- let prevT = 0;
56
- while (curCpNode !== branEnd) {
57
- let t = closestPointOnBezier(medial, curCpNode.next.cp.circle.center).t;
58
- simpleMap.set(curCpNode, { ps: medial, ts: [prevT, t] });
59
- let oppositeCpNode = curCpNode.nextOnCircle.prev;
60
- simpleMap.set(oppositeCpNode, { ps: rev, ts: [1 - t, 1 - prevT] });
61
- prevT = t;
62
- curCpNode = curCpNode.next;
63
- }
64
- simpleMap.set(curCpNode, { ps: medial, ts: [prevT, 1] });
65
- let oppositeCpNode = curCpNode.nextOnCircle.prev;
66
- simpleMap.set(oppositeCpNode, { ps: rev, ts: [0, 1 - prevT] });
67
- }
68
- }
69
- }
70
- return { simpleMap, cpNode };
71
- }
72
- function getTotalHausdorffDistance(i, j, branch, hausdorffSpacing) {
73
- let hds = [];
74
- let longCurve = getCurveBetween(branch[i], branch[j].next);
75
- for (let m = i; m < j + 1; m++) {
76
- hds.push(hausdorffDistance(getCurveToNext(branch[m]), longCurve, hausdorffSpacing));
77
- }
78
- return Math.max(...hds);
79
- }
80
- export { simplifyMatMapOnly };
1
+ import { closestPointOnBezier, hausdorffDistance, toCubic } from 'flo-bezier3';
2
+ import { getBranches } from '../get-branches.js';
3
+ import { getCurveToNext } from '../get-curve-to-next.js';
4
+ import { getCurveBetween } from '../get-curve/get-curve-between.js';
5
+ /**
6
+ * Simplifies the given MAT by replacing the piecewise quad beziers composing
7
+ * the MAT with fewer ones to within a given tolerance. Returns the map of
8
+ * to be deleted nodes only - does not actually delete them. Use simplifyMat
9
+ * instead if you want to delete the nodes.
10
+ * @param cpNode A representation of the MAT
11
+ * @param anlgeTolerance Tolerance given as the degrees difference of the unit
12
+ * direction vectors at the interface between curves. A tolerance of zero means
13
+ * perfect smoothness is required - defaults to 15.
14
+ * @param hausdorffTolerance The approximate maximum Hausdorff Distance tolerance -
15
+ * defaults to 0.1
16
+ * @param hausdorffSpacing The spacing on the curves used to calculate the Hausdorff
17
+ * Distance - defaults to 1
18
+ */
19
+ function simplifyMatMapOnly(cpNode, anlgeTolerance = 15, hausdorffTolerance = 1e-1, hausdorffSpacing = 1e0) {
20
+ const simpleMap = new Map();
21
+ // Start from a leaf
22
+ while (!cpNode.isTerminating()) {
23
+ cpNode = cpNode.next;
24
+ }
25
+ const branches = getBranches(cpNode, anlgeTolerance);
26
+ const canDeletes = [];
27
+ for (let k = 0; k < branches.length; k++) {
28
+ const branch = branches[k];
29
+ // Try to remove some
30
+ let j = 0;
31
+ while (j < branch.length) {
32
+ const i = j;
33
+ while (true) {
34
+ j++;
35
+ if (j === branch.length) {
36
+ break;
37
+ }
38
+ const hd = getTotalHausdorffDistance(i, j, branch, hausdorffSpacing);
39
+ if (hd > hausdorffTolerance) {
40
+ break;
41
+ }
42
+ else {
43
+ canDeletes.push(branch[j]);
44
+ }
45
+ }
46
+ if (i + 1 === j) {
47
+ // no simplification occured
48
+ }
49
+ else {
50
+ const branStart = branch[i];
51
+ const branEnd = branch[j - 1];
52
+ const medial = toCubic(getCurveBetween(branStart, branEnd.next));
53
+ const rev = medial.slice().reverse();
54
+ let curCpNode = branStart;
55
+ let prevT = 0;
56
+ while (curCpNode !== branEnd) {
57
+ const t = closestPointOnBezier(medial, curCpNode.next.cp.circle.center).t;
58
+ simpleMap.set(curCpNode, { ps: medial, ts: [prevT, t] });
59
+ const oppositeCpNode = curCpNode.nextOnCircle.prev;
60
+ simpleMap.set(oppositeCpNode, { ps: rev, ts: [1 - t, 1 - prevT] });
61
+ prevT = t;
62
+ curCpNode = curCpNode.next;
63
+ }
64
+ simpleMap.set(curCpNode, { ps: medial, ts: [prevT, 1] });
65
+ const oppositeCpNode = curCpNode.nextOnCircle.prev;
66
+ simpleMap.set(oppositeCpNode, { ps: rev, ts: [0, 1 - prevT] });
67
+ }
68
+ }
69
+ }
70
+ return { simpleMap, cpNode };
71
+ }
72
+ function getTotalHausdorffDistance(i, j, branch, hausdorffSpacing) {
73
+ const hds = [];
74
+ const longCurve = getCurveBetween(branch[i], branch[j].next);
75
+ for (let m = i; m < j + 1; m++) {
76
+ hds.push(hausdorffDistance(getCurveToNext(branch[m]), longCurve, hausdorffSpacing));
77
+ }
78
+ return Math.max(...hds);
79
+ }
80
+ export { simplifyMatMapOnly };
81
81
  //# sourceMappingURL=simplify-mat-map-only.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"simplify-mat-map-only.js","sourceRoot":"","sources":["../../src/mat/simplify-mat-map-only.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simplify-mat-map-only.js","sourceRoot":"","sources":["../../src/mat/simplify-mat-map-only.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { Mat } from '../../mat.js';
2
- /**
3
- * @hidden
4
- * @param sat
5
- */
6
- declare function addDebugInfo(sat: Mat, timingStart: number): void;
7
- export { addDebugInfo };
1
+ import { Mat } from '../../mat.js';
2
+ /**
3
+ * @hidden
4
+ * @param sat
5
+ */
6
+ declare function addDebugInfo(sat: Mat, timingStart: number): void;
7
+ export { addDebugInfo };
@@ -1,14 +1,14 @@
1
- /**
2
- * @hidden
3
- * @param sat
4
- */
5
- function addDebugInfo(sat, timingStart) {
6
- if (typeof _debug_ === 'undefined') {
7
- return;
8
- }
9
- _debug_.generated.elems.sat.push(sat);
10
- let timing = _debug_.generated.timing;
11
- timing.sats = performance.now() - timingStart;
12
- }
13
- export { addDebugInfo };
1
+ /**
2
+ * @hidden
3
+ * @param sat
4
+ */
5
+ function addDebugInfo(sat, timingStart) {
6
+ if (typeof _debug_ === 'undefined') {
7
+ return;
8
+ }
9
+ _debug_.generated.elems.sat.push(sat);
10
+ const timing = _debug_.generated.timing;
11
+ timing.sats = performance.now() - timingStart;
12
+ }
13
+ export { addDebugInfo };
14
14
  //# sourceMappingURL=add-debug-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-debug-info.js","sourceRoot":"","sources":["../../../src/mat/to-scale-axis/add-debug-info.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAQ,EAAE,WAAmB;IAClD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAAE,OAAO;KAAE;IAE/C,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACtC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAC/C,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"add-debug-info.js","sourceRoot":"","sources":["../../../src/mat/to-scale-axis/add-debug-info.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,SAAS,YAAY,CACnB,GAAQ,EACR,WAAmB;IAEpB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAAE,OAAO;KAAE;IAE/C,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACxC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAC/C,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,9 +1,9 @@
1
- import { CpNode } from '../../cp-node.js';
2
- /**
3
- * @hidden
4
- * Cull all edges not part of a cycle in the MAT planar graph.
5
- * @param cpStart The start CpNode which must reprsesent the maximal 3-prong
6
- * vertex.
7
- */
8
- declare function cullNonCycles(cpStart: CpNode): CpNode;
9
- export { cullNonCycles };
1
+ import { CpNode } from '../../cp-node.js';
2
+ /**
3
+ * @hidden
4
+ * Cull all edges not part of a cycle in the MAT planar graph.
5
+ * @param cpStart The start CpNode which must reprsesent the maximal 3-prong
6
+ * vertex.
7
+ */
8
+ declare function cullNonCycles(cpStart: CpNode): CpNode;
9
+ export { cullNonCycles };