public void Tick() { _streamEngineTracker.Tick(); _hmdToWorldTransformer.Tick(); var data = _streamEngineTracker.LocalLatestData; _eyeTrackingDataLocal.Timestamp = Time.unscaledTime; _eyeTrackingDataLocal.GazeRay = data.GazeRay; _eyeTrackingDataLocal.IsLeftEyeBlinking = data.IsLeftEyeBlinking; _eyeTrackingDataLocal.IsRightEyeBlinking = data.IsRightEyeBlinking; _eyeTrackingDataLocal.ConvergenceDistance = data.ConvergenceDistance; _eyeTrackingDataLocal.ConvergenceDistanceIsValid = data.ConvergenceDistanceIsValid; _localToWorldMatrix = _hmdToWorldTransformer.GetLocalToWorldMatrix(); }
public void Tick() { _headToCenterEyeTranslation = CoordinatesHelper.GetHeadToCenterEyeTranslation(); _hmdToWorldTransformer.Tick(); _localToWorldMatrix = _hmdToWorldTransformer.GetLocalToWorldMatrix(); // Copy consumer data lock (_lockEyeTrackingDataLocal) { EyeTrackingDataHelper.Copy(_eyeTrackingDataLocalInternal, _eyeTrackingDataLocal); } _eyeTrackingDataLocal.Timestamp = Time.unscaledTime; // Shuffle data from internal queue to public queue lock (_lockAdvancedData) { while (_advancedInternalQueue.Count > 1) { _advancedPublicQueue.Enqueue(_advancedInternalQueue.Dequeue()); } // Copy newest data to _advancedEyeTrackingData if (_advancedInternalQueue.Count == 1) { var data = _advancedInternalQueue.Dequeue(); EyeTrackingDataHelper.Copy(data, _advancedEyeTrackingData); _advancedPublicQueue.Enqueue(data); } // Limit size of public queue while (_advancedPublicQueue.Count > AdvancedDataQueueSize) { _advancedPublicQueue.Dequeue(); } } }
public void Tick() { _streamEngineTracker.Tick(); _hmdToWorldTransformer.Tick(); _localToWorldMatrix = _hmdToWorldTransformer.GetLocalToWorldMatrix(); }