Skip to content

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 = 4
Total 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