From e312f282b42a046f63471f05b16c1739013a733e Mon Sep 17 00:00:00 2001 From: duarm Date: Mon, 19 Feb 2024 14:34:30 -0300 Subject: [PATCH] glm_aabb2d_zero, _size -> _diagonal, new _size --- include/cglm/aabb2d.h | 29 ++++++++++++++++++++++++++--- include/cglm/call/aabb2d.h | 4 ++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/include/cglm/aabb2d.h b/include/cglm/aabb2d.h index 94a1d44a..ad9bbd70 100644 --- a/include/cglm/aabb2d.h +++ b/include/cglm/aabb2d.h @@ -10,9 +10,21 @@ #include "common.h" #include "vec2.h" -#include "vec4.h" #include "util.h" +/*! + * @brief copy all members of [aabb] to [dest] + * + * @param[in] aabb source + * @param[out] dest destination + */ +CGLM_INLINE +void +glm_aabb2d_zero(vec2 aabb[2]) { + glm_vec2_zero(aabb[0]); + glm_vec2_zero(aabb[1]); +} + /*! * @brief copy all members of [aabb] to [dest] * @@ -152,10 +164,21 @@ glm_aabb2d_isvalid(vec2 aabb[2]) { */ CGLM_INLINE float -glm_aabb2d_size(vec2 aabb[2]) { +glm_aabb2d_diagonal(vec2 aabb[2]) { return glm_vec2_distance(aabb[0], aabb[1]); } +/*! + * @brief distance between of min and max + * + * @param[in] aabb bounding aabb + */ +CGLM_INLINE +void +glm_aabb2d_size(vec2 aabb[2], vec2 dest) { + glm_vec2_sub(aabb[1], aabb[0], dest); +} + /*! * @brief radius of sphere which surrounds AABB * @@ -164,7 +187,7 @@ glm_aabb2d_size(vec2 aabb[2]) { CGLM_INLINE float glm_aabb2d_radius(vec2 aabb[2]) { - return glm_aabb2d_size(aabb) * 0.5f; + return glm_aabb2d_diagonal(aabb) * 0.5f; } /*! diff --git a/include/cglm/call/aabb2d.h b/include/cglm/call/aabb2d.h index 3cc05931..6eace328 100644 --- a/include/cglm/call/aabb2d.h +++ b/include/cglm/call/aabb2d.h @@ -13,6 +13,10 @@ extern "C" { #include "../cglm.h" +CGLM_EXPORT +void +glmc_aabb2d_zero(vec2 aabb[2]); + CGLM_EXPORT void glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]);