aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-04-13 22:29:12 +0100
committerJustin Clark-Casey (justincc)2011-04-13 22:29:12 +0100
commitc81f5bfc5c3cb0bac2a89ee846099dcaae1f357b (patch)
tree2fa964daa58ca2f643f9a2f422e5fe70d6341851 /OpenSim
parentrefactor: move code to obtain the coalescence size and object offsets into Co... (diff)
downloadopensim-SC-c81f5bfc5c3cb0bac2a89ee846099dcaae1f357b.zip
opensim-SC-c81f5bfc5c3cb0bac2a89ee846099dcaae1f357b.tar.gz
opensim-SC-c81f5bfc5c3cb0bac2a89ee846099dcaae1f357b.tar.bz2
opensim-SC-c81f5bfc5c3cb0bac2a89ee846099dcaae1f357b.tar.xz
Adjust the quanterions used in the rez coalsced object tests to get sensible bounding box and offset numbers.
Extend test to check position of objects in the rezzed coalescence.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs16
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs9
3 files changed, 24 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs
index c197cb9..c76a30a 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs
@@ -93,12 +93,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess.Tests
93 UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); 93 UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040");
94 PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); 94 PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere();
95 Vector3 groupPosition = new Vector3(10, 20, 30); 95 Vector3 groupPosition = new Vector3(10, 20, 30);
96 Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); 96 Quaternion rotationOffset = Quaternion.Identity;
97 Vector3 offsetPosition = new Vector3(5, 10, 15); 97 Vector3 offsetPosition = new Vector3(5, 10, 15);
98 98
99 SceneObjectPart part1 99 SceneObjectPart part1
100 = new SceneObjectPart( 100 = new SceneObjectPart(
101 ownerId, shape, groupPosition, rotationOffset, offsetPosition); 101 ownerId, shape, groupPosition, rotationOffset, offsetPosition);
102 part1.Scale = new Vector3(1, 1, 1);
102 part1.Name = partName; 103 part1.Name = partName;
103 104
104 object1 = new SceneObjectGroup(part1); 105 object1 = new SceneObjectGroup(part1);
@@ -109,13 +110,14 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess.Tests
109 string partName = "Object2"; 110 string partName = "Object2";
110 UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); 111 UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040");
111 PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); 112 PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere();
112 Vector3 groupPosition = new Vector3(10, 20, 30); 113 Vector3 groupPosition = new Vector3(20, 40, 60);
113 Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); 114 Quaternion rotationOffset = Quaternion.Identity;
114 Vector3 offsetPosition = new Vector3(5, 10, 15); 115 Vector3 offsetPosition = new Vector3(5, 10, 15);
115 116
116 SceneObjectPart part1 117 SceneObjectPart part1
117 = new SceneObjectPart( 118 = new SceneObjectPart(
118 ownerId, shape, groupPosition, rotationOffset, offsetPosition); 119 ownerId, shape, groupPosition, rotationOffset, offsetPosition);
120 part1.Scale = new Vector3(1, 1, 1);
119 part1.Name = partName; 121 part1.Name = partName;
120 122
121 object2 = new SceneObjectGroup(part1); 123 object2 = new SceneObjectGroup(part1);
@@ -141,7 +143,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess.Tests
141 143
142 SceneObjectGroup so 144 SceneObjectGroup so
143 = m_iam.RezObject( 145 = m_iam.RezObject(
144 m_tc, item1Id, Vector3.Zero, Vector3.Zero, UUID.Zero, 1, false, false, false, UUID.Zero, false); 146 m_tc, item1Id, new Vector3(100, 100, 100), Vector3.Zero, UUID.Zero, 1, false, false, false, UUID.Zero, false);
145 147
146 Assert.That(so, Is.Not.Null); 148 Assert.That(so, Is.Not.Null);
147 149
@@ -154,8 +156,14 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess.Tests
154 Assert.That(retrievedObj1Part, Is.Not.Null); 156 Assert.That(retrievedObj1Part, Is.Not.Null);
155 Assert.That(retrievedObj1Part.Name, Is.EqualTo(item1.Name)); 157 Assert.That(retrievedObj1Part.Name, Is.EqualTo(item1.Name));
156 158
159 // Bottom of coalescence is placed on ground, hence we end up with 100.5 rather than 85 since the bottom
160 // object is unit square.
161 Assert.That(retrievedObj1Part.AbsolutePosition, Is.EqualTo(new Vector3(95, 90, 100.5f)));
162
157 SceneObjectPart retrievedObj2Part = m_scene.GetSceneObjectPart(object2.Name); 163 SceneObjectPart retrievedObj2Part = m_scene.GetSceneObjectPart(object2.Name);
158 Assert.That(retrievedObj2Part, Is.Not.Null); 164 Assert.That(retrievedObj2Part, Is.Not.Null);
165 Assert.That(retrievedObj2Part.Name, Is.EqualTo(object2.Name));
166 Assert.That(retrievedObj2Part.AbsolutePosition, Is.EqualTo(new Vector3(105, 110, 130.5f)));
159 } 167 }
160 168
161 [Test] 169 [Test]
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index e6dd489..fdd5205 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4870,6 +4870,10 @@ namespace OpenSim.Region.Framework.Scenes
4870 Vector3 vec = g.AbsolutePosition; 4870 Vector3 vec = g.AbsolutePosition;
4871 4871
4872 g.GetAxisAlignedBoundingBoxRaw(out ominX, out omaxX, out ominY, out omaxY, out ominZ, out omaxZ); 4872 g.GetAxisAlignedBoundingBoxRaw(out ominX, out omaxX, out ominY, out omaxY, out ominZ, out omaxZ);
4873
4874// m_log.DebugFormat(
4875// "[SCENE]: For {0} found AxisAlignedBoundingBoxRaw {1}, {2}",
4876// g.Name, new Vector3(ominX, ominY, ominZ), new Vector3(omaxX, omaxY, omaxZ));
4873 4877
4874 ominX += vec.X; 4878 ominX += vec.X;
4875 omaxX += vec.X; 4879 omaxX += vec.X;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 4d5eedf..ce1e6b8 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2088,7 +2088,14 @@ namespace OpenSim.Region.Framework.Scenes
2088 2088
2089 axPos *= parentRot; 2089 axPos *= parentRot;
2090 Vector3 translationOffsetPosition = axPos; 2090 Vector3 translationOffsetPosition = axPos;
2091 return GroupPosition + translationOffsetPosition; 2091
2092// m_log.DebugFormat("[SCENE OBJECT PART]: Found group pos {0} for part {1}", GroupPosition, Name);
2093
2094 Vector3 worldPos = GroupPosition + translationOffsetPosition;
2095
2096// m_log.DebugFormat("[SCENE OBJECT PART]: Found world pos {0} for part {1}", worldPos, Name);
2097
2098 return worldPos;
2092 } 2099 }
2093 2100
2094 /// <summary> 2101 /// <summary>