Перейти к основному содержимому

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;