ARCore is back at Google I/O on May 10! Register now.
Stay organized with collections Save and categorize content based on your preferences.

GARSession(CloudAnchors)

Category adding Cloud Anchor functionality to GARSession.

Summary

Public methods

estimateFeatureMapQualityForHosting:error:
Estimates the quality of the visual features seen by ARCore in the preceding few seconds and visible from the provided camera transform.
hostCloudAnchor:TTLDays:error:
nullable GARAnchor *
This will create a new Cloud Anchor with a given lifetime in days, using the transform of the provided anchor.
hostCloudAnchor:error:
nullable GARAnchor *
Hosts a new Cloud Anchor based on an ARAnchor.
resolveCloudAnchorWithIdentifier:error:
nullable GARAnchor *
Resolves a Cloud Anchor with a given identifier.

Public methods

estimateFeatureMapQualityForHosting:error:

- (GARFeatureMapQuality)estimateFeatureMapQualityForHosting:
(simd_float4x4) transform
error:
(NSError **) error

Estimates the quality of the visual features seen by ARCore in the preceding few seconds and visible from the provided camera transform.

Cloud Anchors hosted using higher quality features will generally result in easier and more accurately resolved Cloud Anchor transforms.

Details
Parameters
transform
The camera transform to use in estimating the quality.
error
Out parameter for an NSError. Possible errors:
Returns
The estimated quality of the visual features seen by ARCore in the preceding few seconds and visible from the provided camera transform.
Extends class GARSession.

hostCloudAnchor:TTLDays:error:

- (nullable GARAnchor *)hostCloudAnchor:
(ARAnchor *) anchor
TTLDays:
(NSInteger) TTLDays
error:
(NSError **) error

This will create a new Cloud Anchor with a given lifetime in days, using the transform of the provided anchor.

The cloud state of the returned anchor will be set to GARCloudAnchorStateTaskInProgress and the initial transform will be set to the transform of the provided anchor. However, the returned anchor is completely independent of the original anchor, and the two transforms might diverge over time.

Hosting requires an active session for which the tracking state is ARTrackingStateNormal, as well as a working internet connection. ARCore will continue to retry silently in the background if it is unable to establish a connection to the ARCore API service.

Details
Parameters
anchor
The ARAnchor with the desired transform to be used to create a hosted Cloud Anchor.
TTLDays
The lifetime of the anchor in days. Must be positive. The maximum allowed value is 1 if using an API Key to authenticate with the ARCore API service, otherwise the maximum allowed value is 365.
error
Out parameter for an NSError. Possible errors:
Returns
The new GARAnchor, or nil if there is an error.
Extends class GARSession.

hostCloudAnchor:error:

- (nullable GARAnchor *)hostCloudAnchor:
(ARAnchor *) anchor
error:
(NSError **) error

Hosts a new Cloud Anchor based on an ARAnchor.

The new anchor will have a cloud state of GARCloudAnchorStateTaskInProgress and its initial transform will be set to that of the passed-in anchor. However, the two transforms may differ over time.

Details
Parameters
anchor
The ARAnchor to host.
error
Out parameter for an NSError. Possible errors:
Returns
The new GARAnchor, or nil if there is an error.
Extends class GARSession.

resolveCloudAnchorWithIdentifier:error:

- (nullable GARAnchor *)resolveCloudAnchorWithIdentifier:
(NSString *) identifier
error:
(NSError **) error

Resolves a Cloud Anchor with a given identifier.

The new anchor is immediately added to the session and returned, but without a valid transform. You don’t need to wait for a call to resolve a Cloud Anchor to complete before initiating another call. A session can be resolving up to 40 Cloud Anchors at a given time. If resolving fails, the anchor will be automatically removed from the session.

Details
Parameters
identifier
The Cloud Anchor identifier for the anchor.
error
Out parameter for an NSError. Possible errors:
Returns
The new GARAnchor, or nil if there is an error.
Extends class GARSession.