using MainShell.Common;
using MainShell.Vision;
using MwFramework.Device;
using System.Windows;

namespace MainShell.Process
{
    public interface IWaferMachineAdapter
    {
        CameraType GetCameraSource(WaferDiePositionContext context);

        MwCamera GetCamera(WaferDiePositionContext context);

        Point GetCameraFieldOfView(WaferDiePositionContext context);

        double GetExposureTimeMilliseconds(WaferDiePositionContext context);

        CameraCaptureOptions CreateSoftTriggerCaptureOptions(WaferDiePositionContext context);

        Point AdjustPointWithinSoftLimit(Point candidatePoint, WaferDiePositionContext context, double offsetMm, out bool adjusted, out string reason);
    }
}