aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-07-16 01:42:56 +0100
committerJustin Clark-Casey (justincc)2011-07-16 01:42:56 +0100
commitda7340b9fb6a6f4468310958671f429f133e8424 (patch)
tree894a2a981cb0901a3b44ec86a8b730de858f0fcb
parentFix physics proxy regeneration when a mesh with more than one submesh is resized (diff)
downloadopensim-SC-da7340b9fb6a6f4468310958671f429f133e8424.zip
opensim-SC-da7340b9fb6a6f4468310958671f429f133e8424.tar.gz
opensim-SC-da7340b9fb6a6f4468310958671f429f133e8424.tar.bz2
opensim-SC-da7340b9fb6a6f4468310958671f429f133e8424.tar.xz
If resized shape is a mesh/sculpt, leave it to the mesh asset callback to trigger the physics actor taint.
In the last commit, the fix was made by updating all the child prim physics actors with the new size rather than just the root part.
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs10
1 files changed, 8 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index fd5f1b0..9c307a3 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2789,7 +2789,10 @@ namespace OpenSim.Region.Framework.Scenes
2789 if (obPart.PhysActor != null) 2789 if (obPart.PhysActor != null)
2790 { 2790 {
2791 obPart.PhysActor.Size = newSize; 2791 obPart.PhysActor.Size = newSize;
2792 m_scene.PhysicsScene.AddPhysicsActorTaint(obPart.PhysActor); 2792
2793 // If we're a sculpt wait for the trigger when the sculpt texture is retrieved.
2794 if (((OpenMetaverse.SculptType)obPart.Shape.SculptType) != SculptType.Mesh)
2795 m_scene.PhysicsScene.AddPhysicsActorTaint(obPart.PhysActor);
2793 } 2796 }
2794 } 2797 }
2795 2798
@@ -2800,7 +2803,10 @@ namespace OpenSim.Region.Framework.Scenes
2800 if (part.PhysActor != null) 2803 if (part.PhysActor != null)
2801 { 2804 {
2802 part.PhysActor.Size = prevScale; 2805 part.PhysActor.Size = prevScale;
2803 m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor); 2806
2807 // If we're a sculpt wait for the trigger when the sculpt texture is retrieved.
2808 if (((OpenMetaverse.SculptType)part.Shape.SculptType) != SculptType.Mesh)
2809 m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
2804 } 2810 }
2805 2811
2806 part.IgnoreUndoUpdate = false; 2812 part.IgnoreUndoUpdate = false;