aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/ILandObject.cs18
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs14
-rw-r--r--OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs52
3 files changed, 66 insertions, 18 deletions
diff --git a/OpenSim/Framework/ILandObject.cs b/OpenSim/Framework/ILandObject.cs
index 98ea01e..02775e9 100644
--- a/OpenSim/Framework/ILandObject.cs
+++ b/OpenSim/Framework/ILandObject.cs
@@ -82,8 +82,26 @@ namespace OpenSim.Framework
82 void ForceUpdateLandInfo(); 82 void ForceUpdateLandInfo();
83 void SetLandBitmap(bool[,] bitmap); 83 void SetLandBitmap(bool[,] bitmap);
84 84
85 /// <summary>
86 /// Get a land bitmap that would cover an entire region.
87 /// </summary>
88 /// <returns>The bitmap created.</returns>
85 bool[,] BasicFullRegionLandBitmap(); 89 bool[,] BasicFullRegionLandBitmap();
90
91 /// <summary>
92 /// Create a square land bitmap.
93 /// </summary>
94 /// <remarks>
95 /// Land co-ordinates are zero indexed. At the moment, the smallest parcel of land is 4m x 4m, so if the
96 /// region is 256 x 256m (the SL size), the largest land parcel starts at (0,0) and ends at (63,63).
97 /// </remarks>
98 /// <param name="start_x"></param>
99 /// <param name="start_y"></param>
100 /// <param name="end_x"></param>
101 /// <param name="end_y"></param>
102 /// <returns>The bitmap created.</returns>
86 bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); 103 bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y);
104
87 bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); 105 bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value);
88 bool[,] MergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); 106 bool[,] MergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add);
89 void SendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client); 107 void SendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client);
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index c4fb11e..c2f104e 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -701,23 +701,11 @@ namespace OpenSim.Region.CoreModules.World.Land
701 return LandBitmap; 701 return LandBitmap;
702 } 702 }
703 703
704 /// <summary>
705 /// Full sim land object creation
706 /// </summary>
707 /// <returns></returns>
708 public bool[,] BasicFullRegionLandBitmap() 704 public bool[,] BasicFullRegionLandBitmap()
709 { 705 {
710 return GetSquareLandBitmap(0, 0, (int) Constants.RegionSize, (int) Constants.RegionSize); 706 return GetSquareLandBitmap(0, 0, (int) Constants.RegionSize, (int) Constants.RegionSize);
711 } 707 }
712 708
713 /// <summary>
714 /// Used to modify the bitmap between the x and y points. Points use 64 scale
715 /// </summary>
716 /// <param name="start_x"></param>
717 /// <param name="start_y"></param>
718 /// <param name="end_x"></param>
719 /// <param name="end_y"></param>
720 /// <returns></returns>
721 public bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y) 709 public bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y)
722 { 710 {
723 bool[,] tempBitmap = new bool[64,64]; 711 bool[,] tempBitmap = new bool[64,64];
diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
index f006db2..4acba18 100644
--- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
+++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
@@ -49,6 +49,10 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
49 protected UUID m_otherUserId = new UUID("99999999-9999-9999-9999-999999999999"); 49 protected UUID m_otherUserId = new UUID("99999999-9999-9999-9999-999999999999");
50 protected TestScene m_scene; 50 protected TestScene m_scene;
51 protected PrimCountModule m_pcm; 51 protected PrimCountModule m_pcm;
52
53 /// <summary>
54 /// A parcel that covers the entire sim.
55 /// </summary>
52 protected ILandObject m_lo; 56 protected ILandObject m_lo;
53 57
54 [SetUp] 58 [SetUp]
@@ -60,9 +64,9 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
60 SceneSetupHelpers.SetupSceneModules(m_scene, lmm, m_pcm); 64 SceneSetupHelpers.SetupSceneModules(m_scene, lmm, m_pcm);
61 65
62 ILandObject lo = new LandObject(m_userId, false, m_scene); 66 ILandObject lo = new LandObject(m_userId, false, m_scene);
63 lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); 67 lo.SetLandBitmap(
64 m_lo = lmm.AddLandObject(lo); 68 lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize / 4 - 1, (int)Constants.RegionSize / 4 - 1));
65 //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); 69 m_lo = lmm.AddLandObject(lo);
66 } 70 }
67 71
68 /// <summary> 72 /// <summary>
@@ -124,7 +128,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
124 /// Test count after a parcel owner owned copied object is added. 128 /// Test count after a parcel owner owned copied object is added.
125 /// </summary> 129 /// </summary>
126 [Test] 130 [Test]
127 public void TestCopiedOwnerObject() 131 public void TestCopyOwnerObject()
128 { 132 {
129 TestHelper.InMethod(); 133 TestHelper.InMethod();
130// log4net.Config.XmlConfigurator.Configure(); 134// log4net.Config.XmlConfigurator.Configure();
@@ -143,7 +147,45 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
143 Assert.That(pc.Users[m_userId], Is.EqualTo(6)); 147 Assert.That(pc.Users[m_userId], Is.EqualTo(6));
144 Assert.That(pc.Users[m_otherUserId], Is.EqualTo(0)); 148 Assert.That(pc.Users[m_otherUserId], Is.EqualTo(0));
145 Assert.That(pc.Simulator, Is.EqualTo(6)); 149 Assert.That(pc.Simulator, Is.EqualTo(6));
146 } 150 }
151
152 /// <summary>
153 /// Test that parcel counts update correctly when an object is moved between parcels, where that movement
154 /// is not done directly by the user/
155 /// </summary>
156 //[Test]
157 public void TestMoveOwnerObject()
158 {
159// TestHelper.InMethod();
160//// log4net.Config.XmlConfigurator.Configure();
161//
162// IPrimCounts pc = m_lo.PrimCounts;
163//
164// SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01);
165// m_scene.AddNewSceneObject(sog, false);
166//
167// Assert.That(pc.Owner, Is.EqualTo(3));
168// Assert.That(pc.Group, Is.EqualTo(0));
169// Assert.That(pc.Others, Is.EqualTo(0));
170// Assert.That(pc.Total, Is.EqualTo(3));
171// Assert.That(pc.Selected, Is.EqualTo(0));
172// Assert.That(pc.Users[m_userId], Is.EqualTo(3));
173// Assert.That(pc.Users[m_otherUserId], Is.EqualTo(0));
174// Assert.That(pc.Simulator, Is.EqualTo(3));
175//
176// // Add a second object and retest
177// SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, 0x10);
178// m_scene.AddNewSceneObject(sog2, false);
179//
180// Assert.That(pc.Owner, Is.EqualTo(5));
181// Assert.That(pc.Group, Is.EqualTo(0));
182// Assert.That(pc.Others, Is.EqualTo(0));
183// Assert.That(pc.Total, Is.EqualTo(5));
184// Assert.That(pc.Selected, Is.EqualTo(0));
185// Assert.That(pc.Users[m_userId], Is.EqualTo(5));
186// Assert.That(pc.Users[m_otherUserId], Is.EqualTo(0));
187// Assert.That(pc.Simulator, Is.EqualTo(5));
188 }
147 189
148 /// <summary> 190 /// <summary>
149 /// Test count after a parcel owner owned object is removed. 191 /// Test count after a parcel owner owned object is removed.