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.
- package/.eslintrc.cjs +69 -0
- package/README.md +9 -27
- package/browser/index.js +29604 -7008
- package/browser/index.min.js +1 -2
- package/node/circle.d.ts +20 -20
- package/node/circle.js +31 -31
- package/node/circle.js.map +1 -1
- package/node/compare-curvatures-at-interface.d.ts +19 -19
- package/node/compare-curvatures-at-interface.js +124 -124
- package/node/compare-curvatures-at-interface.js.map +1 -1
- package/node/contact-point.d.ts +26 -26
- package/node/contact-point.js +25 -25
- package/node/cp-node/clone.d.ts +8 -8
- package/node/cp-node/clone.js +31 -31
- package/node/cp-node/clone.js.map +1 -1
- package/node/cp-node/remove.d.ts +9 -9
- package/node/cp-node/remove.js +19 -19
- package/node/cp-node/remove.js.map +1 -1
- package/node/cp-node.d.ts +202 -202
- package/node/cp-node.js +320 -320
- package/node/cp-node.js.map +1 -1
- package/node/curve.d.ts +46 -46
- package/node/curve.js +88 -88
- package/node/curve.js.map +1 -1
- package/node/debug/cp-node-for-debugging.d.ts +11 -11
- package/node/debug/cp-node-for-debugging.js +1 -1
- package/node/debug/debug-elem-types.d.ts +32 -32
- package/node/debug/debug-elem-types.js +1 -1
- package/node/debug/debug.d.ts +50 -50
- package/node/debug/debug.js +75 -75
- package/node/debug/functions/draw-elem/bounding-hull.d.ts +3 -3
- package/node/debug/functions/draw-elem/bounding-hull.js +7 -7
- package/node/debug/functions/draw-elem/bounding-hull.js.map +1 -1
- package/node/debug/functions/draw-elem/branch.d.ts +4 -4
- package/node/debug/functions/draw-elem/branch.js +22 -22
- package/node/debug/functions/draw-elem/branch.js.map +1 -1
- package/node/debug/functions/draw-elem/culls.d.ts +4 -4
- package/node/debug/functions/draw-elem/culls.js +21 -21
- package/node/debug/functions/draw-elem/culls.js.map +1 -1
- package/node/debug/functions/draw-elem/draw-circle-percent.d.ts +3 -3
- package/node/debug/functions/draw-elem/draw-circle-percent.js +12 -12
- package/node/debug/functions/draw-elem/draw-circle-percent.js.map +1 -1
- package/node/debug/functions/draw-elem/draw-elem.d.ts +8 -8
- package/node/debug/functions/draw-elem/draw-elem.js +45 -45
- package/node/debug/functions/draw-elem/draw-elem.js.map +1 -1
- package/node/debug/functions/draw-elem/dull-corner.d.ts +4 -4
- package/node/debug/functions/draw-elem/dull-corner.js +10 -10
- package/node/debug/functions/draw-elem/dull-corner.js.map +1 -1
- package/node/debug/functions/draw-elem/leaves.d.ts +4 -4
- package/node/debug/functions/draw-elem/leaves.js +12 -12
- package/node/debug/functions/draw-elem/leaves.js.map +1 -1
- package/node/debug/functions/draw-elem/loop.d.ts +4 -4
- package/node/debug/functions/draw-elem/loop.js +11 -11
- package/node/debug/functions/draw-elem/loops.d.ts +4 -4
- package/node/debug/functions/draw-elem/loops.js +6 -6
- package/node/debug/functions/draw-elem/loose-bounding-box.d.ts +3 -3
- package/node/debug/functions/draw-elem/loose-bounding-box.js +9 -9
- package/node/debug/functions/draw-elem/loose-bounding-box.js.map +1 -1
- package/node/debug/functions/draw-elem/mat.d.ts +4 -4
- package/node/debug/functions/draw-elem/mat.js +30 -30
- package/node/debug/functions/draw-elem/mat.js.map +1 -1
- package/node/debug/functions/draw-elem/max-vertex.d.ts +4 -4
- package/node/debug/functions/draw-elem/max-vertex.js +8 -8
- package/node/debug/functions/draw-elem/max-vertex.js.map +1 -1
- package/node/debug/functions/draw-elem/min-y.d.ts +4 -4
- package/node/debug/functions/draw-elem/min-y.js +13 -13
- package/node/debug/functions/draw-elem/min-y.js.map +1 -1
- package/node/debug/functions/draw-elem/one-prong-at-dull-corner.d.ts +4 -4
- package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js +12 -12
- package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js.map +1 -1
- package/node/debug/functions/draw-elem/one-prong.d.ts +4 -4
- package/node/debug/functions/draw-elem/one-prong.js +16 -16
- package/node/debug/functions/draw-elem/one-prong.js.map +1 -1
- package/node/debug/functions/draw-elem/sharp-corner.d.ts +4 -4
- package/node/debug/functions/draw-elem/sharp-corner.js +9 -9
- package/node/debug/functions/draw-elem/sharp-corner.js.map +1 -1
- package/node/debug/functions/draw-elem/three-prong.d.ts +4 -4
- package/node/debug/functions/draw-elem/three-prong.js +16 -16
- package/node/debug/functions/draw-elem/three-prong.js.map +1 -1
- package/node/debug/functions/draw-elem/tight-bounding-box.d.ts +3 -3
- package/node/debug/functions/draw-elem/tight-bounding-box.js +7 -7
- package/node/debug/functions/draw-elem/tight-bounding-box.js.map +1 -1
- package/node/debug/functions/draw-elem/two-prong.d.ts +4 -4
- package/node/debug/functions/draw-elem/two-prong.js +36 -36
- package/node/debug/functions/draw-elem/two-prong.js.map +1 -1
- package/node/debug/functions/draw-elem/vertex.d.ts +4 -4
- package/node/debug/functions/draw-elem/vertex.js +27 -27
- package/node/debug/functions/draw-elem/vertex.js.map +1 -1
- package/node/debug/functions/general.d.ts +48 -48
- package/node/debug/functions/general.js +52 -52
- package/node/debug/functions/general.js.map +1 -1
- package/node/debug/functions/three-prong.d.ts +11 -11
- package/node/debug/functions/three-prong.js +184 -184
- package/node/debug/functions/three-prong.js.map +1 -1
- package/node/debug/functions/two-prong.d.ts +13 -13
- package/node/debug/functions/two-prong.js +117 -117
- package/node/debug/functions/two-prong.js.map +1 -1
- package/node/debug/three-prong-for-debugging.d.ts +31 -31
- package/node/debug/three-prong-for-debugging.js +20 -20
- package/node/debug/two-prong-for-debugging.d.ts +26 -26
- package/node/debug/two-prong-for-debugging.js +1 -1
- package/node/find-mats.d.ts +26 -26
- package/node/find-mats.js +122 -125
- package/node/find-mats.js.map +1 -1
- package/node/get-boundary-bezier-parts-to-next.d.ts +9 -9
- package/node/get-boundary-bezier-parts-to-next.js +42 -42
- package/node/get-boundary-bezier-parts-to-next.js.map +1 -1
- package/node/get-boundary-beziers-to-next.d.ts +8 -8
- package/node/get-boundary-beziers-to-next.js +44 -44
- package/node/get-boundary-beziers-to-next.js.map +1 -1
- package/node/get-bounding-box-.d.ts +2 -2
- package/node/get-bounding-box-.js +4 -4
- package/node/get-branches.d.ts +12 -12
- package/node/get-branches.js +68 -68
- package/node/get-branches.js.map +1 -1
- package/node/get-curve/get-curve-between.d.ts +9 -9
- package/node/get-curve/get-curve-between.js +56 -56
- package/node/get-curve/get-curve-between.js.map +1 -1
- package/node/get-curve/get-edge-direction.d.ts +9 -9
- package/node/get-curve/get-edge-direction.js +53 -53
- package/node/get-curve/get-edge-direction.js.map +1 -1
- package/node/get-curve-to-next.d.ts +9 -9
- package/node/get-curve-to-next.js +11 -11
- package/node/get-interface-ccw.d.ts +24 -24
- package/node/get-interface-ccw.js +97 -97
- package/node/get-interface-ccw.js.map +1 -1
- package/node/index.d.ts +36 -36
- package/node/index.js +32 -32
- package/node/loop/get-max-coordinate.d.ts +10 -10
- package/node/loop/get-max-coordinate.js +43 -43
- package/node/loop/get-max-coordinate.js.map +1 -1
- package/node/loop.d.ts +16 -16
- package/node/loop.js +34 -34
- package/node/loop.js.map +1 -1
- package/node/mat/add-to-cp-graph.d.ts +16 -16
- package/node/mat/add-to-cp-graph.js +30 -30
- package/node/mat/add-to-cp-graph.js.map +1 -1
- package/node/mat/bezier-piece.d.ts +12 -12
- package/node/mat/bezier-piece.js +1 -1
- package/node/mat/closest-boundary-point/closest-points-on-curve.d.ts +14 -14
- package/node/mat/closest-boundary-point/closest-points-on-curve.js +72 -73
- package/node/mat/closest-boundary-point/closest-points-on-curve.js.map +1 -1
- package/node/mat/closest-boundary-point/cull-bezier-pieces.d.ts +9 -9
- package/node/mat/closest-boundary-point/cull-bezier-pieces.js +19 -19
- package/node/mat/closest-boundary-point/cull-bezier-pieces.js.map +1 -1
- package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.d.ts +11 -11
- package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.js +24 -24
- package/node/mat/closest-boundary-point/cull-by-loose-bounding-box.js.map +1 -1
- package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.d.ts +11 -11
- package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.js +26 -26
- package/node/mat/closest-boundary-point/cull-by-tight-boundary-box.js.map +1 -1
- package/node/mat/closest-boundary-point/get-best-distance-squared.d.ts +8 -8
- package/node/mat/closest-boundary-point/get-best-distance-squared.js +24 -24
- package/node/mat/closest-boundary-point/get-best-distance-squared.js.map +1 -1
- package/node/mat/closest-boundary-point/get-close-boundary-points.d.ts +17 -17
- package/node/mat/closest-boundary-point/get-close-boundary-points.js +80 -80
- package/node/mat/closest-boundary-point/get-close-boundary-points.js.map +1 -1
- package/node/mat/closest-boundary-point/get-closest-boundary-point.d.ts +18 -18
- package/node/mat/closest-boundary-point/get-closest-boundary-point.js +40 -40
- package/node/mat/closest-boundary-point/get-closest-boundary-point.js.map +1 -1
- package/node/mat/corner.d.ts +37 -37
- package/node/mat/corner.js +1 -1
- package/node/mat/create-new-cp-tree.d.ts +9 -9
- package/node/mat/create-new-cp-tree.js +23 -23
- package/node/mat/create-new-cp-tree.js.map +1 -1
- package/node/mat/elem-type-two-prong.d.ts +3 -3
- package/node/mat/elem-type-two-prong.js +1 -1
- package/node/mat/find-mat/add-1-prong.d.ts +12 -12
- package/node/mat/find-mat/add-1-prong.js +42 -42
- package/node/mat/find-mat/add-1-prong.js.map +1 -1
- package/node/mat/find-mat/add-2-prong.d.ts +21 -21
- package/node/mat/find-mat/add-2-prong.js +192 -192
- package/node/mat/find-mat/add-2-prong.js.map +1 -1
- package/node/mat/find-mat/add-3-prong.d.ts +19 -19
- package/node/mat/find-mat/add-3-prong.js +54 -54
- package/node/mat/find-mat/add-3-prong.js.map +1 -1
- package/node/mat/find-mat/add-debug-info.d.ts +9 -9
- package/node/mat/find-mat/add-debug-info.js +67 -69
- package/node/mat/find-mat/add-debug-info.js.map +1 -1
- package/node/mat/find-mat/create-get-interesting-points-on-loop.d.ts +11 -11
- package/node/mat/find-mat/create-get-interesting-points-on-loop.js +51 -51
- package/node/mat/find-mat/create-get-interesting-points-on-loop.js.map +1 -1
- package/node/mat/find-mat/create-initial-cp-graph.d.ts +12 -12
- package/node/mat/find-mat/create-initial-cp-graph.js +40 -40
- package/node/mat/find-mat/create-initial-cp-graph.js.map +1 -1
- package/node/mat/find-mat/find-2-prong/add-debug-info.d.ts +8 -8
- package/node/mat/find-mat/find-2-prong/add-debug-info.js +21 -21
- package/node/mat/find-mat/find-2-prong/add-debug-info.js.map +1 -1
- package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.d.ts +11 -11
- package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.js +29 -29
- package/node/mat/find-mat/find-2-prong/cull-bezier-pieces.js.map +1 -1
- package/node/mat/find-mat/find-2-prong/find-2-prong.d.ts +37 -37
- package/node/mat/find-mat/find-2-prong/find-2-prong.js +232 -232
- package/node/mat/find-mat/find-2-prong/find-2-prong.js.map +1 -1
- package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.d.ts +9 -9
- package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.js +39 -39
- package/node/mat/find-mat/find-2-prong/find-equidistant-point-on-line.js.map +1 -1
- package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.d.ts +11 -11
- package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.js +37 -37
- package/node/mat/find-mat/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
- package/node/mat/find-mat/find-2-prong/x-for-debugging.d.ts +9 -9
- package/node/mat/find-mat/find-2-prong/x-for-debugging.js +1 -1
- package/node/mat/find-mat/find-3-prong/calc-better-x.d.ts +19 -19
- package/node/mat/find-mat/find-3-prong/calc-better-x.js +36 -36
- package/node/mat/find-mat/find-3-prong/calc-better-x.js.map +1 -1
- package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.d.ts +13 -13
- package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.js +25 -25
- package/node/mat/find-mat/find-3-prong/calc-initial-3-prong-center.js.map +1 -1
- package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.d.ts +22 -22
- package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.js +159 -159
- package/node/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.js.map +1 -1
- package/node/mat/find-mat/find-3-prong/find-3-prong.d.ts +16 -16
- package/node/mat/find-mat/find-3-prong/find-3-prong.js +76 -76
- package/node/mat/find-mat/find-3-prong/find-3-prong.js.map +1 -1
- package/node/mat/find-mat/find-3-prong/get-closest-points.d.ts +9 -9
- package/node/mat/find-mat/find-3-prong/get-closest-points.js +16 -16
- package/node/mat/find-mat/find-3-prong/get-closest-points.js.map +1 -1
- package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.d.ts +15 -15
- package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.js +20 -20
- package/node/mat/find-mat/find-and-add-2-prongs-on-all-paths.js.map +1 -1
- package/node/mat/find-mat/find-and-add-2-prongs.d.ts +16 -16
- package/node/mat/find-mat/find-and-add-2-prongs.js +73 -74
- package/node/mat/find-mat/find-and-add-2-prongs.js.map +1 -1
- package/node/mat/find-mat/find-and-add-3-prongs.d.ts +13 -13
- package/node/mat/find-mat/find-and-add-3-prongs.js +146 -147
- package/node/mat/find-mat/find-and-add-3-prongs.js.map +1 -1
- package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.d.ts +14 -14
- package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.js +33 -33
- package/node/mat/find-mat/find-and-add-hole-closing-2-prongs.js.map +1 -1
- package/node/mat/find-mat/get-potential-2-prongs.d.ts +4 -4
- package/node/mat/find-mat/get-potential-2-prongs.js +16 -16
- package/node/mat/find-mat/get-potential-2-prongs.js.map +1 -1
- package/node/mat/find-mat/get-sharp-corners.d.ts +4 -4
- package/node/mat/find-mat/get-sharp-corners.js +17 -17
- package/node/mat/find-mat/get-sharp-corners.js.map +1 -1
- package/node/mat/geometry/get-closest-square-distance-to-rect.d.ts +5 -5
- package/node/mat/geometry/get-closest-square-distance-to-rect.js +49 -49
- package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.d.ts +5 -5
- package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.js +15 -15
- package/node/mat/geometry/get-closest-squared-distance-to-rotated-rect.js.map +1 -1
- package/node/mat/get-boundary-piece-beziers.d.ts +11 -11
- package/node/mat/get-boundary-piece-beziers.js +58 -58
- package/node/mat/get-boundary-piece-beziers.js.map +1 -1
- package/node/mat/get-contact-circles-at-interface.d.ts +8 -8
- package/node/mat/get-contact-circles-at-interface.js +20 -20
- package/node/mat/get-contact-circles-at-interface.js.map +1 -1
- package/node/mat/get-largest-vertex.d.ts +4 -4
- package/node/mat/get-largest-vertex.js +9 -9
- package/node/mat/get-leaves.d.ts +4 -4
- package/node/mat/get-leaves.js +12 -12
- package/node/mat/get-leaves.js.map +1 -1
- package/node/mat/get-neighboring-cps.d.ts +14 -14
- package/node/mat/get-neighboring-cps.js +30 -30
- package/node/mat/get-neighboring-cps.js.map +1 -1
- package/node/mat/get-two-prong-type.d.ts +5 -5
- package/node/mat/get-two-prong-type.js +8 -8
- package/node/mat/is-another-cp-closeby.d.ts +20 -20
- package/node/mat/is-another-cp-closeby.js +55 -55
- package/node/mat/is-another-cp-closeby.js.map +1 -1
- package/node/mat/simplify-mat-map-only.d.ts +23 -23
- package/node/mat/simplify-mat-map-only.js +80 -80
- package/node/mat/simplify-mat-map-only.js.map +1 -1
- package/node/mat/to-scale-axis/add-debug-info.d.ts +7 -7
- package/node/mat/to-scale-axis/add-debug-info.js +13 -13
- package/node/mat/to-scale-axis/add-debug-info.js.map +1 -1
- package/node/mat/to-scale-axis/cull-non-cycles.d.ts +9 -9
- package/node/mat/to-scale-axis/cull-non-cycles.js +51 -51
- package/node/mat/to-scale-axis/cull-non-cycles.js.map +1 -1
- package/node/mat/to-scale-axis/cull.d.ts +12 -12
- package/node/mat/to-scale-axis/cull.js +132 -132
- package/node/mat/to-scale-axis/cull.js.map +1 -1
- package/node/mat/trim-mat.d.ts +8 -8
- package/node/mat/trim-mat.js +16 -16
- package/node/mat/trim-mat.js.map +1 -1
- package/node/mat.d.ts +22 -22
- package/node/mat.js +1 -1
- package/node/point-on-shape.d.ts +73 -73
- package/node/point-on-shape.js +167 -167
- package/node/point-on-shape.js.map +1 -1
- package/node/simplify-mat.d.ts +16 -16
- package/node/simplify-mat.js +71 -71
- package/node/simplify-mat.js.map +1 -1
- package/node/svg/get-loop-bounds.d.ts +12 -12
- package/node/svg/get-loop-bounds.js +80 -80
- package/node/svg/get-loop-bounds.js.map +1 -1
- package/node/svg/get-min-y-pos.d.ts +8 -8
- package/node/svg/get-min-y-pos.js +9 -9
- package/node/svg/get-shape-bounds.d.ts +9 -9
- package/node/svg/get-shape-bounds.js +35 -35
- package/node/svg/get-shape-bounds.js.map +1 -1
- package/node/sweep-line/sweep-line.d.ts +18 -18
- package/node/sweep-line/sweep-line.js +72 -72
- package/node/sweep-line/sweep-line.js.map +1 -1
- package/node/to-scale-axis.d.ts +16 -16
- package/node/to-scale-axis.js +74 -73
- package/node/to-scale-axis.js.map +1 -1
- package/node/traverse-edges.d.ts +10 -10
- package/node/traverse-edges.js +21 -21
- package/node/traverse-edges.js.map +1 -1
- package/node/traverse-vertices.d.ts +12 -12
- package/node/traverse-vertices.js +27 -27
- package/node/traverse-vertices.js.map +1 -1
- package/package.json +29 -24
- package/src/circle.ts +3 -3
- package/src/compare-curvatures-at-interface.ts +36 -36
- package/src/cp-node/clone.ts +6 -6
- package/src/cp-node/remove.ts +4 -4
- package/src/cp-node.ts +20 -20
- package/src/curve.ts +19 -19
- package/src/debug/functions/draw-elem/bounding-hull.ts +2 -2
- package/src/debug/functions/draw-elem/branch.ts +4 -4
- package/src/debug/functions/draw-elem/culls.ts +4 -4
- package/src/debug/functions/draw-elem/draw-circle-percent.ts +2 -2
- package/src/debug/functions/draw-elem/draw-elem.ts +1 -1
- package/src/debug/functions/draw-elem/dull-corner.ts +3 -3
- package/src/debug/functions/draw-elem/leaves.ts +4 -4
- package/src/debug/functions/draw-elem/loose-bounding-box.ts +2 -2
- package/src/debug/functions/draw-elem/mat.ts +4 -4
- package/src/debug/functions/draw-elem/max-vertex.ts +2 -2
- package/src/debug/functions/draw-elem/min-y.ts +3 -3
- package/src/debug/functions/draw-elem/one-prong-at-dull-corner.ts +4 -4
- package/src/debug/functions/draw-elem/one-prong.ts +4 -4
- package/src/debug/functions/draw-elem/sharp-corner.ts +2 -2
- package/src/debug/functions/draw-elem/three-prong.ts +7 -7
- package/src/debug/functions/draw-elem/tight-bounding-box.ts +1 -1
- package/src/debug/functions/draw-elem/two-prong.ts +1 -1
- package/src/debug/functions/draw-elem/vertex.ts +20 -14
- package/src/debug/functions/general.ts +3 -3
- package/src/debug/functions/three-prong.ts +37 -37
- package/src/debug/functions/two-prong.ts +15 -15
- package/src/find-mats.ts +19 -19
- package/src/get-boundary-bezier-parts-to-next.ts +8 -8
- package/src/get-boundary-beziers-to-next.ts +8 -8
- package/src/get-branches.ts +7 -7
- package/src/get-curve/get-curve-between.ts +21 -21
- package/src/get-curve/get-edge-direction.ts +13 -14
- package/src/get-interface-ccw.ts +12 -12
- package/src/loop/get-max-coordinate.ts +7 -7
- package/src/loop.ts +4 -4
- package/src/mat/add-to-cp-graph.ts +8 -8
- package/src/mat/closest-boundary-point/closest-points-on-curve.ts +5 -6
- package/src/mat/closest-boundary-point/cull-bezier-pieces.ts +1 -1
- package/src/mat/closest-boundary-point/cull-by-loose-bounding-box.ts +5 -5
- package/src/mat/closest-boundary-point/cull-by-tight-boundary-box.ts +5 -5
- package/src/mat/closest-boundary-point/get-best-distance-squared.ts +5 -5
- package/src/mat/closest-boundary-point/get-close-boundary-points.ts +15 -15
- package/src/mat/closest-boundary-point/get-closest-boundary-point.ts +4 -4
- package/src/mat/cmp-cp-on-delta.ts +5 -5
- package/src/mat/create-new-cp-tree.ts +3 -3
- package/src/mat/find-mat/add-1-prong.ts +5 -5
- package/src/mat/find-mat/add-2-prong.ts +42 -42
- package/src/mat/find-mat/add-3-prong.ts +1 -1
- package/src/mat/find-mat/add-debug-info.ts +18 -20
- package/src/mat/find-mat/create-get-interesting-points-on-loop.ts +4 -4
- package/src/mat/find-mat/create-initial-cp-graph.ts +11 -11
- package/src/mat/find-mat/find-2-prong/add-debug-info.ts +4 -4
- package/src/mat/find-mat/find-2-prong/cull-bezier-pieces.ts +5 -5
- package/src/mat/find-mat/find-2-prong/find-2-prong.ts +27 -27
- package/src/mat/find-mat/find-2-prong/find-equidistant-point-on-line.ts +7 -7
- package/src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts +4 -4
- package/src/mat/find-mat/find-3-prong/calc-better-x.ts +4 -4
- package/src/mat/find-mat/find-3-prong/calc-initial-3-prong-center.ts +3 -3
- package/src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts +37 -37
- package/src/mat/find-mat/find-3-prong/find-3-prong.ts +16 -16
- package/src/mat/find-mat/find-3-prong/get-closest-points.ts +1 -1
- package/src/mat/find-mat/find-and-add-2-prongs-on-all-paths.ts +2 -2
- package/src/mat/find-mat/find-and-add-2-prongs.ts +14 -16
- package/src/mat/find-mat/find-and-add-3-prongs.ts +19 -19
- package/src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts +6 -6
- package/src/mat/find-mat/get-potential-2-prongs.ts +4 -4
- package/src/mat/find-mat/get-sharp-corners.ts +4 -4
- package/src/mat/find-mat/get-total-abs-curvature.ts +1 -1
- package/src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts +3 -3
- package/src/mat/get-boundary-piece-beziers.ts +5 -5
- package/src/mat/get-contact-circles-at-interface.ts +1 -1
- package/src/mat/get-edges-as-array.ts +2 -2
- package/src/mat/get-leaves.ts +2 -2
- package/src/mat/get-neighboring-cps.ts +1 -1
- package/src/mat/is-another-cp-closeby.ts +9 -9
- package/src/mat/simplify-mat-map-only.ts +15 -15
- package/src/mat/to-scale-axis/add-debug-info.ts +6 -3
- package/src/mat/to-scale-axis/add-to-tree.ts +10 -10
- package/src/mat/to-scale-axis/calc-groups.ts +19 -19
- package/src/mat/to-scale-axis/create-spacial-tree.ts +4 -4
- package/src/mat/to-scale-axis/cull-non-cycles.ts +5 -5
- package/src/mat/to-scale-axis/cull.ts +5 -5
- package/src/mat/to-scale-axis/get-engulfed-vertices.ts +18 -18
- package/src/mat/trim-mat.ts +1 -1
- package/src/point-on-shape.ts +16 -16
- package/src/simplify-mat.ts +10 -10
- package/src/svg/get-curvature-at-interface.ts +6 -8
- package/src/svg/get-extreme.ts +1 -1
- package/src/svg/get-loop-bounds.ts +13 -13
- package/src/svg/get-shape-bounds.ts +4 -4
- package/src/sweep-line/are-boxes-intersecting.ts +4 -4
- package/src/sweep-line/sweep-line.ts +8 -8
- package/src/to-scale-axis.ts +18 -17
- package/src/traverse-edges.ts +2 -2
- package/src/traverse-vertices.ts +2 -2
- package/tsconfig.json +0 -1
- package/webpack.config.cjs +12 -63
- package/browser/index.min.js.LICENSE.txt +0 -2819
- package/browser/index.module.js +0 -7149
- package/browser/index.module.min.js +0 -2
- package/browser/index.module.min.js.LICENSE.txt +0 -2819
package/node/mat/get-leaves.d.ts
CHANGED
|
@@ -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 };
|
package/node/mat/get-leaves.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
/** @hidden */
|
|
2
|
-
function getLeaves(cpNode) {
|
|
3
|
-
|
|
4
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
if (!cpNodes[0]) {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
for (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (distanceBetween(p1, p2) > DISTANCE_THRESHOLD) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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,
|
|
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
|
-
|
|
21
|
-
// Start from a leaf
|
|
22
|
-
while (!cpNode.isTerminating()) {
|
|
23
|
-
cpNode = cpNode.next;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
for (let k = 0; k < branches.length; k++) {
|
|
28
|
-
|
|
29
|
-
// Try to remove some
|
|
30
|
-
let j = 0;
|
|
31
|
-
while (j < branch.length) {
|
|
32
|
-
|
|
33
|
-
while (true) {
|
|
34
|
-
j++;
|
|
35
|
-
if (j === branch.length) {
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
let curCpNode = branStart;
|
|
55
|
-
let prevT = 0;
|
|
56
|
-
while (curCpNode !== branEnd) {
|
|
57
|
-
|
|
58
|
-
simpleMap.set(curCpNode, { ps: medial, ts: [prevT, t] });
|
|
59
|
-
|
|
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
|
-
|
|
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
|
-
|
|
74
|
-
|
|
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":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGpE;;;;;;;;;;;;;GAaG;AACH,SAAS,kBAAkB,CACnB,MAAc,EACd,cAAc,GAAG,EAAE,EACnB,kBAAkB,GAAG,IAAI,EACzB,gBAAgB,GAAG,GAAG;IAE1B,
|
|
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
|
-
|
|
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,
|
|
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 };
|