コード例 #1
0
        private void OnAdvancedWearableData(ref tobii_wearable_advanced_data_t data)
        {
            lock (_lockAdvancedData)
            {
                var advancedData = _advancedInternalQueue.Count >= AdvancedDataQueueSize
                    ? _advancedInternalQueue.Dequeue()
                    : new TobiiXR_AdvancedEyeTrackingData();

                StreamEngineDataMapper.MapAdvancedData(advancedData, ref data,
                                                       _streamEngineTracker.ConvergenceDistanceSupported, _headToCenterEyeTranslation);
                _advancedInternalQueue.Enqueue(advancedData);
            }

            // Also fill in consumer api
            lock (_lockEyeTrackingDataLocal)
            {
                StreamEngineDataMapper.FromAdvancedData(_eyeTrackingDataLocalInternal, ref data,
                                                        _streamEngineTracker.ConvergenceDistanceSupported, _headToCenterEyeTranslation);
            }

            lock (_lockPositionGuideData)
            {
                StreamEngineDataMapper.FillPositionGuideData(ref _positionGuideData, ref data);
            }
        }
コード例 #2
0
        private void OnAdvancedWearableData(ref tobii_wearable_advanced_data_t data)
        {
            var advancedData = _advancedData.Count >= AdvancedDataQueueSize
                ? _advancedData.Dequeue()
                : new TobiiXR_AdvancedEyeTrackingData();

            StreamEngineDataMapper.MapAdvancedData(advancedData, ref data,
                                                   _streamEngineTracker.ConvergenceDistanceSupported, CoordinatesHelper.GetHeadToCenterEyeTranslation());
            _advancedData.Enqueue(advancedData);

            // Keep a copy of latest received value
            EyeTrackingDataHelper.Copy(advancedData, _advancedEyeTrackingData);

            // Also fill in consumer api
            StreamEngineDataMapper.FromAdvancedData(_eyeTrackingDataLocal, ref data,
                                                    _streamEngineTracker.ConvergenceDistanceSupported, CoordinatesHelper.GetHeadToCenterEyeTranslation());
            _eyeTrackingDataLocal.Timestamp = Time.unscaledTime;
        }