diff options
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 563d83b..d82b0cc 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -4725,8 +4725,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4725 | 4725 | ||
4726 | if (handlerGrabUpdate != null) | 4726 | if (handlerGrabUpdate != null) |
4727 | { | 4727 | { |
4728 | List<SurfaceTouchEventArgs> touchArgs = new List<SurfaceTouchEventArgs>(); | ||
4729 | if ((grabUpdate.SurfaceInfo != null) && (grabUpdate.SurfaceInfo.Length > 0)) | ||
4730 | { | ||
4731 | foreach (ObjectGrabUpdatePacket.SurfaceInfoBlock surfaceInfo in grabUpdate.SurfaceInfo) | ||
4732 | { | ||
4733 | SurfaceTouchEventArgs arg = new SurfaceTouchEventArgs(); | ||
4734 | arg.Binormal = surfaceInfo.Binormal; | ||
4735 | arg.FaceIndex = surfaceInfo.FaceIndex; | ||
4736 | arg.Normal = surfaceInfo.Normal; | ||
4737 | arg.Position = surfaceInfo.Position; | ||
4738 | arg.STCoord = surfaceInfo.STCoord; | ||
4739 | arg.UVCoord = surfaceInfo.UVCoord; | ||
4740 | touchArgs.Add(arg); | ||
4741 | } | ||
4742 | } | ||
4728 | handlerGrabUpdate(grabUpdate.ObjectData.ObjectID, grabUpdate.ObjectData.GrabOffsetInitial, | 4743 | handlerGrabUpdate(grabUpdate.ObjectData.ObjectID, grabUpdate.ObjectData.GrabOffsetInitial, |
4729 | grabUpdate.ObjectData.GrabPosition, this); | 4744 | grabUpdate.ObjectData.GrabPosition, this, touchArgs); |
4730 | } | 4745 | } |
4731 | break; | 4746 | break; |
4732 | case PacketType.ObjectDeGrab: | 4747 | case PacketType.ObjectDeGrab: |