public Point GetNextPoint(Point warpPoint)
 {
     System.Drawing.Rectangle screenSize = ScreenPixelHelper.GetScreenSize();
     trans = this.getTranslation();
     if (trans != null)
     {
         warpPoint.Offset((int)(trans.x * sensitivity), (int)(trans.y * sensitivity));
     }
     return(warpPoint);
 }
Exemplo n.º 2
0
        public Point calculateSmoothedPoint()
        {
            //if current point is more than some percentage the screen away, then set to new warp point
            //and refresh tracking
            if (largeSaccadeDetected(ScreenPixelHelper.ConvertMmToPixels(Properties.Settings.Default.largeSaccadeThresholdMm)))
            {
                warpPoint = samples[sampleIndex];
                RefreshTracking();
                //Fill rest of array with the same item
                for (int i = 0; i < samples.Length; i++)
                {
                    samples[i] = warpPoint;
                }
            }

            return(calculateTrimmedMean());
        }
Exemplo n.º 3
0
        //screenPercent is between 0 and 100
        public bool largeSaccadeDetected(double screenPercent)
        {
            Point currentPoint = samples[sampleIndex];

            //get screen percent in terms of pixels
            System.Drawing.Rectangle screenSize = ScreenPixelHelper.GetScreenSize();
            //find hypotenuse of distance in pixels for screenpercentage
            double pixelsThreshold = Math.Sqrt(Math.Pow(screenSize.Width, 2) + Math.Pow(screenSize.Height, 2)) * screenPercent / 100;

            Point  saccadeDiff       = new Point(Math.Abs(currentPoint.X - GetWarpPoint().X), Math.Abs(currentPoint.Y - GetWarpPoint().Y));
            double saccadeDiffPixels = Math.Sqrt(Math.Pow(saccadeDiff.X, 2) + Math.Pow(saccadeDiff.Y, 2));

            if (saccadeDiffPixels > pixelsThreshold)
            {
                return(true);
            }

            return(false);
        }