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,73 +1,73 @@
1
- import { Curve } from './curve.js';
2
- import { Circle } from './circle.js';
3
- interface IPointOnShape {
4
- /** The [[ICurve]] on the shape boundary this points belong to. */
5
- curve: Curve;
6
- /** The bezier parameter value on the curve identifying the point coordinates. */
7
- t: number;
8
- p: number[];
9
- }
10
- /**
11
- * Represents a point on the shape boundary for which MAT vertex information
12
- * has not *necessarily* been calculated.
13
- */
14
- declare class PointOnShape implements IPointOnShape {
15
- readonly curve: Curve;
16
- readonly t: number;
17
- /**
18
- * @param curve The [[ICurve]] on the shape boundary this points belong to.
19
- * @param t The bezier parameter value on the curve to identify the point
20
- * coordinates.
21
- */
22
- constructor(curve: Curve, t: number);
23
- private p_;
24
- /**
25
- * The planar point coordinates of this [[PointOnShape]].
26
- */
27
- get p(): number[];
28
- }
29
- /**
30
- * @hidden
31
- */
32
- declare let isPosSharpCorner: (a: IPointOnShape) => boolean;
33
- /**
34
- * @hidden
35
- */
36
- declare let isPosDullCorner: (a: IPointOnShape) => boolean;
37
- /**
38
- * @hidden
39
- */
40
- declare let isPosQuiteSharpCorner: (a: IPointOnShape) => boolean;
41
- /**
42
- * @hidden
43
- */
44
- declare let isPosQuiteDullCorner: (a: IPointOnShape) => boolean;
45
- /**
46
- * Returns a human-readable string of the given [[PointOnShape]].
47
- * For debugging only.
48
- * @hidden
49
- */
50
- declare function posToHumanString(pos: IPointOnShape): string;
51
- /**
52
- * @hidden
53
- * Calculates the order (to distinguish between points lying on top of each
54
- * other) of the contact point if it is a dull corner.
55
- * @param pos
56
- */
57
- declare function calcPosOrder(circle: Circle, pos: IPointOnShape): number;
58
- /**
59
- * Compares two [[PointOnShape]]s according to their cyclic ordering imposed
60
- * by their relative positions on the shape boundary.
61
- * @param a The first [[PointOnShape]].
62
- * @param b The second [[PointOnShape]].
63
- * @hidden
64
- */
65
- declare function comparePoss(a: IPointOnShape, b: IPointOnShape): number;
66
- /**
67
- * Returns the osculating circle at this point of the curve.
68
- * @param maxOsculatingCircleRadius If not Number.POSITIVE_INFINITY then the
69
- * circle radius will be limited to this value.
70
- * @param pos The [[PointOnShape]] identifying the point.
71
- */
72
- declare function getOsculatingCircle(maxOsculatingCircleRadius: number, pos: IPointOnShape): Circle;
73
- export { IPointOnShape, PointOnShape, getOsculatingCircle, comparePoss, calcPosOrder, posToHumanString, isPosSharpCorner, isPosDullCorner, isPosQuiteSharpCorner, isPosQuiteDullCorner };
1
+ import { Curve } from './curve.js';
2
+ import { Circle } from './circle.js';
3
+ interface IPointOnShape {
4
+ /** The [[ICurve]] on the shape boundary this points belong to. */
5
+ curve: Curve;
6
+ /** The bezier parameter value on the curve identifying the point coordinates. */
7
+ t: number;
8
+ p: number[];
9
+ }
10
+ /**
11
+ * Represents a point on the shape boundary for which MAT vertex information
12
+ * has not *necessarily* been calculated.
13
+ */
14
+ declare class PointOnShape implements IPointOnShape {
15
+ readonly curve: Curve;
16
+ readonly t: number;
17
+ /**
18
+ * @param curve The [[ICurve]] on the shape boundary this points belong to.
19
+ * @param t The bezier parameter value on the curve to identify the point
20
+ * coordinates.
21
+ */
22
+ constructor(curve: Curve, t: number);
23
+ private p_;
24
+ /**
25
+ * The planar point coordinates of this [[PointOnShape]].
26
+ */
27
+ get p(): number[];
28
+ }
29
+ /**
30
+ * @hidden
31
+ */
32
+ declare const isPosSharpCorner: (a: IPointOnShape) => boolean;
33
+ /**
34
+ * @hidden
35
+ */
36
+ declare const isPosDullCorner: (a: IPointOnShape) => boolean;
37
+ /**
38
+ * @hidden
39
+ */
40
+ declare const isPosQuiteSharpCorner: (a: IPointOnShape) => boolean;
41
+ /**
42
+ * @hidden
43
+ */
44
+ declare const isPosQuiteDullCorner: (a: IPointOnShape) => boolean;
45
+ /**
46
+ * Returns a human-readable string of the given [[PointOnShape]].
47
+ * For debugging only.
48
+ * @hidden
49
+ */
50
+ declare function posToHumanString(pos: IPointOnShape): string;
51
+ /**
52
+ * @hidden
53
+ * Calculates the order (to distinguish between points lying on top of each
54
+ * other) of the contact point if it is a dull corner.
55
+ * @param pos
56
+ */
57
+ declare function calcPosOrder(circle: Circle, pos: IPointOnShape): number;
58
+ /**
59
+ * Compares two [[PointOnShape]]s according to their cyclic ordering imposed
60
+ * by their relative positions on the shape boundary.
61
+ * @param a The first [[PointOnShape]].
62
+ * @param b The second [[PointOnShape]].
63
+ * @hidden
64
+ */
65
+ declare function comparePoss(a: IPointOnShape, b: IPointOnShape): number;
66
+ /**
67
+ * Returns the osculating circle at this point of the curve.
68
+ * @param maxOsculatingCircleRadius If not Number.POSITIVE_INFINITY then the
69
+ * circle radius will be limited to this value.
70
+ * @param pos The [[PointOnShape]] identifying the point.
71
+ */
72
+ declare function getOsculatingCircle(maxOsculatingCircleRadius: number, pos: IPointOnShape): Circle;
73
+ export { IPointOnShape, PointOnShape, getOsculatingCircle, comparePoss, calcPosOrder, posToHumanString, isPosSharpCorner, isPosDullCorner, isPosQuiteSharpCorner, isPosQuiteDullCorner };
@@ -1,168 +1,168 @@
1
- import { dot, fromTo, toUnitVector, rotateNeg90Degrees } from 'flo-vector2d';
2
- import { memoize } from 'flo-memoize';
3
- import { curvature, evalDeCasteljau, tangent } from 'flo-bezier3';
4
- import { getCornerAtEnd } from './curve.js';
5
- /**
6
- * Represents a point on the shape boundary for which MAT vertex information
7
- * has not *necessarily* been calculated.
8
- */
9
- class PointOnShape {
10
- /**
11
- * @param curve The [[ICurve]] on the shape boundary this points belong to.
12
- * @param t The bezier parameter value on the curve to identify the point
13
- * coordinates.
14
- */
15
- constructor(curve, t) {
16
- this.curve = curve;
17
- this.t = t;
18
- // Cache
19
- this.p_ = undefined;
20
- }
21
- /**
22
- * The planar point coordinates of this [[PointOnShape]].
23
- */
24
- get p() {
25
- return this.p_ === undefined
26
- ? this.p_ = evalDeCasteljau(this.curve.ps, this.t)
27
- : this.p_;
28
- }
29
- }
30
- /**
31
- * @hidden
32
- */
33
- function isPosCorner(pos) {
34
- return (pos.t === 0 || pos.t === 1);
35
- }
36
- /**
37
- * @hidden
38
- */
39
- function getPosCorner(pos) {
40
- return getCornerAtEnd(pos.t === 1 ? pos.curve : pos.curve.prev);
41
- }
42
- /**
43
- * @hidden
44
- */
45
- let isPosSharpCorner = memoize((pos) => {
46
- if (!isPosCorner(pos)) {
47
- return false;
48
- }
49
- return getPosCorner(pos).isSharp;
50
- });
51
- /**
52
- * @hidden
53
- */
54
- let isPosDullCorner = memoize((pos) => {
55
- if (!isPosCorner(pos)) {
56
- return false;
57
- }
58
- return getPosCorner(pos).isDull;
59
- });
60
- /**
61
- * @hidden
62
- */
63
- let isPosQuiteSharpCorner = memoize((pos) => {
64
- if (!isPosCorner(pos)) {
65
- return false;
66
- }
67
- return getPosCorner(pos).isQuiteSharp;
68
- });
69
- /**
70
- * @hidden
71
- */
72
- let isPosQuiteDullCorner = memoize((pos) => {
73
- if (!isPosCorner(pos)) {
74
- return false;
75
- }
76
- return getPosCorner(pos).isQuiteDull;
77
- });
78
- /**
79
- * Returns a human-readable string of the given [[PointOnShape]].
80
- * For debugging only.
81
- * @hidden
82
- */
83
- function posToHumanString(pos) {
84
- return '' + pos.p[0] + ', ' + pos.p[1] +
85
- ' | bz: ' + pos.curve.idx +
86
- ' | t: ' + pos.t;
87
- }
88
- /**
89
- * @hidden
90
- * Calculates the order (to distinguish between points lying on top of each
91
- * other) of the contact point if it is a dull corner.
92
- * @param pos
93
- */
94
- function calcPosOrder(circle, pos) {
95
- if (!isPosCorner(pos)) {
96
- return 0;
97
- }
98
- if (!isPosDullCorner(pos)) {
99
- return 0;
100
- }
101
- //if (!isPosDullCorner(pos)) { return 0; }
102
- let corner = getPosCorner(pos);
103
- let n = rotateNeg90Degrees(corner.tangents[0]);
104
- let v = toUnitVector(fromTo(pos.p, circle.center));
105
- return -dot(n, v);
106
- }
107
- /**
108
- * Compares two [[PointOnShape]]s according to their cyclic ordering imposed
109
- * by their relative positions on the shape boundary.
110
- * @param a The first [[PointOnShape]].
111
- * @param b The second [[PointOnShape]].
112
- * @hidden
113
- */
114
- function comparePoss(a, b) {
115
- if (a === undefined || b === undefined) {
116
- return undefined;
117
- }
118
- let res;
119
- res = a.curve.idx - b.curve.idx;
120
- if (res !== 0) {
121
- return res;
122
- }
123
- res = a.t - b.t;
124
- return res;
125
- }
126
- /**
127
- * Calculates and returns the osculating circle radius of the bezier at a
128
- * specific t. If it is found to have negative or nearly zero radius
129
- * it is clipped to have positive radius so it can point into the shape.
130
- * @param ps
131
- * @param t
132
- * @hidden
133
- */
134
- let calcOsculatingCircleRadius = memoize((pos) => {
135
- let ps = pos.curve.ps;
136
- let t = pos.t;
137
- let c = -curvature(ps, t);
138
- // c > 0 => bending inwards
139
- return 1 / c;
140
- });
141
- /**
142
- * Returns the osculating circle at this point of the curve.
143
- * @param maxOsculatingCircleRadius If not Number.POSITIVE_INFINITY then the
144
- * circle radius will be limited to this value.
145
- * @param pos The [[PointOnShape]] identifying the point.
146
- */
147
- function getOsculatingCircle(maxOsculatingCircleRadius, pos) {
148
- if (isPosSharpCorner(pos)) {
149
- return { center: pos.p, radius: 0 };
150
- }
151
- let radius = calcOsculatingCircleRadius(pos);
152
- if (radius < 0) {
153
- radius = Number.POSITIVE_INFINITY;
154
- }
155
- radius = Math.min(radius, maxOsculatingCircleRadius);
156
- let ps = pos.curve.ps;
157
- let t = pos.t;
158
- const tangent_ = tangent(ps, t);
159
- let normal_ = toUnitVector([-tangent_[1], tangent_[0]]);
160
- let p = evalDeCasteljau(ps, t);
161
- let circleCenter = [
162
- p[0] - normal_[0] * radius,
163
- p[1] - normal_[1] * radius
164
- ];
165
- return { center: circleCenter, radius };
166
- }
167
- export { PointOnShape, getOsculatingCircle, comparePoss, calcPosOrder, posToHumanString, isPosSharpCorner, isPosDullCorner, isPosQuiteSharpCorner, isPosQuiteDullCorner };
1
+ import { dot, fromTo, toUnitVector, rotateNeg90Degrees } from 'flo-vector2d';
2
+ import { memoize } from 'flo-memoize';
3
+ import { curvature, evalDeCasteljau, tangent } from 'flo-bezier3';
4
+ import { getCornerAtEnd } from './curve.js';
5
+ /**
6
+ * Represents a point on the shape boundary for which MAT vertex information
7
+ * has not *necessarily* been calculated.
8
+ */
9
+ class PointOnShape {
10
+ /**
11
+ * @param curve The [[ICurve]] on the shape boundary this points belong to.
12
+ * @param t The bezier parameter value on the curve to identify the point
13
+ * coordinates.
14
+ */
15
+ constructor(curve, t) {
16
+ this.curve = curve;
17
+ this.t = t;
18
+ // Cache
19
+ this.p_ = undefined;
20
+ }
21
+ /**
22
+ * The planar point coordinates of this [[PointOnShape]].
23
+ */
24
+ get p() {
25
+ return this.p_ === undefined
26
+ ? this.p_ = evalDeCasteljau(this.curve.ps, this.t)
27
+ : this.p_;
28
+ }
29
+ }
30
+ /**
31
+ * @hidden
32
+ */
33
+ function isPosCorner(pos) {
34
+ return (pos.t === 0 || pos.t === 1);
35
+ }
36
+ /**
37
+ * @hidden
38
+ */
39
+ function getPosCorner(pos) {
40
+ return getCornerAtEnd(pos.t === 1 ? pos.curve : pos.curve.prev);
41
+ }
42
+ /**
43
+ * @hidden
44
+ */
45
+ const isPosSharpCorner = memoize((pos) => {
46
+ if (!isPosCorner(pos)) {
47
+ return false;
48
+ }
49
+ return getPosCorner(pos).isSharp;
50
+ });
51
+ /**
52
+ * @hidden
53
+ */
54
+ const isPosDullCorner = memoize((pos) => {
55
+ if (!isPosCorner(pos)) {
56
+ return false;
57
+ }
58
+ return getPosCorner(pos).isDull;
59
+ });
60
+ /**
61
+ * @hidden
62
+ */
63
+ const isPosQuiteSharpCorner = memoize((pos) => {
64
+ if (!isPosCorner(pos)) {
65
+ return false;
66
+ }
67
+ return getPosCorner(pos).isQuiteSharp;
68
+ });
69
+ /**
70
+ * @hidden
71
+ */
72
+ const isPosQuiteDullCorner = memoize((pos) => {
73
+ if (!isPosCorner(pos)) {
74
+ return false;
75
+ }
76
+ return getPosCorner(pos).isQuiteDull;
77
+ });
78
+ /**
79
+ * Returns a human-readable string of the given [[PointOnShape]].
80
+ * For debugging only.
81
+ * @hidden
82
+ */
83
+ function posToHumanString(pos) {
84
+ return '' + pos.p[0] + ', ' + pos.p[1] +
85
+ ' | bz: ' + pos.curve.idx +
86
+ ' | t: ' + pos.t;
87
+ }
88
+ /**
89
+ * @hidden
90
+ * Calculates the order (to distinguish between points lying on top of each
91
+ * other) of the contact point if it is a dull corner.
92
+ * @param pos
93
+ */
94
+ function calcPosOrder(circle, pos) {
95
+ if (!isPosCorner(pos)) {
96
+ return 0;
97
+ }
98
+ if (!isPosDullCorner(pos)) {
99
+ return 0;
100
+ }
101
+ //if (!isPosDullCorner(pos)) { return 0; }
102
+ const corner = getPosCorner(pos);
103
+ const n = rotateNeg90Degrees(corner.tangents[0]);
104
+ const v = toUnitVector(fromTo(pos.p, circle.center));
105
+ return -dot(n, v);
106
+ }
107
+ /**
108
+ * Compares two [[PointOnShape]]s according to their cyclic ordering imposed
109
+ * by their relative positions on the shape boundary.
110
+ * @param a The first [[PointOnShape]].
111
+ * @param b The second [[PointOnShape]].
112
+ * @hidden
113
+ */
114
+ function comparePoss(a, b) {
115
+ if (a === undefined || b === undefined) {
116
+ return undefined;
117
+ }
118
+ let res;
119
+ res = a.curve.idx - b.curve.idx;
120
+ if (res !== 0) {
121
+ return res;
122
+ }
123
+ res = a.t - b.t;
124
+ return res;
125
+ }
126
+ /**
127
+ * Calculates and returns the osculating circle radius of the bezier at a
128
+ * specific t. If it is found to have negative or nearly zero radius
129
+ * it is clipped to have positive radius so it can point into the shape.
130
+ * @param ps
131
+ * @param t
132
+ * @hidden
133
+ */
134
+ const calcOsculatingCircleRadius = memoize((pos) => {
135
+ const ps = pos.curve.ps;
136
+ const t = pos.t;
137
+ const c = -curvature(ps, t);
138
+ // c > 0 => bending inwards
139
+ return 1 / c;
140
+ });
141
+ /**
142
+ * Returns the osculating circle at this point of the curve.
143
+ * @param maxOsculatingCircleRadius If not Number.POSITIVE_INFINITY then the
144
+ * circle radius will be limited to this value.
145
+ * @param pos The [[PointOnShape]] identifying the point.
146
+ */
147
+ function getOsculatingCircle(maxOsculatingCircleRadius, pos) {
148
+ if (isPosSharpCorner(pos)) {
149
+ return { center: pos.p, radius: 0 };
150
+ }
151
+ let radius = calcOsculatingCircleRadius(pos);
152
+ if (radius < 0) {
153
+ radius = Number.POSITIVE_INFINITY;
154
+ }
155
+ radius = Math.min(radius, maxOsculatingCircleRadius);
156
+ const ps = pos.curve.ps;
157
+ const t = pos.t;
158
+ const tangent_ = tangent(ps, t);
159
+ const normal_ = toUnitVector([-tangent_[1], tangent_[0]]);
160
+ const p = evalDeCasteljau(ps, t);
161
+ const circleCenter = [
162
+ p[0] - normal_[0] * radius,
163
+ p[1] - normal_[1] * radius
164
+ ];
165
+ return { center: circleCenter, radius };
166
+ }
167
+ export { PointOnShape, getOsculatingCircle, comparePoss, calcPosOrder, posToHumanString, isPosSharpCorner, isPosDullCorner, isPosQuiteSharpCorner, isPosQuiteDullCorner };
168
168
  //# sourceMappingURL=point-on-shape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"point-on-shape.js","sourceRoot":"","sources":["../src/point-on-shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"point-on-shape.js","sourceRoot":"","sources":["../src/point-on-shape.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
