forEachNeighbor4 method

void forEachNeighbor4(
  1. int idx,
  2. void visit(
    1. int neighborIdx
    )
)

Calls visit for each 4-connected neighbor index without allocating.

Implementation

@pragma('vm:prefer-inline')
void forEachNeighbor4(int idx, void Function(int neighborIdx) visit) {
  if (hasNeighborUp(idx)) visit(idx - width);
  if (hasNeighborDown(idx)) visit(idx + width);
  if (hasNeighborLeft(idx)) visit(idx - 1);
  if (hasNeighborRight(idx)) visit(idx + 1);
}