From e312f282b42a046f63471f05b16c1739013a733e Mon Sep 17 00:00:00 2001 From: duarm Date: Mon, 19 Feb 2024 14:34:30 -0300 Subject: [PATCH 1/5] 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 94a1d44..ad9bbd7 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 3cc0593..6eace32 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]); From 7e6a4632561fa2d2f9e427010ec04b70e701cdae Mon Sep 17 00:00:00 2001 From: duarm Date: Mon, 19 Feb 2024 14:38:05 -0300 Subject: [PATCH 2/5] call api --- include/cglm/aabb2d.h | 3 ++- include/cglm/call/aabb2d.h | 6 +++++- src/aabb2d.c | 10 ++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/include/cglm/aabb2d.h b/include/cglm/aabb2d.h index ad9bbd7..6a133ff 100644 --- a/include/cglm/aabb2d.h +++ b/include/cglm/aabb2d.h @@ -169,9 +169,10 @@ glm_aabb2d_diagonal(vec2 aabb[2]) { } /*! - * @brief distance between of min and max + * @brief size of aabb * * @param[in] aabb bounding aabb + * @param[out] dest size */ CGLM_INLINE void diff --git a/include/cglm/call/aabb2d.h b/include/cglm/call/aabb2d.h index 6eace32..fc8ddf3 100644 --- a/include/cglm/call/aabb2d.h +++ b/include/cglm/call/aabb2d.h @@ -50,7 +50,11 @@ glmc_aabb2d_isvalid(vec2 aabb[2]); CGLM_EXPORT float -glmc_aabb2d_size(vec2 aabb[2]); +glmc_aabb2d_diagonal(vec2 aabb[2]); + +CGLM_EXPORT +void +glmc_aabb2d_size(vec2 aabb[2], vec2 dest); CGLM_EXPORT float diff --git a/src/aabb2d.c b/src/aabb2d.c index 80a3ee0..cc651b4 100644 --- a/src/aabb2d.c +++ b/src/aabb2d.c @@ -55,8 +55,14 @@ glmc_aabb2d_isvalid(vec2 aabb[2]) { CGLM_EXPORT float -glmc_aabb2d_size(vec2 aabb[2]) { - return glm_aabb2d_size(aabb); +glmc_aabb2d_diagonal(vec2 aabb[2]) { + return glm_aabb2d_diagonal(aabb); +} + +CGLM_EXPORT +void +glmc_aabb2d_size(vec2 aabb[2], vec2 dest) { + return glm_aabb2d_size(aabb, dest); } CGLM_EXPORT From 131ac68ad337c749bbece7c9ef545e32d4b862de Mon Sep 17 00:00:00 2001 From: duarm Date: Fri, 23 Feb 2024 13:53:25 -0300 Subject: [PATCH 3/5] size -> diag, new sizev --- docs/source/aabb2d.rst | 23 ++++++++++++++++++++--- include/cglm/aabb2d.h | 9 ++++++--- include/cglm/call/aabb2d.h | 4 ++-- src/aabb2d.c | 8 ++++---- 4 files changed, 32 insertions(+), 12 deletions(-) diff --git a/docs/source/aabb2d.rst b/docs/source/aabb2d.rst index 26de1b8..23e811d 100644 --- a/docs/source/aabb2d.rst +++ b/docs/source/aabb2d.rst @@ -17,6 +17,10 @@ convert it before and after calling a cglm aabb2d function. Table of contents (click to go): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Macros: + +1. :c:func:`glm_aabb2d_size` + Functions: 1. :c:func:`glm_aabb2d_copy` @@ -26,7 +30,8 @@ Functions: #. :c:func:`glm_aabb2d_crop_until` #. :c:func:`glm_aabb2d_invalidate` #. :c:func:`glm_aabb2d_isvalid` -#. :c:func:`glm_aabb2d_size` +#. :c:func:`glm_aabb2d_diag` +#. :c:func:`glm_aabb2d_sizev` #. :c:func:`glm_aabb2d_radius` #. :c:func:`glm_aabb2d_center` #. :c:func:`glm_aabb2d_aabb` @@ -111,9 +116,9 @@ Functions documentation Returns: returns true if aabb is valid otherwise false -.. c:function:: float glm_aabb2d_size(vec2 aabb[2]) +.. c:function:: float glm_aabb2d_diag(vec2 aabb[2]) - | distance between of min and max + | distance between min and max Parameters: | *[in]* **aabb** bounding box @@ -121,6 +126,18 @@ Functions documentation Returns: distance between min - max + +.. c:function:: void glm_aabb2d_sizev(vec2 aabb[2], vec2 dest) + + | size vector of aabb + + Parameters: + | *[in]* **aabb** bounding box + | *[out]* **dest** size vector + + Returns: + size vector of aabb max - min + .. c:function:: float glm_aabb2d_radius(vec2 aabb[2]) | radius of sphere which surrounds AABB diff --git a/include/cglm/aabb2d.h b/include/cglm/aabb2d.h index 6a133ff..cb918a7 100644 --- a/include/cglm/aabb2d.h +++ b/include/cglm/aabb2d.h @@ -12,6 +12,9 @@ #include "vec2.h" #include "util.h" +/* DEPRECATED! use _diag */ +#define glm_aabb2d_size(aabb) glm_aabb2d_diag(aabb) + /*! * @brief copy all members of [aabb] to [dest] * @@ -164,7 +167,7 @@ glm_aabb2d_isvalid(vec2 aabb[2]) { */ CGLM_INLINE float -glm_aabb2d_diagonal(vec2 aabb[2]) { +glm_aabb2d_diag(vec2 aabb[2]) { return glm_vec2_distance(aabb[0], aabb[1]); } @@ -176,7 +179,7 @@ glm_aabb2d_diagonal(vec2 aabb[2]) { */ CGLM_INLINE void -glm_aabb2d_size(vec2 aabb[2], vec2 dest) { +glm_aabb2d_sizev(vec2 aabb[2], vec2 dest) { glm_vec2_sub(aabb[1], aabb[0], dest); } @@ -188,7 +191,7 @@ glm_aabb2d_size(vec2 aabb[2], vec2 dest) { CGLM_INLINE float glm_aabb2d_radius(vec2 aabb[2]) { - return glm_aabb2d_diagonal(aabb) * 0.5f; + return glm_aabb2d_diag(aabb) * 0.5f; } /*! diff --git a/include/cglm/call/aabb2d.h b/include/cglm/call/aabb2d.h index fc8ddf3..d35a36b 100644 --- a/include/cglm/call/aabb2d.h +++ b/include/cglm/call/aabb2d.h @@ -50,11 +50,11 @@ glmc_aabb2d_isvalid(vec2 aabb[2]); CGLM_EXPORT float -glmc_aabb2d_diagonal(vec2 aabb[2]); +glmc_aabb2d_diag(vec2 aabb[2]); CGLM_EXPORT void -glmc_aabb2d_size(vec2 aabb[2], vec2 dest); +glmc_aabb2d_sizev(vec2 aabb[2], vec2 dest); CGLM_EXPORT float diff --git a/src/aabb2d.c b/src/aabb2d.c index cc651b4..9ad8791 100644 --- a/src/aabb2d.c +++ b/src/aabb2d.c @@ -55,14 +55,14 @@ glmc_aabb2d_isvalid(vec2 aabb[2]) { CGLM_EXPORT float -glmc_aabb2d_diagonal(vec2 aabb[2]) { - return glm_aabb2d_diagonal(aabb); +glmc_aabb2d_diag(vec2 aabb[2]) { + return glm_aabb2d_diag(aabb); } CGLM_EXPORT void -glmc_aabb2d_size(vec2 aabb[2], vec2 dest) { - return glm_aabb2d_size(aabb, dest); +glmc_aabb2d_sizev(vec2 aabb[2], vec2 dest) { + glm_aabb2d_sizev(aabb, dest); } CGLM_EXPORT From 237432969d537717a337e21f9f4b5a024d85057b Mon Sep 17 00:00:00 2001 From: duarm Date: Fri, 23 Feb 2024 14:01:26 -0300 Subject: [PATCH 4/5] macro for call api too --- src/aabb2d.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/aabb2d.c b/src/aabb2d.c index 9ad8791..da33d90 100644 --- a/src/aabb2d.c +++ b/src/aabb2d.c @@ -8,6 +8,9 @@ #include "../include/cglm/cglm.h" #include "../include/cglm/call.h" +/* DEPRECATED! use _diag */ +#define glmc_aabb2d_size(aabb) glmc_aabb2d_diag(aabb) + CGLM_EXPORT void glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]) { From 0d92bfc7222e56769303c6e45b1368b51af320a9 Mon Sep 17 00:00:00 2001 From: duarm Date: Fri, 23 Feb 2024 14:07:58 -0300 Subject: [PATCH 5/5] docs and call api for _aabb2d_zero --- docs/source/aabb2d.rst | 8 ++++++++ include/cglm/aabb2d.h | 5 ++--- src/aabb2d.c | 6 ++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/docs/source/aabb2d.rst b/docs/source/aabb2d.rst index 23e811d..ec6bd42 100644 --- a/docs/source/aabb2d.rst +++ b/docs/source/aabb2d.rst @@ -24,6 +24,7 @@ Macros: Functions: 1. :c:func:`glm_aabb2d_copy` +#. :c:func:`glm_aabb2d_zero` #. :c:func:`glm_aabb2d_transform` #. :c:func:`glm_aabb2d_merge` #. :c:func:`glm_aabb2d_crop` @@ -50,6 +51,13 @@ Functions documentation | *[in]* **aabb** bounding box | *[out]* **dest** destination +.. c:function:: void glm_aabb2d_zero(vec2 aabb[2]) + + | makes all members of [aabb] 0.0f (zero) + + Parameters: + | *[in, out]* **aabb** bounding box + .. c:function:: void glm_aabb2d_transform(vec2 aabb[2], mat3 m, vec2 dest[2]) | apply transform to Axis-Aligned Bounding Box diff --git a/include/cglm/aabb2d.h b/include/cglm/aabb2d.h index cb918a7..8693ac0 100644 --- a/include/cglm/aabb2d.h +++ b/include/cglm/aabb2d.h @@ -16,10 +16,9 @@ #define glm_aabb2d_size(aabb) glm_aabb2d_diag(aabb) /*! - * @brief copy all members of [aabb] to [dest] + * @brief make [aabb] zero * - * @param[in] aabb source - * @param[out] dest destination + * @param[in, out] aabb */ CGLM_INLINE void diff --git a/src/aabb2d.c b/src/aabb2d.c index da33d90..2e3a3c2 100644 --- a/src/aabb2d.c +++ b/src/aabb2d.c @@ -11,6 +11,12 @@ /* DEPRECATED! use _diag */ #define glmc_aabb2d_size(aabb) glmc_aabb2d_diag(aabb) +CGLM_EXPORT +void +glmc_aabb2d_zero(vec2 aabb[2]) { + glm_aabb2d_zero(aabb); +} + CGLM_EXPORT void glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]) {