flo-mat 2.0.2 → 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/browser/index.js +8230 -8229
- package/browser/index.min.js +1 -1
- package/node/circle.d.ts +20 -20
- package/node/circle.js +31 -31
- package/node/compare-curvatures-at-interface.d.ts +19 -19
- package/node/compare-curvatures-at-interface.js +124 -124
- 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/remove.d.ts +9 -9
- package/node/cp-node/remove.js +19 -19
- package/node/cp-node.d.ts +202 -202
- package/node/cp-node.js +320 -320
- package/node/curve.d.ts +46 -46
- package/node/curve.js +88 -88
- 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/branch.d.ts +4 -4
- package/node/debug/functions/draw-elem/branch.js +22 -22
- 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/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-elem.d.ts +8 -8
- package/node/debug/functions/draw-elem/draw-elem.js +45 -45
- 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/leaves.d.ts +4 -4
- package/node/debug/functions/draw-elem/leaves.js +12 -12
- 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/mat.d.ts +4 -4
- package/node/debug/functions/draw-elem/mat.js +30 -30
- 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/min-y.d.ts +4 -4
- package/node/debug/functions/draw-elem/min-y.js +13 -13
- 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.d.ts +4 -4
- package/node/debug/functions/draw-elem/one-prong.js +16 -16
- 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/three-prong.d.ts +4 -4
- package/node/debug/functions/draw-elem/three-prong.js +16 -16
- 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/two-prong.d.ts +4 -4
- package/node/debug/functions/draw-elem/two-prong.js +36 -36
- 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/general.d.ts +48 -48
- package/node/debug/functions/general.js +52 -52
- package/node/debug/functions/three-prong.d.ts +11 -11
- package/node/debug/functions/three-prong.js +184 -184
- package/node/debug/functions/two-prong.d.ts +13 -13
- package/node/debug/functions/two-prong.js +117 -117
- 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 -122
- 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-beziers-to-next.d.ts +8 -8
- package/node/get-boundary-beziers-to-next.js +44 -44
- 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-curve/get-curve-between.d.ts +9 -9
- package/node/get-curve/get-curve-between.js +56 -56
- 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-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/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.d.ts +16 -16
- package/node/loop.js +34 -34
- package/node/mat/add-to-cp-graph.d.ts +16 -16
- package/node/mat/add-to-cp-graph.js +30 -30
- 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 -72
- 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-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-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/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-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-closest-boundary-point.d.ts +18 -18
- package/node/mat/closest-boundary-point/get-closest-boundary-point.js +40 -40
- 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/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-2-prong.d.ts +21 -21
- package/node/mat/find-mat/add-2-prong.js +192 -192
- 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-debug-info.d.ts +9 -9
- package/node/mat/find-mat/add-debug-info.js +67 -67
- 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-initial-cp-graph.d.ts +12 -12
- package/node/mat/find-mat/create-initial-cp-graph.js +40 -40
- 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/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/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-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/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/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-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/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.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/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-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.d.ts +16 -16
- package/node/mat/find-mat/find-and-add-2-prongs.js +73 -73
- 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 -146
- 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/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-sharp-corners.d.ts +4 -4
- package/node/mat/find-mat/get-sharp-corners.js +17 -17
- 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/get-boundary-piece-beziers.d.ts +11 -11
- package/node/mat/get-boundary-piece-beziers.js +58 -58
- 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-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-neighboring-cps.d.ts +14 -14
- package/node/mat/get-neighboring-cps.js +30 -30
- 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/simplify-mat-map-only.d.ts +23 -23
- package/node/mat/simplify-mat-map-only.js +80 -80
- 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/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.d.ts +12 -12
- package/node/mat/to-scale-axis/cull.js +132 -132
- package/node/mat/trim-mat.d.ts +8 -8
- package/node/mat/trim-mat.js +16 -16
- 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/simplify-mat.d.ts +16 -16
- package/node/simplify-mat.js +71 -71
- package/node/svg/get-loop-bounds.d.ts +12 -12
- package/node/svg/get-loop-bounds.js +80 -80
- 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/sweep-line/sweep-line.d.ts +18 -18
- package/node/sweep-line/sweep-line.js +72 -72
- package/node/to-scale-axis.d.ts +16 -16
- package/node/to-scale-axis.js +74 -74
- package/node/traverse-edges.d.ts +10 -10
- package/node/traverse-edges.js +21 -21
- package/node/traverse-vertices.d.ts +12 -12
- package/node/traverse-vertices.js +27 -27
- package/package.json +11 -11
- package/tsconfig.json +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
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 };
|
|
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,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
|
-
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 };
|
|
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,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
|
-
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 };
|
|
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,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
|
-
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 };
|
|
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,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
|
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
|
-
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 };
|
|
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,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
|
-
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 };
|
|
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,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 };
|