diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 7e34637..f787190 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -717,6 +717,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
717 | if (part != null) | 717 | if (part != null) |
718 | { | 718 | { |
719 | part.Resize(scale); | 719 | part.Resize(scale); |
720 | if (part.UUID == this.m_rootPart.UUID) | ||
721 | { | ||
722 | if (m_rootPart.PhysActor != null) | ||
723 | { | ||
724 | m_rootPart.PhysActor.Size = new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z); | ||
725 | } | ||
726 | } | ||
720 | } | 727 | } |
721 | } | 728 | } |
722 | #endregion | 729 | #endregion |
@@ -789,6 +796,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
789 | public void UpdateGroupRotation(LLQuaternion rot) | 796 | public void UpdateGroupRotation(LLQuaternion rot) |
790 | { | 797 | { |
791 | this.m_rootPart.UpdateRotation(rot); | 798 | this.m_rootPart.UpdateRotation(rot); |
799 | if (m_rootPart.PhysActor != null) | ||
800 | { | ||
801 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | ||
802 | } | ||
792 | this.ScheduleGroupForTerseUpdate(); | 803 | this.ScheduleGroupForTerseUpdate(); |
793 | } | 804 | } |
794 | 805 | ||
@@ -800,6 +811,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
800 | public void UpdateGroupRotation(LLVector3 pos, LLQuaternion rot) | 811 | public void UpdateGroupRotation(LLVector3 pos, LLQuaternion rot) |
801 | { | 812 | { |
802 | this.m_rootPart.UpdateRotation(rot); | 813 | this.m_rootPart.UpdateRotation(rot); |
814 | if (m_rootPart.PhysActor != null) | ||
815 | { | ||
816 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | ||
817 | } | ||
803 | this.AbsolutePosition = pos; | 818 | this.AbsolutePosition = pos; |
804 | this.ScheduleGroupForTerseUpdate(); | 819 | this.ScheduleGroupForTerseUpdate(); |
805 | } | 820 | } |
@@ -832,6 +847,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
832 | private void UpdateRootRotation(LLQuaternion rot) | 847 | private void UpdateRootRotation(LLQuaternion rot) |
833 | { | 848 | { |
834 | this.m_rootPart.UpdateRotation(rot); | 849 | this.m_rootPart.UpdateRotation(rot); |
850 | if (m_rootPart.PhysActor != null) | ||
851 | { | ||
852 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | ||
853 | } | ||
835 | Axiom.Math.Quaternion axRot = new Quaternion(rot.W, rot.X, rot.Y, rot.Z); | 854 | Axiom.Math.Quaternion axRot = new Quaternion(rot.W, rot.X, rot.Y, rot.Z); |
836 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); | 855 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); |
837 | 856 | ||