예제 #1
0
        public LostTrackingReason GetTrackingLostReason()
        {
            LostTrackingReason lost_tracking_reason = LostTrackingReason.NONE;

            NativeApi.NRTrackingPoseGetTrackingReason(m_NativeInterface.TrackingHandle, headTrackingHandle, ref lost_tracking_reason);
            return(lost_tracking_reason);
        }
        private void CheckHMDPoseState()
        {
            if (!NRSessionManager.Instance.IsInitialized || !isInited)
            {
                return;
            }
            var currentReason = NRFrame.LostTrackingReason;

            if (m_LastReason == LostTrackingReason.NONE && currentReason != LostTrackingReason.NONE && isReady)
            {
                if (OnHMDLostTracking != null)
                {
                    OnHMDLostTracking.Invoke();
                }
            }
            if (m_LastReason != LostTrackingReason.NONE && currentReason == LostTrackingReason.NONE && !isReady)
            {
                if (OnHMDPoseReady != null)
                {
                    OnHMDPoseReady.Invoke();
                }
                isReady = true;
            }

            m_LastReason = currentReason;
        }
예제 #3
0
        public LostTrackingReason GetTrackingLostReason()
        {
            LostTrackingReason lost_tracking_reason = LostTrackingReason.NONE;
            var result = NativeApi.NRTrackingPoseGetTrackingReason(m_NativeInterface.TrackingHandle, headTrackingHandle, ref lost_tracking_reason);

            NativeErrorListener.Check(result, this, "GetTrackingLostReason");
            return(lost_tracking_reason);
        }
예제 #4
0
        private void Update()
        {
            if (SessionState == SessionState.Running)
            {
                m_LostTrackingReason = NativeAPI.NativeHeadTracking.GetTrackingLostReason();
            }

            NRFrame.OnUpdate();
        }
예제 #5
0
        public LostTrackingReason GetTrackingLostReason()
        {
            if (headTrackingHandle == 0)
            {
                return(LostTrackingReason.INITIALIZING);
            }
            LostTrackingReason lost_tracking_reason = LostTrackingReason.NONE;
            var result = NativeApi.NRTrackingPoseGetTrackingReason(m_NativeInterface.TrackingHandle, headTrackingHandle, ref lost_tracking_reason);

            if (result != NativeResult.TrackingNotRunning)
            {
                NativeErrorListener.Check(result, this, "GetTrackingLostReason");
            }
            return(lost_tracking_reason);
        }
예제 #6
0
        private void CheckHMDPoseState()
        {
            if (NRFrame.SessionStatus != SessionState.Running)
            {
                return;
            }
            var currentReason = NRFrame.LostTrackingReason;

            // When LostTrackingReason changed.
            if (currentReason != m_LastReason)
            {
                if (currentReason != LostTrackingReason.NONE)
                {
                    OnHMDLostTracking?.Invoke();
                }
                else if (currentReason == LostTrackingReason.NONE)
                {
                    OnHMDPoseReady?.Invoke();
                }
                m_LastReason = currentReason;
            }
        }
예제 #7
0
 public static extern NativeResult NRTrackingPoseGetTrackingReason(UInt64 tracking_handle,
                                                                   UInt64 tracking_pose_handle, ref LostTrackingReason out_tracking_reason);