From e14c730d5c9ef63163d64f9635452a77f4c60c84 Mon Sep 17 00:00:00 2001 From: Marcin Date: Sat, 18 Jan 2025 16:47:35 +0000 Subject: [PATCH] mods boilerplate --- include/cglm/call/vec2.h | 4 ++++ include/cglm/call/vec3.h | 4 ++++ include/cglm/call/vec4.h | 4 ++++ include/cglm/struct/vec2-ext.h | 15 +++++++++++++++ include/cglm/struct/vec3-ext.h | 15 +++++++++++++++ include/cglm/struct/vec4-ext.h | 15 +++++++++++++++ src/vec2.c | 6 ++++++ src/vec3.c | 6 ++++++ src/vec4.c | 6 ++++++ 9 files changed, 75 insertions(+) diff --git a/include/cglm/call/vec2.h b/include/cglm/call/vec2.h index 2fe5076..413d261 100644 --- a/include/cglm/call/vec2.h +++ b/include/cglm/call/vec2.h @@ -197,6 +197,10 @@ CGLM_EXPORT void glmc_vec2_floor(vec2 v, vec2 dest); +CGLM_EXPORT +void +glmc_vec2_mods(vec2 v, float s, vec2 dest); + CGLM_EXPORT void glmc_vec2_lerp(vec2 from, vec2 to, float t, vec2 dest); diff --git a/include/cglm/call/vec3.h b/include/cglm/call/vec3.h index 4f6e21d..660e464 100644 --- a/include/cglm/call/vec3.h +++ b/include/cglm/call/vec3.h @@ -326,6 +326,10 @@ CGLM_EXPORT void glmc_vec3_floor(vec3 v, vec3 dest); +CGLM_EXPORT +void +glmc_vec3_mods(vec3 v, float s, vec3 dest); + CGLM_EXPORT float glmc_vec3_hadd(vec3 v); diff --git a/include/cglm/call/vec4.h b/include/cglm/call/vec4.h index 657e8c0..c756700 100644 --- a/include/cglm/call/vec4.h +++ b/include/cglm/call/vec4.h @@ -303,6 +303,10 @@ CGLM_EXPORT void glmc_vec4_floor(vec4 v, vec4 dest); +CGLM_EXPORT +void +glmc_vec4_mods(vec4 v, float s, vec4 dest); + CGLM_EXPORT float glmc_vec4_hadd(vec4 v); diff --git a/include/cglm/struct/vec2-ext.h b/include/cglm/struct/vec2-ext.h index 907fa99..d1bf953 100644 --- a/include/cglm/struct/vec2-ext.h +++ b/include/cglm/struct/vec2-ext.h @@ -229,6 +229,21 @@ glms_vec2_(floor)(vec2s v) { return r; } +/*! + * @brief mod of each vector item by scalar + * + * @param[in] v vector + * @param[in] s scalar + * @returns destination vector + */ +CGLM_INLINE +vec2s +glms_vec2_(mods)(vec2s v, float s) { + vec2s r; + glm_vec2_mods(v.raw, s, r.raw); + return r; +} + /*! * @brief square root of each vector item * diff --git a/include/cglm/struct/vec3-ext.h b/include/cglm/struct/vec3-ext.h index f9ce728..bdaa42c 100644 --- a/include/cglm/struct/vec3-ext.h +++ b/include/cglm/struct/vec3-ext.h @@ -245,6 +245,21 @@ glms_vec3_(floor)(vec3s v) { return r; } +/*! + * @brief mod of each vector item by scalar + * + * @param[in] v vector + * @param[in] s scalar + * @returns destination vector + */ +CGLM_INLINE +vec3s +glms_vec3_(mods)(vec3s v, float s) { + vec3s r; + glm_vec3_mods(v.raw, s, r.raw); + return r; +} + /*! * @brief vector reduction by summation * @warning could overflow diff --git a/include/cglm/struct/vec4-ext.h b/include/cglm/struct/vec4-ext.h index 07e73a1..c6dd983 100644 --- a/include/cglm/struct/vec4-ext.h +++ b/include/cglm/struct/vec4-ext.h @@ -245,6 +245,21 @@ glms_vec4_(floor)(vec4s v) { return r; } +/*! + * @brief mod of each vector item by scalar + * + * @param[in] v vector + * @param[in] s scalar + * @returns destination vector + */ +CGLM_INLINE +vec4s +glms_vec4_(mods)(vec4s v, float s) { + vec4s r; + glm_vec4_mods(v.raw, s, r.raw); + return r; +} + /*! * @brief vector reduction by summation * @warning could overflow diff --git a/src/vec2.c b/src/vec2.c index 93742a0..f7b0b5a 100644 --- a/src/vec2.c +++ b/src/vec2.c @@ -285,6 +285,12 @@ glmc_vec2_floor(vec2 v, vec2 dest) { glm_vec2_floor(v, dest); } +CGLM_EXPORT +void +glmc_vec2_mods(vec2 v, float s, vec2 dest) { + glm_vec2_mods(v, s, dest); +} + CGLM_EXPORT void glmc_vec2_lerp(vec2 from, vec2 to, float t, vec2 dest) { diff --git a/src/vec3.c b/src/vec3.c index 8427236..2901580 100644 --- a/src/vec3.c +++ b/src/vec3.c @@ -448,6 +448,12 @@ glmc_vec3_floor(vec3 v, vec3 dest) { glm_vec3_floor(v, dest); } +CGLM_EXPORT +void +glmc_vec3_mods(vec3 v, float s, vec3 dest) { + glm_vec3_mods(v, s, dest); +} + CGLM_EXPORT float glmc_vec3_hadd(vec3 v) { diff --git a/src/vec4.c b/src/vec4.c index 0cf4ed9..7d5e052 100644 --- a/src/vec4.c +++ b/src/vec4.c @@ -412,6 +412,12 @@ glmc_vec4_floor(vec4 v, vec4 dest) { glm_vec4_floor(v, dest); } +CGLM_EXPORT +void +glmc_vec4_mods(vec4 v, float s, vec4 dest) { + glm_vec4_mods(v, s, dest); +} + CGLM_EXPORT float glmc_vec4_hadd(vec4 v) {