Monado OpenXR Runtime
u_tracked_imu_3dof.h
Go to the documentation of this file.
1// Copyright 2019-2022, Collabora, Ltd.
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Wrapper for m_imu_3dof that can be placed inside (and freed along with!) an `xrt_imu_sink` pipeline.
6 * @author Moses Turner <moses@collabora.com>
7 * @ingroup aux_util
8 */
9
10#pragma once
11
12#include "math/m_imu_3dof.h"
14#include "xrt/xrt_frame.h"
15#include "xrt/xrt_tracking.h"
16
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22/*!
23 * @see u_tracked_imu_3dof_create
24 */
26{
27 struct xrt_imu_sink sink;
28 struct xrt_frame_node node;
29
30 struct m_imu_3dof fusion;
31 struct m_relation_history *rh;
32};
33
34
35/*!
36 * @see xrt_frame_context
37 * Creates a wrapper for m_imu_3dof that can be placed inside (and freed along with!) an `xrt_imu_sink` pipeline.
38 * Useful when your frameserver is significantly separated from your xrt_device
39 */
40void
41u_tracked_imu_3dof_create(struct xrt_frame_context *xfctx, struct u_tracked_imu_3dof **out_3dof, void *debug_var_root);
42
43
44#ifdef __cplusplus
45}
46#endif
A IMU fusion specially made for 3dof devices.
Small utility for keeping track of the history of an xrt_space_relation, ie.
Definition: m_imu_3dof.h:35
Definition: m_relation_history.cpp:46
Definition: u_tracked_imu_3dof.h:26
Object used to track all sinks and frame producers in a graph.
Definition: xrt_frame.h:108
A interface object used for destroying a frame graph.
Definition: xrt_frame.h:87
An object to send IMU samples to.
Definition: xrt_tracking.h:169
void u_tracked_imu_3dof_create(struct xrt_frame_context *xfctx, struct u_tracked_imu_3dof **out_3dof, void *debug_var_root)
Definition: u_tracked_imu_3dof.c:56
Data frame header.
Header defining the tracking system integration in Monado.