diff options
Diffstat (limited to 'src/simulation')
| -rw-r--r-- | src/simulation/Air.cpp | 14 | ||||
| -rw-r--r-- | src/simulation/Air.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/simulation/Air.cpp b/src/simulation/Air.cpp index 6d7b5dd..2dfcae0 100644 --- a/src/simulation/Air.cpp +++ b/src/simulation/Air.cpp @@ -1,4 +1,5 @@ #include <cmath> +#include <algorithm> #include "Config.h" #include "Air.h" //#include <powder.h> @@ -295,6 +296,19 @@ void Air::update_air(void) memcpy(pv, opv, sizeof(pv)); } } + +void Air::Invert() +{ + int nx, ny; + for (nx = 0; nx<XRES/CELL; nx++) + for (ny = 0; ny<YRES/CELL; ny++) + { + pv[ny][nx] = -pv[ny][nx]; + vx[ny][nx] = -vx[ny][nx]; + vy[ny][nx] = -vy[ny][nx]; + } +} + Air::Air(): airMode(0) { diff --git a/src/simulation/Air.h b/src/simulation/Air.h index 0232b86..8fa6f6e 100644 --- a/src/simulation/Air.h +++ b/src/simulation/Air.h @@ -29,6 +29,7 @@ public: void update_airh(void); void update_air(void); void Clear(); + void Invert(); Air(); }; |
