aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs26
1 files changed, 5 insertions, 21 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 477b3e3..7662874 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2611,6 +2611,7 @@ namespace OpenSim.Region.Framework.Scenes
2611 2611
2612 #region Resize 2612 #region Resize
2613 2613
2614
2614 /// <summary> 2615 /// <summary>
2615 /// Resize the entire group of prims. 2616 /// Resize the entire group of prims.
2616 /// </summary> 2617 /// </summary>
@@ -2712,6 +2713,7 @@ namespace OpenSim.Region.Framework.Scenes
2712 z *= a; 2713 z *= a;
2713 } 2714 }
2714 } 2715 }
2716
2715 obPart.IgnoreUndoUpdate = false; 2717 obPart.IgnoreUndoUpdate = false;
2716 obPart.StoreUndoState(); 2718 obPart.StoreUndoState();
2717 } 2719 }
@@ -2729,47 +2731,29 @@ namespace OpenSim.Region.Framework.Scenes
2729 { 2731 {
2730 SceneObjectPart obPart = parts[i]; 2732 SceneObjectPart obPart = parts[i];
2731 obPart.IgnoreUndoUpdate = true; 2733 obPart.IgnoreUndoUpdate = true;
2734
2732 if (obPart.UUID != m_rootPart.UUID) 2735 if (obPart.UUID != m_rootPart.UUID)
2733 { 2736 {
2734 Vector3 currentpos = new Vector3(obPart.OffsetPosition); 2737 Vector3 currentpos = new Vector3(obPart.OffsetPosition);
2735 currentpos.X *= x; 2738 currentpos.X *= x;
2736 currentpos.Y *= y; 2739 currentpos.Y *= y;
2737 currentpos.Z *= z; 2740 currentpos.Z *= z;
2741
2738 Vector3 newSize = new Vector3(obPart.Scale); 2742 Vector3 newSize = new Vector3(obPart.Scale);
2739 newSize.X *= x; 2743 newSize.X *= x;
2740 newSize.Y *= y; 2744 newSize.Y *= y;
2741 newSize.Z *= z; 2745 newSize.Z *= z;
2746
2742 obPart.Resize(newSize); 2747 obPart.Resize(newSize);
2743 obPart.UpdateOffSet(currentpos); 2748 obPart.UpdateOffSet(currentpos);
2744
2745 if (obPart.PhysActor != null)
2746 {
2747 obPart.PhysActor.Size = newSize;
2748
2749 // If we're a sculpt wait for the trigger when the sculpt texture is retrieved.
2750 if (((OpenMetaverse.SculptType)obPart.Shape.SculptType) != SculptType.Mesh)
2751 m_scene.PhysicsScene.AddPhysicsActorTaint(obPart.PhysActor);
2752 }
2753 } 2749 }
2754 2750
2755 obPart.IgnoreUndoUpdate = false; 2751 obPart.IgnoreUndoUpdate = false;
2756 obPart.StoreUndoState(); 2752 obPart.StoreUndoState();
2757 } 2753 }
2758 2754
2759 if (RootPart.PhysActor != null)
2760 {
2761 RootPart.PhysActor.Size = prevScale;
2762
2763 // If we're a sculpt wait for the trigger when the sculpt texture is retrieved.
2764 if (((OpenMetaverse.SculptType)RootPart.Shape.SculptType) != SculptType.Mesh)
2765 m_scene.PhysicsScene.AddPhysicsActorTaint(RootPart.PhysActor);
2766 }
2767
2768 RootPart.IgnoreUndoUpdate = false; 2755 RootPart.IgnoreUndoUpdate = false;
2769 RootPart.StoreUndoState(); 2756 RootPart.StoreUndoState();
2770 HasGroupChanged = true;
2771 RootPart.TriggerScriptChangedEvent(Changed.SCALE);
2772 ScheduleGroupForTerseUpdate();
2773 } 2757 }
2774 2758
2775 #endregion 2759 #endregion