Example #1
0
        private void Update()
        {
            bool trackingQualityAvailable = false;

            if (ImmersalSDK.isHWAR)
            {
                                #if HWAR
                trackingQualityAvailable = HWARHelper.TryGetTrackingQuality(out m_SLAMTrackingQuality);
                                #endif
            }
            else
            {
                trackingQualityAvailable = ARHelper.TryGetTrackingQuality(out m_SLAMTrackingQuality);
            }

            if (trackingQualityAvailable && this.Localizer != null)
            {
                LocalizerStats stats = this.Localizer.stats;
                if (stats.localizationAttemptCount > 0)
                {
                    int q = CurrentResults(stats.localizationSuccessCount);
                    if (q > m_SLAMTrackingQuality)
                    {
                        q = m_SLAMTrackingQuality;
                    }

                    if (!m_HasPose && q > 1)
                    {
                        m_HasPose = true;
                        onPoseFound?.Invoke();
                    }

                    if (m_HasPose && q < 1 && m_SLAMTrackingQuality == 0)
                    {
                        m_HasPose = false;
                        onPoseLost?.Invoke();
                    }

                    this.TrackingQuality = q;
                }
            }

            if (!isHWAR)
            {
                if (!m_bCamConfigDone && cameraManager != null)
                {
                    ConfigureCamera();
                }
            }
        }