internal static GazeData ToGazeData(this Tobii.Research.GazeDataEventArgs gazeDataItem) { var validity = GetEyeValidity(gazeDataItem.LeftEye.GazePoint.Validity, gazeDataItem.RightEye.GazePoint.Validity); var gaze = new GazeData ( validity, new EyeGazeData ( validity.GetLeftEyeValidity(), gazeDataItem.LeftEye.GazePoint.PositionOnDisplayArea.ToPoint2(), gazeDataItem.LeftEye.GazePoint.PositionInUserCoordinates.ToPoint3(), gazeDataItem.LeftEye.GazeOrigin.PositionInUserCoordinates.ToPoint3(), gazeDataItem.LeftEye.GazeOrigin.PositionInTrackBoxCoordinates.ToPoint3(), gazeDataItem.LeftEye.Pupil.PupilDiameter ), new EyeGazeData ( validity.GetRightEyeValidity(), gazeDataItem.RightEye.GazePoint.PositionOnDisplayArea.ToPoint2(), gazeDataItem.RightEye.GazePoint.PositionInUserCoordinates.ToPoint3(), gazeDataItem.RightEye.GazeOrigin.PositionInUserCoordinates.ToPoint3(), gazeDataItem.RightEye.GazeOrigin.PositionInTrackBoxCoordinates.ToPoint3(), gazeDataItem.RightEye.Pupil.PupilDiameter ), gazeDataItem.DeviceTimeStamp, DateTime.Now // TODO derive timestamp from Tobii timestamp ); return(gaze); }
private void Tracker_GazeDataReceived(object sender, Tobii.Research.GazeDataEventArgs e) { try { GazeDataReceived?.Invoke(this, e.ToGazeData()); } catch (Exception exception) { Debug.WriteLine("Something bad happened when data came from Tobii device"); Debug.WriteLine(exception.ToString()); } }