using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.EventSystems;
namespace SC.XR.Unity.Module_InputSystem.InputDeviceHand {
public class HandDispatcher : DispatcherBase {
public HandDispatcher(InputDevicePartDispatchEventHand inputDevicePartDispatchEventHand) :base(inputDevicePartDispatchEventHand) {
}
///
/// When Any part Device of Any key Down will invoke this delegate
///
/// which key
/// which part,part.PartType
//public static event HandEventDelegate HandCatchEventDelegate;
//public static void OnHandTurnFaceDown(GameObject obj, InputDevice26DofGesturePart devicePart, SCPointEventData eventData = null) {
// ExecuteEvents.Execute(obj, null, (x, y) => x.OnHandTurnFaceDown(devicePart, eventData));
//}
//public static void OnHandTurnFaceUp(GameObject obj, InputDevice26DofGesturePart devicePart, SCPointEventData eventData = null) {
// ExecuteEvents.Execute(obj, null, (x, y) => x.OnHandTurnFaceUp(devicePart, eventData));
//}
//public static void OnHandTurnFaceDrag(GameObject obj, InputDevice26DofGesturePart devicePart, SCPointEventData eventData = null) {
// ExecuteEvents.Execute(obj, null, (x, y) => x.OnHandTurnFaceDrag(devicePart, eventData));
//}
//public static void OnJointTouchEnter(GameObject obj, InputDevice26DofGesturePart devicePart, SCPointEventData eventData = null) {
// ExecuteEvents.Execute(obj, null, (x, y) => x.OnJointTouchEnter(devicePart, eventData));
//}
//public static void OnJointTouchExit(GameObject obj, InputDevice26DofGesturePart devicePart, SCPointEventData eventData = null) {
// ExecuteEvents.Execute(obj, null, (x, y) => x.OnJointTouchExit(devicePart, eventData));
//}
public static void OnHandCatchDown(GameObject obj, InputDeviceHandPart inputDeviceHandPart, SCPointEventData sCPointEventData = null) {
ExecuteEvents.Execute(obj, null, (x, y) => x.OnHandCatchDown(inputDeviceHandPart, sCPointEventData));
}
public static void OnHandCatchUp(GameObject obj, InputDeviceHandPart inputDeviceHandPart, SCPointEventData sCPointEventData = null) {
ExecuteEvents.Execute(obj, null, (x, y) => x.OnHandCatchUp(inputDeviceHandPart, sCPointEventData));
}
public static void OnHandCatchDrag(GameObject obj, InputDeviceHandPart inputDeviceHandPart, SCPointEventData sCPointEventData = null) {
ExecuteEvents.Execute(obj, null, (x, y) => x.OnHandCatchDrag(inputDeviceHandPart, sCPointEventData));
}
//public static void OnHandPinchDown(GameObject obj, InputDevice26DofGesturePart devicePart, SCPointEventData eventData = null) {
// ExecuteEvents.Execute(obj, null, (x, y) => x.OnHandPinchDown(devicePart, eventData));
//}
//public static void OnHandPinchUp(GameObject obj, InputDevice26DofGesturePart devicePart, SCPointEventData eventData = null) {
// ExecuteEvents.Execute(obj, null, (x, y) => x.OnHandPinchUp(devicePart, eventData));
//}
public static void OnPokeDown(GameObject obj, TouchPointer touchPointer, SCPointEventData sCPointEventData = null) {
ExecuteEvents.Execute(obj, null, (x, y) => x.OnPokeDown(touchPointer, sCPointEventData));
}
public static void OnPokeUp(GameObject obj, TouchPointer touchPointer, SCPointEventData sCPointEventData = null) {
ExecuteEvents.Execute(obj, null, (x, y) => x.OnPokeUp(touchPointer, sCPointEventData));
}
public static void OnPokeUpdated(GameObject obj, TouchPointer touchPointer, SCPointEventData sCPointEventData = null) {
ExecuteEvents.Execute(obj, null, (x, y) => x.OnPokeUpdated(touchPointer, sCPointEventData));
}
}
public interface IPokeDownHandler : IEventSystemHandler {
void OnPokeDown(TouchPointer touchPointer, SCPointEventData eventData);
}
public interface IPokeUpHandler : IEventSystemHandler {
void OnPokeUp(TouchPointer touchPointer, SCPointEventData eventData);
}
public interface IPokeUpdatedHandler : IEventSystemHandler {
void OnPokeUpdated(TouchPointer touchPointer, SCPointEventData eventData);
}
//public interface IGestureJointTouchEnterHandler : IEventSystemHandler {
// void OnJointTouchEnter(InputDevice26DofGesturePart devicePart, SCPointEventData eventData);
//}
//public interface IGestureJointTouchExitHandler : IEventSystemHandler {
// void OnJointTouchExit(InputDevice26DofGesturePart devicePart, SCPointEventData eventData);
//}
//public interface IGestureHandPinchDownHandler : IEventSystemHandler {
// void OnHandPinchDown(InputDevice26DofGesturePart devicePart, SCPointEventData eventData);
//}
//public interface IGestureHandPinchUpHandler : IEventSystemHandler {
// void OnHandPinchUp(InputDevice26DofGesturePart devicePart, SCPointEventData eventData);
//}
}