diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 0a1a226c36..75da29953e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -2672,20 +2672,26 @@ namespace OpenSim.Region.Framework.Scenes } else { - //NonPhysicalGrabMovement(pos); + NonPhysicalGrabMovement(pos); } } else { - //NonPhysicalGrabMovement(pos); + NonPhysicalGrabMovement(pos); } } } + /// + /// Apply possition for grabbing non-physical linksets (ctrl+drag) + /// + /// New Position public void NonPhysicalGrabMovement(Vector3 pos) { - AbsolutePosition = pos; - m_rootPart.SendTerseUpdateToAllClients(); + if((m_rootPart.Flags & PrimFlags.Scripted) == 0) + { + UpdateGroupPosition(pos); + } } /// @@ -2781,16 +2787,28 @@ namespace OpenSim.Region.Framework.Scenes } else { - //NonPhysicalSpinMovement(pos); + NonPhysicalSpinMovement(newOrientation); } } else { - //NonPhysicalSpinMovement(pos); + NonPhysicalSpinMovement(newOrientation); } } } + /// + /// Apply rotation for spinning non-physical linksets (ctrl+shift+drag) + /// + /// New Rotation + private void NonPhysicalSpinMovement(Quaternion newOrientation) + { + if ((m_rootPart.Flags & PrimFlags.Scripted) == 0) + { + UpdateGroupRotationR(newOrientation); + } + } + /// /// Set the name of a prim ///