aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
authorTeravus Ovares2007-11-20 04:38:08 +0000
committerTeravus Ovares2007-11-20 04:38:08 +0000
commit5a71d03b7ac1de0b599f651c62bf1e33a3d1745d (patch)
treedd85b6f7d5fb5069fd281a70dd79e6daf267a1bd /OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
parentPOS physics. tweaking stair-climbing which broke with my last change (diff)
downloadopensim-SC-5a71d03b7ac1de0b599f651c62bf1e33a3d1745d.zip
opensim-SC-5a71d03b7ac1de0b599f651c62bf1e33a3d1745d.tar.gz
opensim-SC-5a71d03b7ac1de0b599f651c62bf1e33a3d1745d.tar.bz2
opensim-SC-5a71d03b7ac1de0b599f651c62bf1e33a3d1745d.tar.xz
*Huge* structural changes in ODE/OdePrim to get all of the calls in threadlocked code. ODEPrim was almost completely re-written.
Copy/Space test needed.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs12
1 files changed, 9 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 38962c1..efee81b 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -150,6 +150,7 @@ namespace OpenSim.Region.Environment.Scenes
150 m_rootPart.PhysActor.Position = 150 m_rootPart.PhysActor.Position =
151 new PhysicsVector(m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y, 151 new PhysicsVector(m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y,
152 m_rootPart.GroupPosition.Z); 152 m_rootPart.GroupPosition.Z);
153 m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
153 } 154 }
154 } 155 }
155 } 156 }
@@ -480,7 +481,7 @@ namespace OpenSim.Region.Environment.Scenes
480 new Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, 481 new Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X,
481 dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z), 482 dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z),
482 dupe.RootPart.PhysActor.IsPhysical); 483 dupe.RootPart.PhysActor.IsPhysical);
483 dupe.RootPart.doPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical); 484 dupe.RootPart.doPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true);
484 485
485 } 486 }
486 // Now we've made a copy that replaces this one, we need to 487 // Now we've made a copy that replaces this one, we need to
@@ -784,6 +785,7 @@ namespace OpenSim.Region.Environment.Scenes
784 if (linkPart.PhysActor != null) 785 if (linkPart.PhysActor != null)
785 { 786 {
786 m_scene.PhysScene.RemovePrim(linkPart.PhysActor); 787 m_scene.PhysScene.RemovePrim(linkPart.PhysActor);
788
787 linkPart.PhysActor = null; 789 linkPart.PhysActor = null;
788 } 790 }
789 791
@@ -861,7 +863,7 @@ namespace OpenSim.Region.Environment.Scenes
861 new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, 863 new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X,
862 linkPart.RotationOffset.Y, linkPart.RotationOffset.Z), 864 linkPart.RotationOffset.Y, linkPart.RotationOffset.Z),
863 m_rootPart.PhysActor.IsPhysical); 865 m_rootPart.PhysActor.IsPhysical);
864 m_rootPart.doPhysicsPropertyUpdate(m_rootPart.PhysActor.IsPhysical); 866 m_rootPart.doPhysicsPropertyUpdate(m_rootPart.PhysActor.IsPhysical, true);
865 867
866 } 868 }
867 869
@@ -1170,7 +1172,7 @@ namespace OpenSim.Region.Environment.Scenes
1170 m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z), 1172 m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z),
1171 m_rootPart.PhysActor.IsPhysical); 1173 m_rootPart.PhysActor.IsPhysical);
1172 bool UsePhysics = ((m_rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); 1174 bool UsePhysics = ((m_rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0);
1173 m_rootPart.doPhysicsPropertyUpdate(UsePhysics); 1175 m_rootPart.doPhysicsPropertyUpdate(UsePhysics, true);
1174 1176
1175 } 1177 }
1176 } 1178 }
@@ -1196,6 +1198,7 @@ namespace OpenSim.Region.Environment.Scenes
1196 { 1198 {
1197 m_rootPart.PhysActor.Size = 1199 m_rootPart.PhysActor.Size =
1198 new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z); 1200 new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z);
1201 m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
1199 } 1202 }
1200 } 1203 }
1201 } 1204 }
@@ -1286,6 +1289,7 @@ namespace OpenSim.Region.Environment.Scenes
1286 m_rootPart.PhysActor.Orientation = 1289 m_rootPart.PhysActor.Orientation =
1287 new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, 1290 new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
1288 m_rootPart.RotationOffset.Z); 1291 m_rootPart.RotationOffset.Z);
1292 m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
1289 } 1293 }
1290 ScheduleGroupForTerseUpdate(); 1294 ScheduleGroupForTerseUpdate();
1291 } 1295 }
@@ -1303,6 +1307,7 @@ namespace OpenSim.Region.Environment.Scenes
1303 m_rootPart.PhysActor.Orientation = 1307 m_rootPart.PhysActor.Orientation =
1304 new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, 1308 new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
1305 m_rootPart.RotationOffset.Z); 1309 m_rootPart.RotationOffset.Z);
1310 m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
1306 } 1311 }
1307 AbsolutePosition = pos; 1312 AbsolutePosition = pos;
1308 ScheduleGroupForTerseUpdate(); 1313 ScheduleGroupForTerseUpdate();
@@ -1346,6 +1351,7 @@ namespace OpenSim.Region.Environment.Scenes
1346 m_rootPart.PhysActor.Orientation = 1351 m_rootPart.PhysActor.Orientation =
1347 new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, 1352 new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
1348 m_rootPart.RotationOffset.Z); 1353 m_rootPart.RotationOffset.Z);
1354 m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
1349 } 1355 }
1350 1356
1351 foreach (SceneObjectPart prim in m_parts.Values) 1357 foreach (SceneObjectPart prim in m_parts.Values)