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
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { LlRbTree } from 'flo-ll-rb-tree';
|
|
2
|
-
import { Loop } from '../../loop.js';
|
|
3
|
-
import { CpNode } from '../../cp-node.js';
|
|
4
|
-
/**
|
|
5
|
-
* @hidden
|
|
6
|
-
* Find and add two-prongs that remove any holes in the shape.
|
|
7
|
-
* @param loops The loops (that as a precondition must be ordered from
|
|
8
|
-
* highest (i.e. smallest y-value) topmost point loops to lowest)
|
|
9
|
-
* @param cpTrees
|
|
10
|
-
* @param extreme The maximum coordinate value used to calculate floating point
|
|
11
|
-
* tolerances.
|
|
12
|
-
*/
|
|
13
|
-
declare function findAndAddHoleClosing2Prongs(loops: Loop[], cpTrees: Map<Loop, LlRbTree<CpNode>>, extreme: number): void;
|
|
14
|
-
export { findAndAddHoleClosing2Prongs };
|
|
1
|
+
import { LlRbTree } from 'flo-ll-rb-tree';
|
|
2
|
+
import { Loop } from '../../loop.js';
|
|
3
|
+
import { CpNode } from '../../cp-node.js';
|
|
4
|
+
/**
|
|
5
|
+
* @hidden
|
|
6
|
+
* Find and add two-prongs that remove any holes in the shape.
|
|
7
|
+
* @param loops The loops (that as a precondition must be ordered from
|
|
8
|
+
* highest (i.e. smallest y-value) topmost point loops to lowest)
|
|
9
|
+
* @param cpTrees
|
|
10
|
+
* @param extreme The maximum coordinate value used to calculate floating point
|
|
11
|
+
* tolerances.
|
|
12
|
+
*/
|
|
13
|
+
declare function findAndAddHoleClosing2Prongs(loops: Loop[], cpTrees: Map<Loop, LlRbTree<CpNode>>, extreme: number): void;
|
|
14
|
+
export { findAndAddHoleClosing2Prongs };
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { getShapeBounds } from '../../svg/get-shape-bounds.js';
|
|
2
|
-
import { getMinYPos } from '../../svg/get-min-y-pos.js';
|
|
3
|
-
import { find2Prong } from './find-2-prong/find-2-prong.js';
|
|
4
|
-
import { add2Prong } from './add-2-prong.js';
|
|
5
|
-
/**
|
|
6
|
-
* @hidden
|
|
7
|
-
* Find and add two-prongs that remove any holes in the shape.
|
|
8
|
-
* @param loops The loops (that as a precondition must be ordered from
|
|
9
|
-
* highest (i.e. smallest y-value) topmost point loops to lowest)
|
|
10
|
-
* @param cpTrees
|
|
11
|
-
* @param extreme The maximum coordinate value used to calculate floating point
|
|
12
|
-
* tolerances.
|
|
13
|
-
*/
|
|
14
|
-
function findAndAddHoleClosing2Prongs(loops, cpTrees, extreme) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
(bounds.maxY.p[1] - bounds.minY.p[1]) ** 2;
|
|
18
|
-
// Find the topmost points on each loop.
|
|
19
|
-
|
|
20
|
-
// We start at 1 since 0 is the outer (root) loop
|
|
21
|
-
for (let k = 1; k < minYs.length; k++) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (!holeClosingTwoProng) {
|
|
25
|
-
throw new Error(`Unable to find hole-closing 2-prong`);
|
|
26
|
-
}
|
|
27
|
-
// TODO important - handle case of n-prong, i.e. more than one antipode
|
|
28
|
-
// - currently we only handle case of single antipode (the general case)
|
|
29
|
-
|
|
30
|
-
add2Prong(cpTrees, circle, posSource, [posAntipodes[0]], true, extreme);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
export { findAndAddHoleClosing2Prongs };
|
|
1
|
+
import { getShapeBounds } from '../../svg/get-shape-bounds.js';
|
|
2
|
+
import { getMinYPos } from '../../svg/get-min-y-pos.js';
|
|
3
|
+
import { find2Prong } from './find-2-prong/find-2-prong.js';
|
|
4
|
+
import { add2Prong } from './add-2-prong.js';
|
|
5
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
* Find and add two-prongs that remove any holes in the shape.
|
|
8
|
+
* @param loops The loops (that as a precondition must be ordered from
|
|
9
|
+
* highest (i.e. smallest y-value) topmost point loops to lowest)
|
|
10
|
+
* @param cpTrees
|
|
11
|
+
* @param extreme The maximum coordinate value used to calculate floating point
|
|
12
|
+
* tolerances.
|
|
13
|
+
*/
|
|
14
|
+
function findAndAddHoleClosing2Prongs(loops, cpTrees, extreme) {
|
|
15
|
+
const bounds = getShapeBounds(loops);
|
|
16
|
+
const squaredDiagonalLength = (bounds.maxX.p[0] - bounds.minX.p[0]) ** 2 +
|
|
17
|
+
(bounds.maxY.p[1] - bounds.minY.p[1]) ** 2;
|
|
18
|
+
// Find the topmost points on each loop.
|
|
19
|
+
const minYs = loops.map(getMinYPos);
|
|
20
|
+
// We start at 1 since 0 is the outer (root) loop
|
|
21
|
+
for (let k = 1; k < minYs.length; k++) {
|
|
22
|
+
const posSource = minYs[k];
|
|
23
|
+
const holeClosingTwoProng = find2Prong(loops, extreme, squaredDiagonalLength, cpTrees, posSource, true, k);
|
|
24
|
+
if (!holeClosingTwoProng) {
|
|
25
|
+
throw new Error(`Unable to find hole-closing 2-prong`);
|
|
26
|
+
}
|
|
27
|
+
// TODO important - handle case of n-prong, i.e. more than one antipode
|
|
28
|
+
// - currently we only handle case of single antipode (the general case)
|
|
29
|
+
const { circle, zs: posAntipodes } = holeClosingTwoProng;
|
|
30
|
+
add2Prong(cpTrees, circle, posSource, [posAntipodes[0]], true, extreme);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export { findAndAddHoleClosing2Prongs };
|
|
34
34
|
//# sourceMappingURL=find-and-add-hole-closing-2-prongs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-and-add-hole-closing-2-prongs.js","sourceRoot":"","sources":["../../../src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;;;;;;;GAQG;AACH,SAAS,4BAA4B,CAC7B,KAAa,EACb,OAAmC,EACnC,OAAe;IAEnB,
|
|
1
|
+
{"version":3,"file":"find-and-add-hole-closing-2-prongs.js","sourceRoot":"","sources":["../../../src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;;;;;;;GAQG;AACH,SAAS,4BAA4B,CAC7B,KAAa,EACb,OAAmC,EACnC,OAAe;IAEnB,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,qBAAqB,GACvB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC;QACxC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC;IAE7C,wCAAwC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEpC,iDAAiD;IACjD,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAM,mBAAmB,GAAG,UAAU,CAClC,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CACrE,CAAC;QAEF,IAAI,CAAC,mBAAmB,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SAC1D;QAED,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC;QAEzD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;KAC3E;AACL,CAAC;AAGD,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IPointOnShape } from '../../point-on-shape.js';
|
|
2
|
-
/** @hidden */
|
|
3
|
-
declare function getPotential2Prongs(possPerLoop: IPointOnShape[][]): IPointOnShape[][];
|
|
4
|
-
export { getPotential2Prongs };
|
|
1
|
+
import { IPointOnShape } from '../../point-on-shape.js';
|
|
2
|
+
/** @hidden */
|
|
3
|
+
declare function getPotential2Prongs(possPerLoop: IPointOnShape[][]): IPointOnShape[][];
|
|
4
|
+
export { getPotential2Prongs };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { isPosQuiteSharpCorner } from '../../point-on-shape.js';
|
|
2
|
-
/** @hidden */
|
|
3
|
-
function getPotential2Prongs(possPerLoop) {
|
|
4
|
-
|
|
5
|
-
for (
|
|
6
|
-
|
|
7
|
-
for (
|
|
8
|
-
if (!isPosQuiteSharpCorner(pos)) {
|
|
9
|
-
for2Prongs.push(pos);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
for2ProngsArray.push(for2Prongs);
|
|
13
|
-
}
|
|
14
|
-
return for2ProngsArray;
|
|
15
|
-
}
|
|
16
|
-
export { getPotential2Prongs };
|
|
1
|
+
import { isPosQuiteSharpCorner } from '../../point-on-shape.js';
|
|
2
|
+
/** @hidden */
|
|
3
|
+
function getPotential2Prongs(possPerLoop) {
|
|
4
|
+
const for2ProngsArray = [];
|
|
5
|
+
for (const poss of possPerLoop) {
|
|
6
|
+
const for2Prongs = [];
|
|
7
|
+
for (const pos of poss) {
|
|
8
|
+
if (!isPosQuiteSharpCorner(pos)) {
|
|
9
|
+
for2Prongs.push(pos);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
for2ProngsArray.push(for2Prongs);
|
|
13
|
+
}
|
|
14
|
+
return for2ProngsArray;
|
|
15
|
+
}
|
|
16
|
+
export { getPotential2Prongs };
|
|
17
17
|
//# sourceMappingURL=get-potential-2-prongs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-potential-2-prongs.js","sourceRoot":"","sources":["../../../src/mat/find-mat/get-potential-2-prongs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,cAAc;AACd,SAAS,mBAAmB,CAAC,WAA8B;IACvD,
|
|
1
|
+
{"version":3,"file":"get-potential-2-prongs.js","sourceRoot":"","sources":["../../../src/mat/find-mat/get-potential-2-prongs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,cAAc;AACd,SAAS,mBAAmB,CAAC,WAA8B;IACvD,MAAM,eAAe,GAAG,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC5B,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE;gBAC7B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACxB;SACJ;QAED,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACpC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAGD,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IPointOnShape } from '../../point-on-shape.js';
|
|
2
|
-
/** @hidden */
|
|
3
|
-
declare function getSharpCorners(possPerLoop: IPointOnShape[][]): IPointOnShape[][];
|
|
4
|
-
export { getSharpCorners };
|
|
1
|
+
import { IPointOnShape } from '../../point-on-shape.js';
|
|
2
|
+
/** @hidden */
|
|
3
|
+
declare function getSharpCorners(possPerLoop: IPointOnShape[][]): IPointOnShape[][];
|
|
4
|
+
export { getSharpCorners };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { isPosQuiteSharpCorner } from '../../point-on-shape.js';
|
|
2
|
-
/** @hidden */
|
|
3
|
-
function getSharpCorners(possPerLoop) {
|
|
4
|
-
|
|
5
|
-
for (
|
|
6
|
-
|
|
7
|
-
for (
|
|
8
|
-
//if (PointOnShape.isQuiteSharpCorner(pos)) {
|
|
9
|
-
if (isPosQuiteSharpCorner(pos)) {
|
|
10
|
-
sharpCorners.push(pos);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
sharpCornersPerLoop.push(sharpCorners);
|
|
14
|
-
}
|
|
15
|
-
return sharpCornersPerLoop;
|
|
16
|
-
}
|
|
17
|
-
export { getSharpCorners };
|
|
1
|
+
import { isPosQuiteSharpCorner } from '../../point-on-shape.js';
|
|
2
|
+
/** @hidden */
|
|
3
|
+
function getSharpCorners(possPerLoop) {
|
|
4
|
+
const sharpCornersPerLoop = [];
|
|
5
|
+
for (const poss of possPerLoop) {
|
|
6
|
+
const sharpCorners = [];
|
|
7
|
+
for (const pos of poss) {
|
|
8
|
+
//if (PointOnShape.isQuiteSharpCorner(pos)) {
|
|
9
|
+
if (isPosQuiteSharpCorner(pos)) {
|
|
10
|
+
sharpCorners.push(pos);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
sharpCornersPerLoop.push(sharpCorners);
|
|
14
|
+
}
|
|
15
|
+
return sharpCornersPerLoop;
|
|
16
|
+
}
|
|
17
|
+
export { getSharpCorners };
|
|
18
18
|
//# sourceMappingURL=get-sharp-corners.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-sharp-corners.js","sourceRoot":"","sources":["../../../src/mat/find-mat/get-sharp-corners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,cAAc;AACd,SAAS,eAAe,CAAC,WAA8B;IACnD,
|
|
1
|
+
{"version":3,"file":"get-sharp-corners.js","sourceRoot":"","sources":["../../../src/mat/find-mat/get-sharp-corners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,cAAc;AACd,SAAS,eAAe,CAAC,WAA8B;IACnD,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC5B,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,6CAA6C;YAC7C,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE;gBAC5B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC1B;SACJ;QAED,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1C;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @hidden
|
|
3
|
-
*/
|
|
4
|
-
declare function getClosestSquareDistanceToRect(box: number[][], p: number[]): number;
|
|
5
|
-
export { getClosestSquareDistanceToRect };
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
*/
|
|
4
|
+
declare function getClosestSquareDistanceToRect(box: number[][], p: number[]): number;
|
|
5
|
+
export { getClosestSquareDistanceToRect };
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { squaredDistanceBetween as squaredDistanceBetween_ } from 'flo-vector2d';
|
|
2
|
-
const squaredDistanceBetween = squaredDistanceBetween_;
|
|
3
|
-
/**
|
|
4
|
-
* @hidden
|
|
5
|
-
*/
|
|
6
|
-
function getClosestSquareDistanceToRect(box, p) {
|
|
7
|
-
const p0 = box[0];
|
|
8
|
-
const p1 = box[1];
|
|
9
|
-
const x0 = p0[0];
|
|
10
|
-
const y0 = p0[1];
|
|
11
|
-
const x1 = p1[0];
|
|
12
|
-
const y1 = p1[1];
|
|
13
|
-
const xp = p[0];
|
|
14
|
-
const yp = p[1];
|
|
15
|
-
//let [[x0,y0],[x1,y1]] = box;
|
|
16
|
-
//let [xp,yp] = p;
|
|
17
|
-
if (xp < x0) {
|
|
18
|
-
if (yp < y0) {
|
|
19
|
-
return squaredDistanceBetween(box[0], p);
|
|
20
|
-
}
|
|
21
|
-
else if (yp > y1) {
|
|
22
|
-
return squaredDistanceBetween([x0, y1], p);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return (x0 - xp) ** 2;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
else if (xp > x1) {
|
|
29
|
-
if (yp < y0) {
|
|
30
|
-
return squaredDistanceBetween([x1, y0], p);
|
|
31
|
-
}
|
|
32
|
-
else if (yp > y1) {
|
|
33
|
-
return squaredDistanceBetween(box[1], p);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return (xp - x1) ** 2;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
if (yp < y0) {
|
|
41
|
-
return (y0 - yp) ** 2;
|
|
42
|
-
}
|
|
43
|
-
else if (yp > y1) {
|
|
44
|
-
return (yp - y1) ** 2;
|
|
45
|
-
}
|
|
46
|
-
return 0;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
export { getClosestSquareDistanceToRect };
|
|
1
|
+
import { squaredDistanceBetween as squaredDistanceBetween_ } from 'flo-vector2d';
|
|
2
|
+
const squaredDistanceBetween = squaredDistanceBetween_;
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
*/
|
|
6
|
+
function getClosestSquareDistanceToRect(box, p) {
|
|
7
|
+
const p0 = box[0];
|
|
8
|
+
const p1 = box[1];
|
|
9
|
+
const x0 = p0[0];
|
|
10
|
+
const y0 = p0[1];
|
|
11
|
+
const x1 = p1[0];
|
|
12
|
+
const y1 = p1[1];
|
|
13
|
+
const xp = p[0];
|
|
14
|
+
const yp = p[1];
|
|
15
|
+
//let [[x0,y0],[x1,y1]] = box;
|
|
16
|
+
//let [xp,yp] = p;
|
|
17
|
+
if (xp < x0) {
|
|
18
|
+
if (yp < y0) {
|
|
19
|
+
return squaredDistanceBetween(box[0], p);
|
|
20
|
+
}
|
|
21
|
+
else if (yp > y1) {
|
|
22
|
+
return squaredDistanceBetween([x0, y1], p);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return (x0 - xp) ** 2;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if (xp > x1) {
|
|
29
|
+
if (yp < y0) {
|
|
30
|
+
return squaredDistanceBetween([x1, y0], p);
|
|
31
|
+
}
|
|
32
|
+
else if (yp > y1) {
|
|
33
|
+
return squaredDistanceBetween(box[1], p);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return (xp - x1) ** 2;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
if (yp < y0) {
|
|
41
|
+
return (y0 - yp) ** 2;
|
|
42
|
+
}
|
|
43
|
+
else if (yp > y1) {
|
|
44
|
+
return (yp - y1) ** 2;
|
|
45
|
+
}
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export { getClosestSquareDistanceToRect };
|
|
50
50
|
//# sourceMappingURL=get-closest-square-distance-to-rect.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @hidden
|
|
3
|
-
*/
|
|
4
|
-
declare function getClosestSquaredDistanceToRotatedRect(ps: number[][], p: number[]): number;
|
|
5
|
-
export { getClosestSquaredDistanceToRotatedRect };
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
*/
|
|
4
|
+
declare function getClosestSquaredDistanceToRotatedRect(ps: number[][], p: number[]): number;
|
|
5
|
+
export { getClosestSquaredDistanceToRotatedRect };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { squaredDistanceBetweenPointAndLineSegment, squaredDistanceBetween } from 'flo-vector2d';
|
|
2
|
-
/**
|
|
3
|
-
* @hidden
|
|
4
|
-
*/
|
|
5
|
-
function getClosestSquaredDistanceToRotatedRect(ps, p) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (ds[0] <= height && ds[2] <= height &&
|
|
10
|
-
ds[1] <= width && ds[3] <= width) {
|
|
11
|
-
return 0; // Inside rotated rect
|
|
12
|
-
}
|
|
13
|
-
return Math.min(...ds);
|
|
14
|
-
}
|
|
15
|
-
export { getClosestSquaredDistanceToRotatedRect };
|
|
1
|
+
import { squaredDistanceBetweenPointAndLineSegment, squaredDistanceBetween } from 'flo-vector2d';
|
|
2
|
+
/**
|
|
3
|
+
* @hidden
|
|
4
|
+
*/
|
|
5
|
+
function getClosestSquaredDistanceToRotatedRect(ps, p) {
|
|
6
|
+
const ds = [0, 1, 2, 3].map(i => squaredDistanceBetweenPointAndLineSegment(p, [ps[i], ps[(i + 1) % 4]]));
|
|
7
|
+
const width = squaredDistanceBetween(ps[0], ps[1]);
|
|
8
|
+
const height = squaredDistanceBetween(ps[0], ps[3]);
|
|
9
|
+
if (ds[0] <= height && ds[2] <= height &&
|
|
10
|
+
ds[1] <= width && ds[3] <= width) {
|
|
11
|
+
return 0; // Inside rotated rect
|
|
12
|
+
}
|
|
13
|
+
return Math.min(...ds);
|
|
14
|
+
}
|
|
15
|
+
export { getClosestSquaredDistanceToRotatedRect };
|
|
16
16
|
//# sourceMappingURL=get-closest-squared-distance-to-rotated-rect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-closest-squared-distance-to-rotated-rect.js","sourceRoot":"","sources":["../../../src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yCAAyC,EAAE,sBAAsB,EACjE,MAAM,cAAc,CAAC;AAGtB;;GAEG;AACH,SAAS,sCAAsC,CAAC,EAAc,EAAE,CAAW;IAC1E,
|
|
1
|
+
{"version":3,"file":"get-closest-squared-distance-to-rotated-rect.js","sourceRoot":"","sources":["../../../src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yCAAyC,EAAE,sBAAsB,EACjE,MAAM,cAAc,CAAC;AAGtB;;GAEG;AACH,SAAS,sCAAsC,CAAC,EAAc,EAAE,CAAW;IAC1E,MAAM,EAAE,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,yCAAyC,CACrE,CAAC,EACD,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CACtB,CACD,CAAC;IAEF,MAAM,KAAK,GAAI,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM;QACrC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE;QAEnC,OAAO,CAAC,CAAC,CAAC,sBAAsB;KAChC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACxB,CAAC;AAGD,OAAO,EAAE,sCAAsC,EAAE,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { CpNode } from '../cp-node.js';
|
|
2
|
-
import { BezierPiece } from './bezier-piece.js';
|
|
3
|
-
/**
|
|
4
|
-
* @hidden
|
|
5
|
-
* Returns the ordered cubic bezier pieces (i.e a bezier with a t range)
|
|
6
|
-
* from the given boundary piece.
|
|
7
|
-
* @param cpNodes - An ordered pair that represents the start and end points of
|
|
8
|
-
* the boundary piece
|
|
9
|
-
*/
|
|
10
|
-
declare function getBoundaryPieceBeziers(cpNodes: CpNode[]): BezierPiece[];
|
|
11
|
-
export { getBoundaryPieceBeziers };
|
|
1
|
+
import { CpNode } from '../cp-node.js';
|
|
2
|
+
import { BezierPiece } from './bezier-piece.js';
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
* Returns the ordered cubic bezier pieces (i.e a bezier with a t range)
|
|
6
|
+
* from the given boundary piece.
|
|
7
|
+
* @param cpNodes - An ordered pair that represents the start and end points of
|
|
8
|
+
* the boundary piece
|
|
9
|
+
*/
|
|
10
|
+
declare function getBoundaryPieceBeziers(cpNodes: CpNode[]): BezierPiece[];
|
|
11
|
+
export { getBoundaryPieceBeziers };
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import { isPosQuiteSharpCorner } from '../point-on-shape.js';
|
|
2
|
-
import { compareCps } from '../contact-point.js';
|
|
3
|
-
/**
|
|
4
|
-
* @hidden
|
|
5
|
-
* Returns the ordered cubic bezier pieces (i.e a bezier with a t range)
|
|
6
|
-
* from the given boundary piece.
|
|
7
|
-
* @param cpNodes - An ordered pair that represents the start and end points of
|
|
8
|
-
* the boundary piece
|
|
9
|
-
*/
|
|
10
|
-
function getBoundaryPieceBeziers(cpNodes) {
|
|
11
|
-
let cpThis = cpNodes[0];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// As opposed to going around the circle and taking the last exit
|
|
15
|
-
let goStraight = true;
|
|
16
|
-
do {
|
|
17
|
-
if (!goStraight) {
|
|
18
|
-
goStraight = true;
|
|
19
|
-
cpThis = cpThis.prevOnCircle; // take last exit
|
|
20
|
-
continue;
|
|
21
|
-
}
|
|
22
|
-
goStraight = false;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (posNext.curve === posThis.curve &&
|
|
26
|
-
//PointOnShape.isQuiteSharpCorner(posThis) &&
|
|
27
|
-
//PointOnShape.isQuiteSharpCorner(posNext)) {
|
|
28
|
-
isPosQuiteSharpCorner(posThis) &&
|
|
29
|
-
isPosQuiteSharpCorner(posNext)) {
|
|
30
|
-
// Do nothing
|
|
31
|
-
}
|
|
32
|
-
else if (posNext.curve === posThis.curve &&
|
|
33
|
-
compareCps(cpThis.next.cp, cpThis.cp) > 0) {
|
|
34
|
-
bezierPieces.push({ curve: posThis.curve, ts: [posThis.t, posNext.t] });
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
bezierPieces.push({ curve: posThis.curve, ts: [posThis.t, 1] });
|
|
38
|
-
if (cpThis.cp.pointOnShape.curve.loop === cpThis.next.cp.pointOnShape.curve.loop) {
|
|
39
|
-
addSkippedBeziers(bezierPieces, posThis.curve, posNext.curve, posNext.t);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
cpThis = cpThis.next;
|
|
43
|
-
} while (cpThis !== cpEnd);
|
|
44
|
-
return bezierPieces;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* @hidden
|
|
48
|
-
* Adds pieces of skipped beziers
|
|
49
|
-
*/
|
|
50
|
-
function addSkippedBeziers(bezierPieces, curveStart, curveEnd, t1) {
|
|
51
|
-
let curveThis = curveStart;
|
|
52
|
-
do {
|
|
53
|
-
curveThis = curveThis.next;
|
|
54
|
-
|
|
55
|
-
bezierPieces.push({ curve: curveThis, ts: [0, tEnd] });
|
|
56
|
-
} while (curveThis !== curveEnd);
|
|
57
|
-
}
|
|
58
|
-
export { getBoundaryPieceBeziers };
|
|
1
|
+
import { isPosQuiteSharpCorner } from '../point-on-shape.js';
|
|
2
|
+
import { compareCps } from '../contact-point.js';
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
* Returns the ordered cubic bezier pieces (i.e a bezier with a t range)
|
|
6
|
+
* from the given boundary piece.
|
|
7
|
+
* @param cpNodes - An ordered pair that represents the start and end points of
|
|
8
|
+
* the boundary piece
|
|
9
|
+
*/
|
|
10
|
+
function getBoundaryPieceBeziers(cpNodes) {
|
|
11
|
+
let cpThis = cpNodes[0];
|
|
12
|
+
const cpEnd = cpNodes[1];
|
|
13
|
+
const bezierPieces = [];
|
|
14
|
+
// As opposed to going around the circle and taking the last exit
|
|
15
|
+
let goStraight = true;
|
|
16
|
+
do {
|
|
17
|
+
if (!goStraight) {
|
|
18
|
+
goStraight = true;
|
|
19
|
+
cpThis = cpThis.prevOnCircle; // take last exit
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
goStraight = false;
|
|
23
|
+
const posThis = cpThis.cp.pointOnShape;
|
|
24
|
+
const posNext = cpThis.next.cp.pointOnShape;
|
|
25
|
+
if (posNext.curve === posThis.curve &&
|
|
26
|
+
//PointOnShape.isQuiteSharpCorner(posThis) &&
|
|
27
|
+
//PointOnShape.isQuiteSharpCorner(posNext)) {
|
|
28
|
+
isPosQuiteSharpCorner(posThis) &&
|
|
29
|
+
isPosQuiteSharpCorner(posNext)) {
|
|
30
|
+
// Do nothing
|
|
31
|
+
}
|
|
32
|
+
else if (posNext.curve === posThis.curve &&
|
|
33
|
+
compareCps(cpThis.next.cp, cpThis.cp) > 0) {
|
|
34
|
+
bezierPieces.push({ curve: posThis.curve, ts: [posThis.t, posNext.t] });
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
bezierPieces.push({ curve: posThis.curve, ts: [posThis.t, 1] });
|
|
38
|
+
if (cpThis.cp.pointOnShape.curve.loop === cpThis.next.cp.pointOnShape.curve.loop) {
|
|
39
|
+
addSkippedBeziers(bezierPieces, posThis.curve, posNext.curve, posNext.t);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
cpThis = cpThis.next;
|
|
43
|
+
} while (cpThis !== cpEnd);
|
|
44
|
+
return bezierPieces;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @hidden
|
|
48
|
+
* Adds pieces of skipped beziers
|
|
49
|
+
*/
|
|
50
|
+
function addSkippedBeziers(bezierPieces, curveStart, curveEnd, t1) {
|
|
51
|
+
let curveThis = curveStart;
|
|
52
|
+
do {
|
|
53
|
+
curveThis = curveThis.next;
|
|
54
|
+
const tEnd = curveThis === curveEnd ? t1 : 1;
|
|
55
|
+
bezierPieces.push({ curve: curveThis, ts: [0, tEnd] });
|
|
56
|
+
} while (curveThis !== curveEnd);
|
|
57
|
+
}
|
|
58
|
+
export { getBoundaryPieceBeziers };
|
|
59
59
|
//# sourceMappingURL=get-boundary-piece-beziers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-boundary-piece-beziers.js","sourceRoot":"","sources":["../../src/mat/get-boundary-piece-beziers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,OAAiB;IAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"get-boundary-piece-beziers.js","sourceRoot":"","sources":["../../src/mat/get-boundary-piece-beziers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,OAAiB;IAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAM,YAAY,GAAG,EAAE,CAAC;IAExB,iEAAiE;IACjE,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,GAAG;QACC,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,iBAAiB;YAC/C,SAAS;SACZ;QAED,UAAU,GAAG,KAAK,CAAC;QAEnB,MAAM,OAAO,GAAG,MAAM,CAAM,EAAE,CAAC,YAAY,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;QAE5C,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YAC/B,8CAA8C;YAC9C,6CAA6C;YAC7C,qBAAqB,CAAC,OAAO,CAAC;YAC9B,qBAAqB,CAAC,OAAO,CAAC,EAAE;YAEhC,aAAa;SAChB;aAAM,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YAC/B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YAElD,YAAY,CAAC,IAAI,CACb,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC;SACL;aAAM;YACH,YAAY,CAAC,IAAI,CACb,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAC/C,CAAC;YAEF,IAAI,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE;gBAC9E,iBAAiB,CACT,YAAY,EACZ,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,CAAC,CAChB,CAAC;aACL;SACJ;QAED,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;KACxB,QAAQ,MAAM,KAAK,KAAK,EAAE;IAG3B,OAAO,YAAY,CAAC;AACxB,CAAC;AAGD;;;GAGG;AACH,SAAS,iBAAiB,CAClB,YAA4B,EAC5B,UAAoB,EACpB,QAAoB,EACpB,EAAqB;IAEzB,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,GAAG;QACC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;KAC1D,QAAQ,SAAS,KAAK,QAAQ,EAAE;AACrC,CAAC;AAGD,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Curve } from '../curve.js';
|
|
2
|
-
import { IPointOnShape } from '../point-on-shape.js';
|
|
3
|
-
/**
|
|
4
|
-
* @hidden
|
|
5
|
-
* @param curve
|
|
6
|
-
*/
|
|
7
|
-
declare function getContactCirclesAtInterface(curve: Curve): IPointOnShape[];
|
|
8
|
-
export { getContactCirclesAtInterface };
|
|
1
|
+
import { Curve } from '../curve.js';
|
|
2
|
+
import { IPointOnShape } from '../point-on-shape.js';
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
* @param curve
|
|
6
|
+
*/
|
|
7
|
+
declare function getContactCirclesAtInterface(curve: Curve): IPointOnShape[];
|
|
8
|
+
export { getContactCirclesAtInterface };
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { getCornerAtEnd } from '../curve.js';
|
|
2
|
-
import { PointOnShape } from '../point-on-shape.js';
|
|
3
|
-
/**
|
|
4
|
-
* @hidden
|
|
5
|
-
* @param curve
|
|
6
|
-
*/
|
|
7
|
-
function getContactCirclesAtInterface(curve) {
|
|
8
|
-
|
|
9
|
-
if (isQuiteSharp) {
|
|
10
|
-
return [new PointOnShape(curve, 1)];
|
|
11
|
-
}
|
|
12
|
-
else if (isQuiteDull) {
|
|
13
|
-
return [
|
|
14
|
-
new PointOnShape(curve, 1),
|
|
15
|
-
new PointOnShape(curve.next, 0)
|
|
16
|
-
];
|
|
17
|
-
}
|
|
18
|
-
return [];
|
|
19
|
-
}
|
|
20
|
-
export { getContactCirclesAtInterface };
|
|
1
|
+
import { getCornerAtEnd } from '../curve.js';
|
|
2
|
+
import { PointOnShape } from '../point-on-shape.js';
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
* @param curve
|
|
6
|
+
*/
|
|
7
|
+
function getContactCirclesAtInterface(curve) {
|
|
8
|
+
const { isQuiteSharp, isQuiteDull } = getCornerAtEnd(curve);
|
|
9
|
+
if (isQuiteSharp) {
|
|
10
|
+
return [new PointOnShape(curve, 1)];
|
|
11
|
+
}
|
|
12
|
+
else if (isQuiteDull) {
|
|
13
|
+
return [
|
|
14
|
+
new PointOnShape(curve, 1),
|
|
15
|
+
new PointOnShape(curve.next, 0)
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
export { getContactCirclesAtInterface };
|
|
21
21
|
//# sourceMappingURL=get-contact-circles-at-interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-contact-circles-at-interface.js","sourceRoot":"","sources":["../../src/mat/get-contact-circles-at-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,cAAc,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD;;;GAGG;AACH,SAAS,4BAA4B,CAAC,KAAY;IACjD,
|
|
1
|
+
{"version":3,"file":"get-contact-circles-at-interface.js","sourceRoot":"","sources":["../../src/mat/get-contact-circles-at-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,cAAc,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD;;;GAGG;AACH,SAAS,4BAA4B,CAAC,KAAY;IACjD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAE5D,IAAI,YAAY,EAAE;QACjB,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KACpC;SAAM,IAAI,WAAW,EAAE;QACvB,OAAO;YACN,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1B,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/B,CAAC;KACF;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AAGD,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CpNode } from '../cp-node.js';
|
|
2
|
-
/** @hidden */
|
|
3
|
-
declare function getLargestVertex(cpNodes: CpNode[]): CpNode;
|
|
4
|
-
export { getLargestVertex };
|
|
1
|
+
import { CpNode } from '../cp-node.js';
|
|
2
|
+
/** @hidden */
|
|
3
|
+
declare function getLargestVertex(cpNodes: CpNode[]): CpNode;
|
|
4
|
+
export { getLargestVertex };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/** @hidden */
|
|
2
|
-
function getLargestVertex(cpNodes) {
|
|
3
|
-
return cpNodes.reduce(function (maxCpNode, cpNode) {
|
|
4
|
-
return maxCpNode.cp.circle.radius >= cpNode.cp.circle.radius
|
|
5
|
-
? maxCpNode
|
|
6
|
-
: cpNode;
|
|
7
|
-
}, cpNodes[0]);
|
|
8
|
-
}
|
|
9
|
-
export { getLargestVertex };
|
|
1
|
+
/** @hidden */
|
|
2
|
+
function getLargestVertex(cpNodes) {
|
|
3
|
+
return cpNodes.reduce(function (maxCpNode, cpNode) {
|
|
4
|
+
return maxCpNode.cp.circle.radius >= cpNode.cp.circle.radius
|
|
5
|
+
? maxCpNode
|
|
6
|
+
: cpNode;
|
|
7
|
+
}, cpNodes[0]);
|
|
8
|
+
}
|
|
9
|
+
export { getLargestVertex };
|
|
10
10
|
//# sourceMappingURL=get-largest-vertex.js.map
|