diff --git a/include/cglm/call/vec2.h b/include/cglm/call/vec2.h index 5814646..2fe5076 100644 --- a/include/cglm/call/vec2.h +++ b/include/cglm/call/vec2.h @@ -193,6 +193,10 @@ CGLM_EXPORT void glmc_vec2_fract(vec2 v, vec2 dest); +CGLM_EXPORT +void +glmc_vec2_floor(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 8da0986..907fa99 100644 --- a/include/cglm/struct/vec2-ext.h +++ b/include/cglm/struct/vec2-ext.h @@ -25,6 +25,7 @@ CGLM_INLINE vec2s glms_vec2_sign(vec2s v) CGLM_INLINE vec2s glms_vec2_abs(vec2s v) CGLM_INLINE vec2s glms_vec2_fract(vec2s v) + CGLM_INLINE vec2s glms_vec2_floor(vec2s v) CGLM_INLINE vec2s glms_vec2_sqrt(vec2s v) */ @@ -213,6 +214,21 @@ glms_vec2_(fract)(vec2s v) { glm_vec2_fract(v.raw, r.raw); return r; } + +/*! + * @brief floor of each vector item + * + * @param[in] v vector + * @returns destination vector + */ +CGLM_INLINE +vec2s +glms_vec2_(floor)(vec2s v) { + vec2s r; + glm_vec2_floor(v.raw, r.raw); + return r; +} + /*! * @brief square root of each vector item * diff --git a/src/vec2.c b/src/vec2.c index 4dfe71f..93742a0 100644 --- a/src/vec2.c +++ b/src/vec2.c @@ -278,6 +278,13 @@ void glmc_vec2_fract(vec2 v, vec2 dest) { glm_vec2_fract(v, dest); } + +CGLM_EXPORT +void +glmc_vec2_floor(vec2 v, vec2 dest) { + glm_vec2_floor(v, dest); +} + CGLM_EXPORT void glmc_vec2_lerp(vec2 from, vec2 to, float t, vec2 dest) {