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):
|
Table of contents (click to go):
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Macros:
|
||||||
|
|
||||||
|
1. :c:func:`glm_aabb2d_size`
|
||||||
|
|
||||||
Functions:
|
Functions:
|
||||||
|
|
||||||
1. :c:func:`glm_aabb2d_copy`
|
1. :c:func:`glm_aabb2d_copy`
|
||||||
|
#. :c:func:`glm_aabb2d_zero`
|
||||||
#. :c:func:`glm_aabb2d_transform`
|
#. :c:func:`glm_aabb2d_transform`
|
||||||
#. :c:func:`glm_aabb2d_merge`
|
#. :c:func:`glm_aabb2d_merge`
|
||||||
#. :c:func:`glm_aabb2d_crop`
|
#. :c:func:`glm_aabb2d_crop`
|
||||||
#. :c:func:`glm_aabb2d_crop_until`
|
#. :c:func:`glm_aabb2d_crop_until`
|
||||||
#. :c:func:`glm_aabb2d_invalidate`
|
#. :c:func:`glm_aabb2d_invalidate`
|
||||||
#. :c:func:`glm_aabb2d_isvalid`
|
#. :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_radius`
|
||||||
#. :c:func:`glm_aabb2d_center`
|
#. :c:func:`glm_aabb2d_center`
|
||||||
#. :c:func:`glm_aabb2d_aabb`
|
#. :c:func:`glm_aabb2d_aabb`
|
||||||
@@ -45,6 +51,13 @@ Functions documentation
|
|||||||
| *[in]* **aabb** bounding box
|
| *[in]* **aabb** bounding box
|
||||||
| *[out]* **dest** destination
|
| *[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])
|
.. c:function:: void glm_aabb2d_transform(vec2 aabb[2], mat3 m, vec2 dest[2])
|
||||||
|
|
||||||
| apply transform to Axis-Aligned Bounding Box
|
| apply transform to Axis-Aligned Bounding Box
|
||||||
@@ -111,9 +124,9 @@ Functions documentation
|
|||||||
Returns:
|
Returns:
|
||||||
returns true if aabb is valid otherwise false
|
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:
|
Parameters:
|
||||||
| *[in]* **aabb** bounding box
|
| *[in]* **aabb** bounding box
|
||||||
@@ -121,6 +134,18 @@ Functions documentation
|
|||||||
Returns:
|
Returns:
|
||||||
distance between min - max
|
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])
|
.. c:function:: float glm_aabb2d_radius(vec2 aabb[2])
|
||||||
|
|
||||||
| radius of sphere which surrounds AABB
|
| radius of sphere which surrounds AABB
|
||||||
|
@@ -10,9 +10,23 @@
|
|||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "vec2.h"
|
#include "vec2.h"
|
||||||
#include "vec4.h"
|
|
||||||
#include "util.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]
|
* @brief copy all members of [aabb] to [dest]
|
||||||
*
|
*
|
||||||
@@ -152,10 +166,22 @@ glm_aabb2d_isvalid(vec2 aabb[2]) {
|
|||||||
*/
|
*/
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_aabb2d_size(vec2 aabb[2]) {
|
glm_aabb2d_diag(vec2 aabb[2]) {
|
||||||
return glm_vec2_distance(aabb[0], aabb[1]);
|
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
|
* @brief radius of sphere which surrounds AABB
|
||||||
*
|
*
|
||||||
@@ -164,7 +190,7 @@ glm_aabb2d_size(vec2 aabb[2]) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_aabb2d_radius(vec2 aabb[2]) {
|
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"
|
#include "../cglm.h"
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_aabb2d_zero(vec2 aabb[2]);
|
||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
void
|
void
|
||||||
glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]);
|
glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]);
|
||||||
@@ -46,7 +50,11 @@ glmc_aabb2d_isvalid(vec2 aabb[2]);
|
|||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
float
|
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
|
CGLM_EXPORT
|
||||||
float
|
float
|
||||||
|
19
src/aabb2d.c
19
src/aabb2d.c
@@ -8,6 +8,15 @@
|
|||||||
#include "../include/cglm/cglm.h"
|
#include "../include/cglm/cglm.h"
|
||||||
#include "../include/cglm/call.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
|
CGLM_EXPORT
|
||||||
void
|
void
|
||||||
glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]) {
|
glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]) {
|
||||||
@@ -55,8 +64,14 @@ glmc_aabb2d_isvalid(vec2 aabb[2]) {
|
|||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
float
|
float
|
||||||
glmc_aabb2d_size(vec2 aabb[2]) {
|
glmc_aabb2d_diag(vec2 aabb[2]) {
|
||||||
return glm_aabb2d_size(aabb);
|
return glm_aabb2d_diag(aabb);
|
||||||
|
}
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_aabb2d_sizev(vec2 aabb[2], vec2 dest) {
|
||||||
|
glm_aabb2d_sizev(aabb, dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
|
Reference in New Issue
Block a user