aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorUbitUmarov2012-02-23 00:50:07 +0000
committerUbitUmarov2012-02-23 00:50:07 +0000
commit15bc539bd49e7a09c1ec6e539871cde5eee6032e (patch)
tree65d872122ad75eb5394c08de7b866902a78e4d6c
parent fix my bug on ChODE terrain heightmap build (diff)
downloadopensim-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.cs4
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 {