Esempio n. 1
0
        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);
                }
            }
        }