aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie2009-08-07 23:06:52 +0100
committerMelanie2009-08-07 23:06:52 +0100
commit9337a94f33eb80ed4e031256ffd45a3f74294977 (patch)
tree851c648c79a2f4bdca9f929fc27bff1a8cbd84e9 /OpenSim/Region
parentRemove debugging output frm ini file loading. Make it collect matching (diff)
parent* Remove hard coded 256 limitations from various places. There's no more 2... (diff)
downloadopensim-SC_OLD-9337a94f33eb80ed4e031256ffd45a3f74294977.zip
opensim-SC_OLD-9337a94f33eb80ed4e031256ffd45a3f74294977.tar.gz
opensim-SC_OLD-9337a94f33eb80ed4e031256ffd45a3f74294977.tar.bz2
opensim-SC_OLD-9337a94f33eb80ed4e031256ffd45a3f74294977.tar.xz
Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs5
-rw-r--r--OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs39
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs3
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/ShadedMapTileRenderer.cs17
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/TexturedMapTileRenderer.cs12
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs13
-rw-r--r--OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs10
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs4
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs47
-rw-r--r--OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs4
10 files changed, 103 insertions, 51 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
index 905239b..83f004d 100644
--- a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
@@ -34,6 +34,7 @@ using DotNetOpenMail.SmtpAuth;
34using log4net; 34using log4net;
35using Nini.Config; 35using Nini.Config;
36using OpenMetaverse; 36using OpenMetaverse;
37using OpenSim.Framework;
37using OpenSim.Region.Framework.Interfaces; 38using OpenSim.Region.Framework.Interfaces;
38using OpenSim.Region.Framework.Scenes; 39using OpenSim.Region.Framework.Scenes;
39 40
@@ -205,8 +206,8 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
205 if (part != null) 206 if (part != null)
206 { 207 {
207 ObjectRegionName = s.RegionInfo.RegionName; 208 ObjectRegionName = s.RegionInfo.RegionName;
208 uint localX = (s.RegionInfo.RegionLocX * 256); 209 uint localX = (s.RegionInfo.RegionLocX * (int)Constants.RegionSize);
209 uint localY = (s.RegionInfo.RegionLocY * 256); 210 uint localY = (s.RegionInfo.RegionLocY * (int)Constants.RegionSize);
210 ObjectRegionName = ObjectRegionName + " (" + localX + ", " + localY + ")"; 211 ObjectRegionName = ObjectRegionName + " (" + localX + ", " + localY + ")";
211 return part; 212 return part;
212 } 213 }
diff --git a/OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs b/OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs
index 9660092..3d4f762 100644
--- a/OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs
+++ b/OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs
@@ -27,6 +27,7 @@
27 27
28using System; 28using System;
29using NUnit.Framework; 29using NUnit.Framework;
30using OpenSim.Framework;
30using OpenSim.Region.CoreModules.World.Terrain.PaintBrushes; 31using OpenSim.Region.CoreModules.World.Terrain.PaintBrushes;
31using OpenSim.Region.Framework.Scenes; 32using OpenSim.Region.Framework.Scenes;
32 33
@@ -38,12 +39,12 @@ namespace OpenSim.Region.CoreModules.World.Terrain.Tests
38 [Test] 39 [Test]
39 public void BrushTest() 40 public void BrushTest()
40 { 41 {
41 bool[,] allowMask = new bool[256, 256]; 42 bool[,] allowMask = new bool[(int)Constants.RegionSize, 256];
42 int x; 43 int x;
43 int y; 44 int y;
44 for (x=0; x<128; x++) 45 for (x = 0; x < (int)((int)Constants.RegionSize * 0.5f); x++)
45 { 46 {
46 for (y=0; y<256; y++) 47 for (y = 0; y < (int)Constants.RegionSize; y++)
47 { 48 {
48 allowMask[x,y] = true; 49 allowMask[x,y] = true;
49 } 50 }
@@ -52,20 +53,20 @@ namespace OpenSim.Region.CoreModules.World.Terrain.Tests
52 // 53 //
53 // Test RaiseSphere 54 // Test RaiseSphere
54 // 55 //
55 TerrainChannel map = new TerrainChannel(256, 256); 56 TerrainChannel map = new TerrainChannel((int)Constants.RegionSize, (int)Constants.RegionSize);
56 ITerrainPaintableEffect effect = new RaiseSphere(); 57 ITerrainPaintableEffect effect = new RaiseSphere();
57 58
58 effect.PaintEffect(map, allowMask, 128.0, 128.0, -1.0, 2, 0.1); 59 effect.PaintEffect(map, allowMask, (int)Constants.RegionSize * 0.5f, (int)Constants.RegionSize * 0.5f, -1.0, 2, 0.1);
59 Assert.That(map[127, 128] > 0.0, "Raise brush should raising value at this point (127,128)."); 60 Assert.That(map[127, (int)((int)Constants.RegionSize * 0.5f)] > 0.0, "Raise brush should raising value at this point (127,128).");
60 Assert.That(map[124, 128] > 0.0, "Raise brush should raising value at this point (124,128)."); 61 Assert.That(map[124, (int)((int)Constants.RegionSize * 0.5f)] > 0.0, "Raise brush should raising value at this point (124,128).");
61 Assert.That(map[123, 128] == 0.0, "Raise brush should not change value at this point (123,128)."); 62 Assert.That(map[123, (int)((int)Constants.RegionSize * 0.5f)] == 0.0, "Raise brush should not change value at this point (123,128).");
62 Assert.That(map[128, 128] == 0.0, "Raise brush should not change value at this point (128,128)."); 63 Assert.That(map[128, (int)((int)Constants.RegionSize * 0.5f)] == 0.0, "Raise brush should not change value at this point (128,128).");
63 Assert.That(map[0, 128] == 0.0, "Raise brush should not change value at this point (0,128)."); 64 Assert.That(map[0, (int)((int)Constants.RegionSize * 0.5f)] == 0.0, "Raise brush should not change value at this point (0,128).");
64 65
65 // 66 //
66 // Test LowerSphere 67 // Test LowerSphere
67 // 68 //
68 map = new TerrainChannel(256, 256); 69 map = new TerrainChannel((int)Constants.RegionSize, (int)Constants.RegionSize);
69 for (x=0; x<map.Width; x++) 70 for (x=0; x<map.Width; x++)
70 { 71 {
71 for (y=0; y<map.Height; y++) 72 for (y=0; y<map.Height; y++)
@@ -75,19 +76,19 @@ namespace OpenSim.Region.CoreModules.World.Terrain.Tests
75 } 76 }
76 effect = new LowerSphere(); 77 effect = new LowerSphere();
77 78
78 effect.PaintEffect(map, allowMask, 128.0, 128.0, -1.0, 2, 6.0); 79 effect.PaintEffect(map, allowMask, ((int)Constants.RegionSize * 0.5f), ((int)Constants.RegionSize * 0.5f), -1.0, 2, 6.0);
79 Assert.That(map[127, 128] >= 0.0, "Lower should not lowering value below 0.0 at this point (127,128)."); 80 Assert.That(map[127, (int)((int)Constants.RegionSize * 0.5f)] >= 0.0, "Lower should not lowering value below 0.0 at this point (127,128).");
80 Assert.That(map[127, 128] == 0.0, "Lower brush should lowering value to 0.0 at this point (127,128)."); 81 Assert.That(map[127, (int)((int)Constants.RegionSize * 0.5f)] == 0.0, "Lower brush should lowering value to 0.0 at this point (127,128).");
81 Assert.That(map[124, 128] < 1.0, "Lower brush should lowering value at this point (124,128)."); 82 Assert.That(map[124, (int)((int)Constants.RegionSize * 0.5f)] < 1.0, "Lower brush should lowering value at this point (124,128).");
82 Assert.That(map[123, 128] == 1.0, "Lower brush should not change value at this point (123,128)."); 83 Assert.That(map[123, (int)((int)Constants.RegionSize * 0.5f)] == 1.0, "Lower brush should not change value at this point (123,128).");
83 Assert.That(map[128, 128] == 1.0, "Lower brush should not change value at this point (128,128)."); 84 Assert.That(map[128, (int)((int)Constants.RegionSize * 0.5f)] == 1.0, "Lower brush should not change value at this point (128,128).");
84 Assert.That(map[0, 128] == 1.0, "Lower brush should not change value at this point (0,128)."); 85 Assert.That(map[0, (int)((int)Constants.RegionSize * 0.5f)] == 1.0, "Lower brush should not change value at this point (0,128).");
85 } 86 }
86 87
87 [Test] 88 [Test]
88 public void TerrainChannelTest() 89 public void TerrainChannelTest()
89 { 90 {
90 TerrainChannel x = new TerrainChannel(256, 256); 91 TerrainChannel x = new TerrainChannel((int)Constants.RegionSize, (int)Constants.RegionSize);
91 Assert.That(x[0, 0] == 0.0, "Terrain not initialising correctly."); 92 Assert.That(x[0, 0] == 0.0, "Terrain not initialising correctly.");
92 93
93 x[0, 0] = 1.0; 94 x[0, 0] = 1.0;
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs
index 7afada3..d1d3045 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs
@@ -33,6 +33,7 @@ using log4net;
33using Nini.Config; 33using Nini.Config;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenMetaverse.Imaging; 35using OpenMetaverse.Imaging;
36using OpenSim.Framework;
36using OpenSim.Region.Framework.Interfaces; 37using OpenSim.Region.Framework.Interfaces;
37using OpenSim.Region.Framework.Scenes; 38using OpenSim.Region.Framework.Scenes;
38 39
@@ -97,7 +98,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
97 } 98 }
98 terrainRenderer.Initialise(m_scene, m_config); 99 terrainRenderer.Initialise(m_scene, m_config);
99 100
100 Bitmap mapbmp = new Bitmap(256, 256); 101 Bitmap mapbmp = new Bitmap((int)Constants.RegionSize, (int)Constants.RegionSize);
101 //long t = System.Environment.TickCount; 102 //long t = System.Environment.TickCount;
102 //for (int i = 0; i < 10; ++i) { 103 //for (int i = 0; i < 10; ++i) {
103 terrainRenderer.TerrainToBitmap(mapbmp); 104 terrainRenderer.TerrainToBitmap(mapbmp);
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/ShadedMapTileRenderer.cs b/OpenSim/Region/CoreModules/World/WorldMap/ShadedMapTileRenderer.cs
index 1836026..f39cf68 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/ShadedMapTileRenderer.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/ShadedMapTileRenderer.cs
@@ -30,6 +30,7 @@ using System.Drawing;
30using System.Reflection; 30using System.Reflection;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework;
33using OpenSim.Region.Framework.Scenes; 34using OpenSim.Region.Framework.Scenes;
34 35
35namespace OpenSim.Region.CoreModules.World.WorldMap 36namespace OpenSim.Region.CoreModules.World.WorldMap
@@ -60,9 +61,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
60 61
61 float low = 255; 62 float low = 255;
62 float high = 0; 63 float high = 0;
63 for (int x = 0; x < 256; x++) 64 for (int x = 0; x < (int)Constants.RegionSize; x++)
64 { 65 {
65 for (int y = 0; y < 256; y++) 66 for (int y = 0; y < (int)Constants.RegionSize; y++)
66 { 67 {
67 float hmval = (float)hm[x, y]; 68 float hmval = (float)hm[x, y];
68 if (hmval < low) 69 if (hmval < low)
@@ -74,12 +75,12 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
74 75
75 float waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight; 76 float waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight;
76 77
77 for (int x = 0; x < 256; x++) 78 for (int x = 0; x < (int)Constants.RegionSize; x++)
78 { 79 {
79 for (int y = 0; y < 256; y++) 80 for (int y = 0; y < (int)Constants.RegionSize; y++)
80 { 81 {
81 // Y flip the cordinates for the bitmap: hf origin is lower left, bm origin is upper left 82 // Y flip the cordinates for the bitmap: hf origin is lower left, bm origin is upper left
82 int yr = 255 - y; 83 int yr = ((int)Constants.RegionSize - 1) - y;
83 84
84 float heightvalue = (float)hm[x, y]; 85 float heightvalue = (float)hm[x, y];
85 86
@@ -111,7 +112,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
111 float hfvalue = (float)hm[x, y]; 112 float hfvalue = (float)hm[x, y];
112 float hfvaluecompare = 0f; 113 float hfvaluecompare = 0f;
113 114
114 if ((x + 1 < 256) && (y + 1 < 256)) 115 if ((x + 1 < (int)Constants.RegionSize) && (y + 1 < (int)Constants.RegionSize))
115 { 116 {
116 hfvaluecompare = (float)hm[x + 1, y + 1]; // light from north-east => look at land height there 117 hfvaluecompare = (float)hm[x + 1, y + 1]; // light from north-east => look at land height there
117 } 118 }
@@ -176,7 +177,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
176 177
177 if (ShadowDebugContinue) 178 if (ShadowDebugContinue)
178 { 179 {
179 if ((x - 1 > 0) && (yr + 1 < 256)) 180 if ((x - 1 > 0) && (yr + 1 < (int)Constants.RegionSize))
180 { 181 {
181 color = mapbmp.GetPixel(x - 1, yr + 1); 182 color = mapbmp.GetPixel(x - 1, yr + 1);
182 int r = color.R; 183 int r = color.R;
@@ -231,7 +232,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
231 terraincorruptedwarningsaid = true; 232 terraincorruptedwarningsaid = true;
232 } 233 }
233 Color black = Color.Black; 234 Color black = Color.Black;
234 mapbmp.SetPixel(x, (256 - y) - 1, black); 235 mapbmp.SetPixel(x, ((int)Constants.RegionSize - y) - 1, black);
235 } 236 }
236 } 237 }
237 } 238 }
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/TexturedMapTileRenderer.cs b/OpenSim/Region/CoreModules/World/WorldMap/TexturedMapTileRenderer.cs
index 0364e7b..97ee451 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/TexturedMapTileRenderer.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/TexturedMapTileRenderer.cs
@@ -306,15 +306,15 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
306 306
307 double[,] hm = m_scene.Heightmap.GetDoubles(); 307 double[,] hm = m_scene.Heightmap.GetDoubles();
308 308
309 for (int x = 0; x < 256; x++) 309 for (int x = 0; x < (int)Constants.RegionSize; x++)
310 { 310 {
311 float columnRatio = x / 255f; // 0 - 1, for interpolation 311 float columnRatio = x / ((float)Constants.RegionSize - 1); // 0 - 1, for interpolation
312 for (int y = 0; y < 256; y++) 312 for (int y = 0; y < (int)Constants.RegionSize; y++)
313 { 313 {
314 float rowRatio = y / 255f; // 0 - 1, for interpolation 314 float rowRatio = y / ((float)Constants.RegionSize - 1); // 0 - 1, for interpolation
315 315
316 // Y flip the cordinates for the bitmap: hf origin is lower left, bm origin is upper left 316 // Y flip the cordinates for the bitmap: hf origin is lower left, bm origin is upper left
317 int yr = 255 - y; 317 int yr = ((int)Constants.RegionSize - 1) - y;
318 318
319 float heightvalue = getHeight(hm, x, y); 319 float heightvalue = getHeight(hm, x, y);
320 if (Single.IsInfinity(heightvalue) || Single.IsNaN(heightvalue)) 320 if (Single.IsInfinity(heightvalue) || Single.IsNaN(heightvalue))
@@ -366,7 +366,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
366 } 366 }
367 367
368 // Shade the terrain for shadows 368 // Shade the terrain for shadows
369 if (x < 255 && y < 255) 369 if (x < ((int)Constants.RegionSize - 1) && y < ((int)Constants.RegionSize - 1))
370 { 370 {
371 float hfvaluecompare = getHeight(hm, x + 1, y + 1); // light from north-east => look at land height there 371 float hfvaluecompare = getHeight(hm, x + 1, y + 1); // light from north-east => look at land height there
372 if (Single.IsInfinity(hfvaluecompare) || Single.IsNaN(hfvaluecompare)) 372 if (Single.IsInfinity(hfvaluecompare) || Single.IsNaN(hfvaluecompare))
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index b48cf62..e344da3 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1192,6 +1192,19 @@ namespace OpenSim.Region.Framework.Scenes
1192 Heightmap = new TerrainChannel(map); 1192 Heightmap = new TerrainChannel(map);
1193 } 1193 }
1194 } 1194 }
1195 catch (IOException e)
1196 {
1197
1198 m_log.Warn("[TERRAIN]: Scene.cs: LoadWorldMap() - Failed with exception " + e.ToString() + " Regenerating");
1199
1200 // Non standard region size. If there's an old terrain in the database, it might read past the buffer
1201 if ((int)Constants.RegionSize != 256)
1202 {
1203 Heightmap = new TerrainChannel();
1204
1205 m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID);
1206 }
1207 }
1195 catch (Exception e) 1208 catch (Exception e)
1196 { 1209 {
1197 m_log.Warn("[TERRAIN]: Scene.cs: LoadWorldMap() - Failed with exception " + e.ToString()); 1210 m_log.Warn("[TERRAIN]: Scene.cs: LoadWorldMap() - Failed with exception " + e.ToString());
diff --git a/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs b/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs
index a7bf2d6..2cc5d41 100644
--- a/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs
+++ b/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs
@@ -216,8 +216,14 @@ namespace OpenSim.Region.Physics.BulletDotNETPlugin
216 tempMotionState2 = new btDefaultMotionState(_parent_scene.TransZero); 216 tempMotionState2 = new btDefaultMotionState(_parent_scene.TransZero);
217 tempMotionState3 = new btDefaultMotionState(_parent_scene.TransZero); 217 tempMotionState3 = new btDefaultMotionState(_parent_scene.TransZero);
218 218
219 AxisLockLinearLow = new btVector3(-256,-256,-256); 219
220 AxisLockLinearHigh = new btVector3(512, 512, 512); 220 AxisLockLinearLow = new btVector3(-1 * (int)Constants.RegionSize, -1 * (int)Constants.RegionSize, -1 * (int)Constants.RegionSize);
221 int regionsize = (int) Constants.RegionSize;
222
223 if (regionsize == 256)
224 regionsize = 512;
225
226 AxisLockLinearHigh = new btVector3((int)Constants.RegionSize, (int)Constants.RegionSize, (int)Constants.RegionSize);
221 227
222 _target_velocity = new PhysicsVector(0, 0, 0); 228 _target_velocity = new PhysicsVector(0, 0, 0);
223 _velocity = new PhysicsVector(); 229 _velocity = new PhysicsVector();
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index b8af77d..b556395 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -1096,8 +1096,8 @@ namespace OpenSim.Region.Physics.OdePlugin
1096 // kluge to keep things in bounds. ODE lets dead avatars drift away (they should be removed!) 1096 // kluge to keep things in bounds. ODE lets dead avatars drift away (they should be removed!)
1097 if (vec.X < 0.0f) vec.X = 0.0f; 1097 if (vec.X < 0.0f) vec.X = 0.0f;
1098 if (vec.Y < 0.0f) vec.Y = 0.0f; 1098 if (vec.Y < 0.0f) vec.Y = 0.0f;
1099 if (vec.X > 255.95f) vec.X = 255.95f; 1099 if (vec.X > (int)Constants.RegionSize - 0.05f) vec.X = (int)Constants.RegionSize - 0.05f;
1100 if (vec.Y > 255.95f) vec.Y = 255.95f; 1100 if (vec.Y > (int)Constants.RegionSize - 0.05f) vec.Y = (int)Constants.RegionSize - 0.05f;
1101 1101
1102 _position.X = vec.X; 1102 _position.X = vec.X;
1103 _position.Y = vec.Y; 1103 _position.Y = vec.Y;
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 9805ff5..50dc91d 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -304,6 +304,13 @@ namespace OpenSim.Region.Physics.OdePlugin
304 public d.Vector3 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f); 304 public d.Vector3 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f);
305 public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f); 305 public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f);
306 306
307 private uint heightmapWidth = m_regionWidth + 1;
308 private uint heightmapHeight = m_regionHeight + 1;
309
310 private uint heightmapWidthSamples;
311
312 private uint heightmapHeightSamples;
313
307 private volatile int m_global_contactcount = 0; 314 private volatile int m_global_contactcount = 0;
308 315
309 private ODERayCastRequestManager m_rayCastManager; 316 private ODERayCastRequestManager m_rayCastManager;
@@ -3271,27 +3278,49 @@ namespace OpenSim.Region.Physics.OdePlugin
3271 // this._heightmap[i] = (double)heightMap[i]; 3278 // this._heightmap[i] = (double)heightMap[i];
3272 // dbm (danx0r) -- creating a buffer zone of one extra sample all around 3279 // dbm (danx0r) -- creating a buffer zone of one extra sample all around
3273 _origheightmap = heightMap; // Used for Fly height. Kitto Flora 3280 _origheightmap = heightMap; // Used for Fly height. Kitto Flora
3274 const uint heightmapWidth = m_regionWidth + 2; 3281 uint heightmapWidth = m_regionWidth + 1;
3275 const uint heightmapHeight = m_regionHeight + 2; 3282 uint heightmapHeight = m_regionHeight + 1;
3276 const uint heightmapWidthSamples = 2*m_regionWidth + 2; 3283
3277 const uint heightmapHeightSamples = 2*m_regionHeight + 2; 3284 uint heightmapWidthSamples;
3285
3286 uint heightmapHeightSamples;
3287 if (((int)Constants.RegionSize) == 256)
3288 {
3289 heightmapWidthSamples = 2*m_regionWidth + 2;
3290 heightmapHeightSamples = 2*m_regionHeight + 2;
3291 heightmapWidth++;
3292 heightmapHeight++;
3293 }
3294 else
3295 {
3296 heightmapWidthSamples = m_regionWidth + 1;
3297 heightmapHeightSamples = m_regionHeight + 1;
3298 }
3299
3278 const float scale = 1.0f; 3300 const float scale = 1.0f;
3279 const float offset = 0.0f; 3301 const float offset = 0.0f;
3280 const float thickness = 0.2f; 3302 const float thickness = 0.2f;
3281 const int wrap = 0; 3303 const int wrap = 0;
3304
3282 3305
3283 //Double resolution 3306 //Double resolution
3284 heightMap = ResizeTerrain512Interpolation(heightMap); 3307 if (((int)Constants.RegionSize) == 256)
3308 heightMap = ResizeTerrain512Interpolation(heightMap);
3309
3310 int regionsize = (int)Constants.RegionSize;
3311 if (regionsize == 256)
3312 regionsize = 512;
3313
3285 float hfmin = 2000; 3314 float hfmin = 2000;
3286 float hfmax = -2000; 3315 float hfmax = -2000;
3287 for (int x = 0; x < heightmapWidthSamples; x++) 3316 for (int x = 0; x < heightmapWidthSamples; x++)
3288 { 3317 {
3289 for (int y = 0; y < heightmapHeightSamples; y++) 3318 for (int y = 0; y < heightmapHeightSamples; y++)
3290 { 3319 {
3291 int xx = Util.Clip(x - 1, 0, 511); 3320 int xx = Util.Clip(x - 1, 0, regionsize - 1);
3292 int yy = Util.Clip(y - 1, 0, 511); 3321 int yy = Util.Clip(y - 1, 0, regionsize - 1);
3293 3322
3294 float val = heightMap[yy*512 + xx]; 3323 float val = heightMap[yy*regionsize + xx];
3295 _heightmap[x*heightmapHeightSamples + y] = val; 3324 _heightmap[x*heightmapHeightSamples + y] = val;
3296 hfmin = (val < hfmin) ? val : hfmin; 3325 hfmin = (val < hfmin) ? val : hfmin;
3297 hfmax = (val > hfmax) ? val : hfmax; 3326 hfmax = (val > hfmax) ? val : hfmax;
@@ -3332,7 +3361,7 @@ namespace OpenSim.Region.Physics.OdePlugin
3332 3361
3333 d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle); 3362 d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle);
3334 d.GeomSetRotation(LandGeom, ref R); 3363 d.GeomSetRotation(LandGeom, ref R);
3335 d.GeomSetPosition(LandGeom, 128, 128, 0); 3364 d.GeomSetPosition(LandGeom, (int)Constants.RegionSize * 0.5f, (int)Constants.RegionSize * 0.5f, 0);
3336 } 3365 }
3337 } 3366 }
3338 3367
diff --git a/OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs b/OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs
index 7d748fd..b186175 100644
--- a/OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs
+++ b/OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs
@@ -56,8 +56,8 @@ namespace OpenSim.Region.Physics.OdePlugin
56 ps = cbt.GetScene("test"); 56 ps = cbt.GetScene("test");
57 // Initializing Physics Scene. 57 // Initializing Physics Scene.
58 ps.Initialise(imp.GetMesher(),null); 58 ps.Initialise(imp.GetMesher(),null);
59 float[] _heightmap = new float[256 * 256]; 59 float[] _heightmap = new float[(int)Constants.RegionSize * (int)Constants.RegionSize];
60 for (int i = 0; i<(256*256);i++) 60 for (int i = 0; i < ((int)Constants.RegionSize * (int)Constants.RegionSize); i++)
61 { 61 {
62 _heightmap[i] = 21f; 62 _heightmap[i] = 21f;
63 } 63 }