Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        public void Tick()
        {
            _streamEngineTracker.Tick();
            _hmdToWorldTransformer.Tick();

            var data = _streamEngineTracker.LocalLatestData;

            _eyeTrackingData.Timestamp                  = Time.unscaledTime;
            _eyeTrackingData.GazeRay                    = data.GazeRay;
            _eyeTrackingData.IsLeftEyeBlinking          = data.IsLeftEyeBlinking;
            _eyeTrackingData.IsRightEyeBlinking         = data.IsRightEyeBlinking;
            _eyeTrackingData.ConvergenceDistance        = data.ConvergenceDistance;
            _eyeTrackingData.ConvergenceDistanceIsValid = data.ConvergenceDistanceIsValid;

            var matrix = _hmdToWorldTransformer.GetTransformMatrixFrom(4);

            EyeTrackingDataHelper.TransformGazeData(_eyeTrackingData, matrix);
        }
        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();
                }
            }
        }
Ejemplo n.º 4
0
 public void Tick()
 {
     _streamEngineTracker.Tick();
     _hmdToWorldTransformer.Tick();
     _localToWorldMatrix = _hmdToWorldTransformer.GetLocalToWorldMatrix();
 }