Exemplo n.º 1
0
        public static void MapAdvancedData(TobiiXR_AdvancedEyeTrackingData to,
                                           ref tobii_wearable_advanced_data_t data, bool convergenceDistanceSupported, Vector3 headToCenterEyeTranslation)
        {
            to.SystemTimestamp = data.timestamp_system_us;
            to.DeviceTimestamp = data.timestamp_tracker_us;

            FillGazeRayFrom(ref to.Left.GazeRay, data.left.gaze_origin_validity, data.left.gaze_origin_mm_xyz, data.left.gaze_direction_validity, data.left.gaze_direction_normalized_xyz, headToCenterEyeTranslation);
            FillGazeRayFrom(ref to.Right.GazeRay, data.right.gaze_origin_validity, data.right.gaze_origin_mm_xyz, data.right.gaze_direction_validity, data.right.gaze_direction_normalized_xyz, headToCenterEyeTranslation);
            FillGazeRayFrom(ref to.GazeRay, data.gaze_origin_combined_validity, data.gaze_origin_combined_mm_xyz, data.gaze_direction_combined_validity, data.gaze_direction_combined_normalized_xyz, headToCenterEyeTranslation);

            if (convergenceDistanceSupported)
            {
                to.ConvergenceDistance        = data.convergence_distance_mm / 1000f;
                to.ConvergenceDistanceIsValid = BoolFromValidity(data.convergence_distance_validity);
            }

            to.Left.IsBlinking = data.left.blink == tobii_state_bool_t.TOBII_STATE_BOOL_TRUE ||
                                 !BoolFromValidity(data.left.blink_validity);
            to.Right.IsBlinking = data.right.blink == tobii_state_bool_t.TOBII_STATE_BOOL_TRUE ||
                                  !BoolFromValidity(data.right.blink_validity);

            to.Left.PupilDiameterValid  = BoolFromValidity(data.left.pupil_diameter_validity);
            to.Left.PupilDiameter       = data.left.pupil_diameter_mm;
            to.Right.PupilDiameterValid = BoolFromValidity(data.right.pupil_diameter_validity);
            to.Right.PupilDiameter      = data.right.pupil_diameter_mm;

            to.Left.PositionGuideValid  = BoolFromValidity(data.left.position_guide_validity);
            to.Left.PositionGuide.x     = data.left.position_guide_xy.x;
            to.Left.PositionGuide.y     = data.left.position_guide_xy.y;
            to.Right.PositionGuideValid = BoolFromValidity(data.right.position_guide_validity);
            to.Right.PositionGuide.y    = data.right.position_guide_xy.y;
            to.Right.PositionGuide.x    = data.right.position_guide_xy.x;
        }
 public static void Copy(TobiiXR_AdvancedEyeTrackingData src, TobiiXR_AdvancedEyeTrackingData dest)
 {
     dest.SystemTimestamp            = src.SystemTimestamp;
     dest.DeviceTimestamp            = src.DeviceTimestamp;
     dest.GazeRay                    = src.GazeRay;
     dest.ConvergenceDistance        = src.ConvergenceDistance;
     dest.ConvergenceDistanceIsValid = src.ConvergenceDistanceIsValid;
     dest.Left  = src.Left;
     dest.Right = src.Right;
 }