function distanceToLine(lineStart, lineEnd, point) { return 0 } function shouldAddErasureInterval( point, nextPoint, erasureCenter, erasureRadius, ) { if (!nextPoint) return false return distanceToLine(point, nextPoint, erasureCenter) <= erasureRadius } function erasureInterval(lineStart, lineEnd, erasureCenter, erasureRadius) { return [0.25, 0.75] } function computeErasureIntervals(points, erasureCenter, erasureRadius) { return points .map((point, i) => ({ point, i })) .filter(({ point, i }) => shouldAddErasureInterval( point, points[i + 1], erasureCenter, erasureRadius, ), ) .reduce( (acc, { point, i }) => ({ ...acc, [i]: erasureInterval( point, points[i + 1], erasureCenter, erasureRadius, ), }), {}, ) } module.exports = { computeErasureIntervals, }