Monado OpenXR Runtime
xrt::tracking::hand::mercury::HandTracking Struct Reference

Main class of Mercury hand tracking. More...

#include </builds/monado/monado/src/xrt/tracking/hand/mercury/hg_sync.hpp>

Collaboration diagram for xrt::tracking::hand::mercury::HandTracking:

Static Public Member Functions

static HandTrackingfromC (t_hand_tracking_sync *ht_sync)
 
static void cCallbackProcess (struct t_hand_tracking_sync *ht_sync, struct xrt_frame *left_frame, struct xrt_frame *right_frame, struct xrt_hand_joint_set *out_left_hand, struct xrt_hand_joint_set *out_right_hand, int64_t *out_timestamp_ns)
 
static void cCallbackDestroy (t_hand_tracking_sync *ht_sync)
 

Data Fields

t_hand_tracking_sync base = {}
 
struct u_sink_debug debug_sink_ann = {}
 
struct u_sink_debug debug_sink_model = {}
 
struct xrt_hand_masks_sinkhand_masks_sink
 
float multiply_px_coord_for_undistort
 
struct t_stereo_camera_calibrationcalib
 
struct xrt_size calibration_one_view_size_px = {}
 
struct xrt_size last_frame_one_view_size_px = {}
 
struct ht_view views [2] = {}
 
struct model_output_visualizers visualizers
 
u_worker_thread_poolpool
 
u_worker_groupgroup
 
float baseline = {}
 
xrt_pose hand_pose_camera_offset = {}
 
uint64_t current_frame_timestamp = {}
 
bool debug_scribble = false
 
char models_folder [1024]
 
enum u_logging_level log_level = U_LOGGING_INFO
 
lm::KinematicHandLMkinematic_hands [2]
 
struct one_frame_input keypoint_outputs [2]
 
bool hand_seen_before [2] = {false, false}
 
bool last_frame_hand_detected [2] = {false, false}
 
bool this_frame_hand_detected [2] = {false, false}
 
HistoryBuffer< Eigen::Array< float, 3, 21 >, 2 > history_hands [2] = {}
 
HistoryBuffer< uint64_t, 2 > history_timestamps = {}
 
uint64_t hand_tracked_for_num_frames [2] = {0, 0}
 
Eigen::Array< float, 3, 21 > pose_predicted_keypoints [2]
 
int detection_counter = 0
 
struct hand_size_refinement refinement = {}
 
float target_hand_size = STANDARD_HAND_SIZE
 
xrt_framedebug_frame
 
void(* keypoint_estimation_run_func )(void *)
 
struct xrt_pose left_in_right = {}
 
u_frame_times_widget ft_widget = {}
 
struct hg_tuneable_values tuneable_values
 

Detailed Description

Main class of Mercury hand tracking.

Member Function Documentation

◆ cCallbackProcess()

void xrt::tracking::hand::mercury::HandTracking::cCallbackProcess ( struct t_hand_tracking_sync ht_sync,
struct xrt_frame left_frame,
struct xrt_frame right_frame,
struct xrt_hand_joint_set out_left_hand,
struct xrt_hand_joint_set out_right_hand,
int64_t *  out_timestamp_ns 
)
static
Todo:
does this go here?
Todo:
optimize: We can have one of these on each thread

The documentation for this struct was generated from the following files: