Пример #1
0
        public static TrackingState GetEarthTrackingState(IntPtr sessionHandle)
        {
            var trackingState = ApiTrackingState.Stopped;

#if !UNITY_IOS || GEOSPATIAL_IOS_SUPPORT
            IntPtr earthHandle = SessionApi.AcquireEarth(sessionHandle);
            if (earthHandle == IntPtr.Zero)
            {
                return(trackingState.ToTrackingState());
            }

            ExternApi.ArTrackable_getTrackingState(sessionHandle, earthHandle, ref trackingState);
            ExternApi.ArTrackable_release(earthHandle);
#endif
            return(trackingState.ToTrackingState());
        }
Пример #2
0
        public static EarthState GetEarthState(IntPtr sessionHandle)
        {
            var earthState = EarthState.ErrorInternal;

#if !UNITY_IOS || GEOSPATIAL_IOS_SUPPORT
            IntPtr earthHandle = SessionApi.AcquireEarth(sessionHandle);
            if (earthHandle == IntPtr.Zero)
            {
                return(earthState);
            }

            ExternApi.ArEarth_getEarthState(sessionHandle, earthHandle, ref earthState);
            ExternApi.ArTrackable_release(earthHandle);
#endif
            return(earthState);
        }
Пример #3
0
        public static void TryGetCameraGeospatialPose(
            IntPtr sessionHandle, ref GeospatialPose geospatialPose)
        {
#if !UNITY_IOS || GEOSPATIAL_IOS_SUPPORT
            IntPtr earthHandle = SessionApi.AcquireEarth(sessionHandle);
            if (earthHandle == IntPtr.Zero)
            {
                return;
            }

            IntPtr geospatialPoseHandle = GeospatialPoseApi.Create(sessionHandle);
            ExternApi.ArEarth_getCameraGeospatialPose(sessionHandle, earthHandle,
                                                      geospatialPoseHandle);
            GeospatialPoseApi.GetGeospatialPose(
                sessionHandle, geospatialPoseHandle, ref geospatialPose);
            GeospatialPoseApi.Destroy(geospatialPoseHandle);
            ExternApi.ArTrackable_release(earthHandle);
#endif
        }