XR_BD_motion_tracking
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;