Skip to main content

XR_BD_motion_tracking

warning

This extension is not available in newer versions of Pico OS. It was superseeded by XR_PICO_motion_tracking, available officially. Please, refer to Pico documentation for information.

Doesn't require any Android permissions for now.

As official documentation states, all functions are supported by Pico Motion Trackers 2.0 only (with an exception of xrGetMotionTrackerTypeBD).

Functions​

xrGetMotionTrackerConnectStateBD​

XrResult xrGetMotionTrackerConnectStateBD(
XrInstance instance,
XrMotionTrackerConnectStateBD* state);

xrGetMotionTrackerTypeBD​

XrResult xrGetMotionTrackerTypeBD(
XrInstance instance,
XrMotionTrackerTypeBD* type);

xrGetMotionTrackerModeBD​

XrResult xrGetMotionTrackerModeBD(
XrInstance instance,
XrMotionTrackerModeBD* mode);

xrGetMotionTrackerLocationsBD​

XrResult xrGetMotionTrackerLocationsBD(
XrInstance instance,
XrTime time,
const XrMotionTrackerSerialBD* trackerSerial,
XrMotionTrackerLocationsBD* locations);

xrCheckMotionTrackerModeAndNumberBD​

XrResult xrCheckMotionTrackerModeAndNumberBD(
XrInstance instance,
XrMotionTrackerModeBD mode,
int trackerCount);

xrGetExtDevTrackerConnectStateBD​

XrResult xrGetExtDevTrackerConnectStateBD(
XrInstance instance,
XrExtDevTrackerConnectStateBD* connectState);

xrSetExtDevTrackerMotorVibrateBD​

XrResult xrSetExtDevTrackerMotorVibrateBD(
XrInstance instance,
XrExtDevTrackerMotorVibrateBD* motorVibrate);

xrSetExtDevTrackerPassDataStateBD​

XrResult xrSetExtDevTrackerPassDataStateBD(
XrInstance instance,
bool state);

xrSetExtDevTrackerByPassDataBD​

XrResult xrSetExtDevTrackerByPassDataBD(
XrInstance instance,
XrExtDevTrackerPassDataBD* passData);

xrGetExtDevTrackerByPassDataBD​

XrResult xrGetExtDevTrackerByPassDataBD(
XrInstance instance,
XrExtDevTrackerPassDataBD* passData,
int32_t length,
int32_t* realLength);

xrGetExtDevTrackerBatteryBD​

XrResult xrGetExtDevTrackerBatteryBD(
XrInstance instance,
const XrMotionTrackerSerialBD* serial,
int32_t* outBattery,
int32_t* outBharger);

xrGetExtDevTrackerKeyDataBD​

XrResult xrGetExtDevTrackerKeyDataBD(
XrInstance instance,
const XrMotionTrackerSerialBD* serial,
XrExtDevTrackerKeyDataBD* keyData);

Types​

XrExtDevTrackerMotorVibrateBD​

typedef struct XrExtDevTrackerConnectStateBD {
int32_t extNumber;
XrMotionTrackerSerialBD serial;
uint8_t chargerStatus;
uint8_t batteryVolume;
} XrExtDevTrackerConnectStateBD;

XrExtDevTrackerMotorVibrateBD​

typedef struct XrExtDevTrackerMotorVibrateBD {
XrMotionTrackerSerialBD serial;
int32_t level;
int32_t frequency;
int32_t duration;
} XrExtDevTrackerMotorVibrateBD;

XrExtDevTrackerKeyBD​

typedef struct XrExtDevTrackerKeyBD {
int home;
int app;
int AX;
int BY;
int grip;
int rocker;
int trigger;
} XrExtDevTrackerKeyBD;

XrExtDevTrackerTouchBD​

typedef struct XrExtDevTrackerTouchBD {
int AX;
int BY;
int rocker;
int trigger;
int thumbrest;
} XrExtDevTrackerTouchBD;

XrExtDevTrackerKeyDataBD​

typedef struct XrExtDevTrackerKeyDataBD {
int32_t extDevID;
XrExtDevTrackerKeyBD key;
XrExtDevTrackerTouchBD touch;
uint8_t trigger;
uint8_t grip;
uint8_t rockerX;
uint8_t rockerY;
} XrExtDevTrackerKeyDataBD;

XrExtDevTrackerPassDataBD​

typedef struct XrExtDevTrackerPassDataBD {
XrMotionTrackerSerialBD serial;
uint8_t passData[15];
} XrExtDevTrackerPassDataBD;

XrMotionTrackerLocationBD​

typedef struct XrMotionTrackerLocationBD {
XrPosef pose;
XrVector3f angularVelocity;
XrVector3f linearVelocity;
XrVector3f angularAcceleration;
XrVector3f linearAcceleration;
} XrMotionTrackerLocationBD;

XrMotionTrackerConfidenceBD​

typedef enum XrMotionTrackerConfidenceBD {
XR_STATIC_ACCURATE_BD = 0,
XR_6DOF_ACCURATE_BD,
XR_3DOF_NOT_ACCURATE_BD,
XR_6DOF_NOT_ACCURATE_BD,
} XrMotionTrackerConfidenceBD;

XrMotionTrackerLocationsBD​

typedef struct XrMotionTrackerLocationsBD {
XrMotionTrackerSerialBD serial;
XrMotionTrackerLocationBD localPose;
XrMotionTrackerConfidenceBD confidence;
XrMotionTrackerLocationBD globalPose;
} XrMotionTrackerLocationsBD;

XrMotionTrackerTypeBD​

typedef enum XrMotionTrackerTypeBD {
XR_MOTION_TRACKER_UNKNOWN_BD = 0,
XR_MOTION_TRACKER_1_BD = 1,
XR_MOTION_TRACKER_2_BD
} XrMotionTrackerTypeBD;

XrMotionTrackerSerialBD​

typedef struct XrMotionTrackerSerialBD {
char serial[24];
} XrMotionTrackerSerialBD;

XrMotionTrackerConnectStateBD​

typedef struct XrMotionTrackerConnectStateBD {
int32_t trackerCount;
XrMotionTrackerSerialBD serials[6];
} XrMotionTrackerConnectStateBD;

XrMotionTrackerModeBD​

typedef enum XrMotionTrackerModeBD {
XR_BODY_TRACKING_BD = 0,
XR_MOTION_TRACKING_BD = 1
} XrMotionTrackerModeBD;