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();
}
}