Namespace ILLIXR::data_format::pose
Namespace List > ILLIXR > data_format > pose
Classes
| Type | Name |
|---|---|
| struct | combined_pose |
| struct | fast_head_pose_type |
| struct | hand_interaction_pose Pose, gesture-strength value, and readiness flag for a single hand interaction action space. |
| struct | hand_interaction_poses All interaction poses for one hand. |
| struct | hand_interaction_poses_pair Interaction poses for both hands, suitable for publication on the switchboard. |
| struct | hand_joint_pose Full 6-DOF pose for a single hand joint. |
| struct | hand_joint_poses All joint poses for one hand, along with hand-level metadata. |
| struct | hand_joint_poses_pair Joint poses for both hands, suitable for publication on the switchboard. |
| struct | palm_pose Palm pose and velocity information. |
| struct | palm_poses_pair Palm poses for both hands, suitable for publication on the switchboard. |
| struct | pose_base Base struct for all pose types in ILLIXR . |
| struct | texture_pose Head pose paired with a rendered texture, used for asynchronous reprojection. |
| struct | xrt_space_relation |
Public Types
| Type | Name |
|---|---|
| typedef POSE_DATA_TYPE | head_pose_data Pose data for the head / HMD. |
| typedef std::map< side, head_pose_type > | head_pose_map |
| typedef xrt_space_relation | head_pose_type |
| enum int | interaction_pose_type Enumeration of the interaction pose types provided by XR_EXT_hand_interaction. |
| enum int | joint Enumeration of the 26 hand joints tracked by XR_EXT_hand_tracking. |
| typedef std::map< side, pose_base > | multi_pose_map |
| enum int | side Distinguishes the left and right hand. |
| enum uint32_t | xrt_space_relation_flags |
Public Attributes
| Type | Name |
|---|---|
| constexpr std::uint8_t | HANDS_TRACKED = {0b0000'0010} |
| constexpr std::uint8_t | HEAD_TRACKED = {0b0000'0001} |
| constexpr std::uint8_t | INTERACTIONS_TRACKED = {0b0000'1000} |
| constexpr int | NUM_INTERACTION_POSES = 4Total number of interaction pose types. |
| constexpr std::uint8_t | PALMS_TRACKED = {0b0000'0100} |
Public Functions
| Type | Name |
|---|---|
| side | non_primary (const side sd) |
Public Types Documentation
typedef head_pose_data
Pose data for the head / HMD.
typedef POSE_DATA_TYPE ILLIXR::data_format::pose::head_pose_data;
Extends pose_base with no additional fields; the named type exists to distinguish head-tracked poses from hand or interaction poses at the type level and to provide a stable target for forward declarations.
typedef head_pose_map
typedef std::map<side, head_pose_type> ILLIXR::data_format::pose::head_pose_map;
typedef head_pose_type
ILLIXR::data_format::pose::head_pose_type;
Pose and velocity data for the head / HMD. Using xrt_space_relation to be Monado compatible
enum interaction_pose_type
Enumeration of the interaction pose types provided by XR_EXT_hand_interaction.
enum ILLIXR::data_format::pose::interaction_pose_type {
AIM = 0,
GRIP = 1,
PINCH = 2,
POKE = 3
};
Each value corresponds to a distinct action-space pose that the OpenXR runtime derives from the tracked hand skeleton. Every pose type except POKE has a corresponding scalar value and readiness flag; these are carried directly on hand_interaction_pose_data alongside the pose itself:
| Type | Pose path | Value path | Ready path |
|---|---|---|---|
| AIM | /input/aim/pose | /input/aim_activate_ext/value | /input/aim_activate_ext/ready_ext |
| GRIP | /input/grip/pose | /input/grasp_ext/value | /input/grasp_ext/ready_ext |
| PINCH | /input/pinch_ext/pose | /input/pinch_ext/value | /input/pinch_ext/ready_ext |
| POKE | /input/poke_ext/pose | — | — |
enum joint
Enumeration of the 26 hand joints tracked by XR_EXT_hand_tracking.
enum ILLIXR::data_format::pose::joint {
PALM = 0,
WRIST = 1,
THUMB_METACARPAL = 2,
THUMB_PROXIMAL = 3,
THUMB_DISTAL = 4,
THUMB_TIP = 5,
INDEX_METACARPAL = 6,
INDEX_PROXIMAL = 7,
INDEX_INTERMEDIATE = 8,
INDEX_DISTAL = 9,
INDEX_TIP = 10,
MIDDLE_METACARPAL = 11,
MIDDLE_PROXIMAL = 12,
MIDDLE_INTERMEDIATE = 13,
MIDDLE_DISTAL = 14,
MIDDLE_TIP = 15,
RING_METACARPAL = 16,
RING_PROXIMAL = 17,
RING_INTERMEDIATE = 18,
RING_DISTAL = 19,
RING_TIP = 20,
LITTLE_METACARPAL = 21,
LITTLE_PROXIMAL = 22,
LITTLE_INTERMEDIATE = 23,
LITTLE_DISTAL = 24,
LITTLE_TIP = 25
};
The values mirror XrHandJointEXT so that they can be used as direct indices into XrHandJointLocationEXT arrays without a translation step.
typedef multi_pose_map
typedef std::map<side, pose_base> ILLIXR::data_format::pose::multi_pose_map;
enum side
Distinguishes the left and right hand.
enum ILLIXR::data_format::pose::side {
LEFT = 0,
RIGHT = 1
};
enum xrt_space_relation_flags
enum ILLIXR::data_format::pose::xrt_space_relation_flags {
XRT_SPACE_RELATION_ORIENTATION_VALID_BIT = (1u << 0u),
XRT_SPACE_RELATION_POSITION_VALID_BIT = (1u << 1u),
XRT_SPACE_RELATION_LINEAR_VELOCITY_VALID_BIT = (1u << 2u),
XRT_SPACE_RELATION_ANGULAR_VELOCITY_VALID_BIT = (1u << 3u),
XRT_SPACE_RELATION_ORIENTATION_TRACKED_BIT = (1u << 4u),
XRT_SPACE_RELATION_POSITION_TRACKED_BIT = (1u << 5u),
XRT_SPACE_RELATION_BITMASK_ALL = (uint32_t) XRT_SPACE_RELATION_ORIENTATION_VALID_BIT |
(uint32_t) XRT_SPACE_RELATION_POSITION_VALID_BIT |
(uint32_t) XRT_SPACE_RELATION_LINEAR_VELOCITY_VALID_BIT |
(uint32_t) XRT_SPACE_RELATION_ANGULAR_VELOCITY_VALID_BIT |
(uint32_t) XRT_SPACE_RELATION_ORIENTATION_TRACKED_BIT |
(uint32_t) XRT_SPACE_RELATION_POSITION_TRACKED_BIT,
XRT_SPACE_RELATION_BITMASK_NONE = 0
};
Public Attributes Documentation
variable HANDS_TRACKED
constexpr std::uint8_t ILLIXR::data_format::pose::HANDS_TRACKED;
variable HEAD_TRACKED
constexpr std::uint8_t ILLIXR::data_format::pose::HEAD_TRACKED;
variable INTERACTIONS_TRACKED
constexpr std::uint8_t ILLIXR::data_format::pose::INTERACTIONS_TRACKED;
variable NUM_INTERACTION_POSES
Total number of interaction pose types.
constexpr int ILLIXR::data_format::pose::NUM_INTERACTION_POSES;
variable PALMS_TRACKED
constexpr std::uint8_t ILLIXR::data_format::pose::PALMS_TRACKED;
Public Functions Documentation
function non_primary
inline side ILLIXR::data_format::pose::non_primary (
const side sd
)
The documentation for this class was generated from the following file /home/friedel/devel/ILLIXR/illixr_release/ILLIXR/include/illixr/data_format/poses/combined_pose.hpp