Ejemplo n.º 1
0
        // 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);
            }
        }
Ejemplo n.º 2
0
        // 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);
        }