diff options
author | Justin Clark-Casey (justincc) | 2011-07-16 01:42:56 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-07-16 01:42:56 +0100 |
commit | da7340b9fb6a6f4468310958671f429f133e8424 (patch) | |
tree | 894a2a981cb0901a3b44ec86a8b730de858f0fcb /OpenSim/Region | |
parent | Fix physics proxy regeneration when a mesh with more than one submesh is resized (diff) | |
download | opensim-SC_OLD-da7340b9fb6a6f4468310958671f429f133e8424.zip opensim-SC_OLD-da7340b9fb6a6f4468310958671f429f133e8424.tar.gz opensim-SC_OLD-da7340b9fb6a6f4468310958671f429f133e8424.tar.bz2 opensim-SC_OLD-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.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 10 |
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; |