class Provider
(Niantic.Lightship.AR.XRSubsystems.XRPersistentAnchorSubsystem.Provider)
Overview
An abstract class to be implemented by providers of this subsystem.
class Provider: SubsystemProvider< XRPersistentAnchorSubsystem > {
public:
// properties
bool IsMockProvider;
XRPersistentAnchorConfiguration CurrentConfiguration;
// methods
virtual abstract TrackableChanges<XRPersistentAnchor> GetChanges(
XRPersistentAnchor defaultAnchor,
Allocator allocator
) = 0;
virtual abstract bool GetNetworkStatusUpdate(out XRPersistentAnchorNetworkRequestStatus[] statuses) = 0;
virtual abstract bool GetLocalizationStatusUpdate(out XRPersistentAnchorLocalizationStatus[] statuses) = 0;
virtual abstract bool GetFrameDiagnosticsUpdate(out XRPersistentAnchorFrameDiagnostics[] statuses) = 0;
virtual bool GetVpsSessionId(out string vpsSessionId);
virtual bool TryAddAnchor(Pose pose, out XRPersistentAnchor anchor);
virtual bool TryRemoveAnchor(TrackableId anchorId);
virtual bool TryRestoreAnchor(
XRPersistentAnchorPayload anchorPayload,
out XRPersistentAnchor anchor
);
virtual bool TryLocalize(
XRPersistentAnchorPayload anchorPayload,
out XRPersistentAnchor anchor
);
};
Detailed Documentation
An abstract class to be implemented by providers of this subsystem.
Properties
CurrentConfiguration
XRPersistentAnchorConfiguration CurrentConfiguration
Get or set configuration with <name>XRPersistentAnchorConfiguration</name>
Methods
GetChanges
virtual abstract TrackableChanges<XRPersistentAnchor> GetChanges(
XRPersistentAnchor defaultAnchor,
Allocator allocator
) = 0
Invoked to get the changes to anchors (added, updated, and removed) since the last call to GetChanges(XRPersistentAnchor,Allocator).
Parameters:
defaultAnchor
- The default anchor. This should be used to initialize the returned NativeArrays for backwards compatibility. See Allocator.
allocator
- An allocator to use for the NativeArrays in TrackableChanges<T>.
Returns:
Changes since the last call to GetChanges.
GetNetworkStatusUpdate
virtual abstract bool GetNetworkStatusUpdate(out XRPersistentAnchorNetworkRequestStatus[] statuses) = 0
Get a list of network status updates, if any
Returns:
True if an update is present, false otherwise
GetLocalizationStatusUpdate
virtual abstract bool GetLocalizationStatusUpdate(out XRPersistentAnchorLocalizationStatus[] statuses) = 0
Get a list of localization status updates, if any
Returns:
True if an update is present, false otherwise
GetFrameDiagnosticsUpdate
virtual abstract bool GetFrameDiagnosticsUpdate(out XRPersistentAnchorFrameDiagnostics[] statuses) = 0
Get a list of frame diagnostics updates, if any
Returns:
True if an update is present, false otherwise
GetVpsSessionId
virtual bool GetVpsSessionId(out string vpsSessionId)
Get the vps session id, if any
Parameters:
vpsSessionId
- The vps session id as 32 character hexidecimal upper-case string.
Returns:
True if vps session id is present, false otherwise
TryAddAnchor
virtual bool TryAddAnchor(Pose pose, out XRPersistentAnchor anchor)
Should create a new anchor with the provided pose.
Parameters:
pose
- The pose, in session space, of the new anchor.
anchor
- The new anchor. Must be valid only if this method returns true.
Returns:
Should return true if the new anchor was added, otherwise false.
TryRemoveAnchor
virtual bool TryRemoveAnchor(TrackableId anchorId)
Should remove an existing anchor with TrackableId anchorId.
Parameters:
anchorId
- The id of an existing anchor to remove.
Returns:
Should return true if the anchor was removed, otherwise false. If the anchor does not exist, return false.
TryRestoreAnchor
virtual bool TryRestoreAnchor(
XRPersistentAnchorPayload anchorPayload,
out XRPersistentAnchor anchor
)
Tries to restore an anchor
Parameters:
anchorPayload
- The payload to restore the anchor with
anchor
- The restored anchor
Returns:
Whether or not the restoration was successful