// helper private bool IsBadCalibrationPlot(CalibrationPlotItem cpi, double threshold) { Vector2D vLeft = new Vector2D(cpi.MapLeftX, cpi.MapLeftY); Vector2D vRight = new Vector2D(cpi.MapRightX, cpi.MapRightY); Vector2D vTrue = new Vector2D(cpi.TrueX, cpi.TrueY); double lLeft = Math.Abs((vLeft - vTrue).Length); double lRight = Math.Abs((vRight - vTrue).Length); if (lLeft > threshold || lRight > threshold) { return(true); } else { return(false); } }
// remove bad samples from calib plot private Tobii.Eyetracking.Sdk.Calibration RemoveBadSamplesFromCalibrationPlot(Tobii.Eyetracking.Sdk.Calibration calibration) { int n = calibration.Plot.Count; List <CalibrationPlotItem> calibPlotList = new List <CalibrationPlotItem>(); try { for (int i = n; i > 1; i--) { CalibrationPlotItem cpi = calibration.Plot[i - 1]; if (IsBadCalibrationPlot(cpi, FCalibThreshold)) { calibration.Plot.Remove(cpi); } } } catch (Exception e) { } return(calibration); }