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