mirror of
https://github.com/recp/cglm.git
synced 2025-10-03 16:51:35 +00:00
Merge pull request #392 from duarm/master
aabb2d_zero, aabb2d_diagonal and aabb2d_size
This commit is contained in:
@@ -17,16 +17,22 @@ 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`
|
||||
#. :c:func:`glm_aabb2d_zero`
|
||||
#. :c:func:`glm_aabb2d_transform`
|
||||
#. :c:func:`glm_aabb2d_merge`
|
||||
#. :c:func:`glm_aabb2d_crop`
|
||||
#. :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`
|
||||
@@ -45,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
|
||||
@@ -111,9 +124,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 +134,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
|
||||
|
@@ -10,9 +10,23 @@
|
||||
|
||||
#include "common.h"
|
||||
#include "vec2.h"
|
||||
#include "vec4.h"
|
||||
#include "util.h"
|
||||
|
||||
/* DEPRECATED! use _diag */
|
||||
#define glm_aabb2d_size(aabb) glm_aabb2d_diag(aabb)
|
||||
|
||||
/*!
|
||||
* @brief make [aabb] zero
|
||||
*
|
||||
* @param[in, out] aabb
|
||||
*/
|
||||
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 +166,22 @@ glm_aabb2d_isvalid(vec2 aabb[2]) {
|
||||
*/
|
||||
CGLM_INLINE
|
||||
float
|
||||
glm_aabb2d_size(vec2 aabb[2]) {
|
||||
glm_aabb2d_diag(vec2 aabb[2]) {
|
||||
return glm_vec2_distance(aabb[0], aabb[1]);
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief size of aabb
|
||||
*
|
||||
* @param[in] aabb bounding aabb
|
||||
* @param[out] dest size
|
||||
*/
|
||||
CGLM_INLINE
|
||||
void
|
||||
glm_aabb2d_sizev(vec2 aabb[2], vec2 dest) {
|
||||
glm_vec2_sub(aabb[1], aabb[0], dest);
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief radius of sphere which surrounds AABB
|
||||
*
|
||||
@@ -164,7 +190,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_diag(aabb) * 0.5f;
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@@ -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]);
|
||||
@@ -46,7 +50,11 @@ glmc_aabb2d_isvalid(vec2 aabb[2]);
|
||||
|
||||
CGLM_EXPORT
|
||||
float
|
||||
glmc_aabb2d_size(vec2 aabb[2]);
|
||||
glmc_aabb2d_diag(vec2 aabb[2]);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_aabb2d_sizev(vec2 aabb[2], vec2 dest);
|
||||
|
||||
CGLM_EXPORT
|
||||
float
|
||||
|
19
src/aabb2d.c
19
src/aabb2d.c
@@ -8,6 +8,15 @@
|
||||
#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_zero(vec2 aabb[2]) {
|
||||
glm_aabb2d_zero(aabb);
|
||||
}
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]) {
|
||||
@@ -55,8 +64,14 @@ glmc_aabb2d_isvalid(vec2 aabb[2]) {
|
||||
|
||||
CGLM_EXPORT
|
||||
float
|
||||
glmc_aabb2d_size(vec2 aabb[2]) {
|
||||
return glm_aabb2d_size(aabb);
|
||||
glmc_aabb2d_diag(vec2 aabb[2]) {
|
||||
return glm_aabb2d_diag(aabb);
|
||||
}
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_aabb2d_sizev(vec2 aabb[2], vec2 dest) {
|
||||
glm_aabb2d_sizev(aabb, dest);
|
||||
}
|
||||
|
||||
CGLM_EXPORT
|
||||
|
Reference in New Issue
Block a user