diff options
added a list of SurfaceTouchEventArgs to the IClientAPI.OnGrab event, for the new surface touch parameters in 1.21 viewers.
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index d82b0cc..7eda272 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -166,7 +166,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
166 | private ObjectIncludeInSearch handlerObjectIncludeInSearch = null; | 166 | private ObjectIncludeInSearch handlerObjectIncludeInSearch = null; |
167 | private UpdatePrimFlags handlerUpdatePrimFlags = null; //OnUpdatePrimFlags; | 167 | private UpdatePrimFlags handlerUpdatePrimFlags = null; //OnUpdatePrimFlags; |
168 | private UpdatePrimTexture handlerUpdatePrimTexture = null; | 168 | private UpdatePrimTexture handlerUpdatePrimTexture = null; |
169 | private UpdateVector handlerGrabObject = null; //OnGrabObject; | 169 | private GrabObject handlerGrabObject = null; //OnGrabObject; |
170 | private MoveObject handlerGrabUpdate = null; //OnGrabUpdate; | 170 | private MoveObject handlerGrabUpdate = null; //OnGrabUpdate; |
171 | private ObjectSelect handlerDeGrabObject = null; //OnDeGrabObject; | 171 | private ObjectSelect handlerDeGrabObject = null; //OnDeGrabObject; |
172 | private GenericCall7 handlerObjectDescription = null; | 172 | private GenericCall7 handlerObjectDescription = null; |
@@ -866,7 +866,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
866 | public event Action<IClientAPI> OnRequestAvatarsData; | 866 | public event Action<IClientAPI> OnRequestAvatarsData; |
867 | public event LinkObjects OnLinkObjects; | 867 | public event LinkObjects OnLinkObjects; |
868 | public event DelinkObjects OnDelinkObjects; | 868 | public event DelinkObjects OnDelinkObjects; |
869 | public event UpdateVector OnGrabObject; | 869 | public event GrabObject OnGrabObject; |
870 | public event ObjectSelect OnDeGrabObject; | 870 | public event ObjectSelect OnDeGrabObject; |
871 | public event ObjectDuplicate OnObjectDuplicate; | 871 | public event ObjectDuplicate OnObjectDuplicate; |
872 | public event ObjectDuplicateOnRay OnObjectDuplicateOnRay; | 872 | public event ObjectDuplicateOnRay OnObjectDuplicateOnRay; |
@@ -4715,7 +4715,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4715 | 4715 | ||
4716 | if (handlerGrabObject != null) | 4716 | if (handlerGrabObject != null) |
4717 | { | 4717 | { |
4718 | handlerGrabObject(grab.ObjectData.LocalID, grab.ObjectData.GrabOffset, this); | 4718 | List<SurfaceTouchEventArgs> touchArgs = new List<SurfaceTouchEventArgs>(); |
4719 | if ((grab.SurfaceInfo != null) && (grab.SurfaceInfo.Length > 0)) | ||
4720 | { | ||
4721 | foreach (ObjectGrabPacket.SurfaceInfoBlock surfaceInfo in grab.SurfaceInfo) | ||
4722 | { | ||
4723 | SurfaceTouchEventArgs arg = new SurfaceTouchEventArgs(); | ||
4724 | arg.Binormal = surfaceInfo.Binormal; | ||
4725 | arg.FaceIndex = surfaceInfo.FaceIndex; | ||
4726 | arg.Normal = surfaceInfo.Normal; | ||
4727 | arg.Position = surfaceInfo.Position; | ||
4728 | arg.STCoord = surfaceInfo.STCoord; | ||
4729 | arg.UVCoord = surfaceInfo.UVCoord; | ||
4730 | touchArgs.Add(arg); | ||
4731 | } | ||
4732 | } | ||
4733 | handlerGrabObject(grab.ObjectData.LocalID, grab.ObjectData.GrabOffset, this, touchArgs); | ||
4719 | } | 4734 | } |
4720 | break; | 4735 | break; |
4721 | case PacketType.ObjectGrabUpdate: | 4736 | case PacketType.ObjectGrabUpdate: |