You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-14 13:41:12 +00:00
Expose OpenXR raw hand tracking data
This commit is contained in:
@@ -161,8 +161,65 @@ public:
|
||||
void on_pose_recentered();
|
||||
void tracker_profile_changed(RID p_tracker, RID p_interaction_profile);
|
||||
|
||||
/** Hand tracking. */
|
||||
enum Hand {
|
||||
HAND_LEFT,
|
||||
HAND_RIGHT,
|
||||
HAND_MAX,
|
||||
};
|
||||
|
||||
enum HandMotionRange {
|
||||
HAND_MOTION_RANGE_UNOBSTRUCTED,
|
||||
HAND_MOTION_RANGE_CONFORM_TO_CONTROLLER,
|
||||
HAND_MOTION_RANGE_MAX
|
||||
};
|
||||
|
||||
void set_motion_range(const Hand p_hand, const HandMotionRange p_motion_range);
|
||||
HandMotionRange get_motion_range(const Hand p_hand) const;
|
||||
|
||||
enum HandJoints {
|
||||
HAND_JOINT_PALM = 0,
|
||||
HAND_JOINT_WRIST = 1,
|
||||
HAND_JOINT_THUMB_METACARPAL = 2,
|
||||
HAND_JOINT_THUMB_PROXIMAL = 3,
|
||||
HAND_JOINT_THUMB_DISTAL = 4,
|
||||
HAND_JOINT_THUMB_TIP = 5,
|
||||
HAND_JOINT_INDEX_METACARPAL = 6,
|
||||
HAND_JOINT_INDEX_PROXIMAL = 7,
|
||||
HAND_JOINT_INDEX_INTERMEDIATE = 8,
|
||||
HAND_JOINT_INDEX_DISTAL = 9,
|
||||
HAND_JOINT_INDEX_TIP = 10,
|
||||
HAND_JOINT_MIDDLE_METACARPAL = 11,
|
||||
HAND_JOINT_MIDDLE_PROXIMAL = 12,
|
||||
HAND_JOINT_MIDDLE_INTERMEDIATE = 13,
|
||||
HAND_JOINT_MIDDLE_DISTAL = 14,
|
||||
HAND_JOINT_MIDDLE_TIP = 15,
|
||||
HAND_JOINT_RING_METACARPAL = 16,
|
||||
HAND_JOINT_RING_PROXIMAL = 17,
|
||||
HAND_JOINT_RING_INTERMEDIATE = 18,
|
||||
HAND_JOINT_RING_DISTAL = 19,
|
||||
HAND_JOINT_RING_TIP = 20,
|
||||
HAND_JOINT_LITTLE_METACARPAL = 21,
|
||||
HAND_JOINT_LITTLE_PROXIMAL = 22,
|
||||
HAND_JOINT_LITTLE_INTERMEDIATE = 23,
|
||||
HAND_JOINT_LITTLE_DISTAL = 24,
|
||||
HAND_JOINT_LITTLE_TIP = 25,
|
||||
HAND_JOINT_MAX = 26,
|
||||
};
|
||||
|
||||
Quaternion get_hand_joint_rotation(Hand p_hand, HandJoints p_joint) const;
|
||||
Vector3 get_hand_joint_position(Hand p_hand, HandJoints p_joint) const;
|
||||
float get_hand_joint_radius(Hand p_hand, HandJoints p_joint) const;
|
||||
|
||||
Vector3 get_hand_joint_linear_velocity(Hand p_hand, HandJoints p_joint) const;
|
||||
Vector3 get_hand_joint_angular_velocity(Hand p_hand, HandJoints p_joint) const;
|
||||
|
||||
OpenXRInterface();
|
||||
~OpenXRInterface();
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(OpenXRInterface::Hand)
|
||||
VARIANT_ENUM_CAST(OpenXRInterface::HandMotionRange)
|
||||
VARIANT_ENUM_CAST(OpenXRInterface::HandJoints)
|
||||
|
||||
#endif // OPENXR_INTERFACE_H
|
||||
|
||||
Reference in New Issue
Block a user