Skip to content
Snippets Groups Projects
erasure.js 932 B
Newer Older
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,
}