Monado OpenXR Runtime
rift_s_tracker.h File Reference

HMD tracker handling. More...

#include "math/m_imu_3dof.h"
#include "os/os_threading.h"
#include "util/u_var.h"
#include "xrt/xrt_defines.h"
#include "xrt/xrt_device.h"
#include "tracking/t_tracking.h"
#include "rift_s_firmware.h"
Include dependency graph for rift_s_tracker.h:

Go to the source code of this file.

Data Structures

struct  rift_s_tracker
 

Enumerations

enum  rift_s_tracker_pose { RIFT_S_TRACKER_POSE_IMU , RIFT_S_TRACKER_POSE_LEFT_CAMERA , RIFT_S_TRACKER_POSE_DEVICE }
 

Functions

struct rift_s_trackerrift_s_tracker_create (struct xrt_tracking_origin *origin, struct xrt_frame_context *xfctx, struct rift_s_hmd_config *hmd_config)
 Procedure to setup trackers: 3dof, SLAM and hand tracking. More...
 
void rift_s_tracker_start (struct rift_s_tracker *t)
 
void rift_s_tracker_destroy (struct rift_s_tracker *t)
 
void rift_s_tracker_add_debug_ui (struct rift_s_tracker *t, void *root)
 
struct xrt_slam_sinksrift_s_tracker_get_slam_sinks (struct rift_s_tracker *t)
 
struct xrt_devicerift_s_tracker_get_hand_tracking_device (struct rift_s_tracker *t)
 
void rift_s_tracker_clock_update (struct rift_s_tracker *t, uint64_t device_timestamp_ns, timepoint_ns local_timestamp_ns)
 
void rift_s_tracker_imu_update (struct rift_s_tracker *t, uint64_t device_timestamp_ns, const struct xrt_vec3 *accel, const struct xrt_vec3 *gyro)
 
void rift_s_tracker_push_slam_frames (struct rift_s_tracker *t, uint64_t frame_ts_ns, struct xrt_frame *frames[RIFT_S_CAMERA_COUNT])
 
void rift_s_tracker_get_tracked_pose (struct rift_s_tracker *t, enum rift_s_tracker_pose pose, uint64_t at_timestamp_ns, struct xrt_space_relation *out_relation)
 

Detailed Description

HMD tracker handling.

Author
Jan Schmidt jan@c.nosp@m.entr.nosp@m.icula.nosp@m.r.co.nosp@m.m

Function Documentation

◆ rift_s_tracker_create()

struct rift_s_tracker * rift_s_tracker_create ( struct xrt_tracking_origin origin,
struct xrt_frame_context xfctx,
struct rift_s_hmd_config hmd_config 
)

Procedure to setup trackers: 3dof, SLAM and hand tracking.

Determines which trackers to initialize

Parameters
xfctxthe frame server that will own processing nodes
hmd_configHMD configuration and firmware info
Returns
initialised tracker on success, NULL if creation fails