OpenXRAndroidTrackablesExtension
Inherits: OpenXRExtensionWrapper
Implementation for trackables (from XR_ANDROID_trackables).
Description
Implementation for trackables (from XR_ANDROID_trackables).
Methods
bool |
can_create_more_anchors ( ) const |
create_anchor_tracker ( Transform3D pose, OpenXRAndroidTrackableTracker trackable=null ) |
|
void |
destroy_anchor_tracker ( OpenXRAndroidAnchorTracker anchor_tracker ) |
void |
discover_plane_trackers ( bool update_trackers ) |
get_anchor_trackers ( ) const |
|
get_location_flags ( OpenXRAndroidAnchorTracker anchor_tracker, bool update=false ) const |
|
Transform3D |
get_location_pose ( OpenXRAndroidAnchorTracker anchor_tracker, bool update=false ) const |
bool |
is_anchors_supported ( ) const |
bool |
is_trackables_supported ( ) const |
void |
set_anchor_tracker_update_cooldown ( int cooldown ) |
void |
set_plane_tracker_discovery_cooldown ( int cooldown ) |
void |
Method Descriptions
bool can_create_more_anchors ( ) const
Check if more anchor trackers can be created.
Always returns false when is_anchors_supported returns false.
OpenXRAndroidAnchorTracker create_anchor_tracker ( Transform3D pose, OpenXRAndroidTrackableTracker trackable=null )
Create a new OpenXRAndroidAnchorTracker, positioned at pose.
Unlike trackables, anchor trackers are not "discovered", as in, they must always be explicitly created.
Note that the OpenXRAndroidAnchorTracker's location may not be ready. See also OpenXRAndroidAnchorTracker.get_location_pose.
If trackable is not null, then the OpenXRAndroidAnchorTracker will only be available when the trackable is found.
void destroy_anchor_tracker ( OpenXRAndroidAnchorTracker anchor_tracker )
Destroys the underlying tracker.
anchor_tracker can be discarded after calling this function.
void discover_plane_trackers ( bool update_trackers )
Discover plane trackers detected by the OpenXR runtime.
New plane trackers since the last call to discover_plane_trackers are added to XRServer.
Missing plane trackers since the last call to discover_plane_trackers are removed from XRServer.
If update_trackers is true, all found trackers are updated.
If update_trackers is false, all found trackers are not updated. This is useful if you need to find new trackers/discard old trackers without updating all of them too.
This API is called automatically with update_trackers set to true by default (see set_plane_tracker_discovery_cooldown).
OpenXRAndroidAnchorTracker[] get_anchor_trackers ( ) const
Retrieve an Array of all OpenXRAndroidAnchorTrackers that have been created, and not yet destroyed, this session.
LocationFlags get_location_flags ( OpenXRAndroidAnchorTracker anchor_tracker, bool update=false ) const
Convenience function to turn this:
var anchor_flags: OpenXRAndroidAnchorTracker.LocationFlags
if anchor_tracker:
anchor_flags = anchor_tracker.get_location_flags(update)
Into:
var anchor_flags: OpenXRAndroidAnchorTracker.LocationFlags = OpenXRAndroidTrackablesExtension.get_location_flags(anchor_tracker, update)
See also OpenXRAndroidAnchorTracker.get_location_flags.
Transform3D get_location_pose ( OpenXRAndroidAnchorTracker anchor_tracker, bool update=false ) const
Convenience function to turn this:
var anchor_pose: Transform3D
if anchor_tracker:
anchor_pose = anchor_tracker.get_location_pose(update)
Into:
var anchor_pose: Transform3D = OpenXRAndroidTrackablesExtension.get_location_pose(anchor_tracker, update)
See also OpenXRAndroidAnchorTracker.get_location_pose.
bool is_anchors_supported ( ) const
Returns true if anchors is supported; otherwise false.
bool is_trackables_supported ( ) const
Returns true if trackables is supported; otherwise false.
void set_anchor_tracker_update_cooldown ( int cooldown )
Set how many frames to wait before automatically calling update_anchor_trackers.
When cooldown is 0, update_anchor_trackers is called every frame. Note that the XR runtime may not always have new data to retrieve.
When cooldown is less than zero, update_anchor_trackers is no longer called automatically. Your app can explicitly update anchors by calling update_anchor_trackers.
Default is 60.
void set_plane_tracker_discovery_cooldown ( int cooldown )
Set how many frames to wait before automatically calling discover_plane_trackers.
When cooldown is 0, discover_plane_trackers is called every frame. Note that the XR runtime may not always have new data to retrieve.
When cooldown is less than zero, discover_plane_trackers is no longer called automatically. Your app can explicitly add/remove/update all trackables by calling discover_plane_trackers, or update individual trackers by calling any getter function in OpenXRAndroidTrackableTracker or deriving classes.
Default is 60.
void update_anchor_trackers ( )
Update all anchor trackers; updating their pose and persist state (see OpenXRAndroidAnchorTracker.get_persist_state and OpenXRAndroidAnchorTracker.get_location_pose).
This API is called automatically by default (see set_anchor_tracker_update_cooldown).