// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using Microsoft.MixedReality.Toolkit.Utilities;
using UnityEngine;
namespace Microsoft.MixedReality.Toolkit.Input
{
///
/// Interface defining a hand ray, which is used by far pointers to direct interactions.
/// Implementations of this class are managed and updated by a BaseHand implementation.
///
public interface IHandRay
{
///
/// Ray used by input system for Far Pointers.
///
Ray Ray { get; }
///
/// Check whether hand palm is angled in a way that hand rays should be used.
///
bool ShouldShowRay { get; }
///
/// Update data used by hand implementation, to compute next HandRay.
///
/// Position of hand
/// Palm normal
/// Transform of CameraCache.main
/// Handedness of related hand
void Update(Vector3 handPosition, Vector3 palmNormal, Transform headTransform, Handedness sourceHandedness);
}
}