diff options
-rw-r--r-- | OpenSim/Framework/ILandObject.cs | 18 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandObject.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs | 52 |
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. |