public static void GetGeospatialPose(
            IntPtr sessionHandle, IntPtr geospatialPoseHandle, ref GeospatialPose pose)
        {
#if !UNITY_IOS || GEOSPATIAL_IOS_SUPPORT
            ExternApi.ArGeospatialPose_getLatitudeLongitude(
                sessionHandle, geospatialPoseHandle, ref pose.Latitude, ref pose.Longitude);
            ExternApi.ArGeospatialPose_getAltitude(
                sessionHandle, geospatialPoseHandle, ref pose.Altitude);
            ExternApi.ArGeospatialPose_getHeading(sessionHandle, geospatialPoseHandle,
                                                  ref pose.Heading);
            ExternApi.ArGeospatialPose_getHeadingAccuracy(
                sessionHandle, geospatialPoseHandle, ref pose.HeadingAccuracy);
            ExternApi.ArGeospatialPose_getHorizontalAccuracy(
                sessionHandle, geospatialPoseHandle, ref pose.HorizontalAccuracy);
            ExternApi.ArGeospatialPose_getVerticalAccuracy(
                sessionHandle, geospatialPoseHandle, ref pose.VerticalAccuracy);
#endif
        }
Exemple #2
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
        }