Tune what's considered a duplicate intersection point

This commit is contained in:
Mark Tolmacs 2025-03-03 15:06:20 +01:00
parent df1f89efcd
commit 2cf53200ac
2 changed files with 6 additions and 3 deletions

View file

@ -234,7 +234,8 @@ const intersectRectanguloidWithLineSegment = (
)
// Remove duplicates
.filter(
(p, idx, points) => points.findIndex((d) => pointsEqual(p, d)) === idx,
(p, idx, points) =>
points.findIndex((d) => pointsEqual(p, d, 1e-3)) === idx,
)
);
};
@ -282,7 +283,8 @@ const intersectDiamondWithLineSegment = (
)
// Remove duplicates
.filter(
(p, idx, points) => points.findIndex((d) => pointsEqual(p, d)) === idx,
(p, idx, points) =>
points.findIndex((d) => pointsEqual(p, d, 1e-3)) === idx,
)
);
};

View file

@ -91,9 +91,10 @@ export function isPoint(p: unknown): p is LocalPoint | GlobalPoint {
export function pointsEqual<Point extends GlobalPoint | LocalPoint>(
a: Point,
b: Point,
precision = PRECISION,
): boolean {
const abs = Math.abs;
return abs(a[0] - b[0]) < PRECISION && abs(a[1] - b[1]) < PRECISION;
return abs(a[0] - b[0]) < precision && abs(a[1] - b[1]) < precision;
}
/**