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')
5 files changed, 24 insertions, 7 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 26ab586..dd905c9 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -144,6 +144,8 @@ namespace OpenSim.Framework | |||
144 | public delegate void AvatarPickerRequest(IClientAPI remoteClient, UUID agentdata, UUID queryID, string UserQuery | 144 | public delegate void AvatarPickerRequest(IClientAPI remoteClient, UUID agentdata, UUID queryID, string UserQuery |
145 | ); | 145 | ); |
146 | 146 | ||
147 | public delegate void GrabObject(uint localID, Vector3 pos, IClientAPI remoteClient, List<SurfaceTouchEventArgs> surfaceArgs); | ||
148 | |||
147 | public delegate void MoveObject(UUID objectID, Vector3 offset, Vector3 grapPos, IClientAPI remoteClient, List<SurfaceTouchEventArgs> surfaceArgs); | 149 | public delegate void MoveObject(UUID objectID, Vector3 offset, Vector3 grapPos, IClientAPI remoteClient, List<SurfaceTouchEventArgs> surfaceArgs); |
148 | 150 | ||
149 | public delegate void ParcelAccessListRequest( | 151 | public delegate void ParcelAccessListRequest( |
@@ -426,7 +428,7 @@ namespace OpenSim.Framework | |||
426 | 428 | ||
427 | event ObjectDuplicate OnObjectDuplicate; | 429 | event ObjectDuplicate OnObjectDuplicate; |
428 | event ObjectDuplicateOnRay OnObjectDuplicateOnRay; | 430 | event ObjectDuplicateOnRay OnObjectDuplicateOnRay; |
429 | event UpdateVector OnGrabObject; | 431 | event GrabObject OnGrabObject; |
430 | event ObjectSelect OnDeGrabObject; | 432 | event ObjectSelect OnDeGrabObject; |
431 | event MoveObject OnGrabUpdate; | 433 | event MoveObject OnGrabUpdate; |
432 | 434 | ||
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: |
diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs index b438709..d0fbfb9 100644 --- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | |||
@@ -197,7 +197,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
197 | public event RequestGodlikePowers OnRequestGodlikePowers; | 197 | public event RequestGodlikePowers OnRequestGodlikePowers; |
198 | public event GodKickUser OnGodKickUser; | 198 | public event GodKickUser OnGodKickUser; |
199 | public event ObjectDuplicate OnObjectDuplicate; | 199 | public event ObjectDuplicate OnObjectDuplicate; |
200 | public event UpdateVector OnGrabObject; | 200 | public event GrabObject OnGrabObject; |
201 | public event ObjectSelect OnDeGrabObject; | 201 | public event ObjectSelect OnDeGrabObject; |
202 | public event MoveObject OnGrabUpdate; | 202 | public event MoveObject OnGrabUpdate; |
203 | public event ViewerEffectEventHandler OnViewerEffect; | 203 | public event ViewerEffectEventHandler OnViewerEffect; |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index b60efdc..e9a381d 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -212,7 +212,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
212 | m_eventManager.TriggerLandBuy(this, args); | 212 | m_eventManager.TriggerLandBuy(this, args); |
213 | } | 213 | } |
214 | 214 | ||
215 | public virtual void ProcessObjectGrab(uint localID, Vector3 offsetPos, IClientAPI remoteClient) | 215 | public virtual void ProcessObjectGrab(uint localID, Vector3 offsetPos, IClientAPI remoteClient, List<SurfaceTouchEventArgs> surfaceArgs) |
216 | { | 216 | { |
217 | 217 | ||
218 | List<EntityBase> EntityList = GetEntities(); | 218 | List<EntityBase> EntityList = GetEntities(); |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 46c6425..6c2831e 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -92,7 +92,7 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
92 | public event RequestGodlikePowers OnRequestGodlikePowers; | 92 | public event RequestGodlikePowers OnRequestGodlikePowers; |
93 | public event GodKickUser OnGodKickUser; | 93 | public event GodKickUser OnGodKickUser; |
94 | public event ObjectDuplicate OnObjectDuplicate; | 94 | public event ObjectDuplicate OnObjectDuplicate; |
95 | public event UpdateVector OnGrabObject; | 95 | public event GrabObject OnGrabObject; |
96 | public event ObjectSelect OnDeGrabObject; | 96 | public event ObjectSelect OnDeGrabObject; |
97 | public event MoveObject OnGrabUpdate; | 97 | public event MoveObject OnGrabUpdate; |
98 | public event ViewerEffectEventHandler OnViewerEffect; | 98 | public event ViewerEffectEventHandler OnViewerEffect; |