diff options
author | Adam Frisby | 2007-07-23 16:16:09 +0000 |
---|---|---|
committer | Adam Frisby | 2007-07-23 16:16:09 +0000 |
commit | 3abdec8d1748e14894837290c2a5707673389182 (patch) | |
tree | 5c08e5819d6a75f63edeaa53cb02f3669c2c3dcd | |
parent | * 1 line commit: Erosion functions should taint the terrain. (diff) | |
download | opensim-SC_OLD-3abdec8d1748e14894837290c2a5707673389182.zip opensim-SC_OLD-3abdec8d1748e14894837290c2a5707673389182.tar.gz opensim-SC_OLD-3abdec8d1748e14894837290c2a5707673389182.tar.bz2 opensim-SC_OLD-3abdec8d1748e14894837290c2a5707673389182.tar.xz |
* Fixed a typecasting issue with Navier-Stokes algorithms in libTerrain.
-rw-r--r-- | OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs index 43987d4..24ff37c 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs | |||
@@ -220,6 +220,20 @@ namespace libTerrain | |||
220 | } | 220 | } |
221 | } | 221 | } |
222 | 222 | ||
223 | private void nsDoublesToBuffer(double[,] doubles, int N, ref double[] dens) | ||
224 | { | ||
225 | int i; | ||
226 | int j; | ||
227 | |||
228 | for (i = 0; i <= N; i++) | ||
229 | { | ||
230 | for (j = 0; j <= N; j++) | ||
231 | { | ||
232 | dens[nsIX(i, j, N)] = doubles[i, j]; | ||
233 | } | ||
234 | } | ||
235 | } | ||
236 | |||
223 | private void nsSimulate(int N, int rounds, double dt, double diff, double visc) | 237 | private void nsSimulate(int N, int rounds, double dt, double diff, double visc) |
224 | { | 238 | { |
225 | int size = (N * 2) * (N * 2); | 239 | int size = (N * 2) * (N * 2); |
@@ -228,8 +242,11 @@ namespace libTerrain | |||
228 | double[] v = new double[size]; // Force, Y axis | 242 | double[] v = new double[size]; // Force, Y axis |
229 | double[] u_prev = new double[size]; | 243 | double[] u_prev = new double[size]; |
230 | double[] v_prev = new double[size]; | 244 | double[] v_prev = new double[size]; |
231 | double[] dens = (double[])map.Clone(); | 245 | double[] dens = new double[size]; |
232 | double[] dens_prev = (double[])map.Clone(); | 246 | double[] dens_prev = new double[size]; |
247 | |||
248 | nsDoublesToBuffer(this.map, N, ref dens); | ||
249 | nsDoublesToBuffer(this.map, N, ref dens_prev); | ||
233 | 250 | ||
234 | for (int i = 0; i < rounds; i++) | 251 | for (int i = 0; i < rounds; i++) |
235 | { | 252 | { |