C API Unity API
C API Reference (Version 10.15.3)
Device Pose Feature

Classes

struct  VuDevicePoseConfig
 Configuration for creating a device pose observer. More...
 

Enumerations

enum  VuDevicePoseCreationError : int32_t {
  VU_DEVICE_POSE_CREATION_ERROR_NONE = 0x0,
  VU_DEVICE_POSE_CREATION_ERROR_INTERNAL = 0x1,
  VU_DEVICE_POSE_CREATION_ERROR_AUTOACTIVATION_FAILED = 0x2,
  VU_DEVICE_POSE_CREATION_ERROR_FEATURE_NOT_SUPPORTED = 0x3
}
 Configuration error for device pose creation. More...
 
enum  VuDevicePoseObservationStatusInfo : int32_t {
  VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_NORMAL = 0x1,
  VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_NOT_OBSERVED = 0x2,
  VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_UNKNOWN = 0x3,
  VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_INITIALIZING = 0x4,
  VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_RELOCALIZING = 0x5,
  VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_EXCESSIVE_MOTION = 0x6,
  VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_INSUFFICIENT_FEATURES = 0x7,
  VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_INSUFFICIENT_LIGHT = 0x8
}
 Status info for device pose observation. More...
 
enum  { VU_OBSERVER_DEVICE_POSE_TYPE = 0x8 }
 
enum  { VU_OBSERVATION_DEVICE_POSE_TYPE = 0x8 }
 

Functions

VuDevicePoseConfig vuDevicePoseConfigDefault ()
 Default Device Pose configuration. More...
 
VuResult vuEngineCreateDevicePoseObserver (VuEngine *engine, VuObserver **observer, const VuDevicePoseConfig *config, VuDevicePoseCreationError *errorCode)
 Create a device pose observer.
 
VuResult vuEngineGetDevicePoseObservers (const VuEngine *engine, VuObserverList *observerList)
 Get all device pose observers.
 
VuResult vuStateGetDevicePoseObservations (const VuState *state, VuObservationList *observationList)
 Get all device pose observations.
 
VuResult vuDevicePoseObservationGetStatusInfo (const VuObservation *observation, VuDevicePoseObservationStatusInfo *statusInfo)
 Get status info associated with a device pose observation.
 
VuResult vuDevicePoseObserverSetStaticMode (VuObserver *observer, VuBool staticModeEnabled)
 Set the device pose to static. More...
 
VuResult vuDevicePoseObserverGetStaticMode (VuObserver *observer, VuBool *staticModeEnabled)
 Get if the device pose is set to static.
 
VuResult vuEngineResetWorldTracking (VuEngine *engine)
 Reset world tracking. More...
 

Detailed Description

An activated Device Pose observer will always output a reason for an observation with a NO_POSE status in its status info.

Enumeration Type Documentation

◆ VuDevicePoseCreationError

enum VuDevicePoseCreationError : int32_t

Configuration error for device pose creation.

Enumerator
VU_DEVICE_POSE_CREATION_ERROR_NONE 

No error.

VU_DEVICE_POSE_CREATION_ERROR_INTERNAL 

An internal error occurred while creating the observer.

VU_DEVICE_POSE_CREATION_ERROR_AUTOACTIVATION_FAILED 

An error occurred while auto-activating the observer.

VU_DEVICE_POSE_CREATION_ERROR_FEATURE_NOT_SUPPORTED 

Device tracking functionality is not supported on the current device.

◆ VuDevicePoseObservationStatusInfo

Status info for device pose observation.

Enumerator
VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_NORMAL 

Tracking working normally.

VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_NOT_OBSERVED 

Device pose is not detected.

VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_UNKNOWN 

Unknown reason for LIMITED pose status.

VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_INITIALIZING 

The tracking system is currently initializing.

VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_RELOCALIZING 

The tracking system is currently relocalizing.

VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_EXCESSIVE_MOTION 

The device is moving too fast. This will only appear when the device pose is in Limited status

VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_INSUFFICIENT_FEATURES 

There are insufficient features available in the scene. This will only appear when the device pose is in Limited status

VU_DEVICE_POSE_OBSERVATION_STATUS_INFO_INSUFFICIENT_LIGHT 

Not enough light for accurate tracking. This will only appear when the device pose is in Limited status

◆ anonymous enum

anonymous enum
Enumerator
VU_OBSERVER_DEVICE_POSE_TYPE 

Type identifier for device pose observers.

◆ anonymous enum

anonymous enum
Enumerator
VU_OBSERVATION_DEVICE_POSE_TYPE 

Type identifier for device pose observations.

Function Documentation

◆ vuDevicePoseConfigDefault()

VuDevicePoseConfig vuDevicePoseConfigDefault ( )

Default Device Pose configuration.

Note
Use this function to initialize the VuDevicePoseConfig data structure with default values.

◆ vuDevicePoseObserverSetStaticMode()

VuResult vuDevicePoseObserverSetStaticMode ( VuObserver observer,
VuBool  staticModeEnabled 
)

Set the device pose to static.

Configures the device pose for statically mounted devices, e.g. a mobile device on a tripod looking at an object. In such a scenario, standard Vuforia Fusion tracking will not succeed to initialize for lack of movement. This setting configures the device tracker to return static poses to stabilize tracking e.g. in case of the object being occluded.

Note
Changing the static mode will internally also trigger a device tracking reset and re-initialization. All device pose observations are reset to VU_OBSERVATION_POSE_STATUS_NO_POSE and tracking is lost on any targets tracked by extended tracking. Any anchors created during the session are destroyed.

◆ vuEngineResetWorldTracking()

VuResult vuEngineResetWorldTracking ( VuEngine engine)

Reset world tracking.

Note
This resets and re-initializes device tracking. All device pose observations are reset to VU_OBSERVATION_POSE_STATUS_NO_POSE and tracking is lost on any targets tracked by extended tracking. Any anchors created during the session are destroyed.