Ryan Pavlik
928254ffed
a/math: Add a rational number struct template.
2022-02-22 09:58:19 -06:00
Mateo de Mayo
4b94d83c11
a/math: Fix one euro implementations not dividing by dt
...
The dy name was kept. It can now be thought of as "[d]erivative of [y]"
instead of the previous "change of y". Also, the beta parameters of the
one-euro users were adjusted by approximately multiplying them by 0.016
to compensate.
2022-02-22 13:34:45 +00:00
Mateo de Mayo
b04c26e522
a/math: Expose quat_{exp, ln} and test them
2022-02-22 13:34:45 +00:00
Mateo de Mayo
8820a3e99c
a/math: Add m_filter_euro_quat
2022-02-14 10:22:05 -03:00
Mateo de Mayo
06597a0655
a/math: Add math_quat_{len, unrotate}
2022-02-14 10:22:05 -03:00
Mateo de Mayo
cf5574a4e9
m/space: Add m_space_relation_interpolate
2022-02-14 10:22:05 -03:00
Ryan Pavlik
94e053d0d4
a/math: More relation history cleanup
2022-02-08 17:00:11 +00:00
Ryan Pavlik
1c183a9eeb
a/math: Simplify m_history_relation using standard algorithms
2022-02-08 17:00:11 +00:00
Ryan Pavlik
90c74578d1
a/util: Refactor HistoryBuffer to be more like a standard container.
2022-02-08 17:00:11 +00:00
Ryan Pavlik
c9889f776f
xrt: Rename xrt_space_graph to xrt_relation_chain.
...
Rename all functions and instances accordingly as well,
and add documentation for all methods.
2022-01-21 19:54:30 +00:00
Mateo de Mayo
7e0d93e3fb
tests: Add tests for quatexpmap interface functions and minor changes in their docs
2021-12-22 12:16:27 -03:00
Mateo de Mayo
76d7729e4d
m/vec3: Add operator/ for scalar division
2021-12-21 11:43:17 +00:00
Mateo de Mayo
bcb4cd82cd
aux/math: Use dt in calculation of ang vel between quat diference
2021-12-21 11:43:17 +00:00
Mateo de Mayo
471ca9530b
m/3dof: Add reset functionality
2021-12-12 13:06:04 -03:00
Ryan Pavlik
26e5f6eee7
a/math: Bring the C++ wrapper for relation_history up to parity.
...
Also add tests for it too.
2021-12-10 21:06:04 +00:00
Ryan Pavlik
ef4550c268
a/math: Add a "get latest" to relation history as well.
2021-12-10 21:06:04 +00:00
Ryan Pavlik
aff7079dca
a/math: Let relation history report its size
2021-12-10 21:06:04 +00:00
timongentzsch
ba353e276d
Bugfix in solving quadratic equation for FoV calculation
2021-12-10 18:08:50 +00:00
Ryan Pavlik
e5e8451a81
a/math: Update relation history to return something from push.
2021-12-09 13:44:12 -06:00
Jakob Bornecrantz
98982bd25b
a/math: Fix warning in math_matrix_2x2_multiply
2021-12-07 13:30:45 +00:00
Jakob Bornecrantz
a6b4e6a830
m/3dof: Show more in the variable tracker
2021-12-05 15:30:14 +00:00
Jan Schmidt
bb5aa35c00
a/math: Add math_matrix_3x3_identity()
...
Add an initialisation function to set a 3x3 matrix
to the identity matrix.
2021-12-05 00:06:05 +11:00
Jakob Bornecrantz
8c04bf1274
a/math: Add C++ RelationHistory interface class
2021-12-03 14:00:37 +00:00
Jakob Bornecrantz
efde7f185c
a/math: Put m_relation_history_get out argument last
2021-12-03 14:00:32 +00:00
Jakob Bornecrantz
ed48e6d47d
a/math: Constify in argument
2021-12-03 13:53:46 +00:00
Ryan Pavlik
2b64e5b965
a/math: Extend m_relation_history to pass the tests.
2021-12-03 13:53:46 +00:00
Ryan Pavlik
217dee2ce3
a/math: Add m_relation_history_result return from m_relation_history_get
2021-12-03 13:45:43 +00:00
Ryan Pavlik
01e3d9871c
a/math: Replace RH_DEBUG for relation history with better use of logging macros
2021-12-03 13:45:43 +00:00
Moses Turner
8cde257817
aux/math: add vec3 overloads for scalar multiplication
2021-11-29 23:23:57 -06:00
Ryan Pavlik
33c0287f8b
xrt: Rename all "num" parameters and fields to "count" (or "capacity" as appropriate)
...
This matches the OpenXR usage: the array is the plural of the element type,
and the count is the singular element type plus "count" (usually CountOutput
because of the two-call idiom)
Includes fixes to other code to match API changes.
2021-11-13 12:04:38 +00:00
Jakob Bornecrantz
62ca16c70e
a/math: Make sure it's safe to pass in the result as either left or right
2021-11-12 10:27:54 +00:00
Ryan Pavlik
a6ae6eb095
a/math: Fix some it's vs its.
2021-11-03 17:23:51 -05:00
Moses Turner
0dee9094b3
aux/math: encourage people to use normalized inputs to math_quat_from_plus_x_z
2021-10-26 10:56:41 +00:00
Ryan Pavlik
5f8cb4e227
a/math: Fix some truncation warnings.
2021-10-19 15:31:29 -05:00
Ryan Pavlik
37c5eee02a
a/math: Refactor one euro filter code
2021-10-02 23:05:22 +01:00
Moses Turner
52f1ce14ca
aux/math: Add m_vec2_lerp
2021-10-02 23:05:19 +01:00
Jakob Bornecrantz
d86adce39d
u/historybuf: Tidy code and work around clang-format CI troubles
2021-09-20 15:54:00 +00:00
Ryan Pavlik
a10a4ab123
a/math: Fix truncation warning due to double literal in float parameter.
2021-09-20 10:06:33 -05:00
Moses Turner
947bac9e54
aux/math: Implement m_relation_history
...
to keep track of past poses of HMDs, controllers, etc.
2021-09-15 12:13:14 -05:00
Moses Turner
9960f0ab22
aux/math: Add tracing for m_predict
2021-09-15 12:13:00 -05:00
Jakob Bornecrantz
cb7563ecd6
m/predict: Add C++ extern guards
2021-09-14 13:42:20 +01:00
Moses Turner
6e5efc850e
aux/math: Add euro filtering
2021-08-18 18:56:10 +00:00
Jakob Bornecrantz
05c61511ab
m/vec2: Add a few more scalar functions
2021-08-17 12:04:49 +01:00
Jakob Bornecrantz
70ceabb56e
m/mat4: Add Matrix 4x4 f64 functions
2021-08-17 12:04:49 +01:00
Moses Turner
7356100696
aux/math: Add m_vec3_project, m_vec3_orthonormalize, m_vec3_lerp, m_vec2_normalize, math_lerp
2021-08-16 21:02:27 +01:00
Dan Weatherford
fabf01ff39
aux/math: Add math_quat_slerp()
2021-06-25 17:40:07 +01:00
Jan Schmidt
4581a7a9a6
aux/math: Implement math_matrix_3x3_inverse.
...
Add a function to invert 3x3 matrices, to reverse 2D
affine transforms.
2021-06-25 17:40:07 +01:00
Moses Turner
017997fba3
aux/math: Add math_map_ranges function
2021-06-21 12:29:31 -05:00
Ryan Pavlik
265c49d337
a/math: Move functionality into official namespaces.
2021-05-04 11:04:32 -05:00
Jakob Bornecrantz
5befa76f42
m/3dof: Add manual way to set the gyro bias
2021-04-28 12:25:53 +00:00