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.
bulletsim
Justin Clark-Casey (justincc) 2011-07-16 01:42:56 +01:00
parent 18652eb87e
commit da7340b9fb
1 changed files with 8 additions and 2 deletions

View File

@ -2789,7 +2789,10 @@ namespace OpenSim.Region.Framework.Scenes
if (obPart.PhysActor != null) if (obPart.PhysActor != null)
{ {
obPart.PhysActor.Size = newSize; obPart.PhysActor.Size = newSize;
m_scene.PhysicsScene.AddPhysicsActorTaint(obPart.PhysActor);
// If we're a sculpt wait for the trigger when the sculpt texture is retrieved.
if (((OpenMetaverse.SculptType)obPart.Shape.SculptType) != SculptType.Mesh)
m_scene.PhysicsScene.AddPhysicsActorTaint(obPart.PhysActor);
} }
} }
@ -2800,7 +2803,10 @@ namespace OpenSim.Region.Framework.Scenes
if (part.PhysActor != null) if (part.PhysActor != null)
{ {
part.PhysActor.Size = prevScale; part.PhysActor.Size = prevScale;
m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
// If we're a sculpt wait for the trigger when the sculpt texture is retrieved.
if (((OpenMetaverse.SculptType)part.Shape.SculptType) != SculptType.Mesh)
m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
} }
part.IgnoreUndoUpdate = false; part.IgnoreUndoUpdate = false;