using UnityEngine; using UnityEngine.EventSystems; namespace Rokid.UXR.Interaction { /// /// Triggered when the ray enters /// public interface IRayPointerEnter { void OnRayPointerEnter(); } /// /// Triggered when the ray exits /// public interface IRayPointerExit { void OnRayPointerExit(); } /// /// Triggered when mouse ray starts /// public interface IRayBeginDrag { void OnRayBeginDrag(PointerEventData eventData); } /// /// Triggered when the ray drag ends /// public interface IRayEndDrag { void OnRayEndDrag(); } /// /// Triggered when ray dragging /// public interface IRayDrag { void OnRayDrag(Vector3 delta); } /// /// Triggered when ray hovering /// public interface IRayPointerHover { void OnRayPointerHover(); } /// /// Triggered when ray click /// public interface IRayPointerClick { void OnRayPointerClick(); } public interface IBezierCurveDrag { /// /// Whether UI dragging with Pinch gesture is supported /// /// bool IsEnablePinchBezierCurve(); /// /// Whether to support dragging objects using Grip gestures /// /// bool IsEnableGripBezierCurve(); /// /// Whether it is currently in drag state /// /// bool IsInBezierCurveDragging(); /// /// Returns the world coordinates of the drag point /// /// Vector3 GetBezierCurveEndPoint(); /// /// Returns the world coordinates of the drag point /// /// Vector3 GetBezierCurveEndNormal(); } }