From 3c9eecd0be46431e5432c6887dda350eb7847e73 Mon Sep 17 00:00:00 2001 From: Marcin Date: Sat, 18 Jan 2025 12:49:27 +0000 Subject: [PATCH] vec2_fract boilerplate --- include/cglm/call/vec2.h | 4 ++++ include/cglm/struct/vec2-ext.h | 14 ++++++++++++++ include/cglm/vec2-ext.h | 1 + src/vec2.c | 5 +++++ 4 files changed, 24 insertions(+) diff --git a/include/cglm/call/vec2.h b/include/cglm/call/vec2.h index 4264887..5814646 100644 --- a/include/cglm/call/vec2.h +++ b/include/cglm/call/vec2.h @@ -189,6 +189,10 @@ CGLM_EXPORT void glmc_vec2_abs(vec2 v, vec2 dest); +CGLM_EXPORT +void +glmc_vec2_fract(vec2 v, vec2 dest); + CGLM_EXPORT void glmc_vec2_lerp(vec2 from, vec2 to, float t, vec2 dest); diff --git a/include/cglm/struct/vec2-ext.h b/include/cglm/struct/vec2-ext.h index 7d77386..6642538 100644 --- a/include/cglm/struct/vec2-ext.h +++ b/include/cglm/struct/vec2-ext.h @@ -23,6 +23,7 @@ CGLM_INLINE bool glms_vec2_isinf(vec2s v) CGLM_INLINE bool glms_vec2_isvalid(vec2s v) CGLM_INLINE vec2s glms_vec2_sign(vec2s v) + CGLM_INLINE vec2s glms_vec2_fract(vec2s v) CGLM_INLINE vec2s glms_vec2_sqrt(vec2s v) */ @@ -184,6 +185,19 @@ glms_vec2_(sign)(vec2s v) { return r; } +/*! + * @brief fractional part of each vector item + * + * @param[in] v vector + * @returns destination vector + */ +CGLM_INLINE +vec2s +glms_vec2_(fract)(vec2s v) { + vec2s r; + glm_vec2_fract(v.raw, r.raw); + return r; +} /*! * @brief square root of each vector item * diff --git a/include/cglm/vec2-ext.h b/include/cglm/vec2-ext.h index 0175885..6920080 100644 --- a/include/cglm/vec2-ext.h +++ b/include/cglm/vec2-ext.h @@ -20,6 +20,7 @@ CGLM_INLINE bool glm_vec2_isvalid(vec2 v); CGLM_INLINE void glm_vec2_sign(vec2 v, vec2 dest); CGLM_INLINE void glm_vec2_abs(vec2 v, vec2 dest); + CGLM_INLINE void glm_vec2_fract(vec2 v, vec2 dest); CGLM_INLINE void glm_vec2_sqrt(vec2 v, vec2 dest); CGLM_INLINE void glm_vec2_complex_mul(vec2 a, vec2 b, vec2 dest) CGLM_INLINE void glm_vec2_complex_div(vec2 a, vec2 b, vec2 dest) diff --git a/src/vec2.c b/src/vec2.c index b124f86..4dfe71f 100644 --- a/src/vec2.c +++ b/src/vec2.c @@ -273,6 +273,11 @@ glmc_vec2_abs(vec2 v, vec2 dest) { glm_vec2_abs(v, dest); } +CGLM_EXPORT +void +glmc_vec2_fract(vec2 v, vec2 dest) { + glm_vec2_fract(v, dest); +} CGLM_EXPORT void glmc_vec2_lerp(vec2 from, vec2 to, float t, vec2 dest) {