Jakob Bornecrantz
ae6ac5fc0e
math: Work-around clang-format stuff
2021-01-15 16:38:52 +00:00
Jakob Bornecrantz
2b996f30c4
xrt: Reflow after column change
2021-01-15 13:50:32 +00:00
Christoph Haag
e785053c0a
aux/math: special case delta_s == 0 in m_predic
...
Rather than asserting in the underlying math functions we return the
trivial values for prediction with 0s.
2021-01-11 23:50:01 +00:00
Jakob Bornecrantz
1e4a540bb9
aux/math: Add prediction module
...
For the time being all angular velocities are relative to the space a xrt_space_relation is in.
2021-01-11 23:50:01 +00:00
Lubosz Sarnecki
55d6d57392
aux/math: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
bd68c0e5f5
aux/math: Implement math_matrix_2x2_multiply.
2020-11-27 16:50:55 +01:00
Christoph Haag
95af586654
aux: Add m_space_graph_add_inverted_relation
2020-11-23 20:42:54 +00:00
Christoph Haag
d6b072805a
aux: Add m_space_relation_invert
2020-11-23 20:42:54 +00:00
Jakob Bornecrantz
ef6c8430d2
m/space: Make sure to not drop positions
2020-11-18 18:05:07 +00:00
Jakob Bornecrantz
ecbde55752
m/space: Normalize orientation when returning result
2020-10-27 16:20:12 +00:00
Jakob Bornecrantz
bd6ea43de5
m/headers: Fix doxygen warnings
2020-10-26 22:55:22 +00:00
Lubosz Sarnecki
7035490ed7
aux/math: Implement math_matrix_4x4_inverse_view_projection.
2020-10-26 01:34:10 +00:00
Christoph Haag
256e2c68d8
xrt: Implement & hook up hand joint tracking infrastructure
...
Include <inttypes.h> to satisfy older compilers
2020-10-12 22:13:47 +02:00
Christoph Haag
fb71c71a8c
xrt: Replace mesh generator with xdev->compute_distortion()
...
Each HMD driver now has to implement compute_distortion() which will be called
by the compositor implementation to generate a mesh (usually).
u_distortion_mesh contains implementations for the defaults (panotools, OpenHMD, vive).
Also adds compute_distortion function for Vive distortion
There are differences between OpenHMD and Panotools values, main differences for now:
* psvr has 5 pano coefficients, ohmd has 3
* psvr uses viewport size and lens center in pixels for distortion calculation, ohmd in meter
* psvr uses different distortion scaling than ohmd
2020-09-28 17:04:15 +01:00
Jakob Bornecrantz
6a94b1cf80
m/ff: Improve interface
2020-09-16 17:27:16 +01:00
Jakob Bornecrantz
b624d290d0
m/3dof: Add filter fifos to variable tracking code
2020-09-15 16:41:07 +00:00
Christoph Haag
1429d678a0
aux/space: Propagate orientation valid bit through space graph resolve
...
Invalid poses may be handled more gracefully in the future. For now poses
are not transformed if orientation is not valid, because transforming with
an invalid quaternion will have bad results in any way.
v2: Upgrade poses with valid position but invalid orientation to valid poses
2020-09-11 18:51:58 +02:00
Christoph Haag
6cce04f8d3
aux/space: fix typo: propagate tracked orientation bit properly
2020-09-09 14:51:06 +02:00
Jakob Bornecrantz
eaffa05a37
xrt: Remove acceleration components from xrt_space_relation
2020-09-07 23:36:34 +01:00
Jakob Bornecrantz
5a4d45bbaa
m/base: Remove old space relation functions
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
fe94dec5ea
m/space: Space graph functions
2020-09-07 23:33:25 +01:00
Jakob Bornecrantz
ca91695722
m/quat: Add math_quat_rotate_derivative
2020-09-07 16:14:46 +01:00
Jakob Bornecrantz
328f5d5315
m/base: Add math_quat_invert
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
511a51b283
m/3dof: Rename to timestamp
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
8cdfe0e694
m/fifo: Add f64 filter fifo
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
991c9029c7
m/3dof: Tweak values
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
736fa81349
m/3dof: Add vars tracking helper function
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
33f05c7bea
m/vec3: Add C++ operators
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
d396117a39
m/vec2: Add C++ operators
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
b3c5bf1517
math: Add a permutation library
2020-08-28 11:38:03 +00:00
Christoph Haag
370f6820aa
m: Generalize math_matrix_4x4_quad_model, making scaling a vec3
2020-08-21 02:11:03 +02:00
Ryan Pavlik
146218b346
xrt: Some clang tidy fixes.
...
A few suppressions as well where clang-tidy did the wrong thing.
2020-08-12 17:11:42 -05:00
Lubosz Sarnecki
87a5c425cf
a/math: Add math_vec3_normalize.
2020-07-31 12:45:47 +02:00
Ryan Pavlik
4220638afd
xrt: use _USE_MATH_DEFINES to make sure M_PI gets defined.
2020-07-17 13:53:39 -05:00
Christoph Haag
7a1dbbe8a1
st/oxr: Ensure quaternion is normalized in xrLocateViews()
...
In rare cases the state tracker's pose transformations resulted in a quaternion
that accumulated float precision errors such that the norm of the quaternion was
not within float precision of 1.0 anymore.
Introduce a function math_quat_ensure_normalized() that can be used after multiple
operations have been performed on a quaternion.
2020-06-17 13:03:34 +02:00
Lubosz Sarnecki
fc271ad5da
aux/math: Add function to calculate quad model matrix.
2020-05-28 22:16:57 +00:00
Jakob Bornecrantz
9d791cdfd3
math: Use non-squared 'length' of quat in validation
...
Correctly validate quaternion using non-squard "length" instead of squard
"length", certain combinations of elements would produce valid regular "length"
but not valid squard ones.
2020-05-28 15:50:47 +01:00
Lubosz Sarnecki
6aa1b4e571
aux/math: Add function to calculate view matrix from pose.
2020-05-11 20:21:58 +01:00
Lubosz Sarnecki
0b6d97ec8f
aux/math: Add matrix_4x4 identity and matrix_4x4_muliply.
2020-05-11 20:21:58 +01:00
Jakob Bornecrantz
3e5da414f7
aux/math: Add 3DOF imu fusion
2020-03-25 13:58:51 +00:00
Jakob Bornecrantz
f2ebe74748
aux/math: Add a simple imu pre-filter
2020-03-25 13:58:51 +00:00
Jakob Bornecrantz
23a66eb031
aux/math: Add math_matrix_3x3_rotate_vec3 function
2020-03-25 13:58:51 +00:00
Jakob Bornecrantz
18373730a8
aux/math: Expand the vec3 functions
2020-03-25 13:58:51 +00:00
Jakob Bornecrantz
21e77b85d7
aux/math: Add quat from angle vector function
2020-03-25 13:58:51 +00:00
Jakob Bornecrantz
0b63cb2da3
aux/math: Add vec2 squared length function
2020-03-11 20:37:20 +00:00
Jakob Bornecrantz
7207c50992
math: Add filter fifo helper
2020-02-18 13:33:22 +00:00
Nova
4cfd4c4657
math: Added vec3 math functions
2020-02-09 21:06:47 +00:00
Ryan Pavlik
85761db12c
aux/math: Update comment
2020-01-31 17:19:48 +01:00
Jakob Bornecrantz
5bf65b41fa
math: Add some more functions
2020-01-14 15:59:41 +00:00
Jakob Bornecrantz
998b198b44
math: Fix math_pose_invert
2020-01-13 10:37:14 +00:00