예제 #1
0
        public NativeResolution GetEyeResolution(NativeEye eye)
        {
            NativeResolution resolution = new NativeResolution(3840, 1080);

            NativeApi.NRHMDGetEyeResolution(m_HmdHandle, (int)eye, ref resolution);
            NRDebugger.LogFormat("[NativeHMD GetEyeResolution] eye:{0} resolution{1}:", eye, resolution.ToString());
            return(resolution);
        }
        public void UpdateConfig(NRSessionConfig config)
        {
            if (m_ConfigHandle == 0)
            {
                m_ConfigHandle = this.Create();
            }

            if (m_ConfigHandle == 0)
            {
                NRDebugger.LogError("Faild to Create ARSessionConfig!!!");
                return;
            }

            var plane_find_mode = this.GetPlaneFindMode(m_ConfigHandle);

            if (plane_find_mode != config.PlaneFindingMode)
            {
                SetPlaneFindMode(m_ConfigHandle, config.PlaneFindingMode);
            }

            if (config.ImageTrackingMode != m_ImageTrackingMode)
            {
                //Trackable Image
                switch (config.ImageTrackingMode)
                {
                case TrackableImageFindingMode.DISABLE:
                    if (m_DatabaseHandle != 0)
                    {
                        m_NativeTrackableImage.DestroyDataBase(m_DatabaseHandle);
                        m_DatabaseHandle = 0;
                    }
                    var result = SetTrackableImageDataBase(m_ConfigHandle, 0);
                    NRDebugger.Log("[Disable trackable image] result : " + result);
                    break;

                case TrackableImageFindingMode.ENABLE:
                    if (config.TrackingImageDatabase != null)
                    {
                        m_DatabaseHandle = m_NativeTrackableImage.CreateDataBase();
                        result           = m_NativeTrackableImage.LoadDataBase(m_DatabaseHandle, config.TrackingImageDatabase.TrackingImageDataPath);
                        NRDebugger.LogFormat("[LoadDataBase] path:{0} result:{1} ", config.TrackingImageDatabase.TrackingImageDataPath, result);
                        result = SetTrackableImageDataBase(m_ConfigHandle, m_DatabaseHandle);
                        NRDebugger.Log("[SetTrackableImageDataBase] result : " + result);
                    }
                    else
                    {
                        result = SetTrackableImageDataBase(m_ConfigHandle, 0);
                        NRDebugger.Log("[Disable trackable image] result : " + result);
                    }
                    break;

                default:
                    break;
                }

                m_ImageTrackingMode = config.ImageTrackingMode;
            }
        }
예제 #3
0
 private void OnApplicationPause(bool pause)
 {
     NRDebugger.LogFormat("[SessionBehaviour OnApplicationPause: {0}]", pause);
     if (isDirty)
     {
         return;
     }
     if (pause)
     {
         NRSessionManager.Instance.DisableSession();
     }
     else
     {
         NRSessionManager.Instance.ResumeSession();
     }
 }
예제 #4
0
        private Task UpdateImageTrackingConfig(NRSessionConfig config)
        {
            return(Task.Run(() =>
            {
                switch (config.ImageTrackingMode)
                {
                case TrackableImageFindingMode.DISABLE:
                    var result = SetTrackableImageDataBase(m_ConfigHandle, 0);
                    if (result)
                    {
                        m_TrackableImageDatabaseDict.Clear();
                    }
                    NRDebugger.Log("[NativeConfigration] Disable trackable image result : " + result);
                    break;

                case TrackableImageFindingMode.ENABLE:
                    if (config.TrackingImageDatabase == null)
                    {
                        return;
                    }

                    if (!m_TrackableImageDatabaseDict.TryGetValue(config.TrackingImageDatabase.GUID, out m_DatabaseHandle))
                    {
                        DeployData(config.TrackingImageDatabase);
                        m_DatabaseHandle = m_NativeTrackableImage.CreateDataBase();
                        m_TrackableImageDatabaseDict.Add(config.TrackingImageDatabase.GUID, m_DatabaseHandle);
                    }
                    result = m_NativeTrackableImage.LoadDataBase(m_DatabaseHandle, config.TrackingImageDatabase.TrackingImageDataPath);
                    NRDebugger.LogFormat("[NativeConfigration] LoadDataBase path:{0} result:{1} ", config.TrackingImageDatabase.TrackingImageDataPath, result);
                    result = SetTrackableImageDataBase(m_ConfigHandle, m_DatabaseHandle);
                    NRDebugger.Log("[NativeConfigration] SetTrackableImageDataBase result : " + result);
                    break;

                default:
                    break;
                }
            }));
        }