internal static void HMDWriteEyeData(this XmlWriter file, HMDEyeData eye, string name) { file.WriteStartElement(name); file.Write3D(eye.GazeDirection.UnitVector, "GazeDirection", "UnitVector", eye.GazeDirection.Validity); file.Write3D(eye.GazeOrigin.PositionInHMDCoordinates, "GazeOrigin", "PositionInHMDCoordinates", eye.GazeOrigin.Validity); file.WriteFloat(eye.Pupil.PupilDiameter, "Pupil", "PupilDiameter", eye.Pupil.Validity); file.Write2D(eye.PupilPosition.PositionInTrackingArea, "PupilPosition", "PositionInTrackingArea", eye.PupilPosition.Validity); file.WriteEndElement(); }
internal GazeDataEye(HMDEyeData eye, Transform eyeTrackerOrigin) { GazeDirection = eye.GazeDirection.UnitVector.InUnityCoord(); GazeDirectionValid = eye.GazeDirection.Validity.Valid(); GazeOrigin = eye.GazeOrigin.PositionInHMDCoordinates.InUnityCoord(); GazeOriginValid = eye.GazeOrigin.Validity.Valid(); PupilDiameter = eye.Pupil.PupilDiameter / 1000f; PupilDiameterValid = eye.Pupil.Validity.Valid(); GazeRayWorld = new Ray(eyeTrackerOrigin.TransformPoint(GazeOrigin), eyeTrackerOrigin.TransformDirection(GazeDirection)); GazeRayWorldValid = GazeDirectionValid && GazeOriginValid; }