void renderForce(int posX, int posY, const FloatCoord<2>& force, LibGeoDecomp::GridBase<Cell, 2> *grid, const Region<2>& validRegion) { int size = 10; Region<2> newRegion; for (int y = -size; y < size; ++y) { newRegion << Streak<2>(Coord<2>(posX - size, posY + y), posX + size); } Region<2> relevantRegion = newRegion & validRegion; for (Region<2>::StreakIterator i = relevantRegion.beginStreak(); i != relevantRegion.endStreak(); ++i) { for (Coord<2> c = i->origin; c.x() < i->endX; ++c.x()) { Cell cell = grid->get(c); cell.setForceVario(force[0], force[1]); grid->set(c, cell); } } }