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