using MainShell.Models;
using System.Threading;
using System.Threading.Tasks;

namespace MainShell.Vision
{
    /// <summary>
    /// 抓圆服务接口
    /// </summary>
    public interface IFindEdgeCircleService
    {
        /// <summary>
        /// 采集图像并执行抓圆
        /// </summary>
        Task<VisionProcessResult<FindEdgeCircleResult>> ProcessAsync(
            FindEdgeCircleRequest request,
            CancellationToken cancellationToken = default(CancellationToken));

        /// <summary>
        /// 基于已有图像直接执行抓圆
        /// </summary>
        Task<VisionProcessResult<FindEdgeCircleResult>> ProcessImageAsync(
            MxImage image,
            FindEdgeCircleImageRequest request,
            CancellationToken cancellationToken = default(CancellationToken));
    }
}
