void tracker_GazeDataReceived(object sender, GazeEventArgs e) { TranslateTransform transform = (TranslateTransform)CrossHair.RenderTransform; transform.X = e.GazePoint.X - gazeRadius; transform.Y = e.GazePoint.Y - gazeRadius; //if (knotPoints.Count < 2) // return; if (e.GazePoint.X < 0 || e.GazePoint.X > 1920 || e.GazePoint.Y < 0 || e.GazePoint.Y > 1080) { LogEvent.Engine.Write(string.Format("Rejected GP({0:f2},{1:f2} -> Outside screen bounds", e.GazePoint.X, e.GazePoint.Y)); return; } if (knotPoints.Count < 2) { TrackerEvent.Gaze.Log(Test.BezierIndex, e.GazePoint.X, e.GazePoint.Y, e.LeftValid, e.RightValid, "GazeNotEngaged"); return; } else TrackerEvent.Gaze.Log(Test.BezierIndex, e.GazePoint.X, e.GazePoint.Y, e.LeftValid, e.RightValid, "GazeEngaged"); //int eyeIndex = GetEyeIndex(knotPoints.Values); //int[] condition = conditions[Test.BezierIndex % conditions.Count]; //int cpIndex = condition[1]; //int[] cpCondition = cpConditions[cpIndex]; //int eyeIndex = cpCondition.ToList().IndexOf(1); Point newLocation = new Point(e.GazePoint.X, e.GazePoint.Y); LogEvent.Engine.Write(string.Format("GP({0:f2},{1:f2}", e.GazePoint.X, e.GazePoint.Y)); userDots[eyeIndex - 1].Center = newLocation; UserCurve.SetPoint(newLocation, eyeIndex); }
void tracker_GazeDataReceived(object sender, GazeEventArgs e) { crosshair.Position = e.GazePoint; string gazeEvent; if (!gazeOn || yLock || completed) return; if (arrows.Count < 2) return; if (eyeArrow == null) { IRenderable tempArrow= sWidget.FindIntersection2D(e.GazePoint); if (tempArrow == null) { // Session Id, gpX, gpY, valL, valR, GazeOn gazeEvent = "GazeScreen"; } else { Arrow gazeArrow = (Arrow)tempArrow; if (gazeArrow.Snapped) { return; } if (!gazeArrow.IsTouched) { gazeEvent = "GazeDwelling" + gazeArrow.Name; TrackerEvent.ArrowDwell.Log(gazeArrow.Name); sWidget.Select(gazeArrow.Name, Color.Orange); gazeArrow.IsDwelling = true; dwellStart = DateTime.Now; eyeArrow = gazeArrow; } else gazeEvent = "GazeDwellSelected" + gazeArrow.Name; } } else { TimeSpan delta = DateTime.Now.Subtract(dwellStart); IRenderable dwellCheckArrow = sWidget.FindIntersection2D(e.GazePoint); Arrow tempArrow = ((Arrow)dwellCheckArrow); if (delta.TotalMilliseconds < dwellInterval) { gazeEvent = "GazeDwelling" + ((dwellCheckArrow == null) ? "Screen" : dwellCheckArrow.Name); } else if (tempArrow == eyeArrow && !tempArrow.IsTouched) { gazeEvent = "GazeMove" + eyeArrow.Name; if (!tempArrow.Snapped) { sWidget.SetColor(tempArrow, Color.Red); EyeMoveArrow(e.GazePoint); if (!tempArrow.GazeLock) { TrackerEvent.ArrowMoveStart.Log(tempArrow.Name); tempArrow.GazeLock = true; gazeLock = true; } } else sWidget.SetColor(tempArrow, Color.Green); } else { //sWidget.ResetColors(); gazeEvent = "GazeLost"; DisableArrow(eyeArrow); eyeArrow = null; } } prevEyeLocation = e.GazePoint; TrackerEvent.Gaze.Log(Test.BoxIndex % BoxRenderer.ConditionsCount, e.GazePoint.X, e.GazePoint.Y, e.LeftValid, e.RightValid, gazeEvent); }
void tracker_GazeDataReceived(object sender, GazeEventArgs e) { TranslateTransform transform = (TranslateTransform)CrossHair.RenderTransform; transform.X = e.GazePoint.X - gazeRadius; transform.Y = e.GazePoint.Y - gazeRadius; //if (knotPoints.Count < 2) // return; if (e.GazePoint.X < 0 || e.GazePoint.X > 1920 || e.GazePoint.Y < 0 || e.GazePoint.Y > 1080) { LogEvent.Engine.Write(string.Format("Rejected GP({0:f2},{1:f2} -> Outside screen bounds", e.GazePoint.X, e.GazePoint.Y)); return; } if (knotPoints.Count < 2) return; int eyeIndex = GetEyeIndex(knotPoints.Values); Point newLocation = new Point(e.GazePoint.X, e.GazePoint.Y); Vector delta = Point.Subtract(newLocation, prevEyeLocation); if (delta.LengthSquared < 16 * 16) { prevEyeLocation = newLocation; //LogEvent.Engine.Write(string.Format("Rejected GP({0:f2},{1:f2} -> Too close", e.GazePoint.X, e.GazePoint.Y)); return; } prevEyeLocation = newLocation; LogEvent.Engine.Write(string.Format("GP({0:f2},{1:f2}", e.GazePoint.X, e.GazePoint.Y)); dots[eyeIndex - 1].Center = newLocation; UserCurve.Points[eyeIndex] = newLocation; }
void tracker_GazeDataReceived(object sender, GazeEventArgs e) { TranslateTransform transform = (TranslateTransform)CrossHair.RenderTransform; transform.X = e.GazePoint.X - gazeRadius; transform.Y = e.GazePoint.Y - gazeRadius; lastGaze = new Point(transform.X, transform.Y); //if (knotPoints.Count < 2) // return; if (e.GazePoint.X < 0 || e.GazePoint.X > 1920 || e.GazePoint.Y < 0 || e.GazePoint.Y > 1080) { return; } if (!gazeOn) return; if (touchPoints.Count < 2) { TrackerEvent.Gaze.Log(Test.SelectionIndex % conditions.Count, e.GazePoint.X, e.GazePoint.Y, e.LeftValid, e.RightValid, "GazeNotEngaged"); return; } else TrackerEvent.Gaze.Log(Test.SelectionIndex % conditions.Count, e.GazePoint.X, e.GazePoint.Y, e.LeftValid, e.RightValid, "GazeEngaged"); Point gazeLocation = new Point(e.GazePoint.X, e.GazePoint.Y); bool result = false; foreach (IDot d in targets) { Point[] pointArray = touchPoints.Values.ToArray(); bool intersect1= d.IntersectsWith(pointArray[0]); bool intersect2= d.IntersectsWith(pointArray[1]); bool intersect3= d.IntersectsWith(gazeLocation); result = intersect1 || intersect2 || intersect3; if (!result) return; } Indicator.Fill = Brushes.Green; CompleteSession(); }
protected void OnGazeDataReceived(object sender, GazeEventArgs e) { if (GazeDataReceived != null) GazeDataReceived(sender, e); }
void tracker_GazeDataReceived(object sender, GazeEventArgs e) { TranslateTransform transform = (TranslateTransform)CrossHair.RenderTransform; transform.X = e.GazePoint.X - gazeRadius; transform.Y = e.GazePoint.Y - gazeRadius; bool leftValid = e.LeftValid == 0; bool rightValid = e.RightValid == 0; if (leftValid && rightValid) eyeBrush = Brushes.Green; else if (leftValid && !rightValid) eyeBrush = Brushes.Yellow; else if (rightValid && !leftValid) eyeBrush = Brushes.Orange; else { eyeBrush = Brushes.Red; //return; } if (!gazeOnly) return; HitTestResult result = VisualTreeHelper.HitTest(Canvas, new Point(e.GazePoint.X, e.GazePoint.Y)); if (result != null) return; Ellipse gazePoint = new Ellipse() { Width = gazeRadius, Height = gazeRadius, Fill = eyeBrush }; lastGazePoint = new Point(e.GazePoint.X, e.GazePoint.Y); TrackerEvent.Gaze.Log(sessionId,e.GazePoint.X, e.GazePoint.Y, e.LeftValid, e.RightValid); gazePoint.RenderTransform = new TranslateTransform(transform.X, transform.Y); Canvas.Children.Add(gazePoint); }