Add dynamic/struct versions of routines

This commit is contained in:
Maxim Kasyanenko
2021-11-08 17:52:31 -08:00
parent 4603816330
commit 896ba0a0f9
2 changed files with 53 additions and 0 deletions

View File

@@ -149,6 +149,18 @@ CGLM_EXPORT
void
glmc_vec2_lerp(vec2 from, vec2 to, float t, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_complex_mul(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_complex_div(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_complex_conjugate(vec2 a, vec2 dest);
#ifdef __cplusplus
}
#endif

View File

@@ -195,4 +195,45 @@ glms_vec2_sqrt(vec2s v) {
return r;
}
/*!
* @brief treat vectors as complex numbers and multiply them as such.
*
* @param[in] a left number
* @param[in] b right number
* @param[out] dest destination number
*/
CGLM_INLINE
vec2s
glms_vec2_complex_mul(vec2s a, vec2s b, vec2s dest) {
glm_vec2_complex_mul(a.raw, b.raw, dest.raw);
return dest;
}
/*!
* @brief treat vectors as complex numbers and divide them as such.
*
* @param[in] a left number (numerator)
* @param[in] b right number (denominator)
* @param[out] dest destination number
*/
CGLM_INLINE
vec2s
glms_vec2_complex_div(vec2s a, vec2s b, vec2s dest) {
glm_vec2_complex_div(a.raw, b.raw, dest.raw);
return dest;
}
/*!
* @brief treat the vector as a complex number and conjugate it as such.
*
* @param[in] a the number
* @param[out] dest destination number
*/
CGLM_INLINE
vec2s
glms_vec2_complex_conjugate(vec2s a, vec2s dest) {
glm_vec2_complex_conjugate(a.raw, dest.raw);
return dest;
}
#endif /* cglms_vec2s_ext_h */