The open source OpenXR runtime
1// Copyright 2018, Philipp Zabel.
2// Copyright 2020-2021, N Madsen.
3// Copyright 2020-2021, Collabora, Ltd.
4// SPDX-License-Identifier: BSL-1.0
5/*!
6 * @file
7 * @brief WMR and MS HoloLens protocol helpers implementation.
8 * @author Philipp Zabel <philipp.zabel@gmail.com>
9 * @author nima01 <nima_zero_one@protonmail.com>
10 * @ingroup drv_wmr
11 */
12
13#include "wmr_protocol.h"
14
15
16/*
17 *
18 * WMR and MS HoloLens Sensors protocol helpers
19 *
20 */
21
22void
23vec3_from_hololens_accel(int32_t sample[3][4], int i, struct xrt_vec3 *out_vec)
24{
25 out_vec->x = (float)sample[0][i] * 0.001f * 1.0f;
26 out_vec->y = (float)sample[1][i] * 0.001f * 1.0f;
27 out_vec->z = (float)sample[2][i] * 0.001f * 1.0f;
28}
29
30void
31vec3_from_hololens_gyro(int16_t sample[3][32], int i, struct xrt_vec3 *out_vec)
32{
33 out_vec->x = (float)(sample[0][8 * i + 0] + //
34 sample[0][8 * i + 1] + //
35 sample[0][8 * i + 2] + //
36 sample[0][8 * i + 3] + //
37 sample[0][8 * i + 4] + //
38 sample[0][8 * i + 5] + //
39 sample[0][8 * i + 6] + //
40 sample[0][8 * i + 7]) *
41 0.001f * 0.125f;
42 out_vec->y = (float)(sample[1][8 * i + 0] + //
43 sample[1][8 * i + 1] + //
44 sample[1][8 * i + 2] + //
45 sample[1][8 * i + 3] + //
46 sample[1][8 * i + 4] + //
47 sample[1][8 * i + 5] + //
48 sample[1][8 * i + 6] + //
49 sample[1][8 * i + 7]) *
50 0.001f * 0.125f;
51 out_vec->z = (float)(sample[2][8 * i + 0] + //
52 sample[2][8 * i + 1] + //
53 sample[2][8 * i + 2] + //
54 sample[2][8 * i + 3] + //
55 sample[2][8 * i + 4] + //
56 sample[2][8 * i + 5] + //
57 sample[2][8 * i + 6] + //
58 sample[2][8 * i + 7]) *
59 0.001f * 0.125f;
60}