namespace Rokid.UXR.Interaction {
using UnityEngine;
public interface ISelectSurface
{
///
/// A transform for the surface
///
Transform Transform { get; }
///
/// Raycast to the surface with an optional maximum distance value
///
/// The ray to cast
/// The returned hit data
/// If greater than zero, maximum distance of raycast
/// true if surface was hit
bool Raycast(in Ray ray, out SurfaceHit hit, float maxDistance = 0);
///
/// Find nearest point to surface
///
/// Point to check
/// The returned hit data
/// If greater than zero, maximum distance of check
/// true if nearest point was found
bool ClosestSurfacePoint(in Vector3 point, out SurfaceHit hit, float maxDistance = 0);
}
}