- import { Mat } from './mat.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.
5
- * @param cpNode A representation of the MAT
6
- * @param anlgeTolerance Tolerance given as the degrees difference of the unit
7
- * direction vectors at the interface between curves. A tolerance of zero means
8
- * perfect smoothness is required - defaults to 15.
9
- * TODO - the next two params are wrong??
10
- * @param hausdorffTolerance The approximate maximum Hausdorff Distance tolerance -
11
- * defaults to 0.1
12
- * @param maxIterations The spacing on the curves used to calculate the Hausdorff
13
- * Distance - defaults to 1
14
- */
15
- declare function simplifyMat(mat: Mat, anlgeTolerance?: number, hausdorffTolerance?: number, maxIterations?: number): Mat;
16
- export { simplifyMat };
1
+ import { Mat } from './mat.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.
5
+ * @param cpNode A representation of the MAT
6
+ * @param anlgeTolerance Tolerance given as the degrees difference of the unit
7
+ * direction vectors at the interface between curves. A tolerance of zero means
8
+ * perfect smoothness is required - defaults to 15.
9
+ * TODO - the next two params are wrong??
10
+ * @param hausdorffTolerance The approximate maximum Hausdorff Distance tolerance -
11
+ * defaults to 0.1
12
+ * @param maxIterations The spacing on the curves used to calculate the Hausdorff
13
+ * Distance - defaults to 1
14
+ */
15
+ declare function simplifyMat(mat: Mat, anlgeTolerance?: number, hausdorffTolerance?: number, maxIterations?: number): Mat;
16
+ export { simplifyMat };