/// <summary> /// Initializes a new instance of the <see cref="EyeXEyePosition"/> class. /// </summary> /// <param name="leftEye">The eye position of the left eye, see <see cref="EyeXSingleEyePosition"/>.</param> /// <param name="leftEyeNormalized">The normalized eye position of the left eye, see <see cref="EyeXSingleEyePosition"/>.</param> /// <param name="rightEye">The eye position of the right eye, see <see cref="EyeXSingleEyePosition"/>.</param> /// <param name="rightEyeNormalized">The normalized eye position of the right eye, see <see cref="EyeXSingleEyePosition"/>.</param> /// <param name="timestamp">The timestamp of the eye position data.</param> public EyeXEyePosition(EyeXSingleEyePosition leftEye, EyeXSingleEyePosition leftEyeNormalized, EyeXSingleEyePosition rightEye, EyeXSingleEyePosition rightEyeNormalized, double timestamp) { LeftEye = leftEye; LeftEyeNormalized = leftEyeNormalized; RightEye = rightEye; RightEyeNormalized = rightEyeNormalized; Timestamp = timestamp; }
/// <summary> /// Initializes a new instance of the <see cref="EyeXEyePosition"/> class. /// </summary> /// <param name="leftEye">The eye position of the left eye, see <see cref="EyeXSingleEyePosition"/>.</param> /// <param name="leftEyeNormalized">The normalized eye position of the left eye, see <see cref="EyeXSingleEyePosition"/>.</param> /// <param name="rightEye">The eye position of the right eye, see <see cref="EyeXSingleEyePosition"/>.</param> /// <param name="rightEyeNormalized">The normalized eye position of the right eye, see <see cref="EyeXSingleEyePosition"/>.</param> /// <param name="timestamp">The timestamp of the eye position data.</param> public EyeXEyePosition(EyeXSingleEyePosition leftEye, EyeXSingleEyePosition leftEyeNormalized, EyeXSingleEyePosition rightEye, EyeXSingleEyePosition rightEyeNormalized, double timestamp) { LeftEye = leftEye; LeftEyeNormalized = leftEyeNormalized; RightEye = rightEye; RightEyeNormalized = rightEyeNormalized; Timestamp = timestamp; }
protected override void HandleEvent(IEnumerable <Behavior> eventBehaviors, Vector2 viewportPosition, Vector2 viewportPixelsPerDesktopPixel) { // Note that this method is called on a worker thread, so we MAY NOT access any game objects from here. // The data is stored in the Last property and used from the main thread. foreach (var behavior in eventBehaviors) { EyePositionDataEventParams eventParams; if (behavior.TryGetEyePositionDataEventParams(out eventParams)) { var left = new EyeXSingleEyePosition(eventParams.HasLeftEyePosition != EyeXBoolean.False, (float)eventParams.LeftEyeX, (float)eventParams.LeftEyeY, (float)eventParams.LeftEyeZ); var leftNormalized = new EyeXSingleEyePosition(eventParams.HasLeftEyePosition != EyeXBoolean.False, (float)eventParams.LeftEyeXNormalized, (float)eventParams.LeftEyeYNormalized, (float)eventParams.LeftEyeZNormalized); var right = new EyeXSingleEyePosition(eventParams.HasRightEyePosition != EyeXBoolean.False, (float)eventParams.RightEyeX, (float)eventParams.RightEyeY, (float)eventParams.RightEyeZ); var rightNormalized = new EyeXSingleEyePosition(eventParams.HasRightEyePosition != EyeXBoolean.False, (float)eventParams.RightEyeXNormalized, (float)eventParams.RightEyeYNormalized, (float)eventParams.RightEyeZNormalized); Last = new EyeXEyePosition(left, leftNormalized, right, rightNormalized, eventParams.Timestamp); } } }