Data Structures | |
| struct | _Eina_Quaternion |
| struct | _Eina_Quaternion_F16p16 |
| struct | _Eina_Point_3D |
| struct | _Eina_Point_3D_F16p16 |
Typedefs | |
| typedef struct _Eina_Quaternion_F16p16 | Eina_Quaternion_F16p16 |
| typedef struct _Eina_Quaternion | Eina_Quaternion |
| typedef struct _Eina_Point_3D | Eina_Point_3D |
| typedef struct _Eina_Point_3D_F16p16 | Eina_Point_3D_F16p16 |
Functions | |
| EINA_API void | eina_quaternion_f16p16_set (Eina_Quaternion *out, Eina_F16p16 x, Eina_F16p16 y, Eina_F16p16 z, Eina_F16p16 w) |
| EINA_API Eina_F16p16 | eina_quaternion_f16p16_norm (const Eina_Quaternion_F16p16 *q) |
| EINA_API void | eina_quaternion_f16p16_negative (Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *in) |
| EINA_API void | eina_quaternion_f16p16_add (Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *a, const Eina_Quaternion_F16p16 *b) |
| EINA_API void | eina_quaternion_f16p16_mul (Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *a, const Eina_Quaternion_F16p16 *b) |
| EINA_API void | eina_quaternion_f16p16_scale (Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *a, Eina_F16p16 b) |
| EINA_API void | eina_quaternion_f16p16_conjugate (Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *in) |
| EINA_API Eina_F16p16 | eina_quaternion_f16p16_dot (const Eina_Quaternion_F16p16 *a, const Eina_Quaternion_F16p16 *b) |
| EINA_API void | eina_quaternion_f16p16_lerp (Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *a, const Eina_Quaternion_F16p16 *b, Eina_F16p16 pos) |
| EINA_API void | eina_quaternion_f16p16_slerp (Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *a, const Eina_Quaternion_F16p16 *b, Eina_F16p16 pos) |
| EINA_API void | eina_quaternion_f16p16_nlerp (Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *a, const Eina_Quaternion_F16p16 *b, Eina_F16p16 pos) |
| EINA_API void | eina_quaternion_f16p16_rotate (Eina_Point_3D_F16p16 *p, const Eina_Point_3D_F16p16 *center, const Eina_Quaternion_F16p16 *q) |
| EINA_API void | eina_quaternion_f16p16_rotation_matrix3_get (Eina_Matrix3_F16p16 *m, const Eina_Quaternion_F16p16 *q) |
| EINA_API void | eina_quaternion_set (Eina_Quaternion *q, double x, double y, double z, double w) |
| EINA_API double | eina_quaternion_norm (const Eina_Quaternion *q) |
| EINA_API void | eina_quaternion_negative (Eina_Quaternion *out, const Eina_Quaternion *in) |
| EINA_API void | eina_quaternion_add (Eina_Quaternion *out, const Eina_Quaternion *a, const Eina_Quaternion *b) |
| EINA_API void | eina_quaternion_mul (Eina_Quaternion *out, const Eina_Quaternion *a, const Eina_Quaternion *b) |
| EINA_API void | eina_quaternion_scale (Eina_Quaternion *out, const Eina_Quaternion *a, double b) |
| EINA_API void | eina_quaternion_conjugate (Eina_Quaternion *out, const Eina_Quaternion *in) |
| EINA_API double | eina_quaternion_dot (const Eina_Quaternion *a, const Eina_Quaternion *b) |
| EINA_API void | eina_quaternion_normalized (Eina_Quaternion *out, const Eina_Quaternion *in) |
| EINA_API void | eina_quaternion_lerp (Eina_Quaternion *out, const Eina_Quaternion *a, const Eina_Quaternion *b, double pos) |
| EINA_API void | eina_quaternion_slerp (Eina_Quaternion *out, const Eina_Quaternion *a, const Eina_Quaternion *b, double pos) |
| EINA_API void | eina_quaternion_nlerp (Eina_Quaternion *out, const Eina_Quaternion *a, const Eina_Quaternion *b, double pos) |
| EINA_API void | eina_quaternion_rotate (Eina_Point_3D *p, const Eina_Point_3D *center, const Eina_Quaternion *q) |
| EINA_API void | eina_quaternion_rotation_matrix3_get (Eina_Matrix3 *m, const Eina_Quaternion *q) |
| EINA_API void | eina_matrix3_quaternion_get (Eina_Quaternion *q, const Eina_Matrix3 *m) |
| EINA_API Eina_Bool | eina_matrix4_quaternion_to (Eina_Quaternion *rotation, Eina_Quaternion *perspective, Eina_Point_3D *translation, Eina_Point_3D *scale, Eina_Point_3D *skew, const Eina_Matrix4 *m) |
| EINA_API void | eina_quaternion_matrix4_to (Eina_Matrix4 *m, const Eina_Quaternion *rotation, const Eina_Quaternion *perspective, const Eina_Point_3D *translation, const Eina_Point_3D *scale, const Eina_Point_3D *skew) |
| EINA_API void | eina_quaternion_inverse (Eina_Quaternion *out, const Eina_Quaternion *q) |
| Compute the inverse of the given quaternion. | |
| EINA_API void | eina_quaternion_array_set (Eina_Quaternion *dst, const double *v) |
| Set array to quaternion. | |
| EINA_API void | eina_quaternion_copy (Eina_Quaternion *dst, const Eina_Quaternion *src) |
| Copy quaternion. | |
| EINA_API void | eina_quaternion_homogeneous_regulate (Eina_Quaternion *out, const Eina_Quaternion *v) |
| Homogeneous quaternion. | |
| EINA_API void | eina_quaternion_subtract (Eina_Quaternion *out, const Eina_Quaternion *a, const Eina_Quaternion *b) |
| Subtract two quaternions. | |
| EINA_API double | eina_quaternion_length_get (const Eina_Quaternion *v) |
| Return the length of the given quaternion. | |
| EINA_API double | eina_quaternion_length_square_get (const Eina_Quaternion *v) |
| Return the length in square of the given quaternion. | |
| EINA_API double | eina_quaternion_distance_get (const Eina_Quaternion *a, const Eina_Quaternion *b) |
| Return the distance between of two quaternions. | |
| EINA_API double | eina_quaternion_distance_square_get (const Eina_Quaternion *a, const Eina_Quaternion *b) |
| Return the distance in square between of two quaternions. | |
| EINA_API void | eina_quaternion_transform (Eina_Quaternion *out, const Eina_Quaternion *v, const Eina_Matrix4 *m) |
| Transform quaternion. | |
| EINA_API double | eina_quaternion_angle_plains (Eina_Quaternion *a, Eina_Quaternion *b) |
| Return the angle plains between of two quaternions. | |
| EINA_API void eina_quaternion_f16p16_set | ( | Eina_Quaternion * | out, |
| Eina_F16p16 | x, | ||
| Eina_F16p16 | y, | ||
| Eina_F16p16 | z, | ||
| Eina_F16p16 | w ) |
| EINA_API Eina_F16p16 eina_quaternion_f16p16_norm | ( | const Eina_Quaternion_F16p16 * | q | ) |
References eina_f16p16_add(), eina_f16p16_mul(), and eina_f16p16_sqrt().
| EINA_API void eina_quaternion_f16p16_negative | ( | Eina_Quaternion_F16p16 * | out, |
| const Eina_Quaternion_F16p16 * | in ) |
References eina_f16p16_sub().
Referenced by eina_quaternion_f16p16_nlerp(), and eina_quaternion_f16p16_slerp().
| EINA_API void eina_quaternion_f16p16_add | ( | Eina_Quaternion_F16p16 * | out, |
| const Eina_Quaternion_F16p16 * | a, | ||
| const Eina_Quaternion_F16p16 * | b ) |
References eina_f16p16_add().
Referenced by eina_quaternion_f16p16_nlerp(), and eina_quaternion_f16p16_slerp().
| EINA_API void eina_quaternion_f16p16_mul | ( | Eina_Quaternion_F16p16 * | out, |
| const Eina_Quaternion_F16p16 * | a, | ||
| const Eina_Quaternion_F16p16 * | b ) |
References eina_f16p16_add(), eina_f16p16_mul(), and eina_f16p16_sub().
| EINA_API void eina_quaternion_f16p16_scale | ( | Eina_Quaternion_F16p16 * | out, |
| const Eina_Quaternion_F16p16 * | a, | ||
| Eina_F16p16 | b ) |
References eina_f16p16_scale().
Referenced by eina_quaternion_f16p16_nlerp(), and eina_quaternion_f16p16_slerp().
| EINA_API void eina_quaternion_f16p16_conjugate | ( | Eina_Quaternion_F16p16 * | out, |
| const Eina_Quaternion_F16p16 * | in ) |
References eina_f16p16_sub().
| EINA_API Eina_F16p16 eina_quaternion_f16p16_dot | ( | const Eina_Quaternion_F16p16 * | a, |
| const Eina_Quaternion_F16p16 * | b ) |
References eina_f16p16_add(), and eina_f16p16_mul().
Referenced by eina_quaternion_f16p16_nlerp(), and eina_quaternion_f16p16_slerp().
| EINA_API void eina_quaternion_f16p16_lerp | ( | Eina_Quaternion_F16p16 * | out, |
| const Eina_Quaternion_F16p16 * | a, | ||
| const Eina_Quaternion_F16p16 * | b, | ||
| Eina_F16p16 | pos ) |
References eina_f16p16_add(), eina_f16p16_int_from(), eina_f16p16_mul(), and eina_f16p16_sub().
| EINA_API void eina_quaternion_f16p16_slerp | ( | Eina_Quaternion_F16p16 * | out, |
| const Eina_Quaternion_F16p16 * | a, | ||
| const Eina_Quaternion_F16p16 * | b, | ||
| Eina_F16p16 | pos ) |
References eina_f16p16_double_to(), eina_f16p16_float_from(), eina_f16p16_int_from(), eina_f16p16_sub(), eina_f16p16_to_f32p32(), eina_f32p32_div(), eina_f32p32_double_from(), eina_f32p32_mul(), eina_f32p32_sin(), eina_f32p32_to_f16p16(), eina_quaternion_f16p16_add(), eina_quaternion_f16p16_dot(), eina_quaternion_f16p16_negative(), and eina_quaternion_f16p16_scale().
| EINA_API void eina_quaternion_f16p16_nlerp | ( | Eina_Quaternion_F16p16 * | out, |
| const Eina_Quaternion_F16p16 * | a, | ||
| const Eina_Quaternion_F16p16 * | b, | ||
| Eina_F16p16 | pos ) |
| EINA_API void eina_quaternion_f16p16_rotate | ( | Eina_Point_3D_F16p16 * | p, |
| const Eina_Point_3D_F16p16 * | center, | ||
| const Eina_Quaternion_F16p16 * | q ) |
References eina_f16p16_add(), eina_f16p16_mul(), eina_f16p16_scale(), and eina_f16p16_sub().
| EINA_API void eina_quaternion_f16p16_rotation_matrix3_get | ( | Eina_Matrix3_F16p16 * | m, |
| const Eina_Quaternion_F16p16 * | q ) |
References eina_f16p16_add(), eina_f16p16_int_to(), eina_f16p16_mul(), eina_f16p16_scale(), and eina_f16p16_sub().
| EINA_API double eina_quaternion_norm | ( | const Eina_Quaternion * | q | ) |
Referenced by eina_quaternion_normalized().
| EINA_API void eina_quaternion_negative | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | in ) |
Referenced by eina_quaternion_nlerp(), and eina_quaternion_slerp().
| EINA_API void eina_quaternion_add | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | a, | ||
| const Eina_Quaternion * | b ) |
Referenced by eina_quaternion_nlerp(), and eina_quaternion_slerp().
| EINA_API void eina_quaternion_mul | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | a, | ||
| const Eina_Quaternion * | b ) |
| EINA_API void eina_quaternion_scale | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | a, | ||
| double | b ) |
Referenced by eina_quaternion_nlerp(), eina_quaternion_normalized(), and eina_quaternion_slerp().
| EINA_API void eina_quaternion_conjugate | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | in ) |
| EINA_API double eina_quaternion_dot | ( | const Eina_Quaternion * | a, |
| const Eina_Quaternion * | b ) |
Referenced by eina_quaternion_nlerp(), and eina_quaternion_slerp().
| EINA_API void eina_quaternion_normalized | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | in ) |
References eina_quaternion_norm(), and eina_quaternion_scale().
Referenced by eina_quaternion_nlerp().
| EINA_API void eina_quaternion_lerp | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | a, | ||
| const Eina_Quaternion * | b, | ||
| double | pos ) |
References EINA_DBL_EQ.
| EINA_API void eina_quaternion_slerp | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | a, | ||
| const Eina_Quaternion * | b, | ||
| double | pos ) |
References EINA_DBL_EQ, eina_quaternion_add(), eina_quaternion_dot(), eina_quaternion_negative(), and eina_quaternion_scale().
| EINA_API void eina_quaternion_nlerp | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | a, | ||
| const Eina_Quaternion * | b, | ||
| double | pos ) |
References EINA_DBL_EQ, eina_quaternion_add(), eina_quaternion_dot(), eina_quaternion_negative(), eina_quaternion_normalized(), and eina_quaternion_scale().
| EINA_API void eina_quaternion_rotate | ( | Eina_Point_3D * | p, |
| const Eina_Point_3D * | center, | ||
| const Eina_Quaternion * | q ) |
| EINA_API void eina_quaternion_rotation_matrix3_get | ( | Eina_Matrix3 * | m, |
| const Eina_Quaternion * | q ) |
| EINA_API void eina_matrix3_quaternion_get | ( | Eina_Quaternion * | q, |
| const Eina_Matrix3 * | m ) |
| EINA_API Eina_Bool eina_matrix4_quaternion_to | ( | Eina_Quaternion * | rotation, |
| Eina_Quaternion * | perspective, | ||
| Eina_Point_3D * | translation, | ||
| Eina_Point_3D * | scale, | ||
| Eina_Point_3D * | skew, | ||
| const Eina_Matrix4 * | m ) |
References EINA_DBL_EQ, EINA_FALSE, eina_matrix4_determinant(), eina_matrix4_inverse(), eina_matrix4_transpose(), and EINA_TRUE.
| EINA_API void eina_quaternion_matrix4_to | ( | Eina_Matrix4 * | m, |
| const Eina_Quaternion * | rotation, | ||
| const Eina_Quaternion * | perspective, | ||
| const Eina_Point_3D * | translation, | ||
| const Eina_Point_3D * | scale, | ||
| const Eina_Point_3D * | skew ) |
References EINA_DBL_EQ, eina_matrix4_identity(), and eina_matrix4_multiply().
| EINA_API void eina_quaternion_inverse | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | q ) |
Compute the inverse of the given quaternion.
| [out] | out | The quaternion to invert. |
| [in] | q | The quaternion matrix. |
This function inverses the quaternion q and stores the result in out.
| EINA_API void eina_quaternion_array_set | ( | Eina_Quaternion * | dst, |
| const double * | v ) |
Set array to quaternion.
| [out] | dst | The result quaternion |
| [in] | v | The the array[4] for set |
Set to quaternion first 4 elements from array
| EINA_API void eina_quaternion_copy | ( | Eina_Quaternion * | dst, |
| const Eina_Quaternion * | src ) |
Copy quaternion.
| [out] | dst | The quaternion copy |
| [in] | src | The quaternion for copy. |
Referenced by eina_quaternion_transform().
| EINA_API void eina_quaternion_homogeneous_regulate | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | v ) |
Homogeneous quaternion.
| [out] | out | The resulting quaternion |
| [in] | v | The given quaternion |
References EINA_DBL_EQ.
| EINA_API void eina_quaternion_subtract | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | a, | ||
| const Eina_Quaternion * | b ) |
Subtract two quaternions.
| [out] | out | The resulting quaternion |
| [in] | a | The first member of the subtract |
| [in] | b | The second member of the subtract |
Referenced by eina_quaternion_distance_get(), and eina_quaternion_distance_square_get().
| EINA_API double eina_quaternion_length_get | ( | const Eina_Quaternion * | v | ) |
Return the length of the given quaternion.
| [out] | v | The quaternion. |
Referenced by eina_quaternion_distance_get().
| EINA_API double eina_quaternion_length_square_get | ( | const Eina_Quaternion * | v | ) |
Return the length in square of the given quaternion.
| [out] | v | The quaternion. |
Referenced by eina_quaternion_distance_square_get().
| EINA_API double eina_quaternion_distance_get | ( | const Eina_Quaternion * | a, |
| const Eina_Quaternion * | b ) |
Return the distance between of two quaternions.
| [in] | a | The first quaternion. |
| [in] | b | The second quaternion. |
References eina_quaternion_length_get(), and eina_quaternion_subtract().
| EINA_API double eina_quaternion_distance_square_get | ( | const Eina_Quaternion * | a, |
| const Eina_Quaternion * | b ) |
Return the distance in square between of two quaternions.
| [in] | a | The first quaternion. |
| [in] | b | The second quaternion. |
References eina_quaternion_length_square_get(), and eina_quaternion_subtract().
| EINA_API void eina_quaternion_transform | ( | Eina_Quaternion * | out, |
| const Eina_Quaternion * | v, | ||
| const Eina_Matrix4 * | m ) |
Transform quaternion.
| [out] | out | The result quaternion. |
| [in] | v | The quaternion for transform. |
| [in] | m | The matrix for transform. |
References eina_matrix4_type_get(), EINA_MATRIX_TYPE_IDENTITY, and eina_quaternion_copy().
| EINA_API double eina_quaternion_angle_plains | ( | Eina_Quaternion * | a, |
| Eina_Quaternion * | b ) |
Return the angle plains between of two quaternions.
| [in] | a | The first quaternion. |
| [in] | b | The second quaternion. |