diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 0a1a226..866a43c 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2672,20 +2672,27 @@ namespace OpenSim.Region.Framework.Scenes | |||
2672 | } | 2672 | } |
2673 | else | 2673 | else |
2674 | { | 2674 | { |
2675 | //NonPhysicalGrabMovement(pos); | 2675 | NonPhysicalGrabMovement(pos); |
2676 | } | 2676 | } |
2677 | } | 2677 | } |
2678 | else | 2678 | else |
2679 | { | 2679 | { |
2680 | //NonPhysicalGrabMovement(pos); | 2680 | NonPhysicalGrabMovement(pos); |
2681 | } | 2681 | } |
2682 | } | 2682 | } |
2683 | } | 2683 | } |
2684 | 2684 | ||
2685 | /// <summary> | ||
2686 | /// Apply possition for grabbing non-physical linksets (Ctrl+Drag) | ||
2687 | /// This MUST be blocked for linksets that contain touch scripts because the viewer triggers grab on the touch | ||
2688 | /// event (Viewer Bug?) This would allow anyone to drag a linkset with a touch script. SL behaviour is also to | ||
2689 | /// block grab on prims with touch events. | ||
2690 | /// </summary> | ||
2691 | /// <param name="pos">New Position</param> | ||
2685 | public void NonPhysicalGrabMovement(Vector3 pos) | 2692 | public void NonPhysicalGrabMovement(Vector3 pos) |
2686 | { | 2693 | { |
2687 | AbsolutePosition = pos; | 2694 | if(!IsAttachment && ScriptCount() == 0) |
2688 | m_rootPart.SendTerseUpdateToAllClients(); | 2695 | UpdateGroupPosition(pos); |
2689 | } | 2696 | } |
2690 | 2697 | ||
2691 | /// <summary> | 2698 | /// <summary> |
@@ -2781,17 +2788,28 @@ namespace OpenSim.Region.Framework.Scenes | |||
2781 | } | 2788 | } |
2782 | else | 2789 | else |
2783 | { | 2790 | { |
2784 | //NonPhysicalSpinMovement(pos); | 2791 | NonPhysicalSpinMovement(newOrientation); |
2785 | } | 2792 | } |
2786 | } | 2793 | } |
2787 | else | 2794 | else |
2788 | { | 2795 | { |
2789 | //NonPhysicalSpinMovement(pos); | 2796 | NonPhysicalSpinMovement(newOrientation); |
2790 | } | 2797 | } |
2791 | } | 2798 | } |
2792 | } | 2799 | } |
2793 | 2800 | ||
2794 | /// <summary> | 2801 | /// <summary> |
2802 | /// Apply rotation for spinning non-physical linksets (Ctrl+Shift+Drag) | ||
2803 | /// As with dragging, scripted objects must be blocked from spinning | ||
2804 | /// </summary> | ||
2805 | /// <param name="newOrientation">New Rotation</param> | ||
2806 | private void NonPhysicalSpinMovement(Quaternion newOrientation) | ||
2807 | { | ||
2808 | if(!IsAttachment && ScriptCount() == 0) | ||
2809 | UpdateGroupRotationR(newOrientation); | ||
2810 | } | ||
2811 | |||
2812 | /// <summary> | ||
2795 | /// Set the name of a prim | 2813 | /// Set the name of a prim |
2796 | /// </summary> | 2814 | /// </summary> |
2797 | /// <param name="name"></param> | 2815 | /// <param name="name"></param> |