Monado OpenXR Runtime
|
C interface to math library. More...
#include "xrt/xrt_defines.h"
Go to the source code of this file.
Macros | |
#define | MATH_GRAVITY_M_S2 (9.8066) |
Standard gravity acceleration constant. More... | |
#define | MIN(A, B) ((A) < (B) ? (A) : (B)) |
Minimum of A and B. More... | |
#define | MAX(A, B) ((A) > (B) ? (A) : (B)) |
Maximum of A and B. More... | |
#define | CLAMP(X, A, B) (MIN(MAX((X), (A)), (B))) |
X clamped to the range [A, B]. More... | |
Functions | |
size_t | math_hash_string (const char *str_c, size_t length) |
Generate a hash value from the given string, trailing zero not included. More... | |
void | math_matrix_3x3_identity (struct xrt_matrix_3x3 *mat) |
Initialize a 3x3 matrix to the identity matrix. More... | |
void | math_matrix_3x3_from_quat (const struct xrt_quat *q, struct xrt_matrix_3x3 *result_out) |
Initialize a 3x3 matrix from a quaternion. More... | |
void | math_matrix_3x3_f64_identity (struct xrt_matrix_3x3_f64 *mat) |
Initialize a double 3x3 matrix to the identity matrix. More... | |
void | math_matrix_3x3_transform_vec3 (const struct xrt_matrix_3x3 *left, const struct xrt_vec3 *right, struct xrt_vec3 *result_out) |
Transform a vec3 by a 3x3 matrix. More... | |
void | math_matrix_4x4_transform_vec3 (const struct xrt_matrix_4x4 *left, const struct xrt_vec3 *right, struct xrt_vec3 *result_out) |
Transform a vec3 by a 4x4 matrix, extending the vector with w = 1.0. More... | |
void | math_matrix_3x3_f64_transform_vec3_f64 (const struct xrt_matrix_3x3_f64 *left, const struct xrt_vec3_f64 *right, struct xrt_vec3_f64 *result_out) |
Transform a double vec3 by a 3x3 double matrix. More... | |
static double | math_map_ranges (double value, double from_low, double from_high, double to_low, double to_high) |
Map a number from one range to another range. More... | |
static double | math_lerp (double from, double to, double amount) |
bool | math_compute_fovs (double w_total, double w_1, double horizfov_total, double h_total, double h_1, double vertfov_total, struct xrt_fov *fov) |
Perform the computations from "Computing Half-Fields-Of-View from Simpler Display Models", to get half-FOVs from things we can retrieve from other APIs. More... | |
C interface to math library.
|
inlinestatic |
Map a number from one range to another range.
Exactly the same as Arduino's map().