diff options
author | UbitUmarov | 2012-02-23 00:50:07 +0000 |
---|---|---|
committer | UbitUmarov | 2012-02-23 00:50:07 +0000 |
commit | 15bc539bd49e7a09c1ec6e539871cde5eee6032e (patch) | |
tree | 65d872122ad75eb5394c08de7b866902a78e4d6c | |
parent | fix my bug on ChODE terrain heightmap build (diff) | |
download | opensim-SC_OLD-15bc539bd49e7a09c1ec6e539871cde5eee6032e.zip opensim-SC_OLD-15bc539bd49e7a09c1ec6e539871cde5eee6032e.tar.gz opensim-SC_OLD-15bc539bd49e7a09c1ec6e539871cde5eee6032e.tar.bz2 opensim-SC_OLD-15bc539bd49e7a09c1ec6e539871cde5eee6032e.tar.xz |
fix the last fix. Regions are square but... Also remove the 0.5 offset in map position. It was apparently needed to fix we having nsamples = size and not size + 1.
-rw-r--r-- | OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs index e73454f..61fb2d0 100644 --- a/OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs | |||
@@ -3481,7 +3481,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
3481 | // Output x = 0 1 2 3 ..... 255 256 257 258 total out | 3481 | // Output x = 0 1 2 3 ..... 255 256 257 258 total out |
3482 | float val= heightMap[(yy * regionsize) + xx]; // input from heightMap, <0-255 * 256> <0-255> | 3482 | float val= heightMap[(yy * regionsize) + xx]; // input from heightMap, <0-255 * 256> <0-255> |
3483 | if (val < minele) val = minele; | 3483 | if (val < minele) val = minele; |
3484 | _heightmap[x * (heightmapWidthSamples) + y] = val; // samples output to _heightmap, <0-257 * 258> <0-257> | 3484 | _heightmap[x * (heightmapHeightSamples) + y] = val; // samples output to _heightmap, <0-257 * 258> <0-257> |
3485 | hfmin = (val < hfmin) ? val : hfmin; | 3485 | hfmin = (val < hfmin) ? val : hfmin; |
3486 | hfmax = (val > hfmax) ? val : hfmax; | 3486 | hfmax = (val > hfmax) ? val : hfmax; |
3487 | } | 3487 | } |
@@ -3531,6 +3531,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
3531 | d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle); | 3531 | d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle); |
3532 | d.GeomSetRotation(GroundGeom, ref R); | 3532 | d.GeomSetRotation(GroundGeom, ref R); |
3533 | d.GeomSetPosition(GroundGeom, (pOffset.X + (regionsize * 0.5f)) - 0.5f, (pOffset.Y + (regionsize * 0.5f)) - 0.5f, 0); | 3533 | d.GeomSetPosition(GroundGeom, (pOffset.X + (regionsize * 0.5f)) - 0.5f, (pOffset.Y + (regionsize * 0.5f)) - 0.5f, 0); |
3534 | // having nsamples = size + 1 center is actually at size/2 | ||
3535 | d.GeomSetPosition(GroundGeom, (pOffset.X + (regionsize * 0.5f)), (pOffset.Y + (regionsize * 0.5f)), 0); | ||
3534 | IntPtr testGround = IntPtr.Zero; | 3536 | IntPtr testGround = IntPtr.Zero; |
3535 | if (RegionTerrain.TryGetValue(pOffset, out testGround)) | 3537 | if (RegionTerrain.TryGetValue(pOffset, out testGround)) |
3536 | { | 3538 | { |