XR_PICO_body_tracking
Doesn't require any Android permissions for now.
Functions
xrSetBodyTrackerStaticCalibStatePICO
XrResult xrSetBodyTrackerStaticCalibStatePICO(
XrInstance instance,
XrBool32 isCalibrated);
I assume it is for mocking testing.
xrSetBodyTrackerModePICO
XrResult xrSetBodyTrackerModePICO(
XrInstance instance,
XrBodyTrackingModePICO mode);
xrGetBodyTrackerPosePICO
XrResult xrGetBodyTrackerPosePICO(
XrInstance instance,
XrTime time,
XrBodyTrackingResultPICO* data);
xrGetBodyTrackerImuDataPICO
XrResult xrGetBodyTrackerImuDataPICO(
XrInstance instance,
int32_t trackerId,
XrBodyTrackingImuPICO* data);
xrGetBodyTrackerConnectStatePICO
XrResult xrGetBodyTrackerConnectStatePICO(
XrInstance instance,
XrBodyTrackerConnectStatePICO* state);
xrGetBodyTrackerBatteryPICO
XrResult xrGetBodyTrackerBatteryPICO(
XrInstance instance,
int32_t trackerId,
int32_t* batteryLevel);
xrGetBodyTrackerCalibStatePICO
XrResult xrGetBodyTrackerCalibStatePICO(
XrInstance instance,
XrBool32* isCalibrated);
xrSetBodyTrackingAlgParamPICO
XrResult xrSetBodyTrackingAlgParamPICO(
XrInstance instance,
XrBodyTrackingAlgParamTypePICO paramType,
const XrBodyTrackingAlgParamPICO* param);
Types
XrBodyTrackingAlgParamTypePICO
typedef enum XrBodyTrackingAlgParamTypePICO {
XR_ALG_PARAM_HUMAN_HEIGHT_PICO = 0,
XR_ALG_PARAM_SWIFT_MODE_PICO = 1,
XR_ALG_PARAM_BONE_PARAM_PICO = 2
} XrBodyTrackingAlgParamTypePICO;
XrBodyTrackingAlgParamPICO
typedef struct XrBodyTrackingAlgParamPICO {
XrBodyJointSetBD jointSet;
float headLength;
float neckLength;
float torsoLength;
float hipLength;
float upperLegLength;
float lowerLegLength;
float footLength;
float shoulderLength;
float upperArmLength;
float lowerArmLength;
float handLength;
} XrBodyTrackingAlgParamPICO;
Could jointSet
be a human height in centimeters if paramType
is XR_ALG_PARAM_HUMAN_HEIGHT_PICO
?
XrBodyTrackingImuPICO
typedef struct XrBodyTrackingImuPICO {
XrTime time;
double temperature;
double gyroscopeData[3];
double accelerometerData[3];
double magnetometerData[3];
} XrBodyTrackingImuPICO;
XrBodyTrackingPosePICO
typedef struct XrBodyTrackingPosePICO {
XrTime time;
double positionX;
double positionY;
double positionZ;
double orienationX;
double orienationY;
double orienationZ;
double orienationW;
} XrBodyTrackingPosePICO;
XrBodyTrackingTransformPICO
typedef struct XrBodyTrackingTransformPICO {
XrBodyTrackerRoleBD bone;
XrBodyTrackingPosePICO localPose;
XrBodyTrackingPosePICO globalPose;
double linearVelocity[3];
double linearAcceleration[3];
double angularVelocity[3];
double angularAcceleration[3];
XrBodyJointActionBD bodyAction;
} XrBodyTrackingTransformPICO;
XrBodyTrackingResultPICO
typedef struct XrBodyTrackingResultPICO {
XrBodyTrackingTransformPICO trackingdata[24];
} XrBodyTrackingResultPICO;
XrBodyTrackerConnectStatePICO
typedef XrBodyTrackerConnectStatePICO {
uint8_t trackerCount;
uint8_t trackerId[12];
} XrBodyTrackerConnectStatePICO;
XrBodyTrackingModePICO
typedef enum XrBodyTrackingModePICO {
XR_BTM_DISABLE_PICO = 0,
XR_BTM_WITH_SWIFT_PICO = 1, //Default mode
XR_BTM_WITHOUT_SWIFT_PICO = 2,
XR_BTM_MAX_ENUM_PICO = 0x7FFFFFFF,
} XrBodyTrackingModePICO;