diff options
author | Teravus Ovares | 2007-11-20 04:38:08 +0000 |
---|---|---|
committer | Teravus Ovares | 2007-11-20 04:38:08 +0000 |
commit | 5a71d03b7ac1de0b599f651c62bf1e33a3d1745d (patch) | |
tree | dd85b6f7d5fb5069fd281a70dd79e6daf267a1bd /OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |
parent | POS physics. tweaking stair-climbing which broke with my last change (diff) | |
download | opensim-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.cs | 12 |
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) |