walk method

Offset walk(
  1. Size half
)

The per-axis fraction of its distance from the centre a sample walks out by, on a box with half-extents half — widen and zoom in one, which is what the shader takes.

Implementation

Offset walk(Size half) => Offset(
  (half.width <= 0 ? 0 : widen / half.width) + 1 / zoom - 1,
  (half.height <= 0 ? 0 : widen / half.height) + 1 / zoom - 1,
);