Commit graph

104 commits

Author SHA1 Message Date
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
Ryan Pavlik 20053252aa m/space: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik edc6490d74 a/math: Port to using the new zero/identity defines 2021-04-26 22:38:42 +00:00
Moses Turner a027852767 aux/math: implement math_pose_identity. 2021-04-01 02:02:26 +02:00
Moses Turner c776a19e15 aux/math: Implement math_matrix_3x3_multiply. 2021-04-01 02:02:26 +02:00
Jakob Bornecrantz 6ba27de305 m/mathinclude: Apperently _USE_MATH_DEFINES was not enough 2021-03-30 21:27:29 +01:00
Ryan Pavlik b93b082bd3 aux: Fix doxygen warnings 2021-03-26 17:10:53 -05:00
Jakob Bornecrantz a71b3d35d1 m/3dof: Add assert for timestamp paranoia 2021-03-17 01:10:02 +00:00
Mateo de Mayo 75e908552f doc: Fix missing entities from modules documentation 2021-03-06 20:34:35 -03:00
Ryan Pavlik 51704bc2e5 math: Fix doc warnings 2021-02-10 16:09:12 +00:00
Jakob Bornecrantz 026fa2cebb math: Add quat valdiate that only checks within 1% of unit length 2021-01-21 00:33:32 +00:00
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