Skip to content

Commit b7e4c96

Browse files
authored
Merge pull request #392 from duarm/master
aabb2d_zero, aabb2d_diagonal and aabb2d_size
2 parents 78fb330 + 0d92bfc commit b7e4c96

File tree

4 files changed

+83
-9
lines changed

4 files changed

+83
-9
lines changed

docs/source/aabb2d.rst

+28-3
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,22 @@ convert it before and after calling a cglm aabb2d function.
1717
Table of contents (click to go):
1818
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1919

20+
Macros:
21+
22+
1. :c:func:`glm_aabb2d_size`
23+
2024
Functions:
2125

2226
1. :c:func:`glm_aabb2d_copy`
27+
#. :c:func:`glm_aabb2d_zero`
2328
#. :c:func:`glm_aabb2d_transform`
2429
#. :c:func:`glm_aabb2d_merge`
2530
#. :c:func:`glm_aabb2d_crop`
2631
#. :c:func:`glm_aabb2d_crop_until`
2732
#. :c:func:`glm_aabb2d_invalidate`
2833
#. :c:func:`glm_aabb2d_isvalid`
29-
#. :c:func:`glm_aabb2d_size`
34+
#. :c:func:`glm_aabb2d_diag`
35+
#. :c:func:`glm_aabb2d_sizev`
3036
#. :c:func:`glm_aabb2d_radius`
3137
#. :c:func:`glm_aabb2d_center`
3238
#. :c:func:`glm_aabb2d_aabb`
@@ -45,6 +51,13 @@ Functions documentation
4551
| *[in]* **aabb** bounding box
4652
| *[out]* **dest** destination
4753
54+
.. c:function:: void glm_aabb2d_zero(vec2 aabb[2])
55+
56+
| makes all members of [aabb] 0.0f (zero)
57+
58+
Parameters:
59+
| *[in, out]* **aabb** bounding box
60+
4861
.. c:function:: void glm_aabb2d_transform(vec2 aabb[2], mat3 m, vec2 dest[2])
4962
5063
| apply transform to Axis-Aligned Bounding Box
@@ -111,16 +124,28 @@ Functions documentation
111124
Returns:
112125
returns true if aabb is valid otherwise false
113126
114-
.. c:function:: float glm_aabb2d_size(vec2 aabb[2])
127+
.. c:function:: float glm_aabb2d_diag(vec2 aabb[2])
115128
116-
| distance between of min and max
129+
| distance between min and max
117130
118131
Parameters:
119132
| *[in]* **aabb** bounding box
120133
121134
Returns:
122135
distance between min - max
123136
137+
138+
.. c:function:: void glm_aabb2d_sizev(vec2 aabb[2], vec2 dest)
139+
140+
| size vector of aabb
141+
142+
Parameters:
143+
| *[in]* **aabb** bounding box
144+
| *[out]* **dest** size vector
145+
146+
Returns:
147+
size vector of aabb max - min
148+
124149
.. c:function:: float glm_aabb2d_radius(vec2 aabb[2])
125150
126151
| radius of sphere which surrounds AABB

include/cglm/aabb2d.h

+29-3
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,23 @@
1010

1111
#include "common.h"
1212
#include "vec2.h"
13-
#include "vec4.h"
1413
#include "util.h"
1514

15+
/* DEPRECATED! use _diag */
16+
#define glm_aabb2d_size(aabb) glm_aabb2d_diag(aabb)
17+
18+
/*!
19+
* @brief make [aabb] zero
20+
*
21+
* @param[in, out] aabb
22+
*/
23+
CGLM_INLINE
24+
void
25+
glm_aabb2d_zero(vec2 aabb[2]) {
26+
glm_vec2_zero(aabb[0]);
27+
glm_vec2_zero(aabb[1]);
28+
}
29+
1630
/*!
1731
* @brief copy all members of [aabb] to [dest]
1832
*
@@ -152,10 +166,22 @@ glm_aabb2d_isvalid(vec2 aabb[2]) {
152166
*/
153167
CGLM_INLINE
154168
float
155-
glm_aabb2d_size(vec2 aabb[2]) {
169+
glm_aabb2d_diag(vec2 aabb[2]) {
156170
return glm_vec2_distance(aabb[0], aabb[1]);
157171
}
158172

173+
/*!
174+
* @brief size of aabb
175+
*
176+
* @param[in] aabb bounding aabb
177+
* @param[out] dest size
178+
*/
179+
CGLM_INLINE
180+
void
181+
glm_aabb2d_sizev(vec2 aabb[2], vec2 dest) {
182+
glm_vec2_sub(aabb[1], aabb[0], dest);
183+
}
184+
159185
/*!
160186
* @brief radius of sphere which surrounds AABB
161187
*
@@ -164,7 +190,7 @@ glm_aabb2d_size(vec2 aabb[2]) {
164190
CGLM_INLINE
165191
float
166192
glm_aabb2d_radius(vec2 aabb[2]) {
167-
return glm_aabb2d_size(aabb) * 0.5f;
193+
return glm_aabb2d_diag(aabb) * 0.5f;
168194
}
169195

170196
/*!

include/cglm/call/aabb2d.h

+9-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ extern "C" {
1313

1414
#include "../cglm.h"
1515

16+
CGLM_EXPORT
17+
void
18+
glmc_aabb2d_zero(vec2 aabb[2]);
19+
1620
CGLM_EXPORT
1721
void
1822
glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]);
@@ -46,7 +50,11 @@ glmc_aabb2d_isvalid(vec2 aabb[2]);
4650

4751
CGLM_EXPORT
4852
float
49-
glmc_aabb2d_size(vec2 aabb[2]);
53+
glmc_aabb2d_diag(vec2 aabb[2]);
54+
55+
CGLM_EXPORT
56+
void
57+
glmc_aabb2d_sizev(vec2 aabb[2], vec2 dest);
5058

5159
CGLM_EXPORT
5260
float

src/aabb2d.c

+17-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@
88
#include "../include/cglm/cglm.h"
99
#include "../include/cglm/call.h"
1010

11+
/* DEPRECATED! use _diag */
12+
#define glmc_aabb2d_size(aabb) glmc_aabb2d_diag(aabb)
13+
14+
CGLM_EXPORT
15+
void
16+
glmc_aabb2d_zero(vec2 aabb[2]) {
17+
glm_aabb2d_zero(aabb);
18+
}
19+
1120
CGLM_EXPORT
1221
void
1322
glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]) {
@@ -55,8 +64,14 @@ glmc_aabb2d_isvalid(vec2 aabb[2]) {
5564

5665
CGLM_EXPORT
5766
float
58-
glmc_aabb2d_size(vec2 aabb[2]) {
59-
return glm_aabb2d_size(aabb);
67+
glmc_aabb2d_diag(vec2 aabb[2]) {
68+
return glm_aabb2d_diag(aabb);
69+
}
70+
71+
CGLM_EXPORT
72+
void
73+
glmc_aabb2d_sizev(vec2 aabb[2], vec2 dest) {
74+
glm_aabb2d_sizev(aabb, dest);
6075
}
6176

6277
CGLM_EXPORT

0 commit comments

Comments
 (0)