/// <summary> /// Initializes a new instance of the <see cref="EyePositionEventArgs"/> class. /// </summary> /// <param name="leftEye">Position of the left eye.</param> /// <param name="leftEyeNormalized">Normalized position of the left eye.</param> /// <param name="rightEye">Position of the right eye.</param> /// <param name="rightEyeNormalized">Normalized position of the right eye.</param> /// <param name="timestamp">The point in time when the data point was captured. Milliseconds.</param> public EyePositionEventArgs(EyePosition leftEye, EyePosition leftEyeNormalized, EyePosition rightEye, EyePosition rightEyeNormalized, double timestamp) { LeftEye = leftEye; LeftEyeNormalized = leftEyeNormalized; RightEye = rightEye; RightEyeNormalized = rightEyeNormalized; Timestamp = timestamp; }
/// <summary> /// Extracts data points from an event from the EyeX Engine. /// </summary> /// <param name="behaviors">The <see cref="Behavior"/> instances containing the event data.</param> /// <returns>The collection of data points.</returns> protected override IEnumerable <EyePositionEventArgs> ExtractDataPoints(IEnumerable <Behavior> behaviors) { foreach (var behavior in behaviors .Where(behavior => behavior.BehaviorType == BehaviorType.EyePositionData)) { EyePositionDataEventParams parameters; if (behavior.TryGetEyePositionDataEventParams(out parameters)) { var left = new EyePosition(parameters.HasLeftEyePosition != EyeXBoolean.False, parameters.LeftEyeX, parameters.LeftEyeY, parameters.LeftEyeZ); var leftNormalized = new EyePosition(parameters.HasLeftEyePosition != EyeXBoolean.False, parameters.LeftEyeXNormalized, parameters.LeftEyeYNormalized, parameters.LeftEyeZNormalized); var right = new EyePosition(parameters.HasRightEyePosition != EyeXBoolean.False, parameters.RightEyeX, parameters.RightEyeY, parameters.RightEyeZ); var rightNormalized = new EyePosition(parameters.HasRightEyePosition != EyeXBoolean.False, parameters.RightEyeXNormalized, parameters.RightEyeYNormalized, parameters.RightEyeZNormalized); yield return(new EyePositionEventArgs(left, leftNormalized, right, rightNormalized, parameters.Timestamp)); } } }