mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 17:09:40 +00:00
@@ -45,6 +45,7 @@ Functions:
|
|||||||
#. :c:func:`glm_vec2_normalize`
|
#. :c:func:`glm_vec2_normalize`
|
||||||
#. :c:func:`glm_vec2_normalize_to`
|
#. :c:func:`glm_vec2_normalize_to`
|
||||||
#. :c:func:`glm_vec2_rotate`
|
#. :c:func:`glm_vec2_rotate`
|
||||||
|
#. :c:func:`glm_vec2_center`
|
||||||
#. :c:func:`glm_vec2_distance2`
|
#. :c:func:`glm_vec2_distance2`
|
||||||
#. :c:func:`glm_vec2_distance`
|
#. :c:func:`glm_vec2_distance`
|
||||||
#. :c:func:`glm_vec2_maxv`
|
#. :c:func:`glm_vec2_maxv`
|
||||||
@@ -314,6 +315,15 @@ Functions documentation
|
|||||||
| *[in]* **axis** axis vector
|
| *[in]* **axis** axis vector
|
||||||
| *[out]* **dest** destination
|
| *[out]* **dest** destination
|
||||||
|
|
||||||
|
.. c:function:: void glm_vec2_center(vec2 v1, vec2 v2, vec2 dest)
|
||||||
|
|
||||||
|
find center point of two vector
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
| *[in]* **v1** vector1
|
||||||
|
| *[in]* **v2** vector2
|
||||||
|
| *[out]* **dest** center point
|
||||||
|
|
||||||
.. c:function:: float glm_vec2_distance2(vec2 v1, vec2 v2)
|
.. c:function:: float glm_vec2_distance2(vec2 v1, vec2 v2)
|
||||||
|
|
||||||
squared distance between two vectors
|
squared distance between two vectors
|
||||||
|
@@ -125,6 +125,10 @@ CGLM_EXPORT
|
|||||||
void
|
void
|
||||||
glmc_vec2_rotate(vec2 v, float angle, vec2 dest);
|
glmc_vec2_rotate(vec2 v, float angle, vec2 dest);
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec2_center(vec2 a, vec2 b, vec2 dest);
|
||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
float
|
float
|
||||||
glmc_vec2_distance2(vec2 a, vec2 b);
|
glmc_vec2_distance2(vec2 a, vec2 b);
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
CGLM_INLINE vec2s glms_vec2_negate(vec2s v)
|
CGLM_INLINE vec2s glms_vec2_negate(vec2s v)
|
||||||
CGLM_INLINE vec2s glms_vec2_normalize(vec2s v)
|
CGLM_INLINE vec2s glms_vec2_normalize(vec2s v)
|
||||||
CGLM_INLINE vec2s glms_vec2_rotate(vec2s v, float angle, vec2s axis)
|
CGLM_INLINE vec2s glms_vec2_rotate(vec2s v, float angle, vec2s axis)
|
||||||
|
CGLM_INLINE vec2s glms_vec2_center(vec2s a, vec2s b)
|
||||||
CGLM_INLINE float glms_vec2_distance(vec2s a, vec2s b)
|
CGLM_INLINE float glms_vec2_distance(vec2s a, vec2s b)
|
||||||
CGLM_INLINE float glms_vec2_distance2(vec2s a, vec2s b)
|
CGLM_INLINE float glms_vec2_distance2(vec2s a, vec2s b)
|
||||||
CGLM_INLINE vec2s glms_vec2_maxv(vec2s a, vec2s b)
|
CGLM_INLINE vec2s glms_vec2_maxv(vec2s a, vec2s b)
|
||||||
@@ -470,6 +471,21 @@ glms_vec2_(rotate)(vec2s v, float angle) {
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief find center point of two vector
|
||||||
|
*
|
||||||
|
* @param[in] a vector1
|
||||||
|
* @param[in] b vector2
|
||||||
|
* @returns center point
|
||||||
|
*/
|
||||||
|
CGLM_INLINE
|
||||||
|
vec2s
|
||||||
|
glms_vec2_(center)(vec2s a, vec2s b) {
|
||||||
|
vec2s r;
|
||||||
|
glm_vec2_center(a.raw, b.raw, r.raw);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief distance between two vectors
|
* @brief distance between two vectors
|
||||||
*
|
*
|
||||||
|
@@ -41,6 +41,7 @@
|
|||||||
CGLM_INLINE void glm_vec2_normalize(vec2 v)
|
CGLM_INLINE void glm_vec2_normalize(vec2 v)
|
||||||
CGLM_INLINE void glm_vec2_normalize_to(vec2 vec, vec2 dest)
|
CGLM_INLINE void glm_vec2_normalize_to(vec2 vec, vec2 dest)
|
||||||
CGLM_INLINE void glm_vec2_rotate(vec2 v, float angle, vec2 dest)
|
CGLM_INLINE void glm_vec2_rotate(vec2 v, float angle, vec2 dest)
|
||||||
|
CGLM_INLINE void glm_vec2_center(vec2 a, vec2 b, vec2 dest)
|
||||||
CGLM_INLINE float glm_vec2_distance2(vec2 a, vec2 b)
|
CGLM_INLINE float glm_vec2_distance2(vec2 a, vec2 b)
|
||||||
CGLM_INLINE float glm_vec2_distance(vec2 a, vec2 b)
|
CGLM_INLINE float glm_vec2_distance(vec2 a, vec2 b)
|
||||||
CGLM_INLINE void glm_vec2_maxv(vec2 v1, vec2 v2, vec2 dest)
|
CGLM_INLINE void glm_vec2_maxv(vec2 v1, vec2 v2, vec2 dest)
|
||||||
@@ -493,6 +494,20 @@ glm_vec2_rotate(vec2 v, float angle, vec2 dest) {
|
|||||||
dest[1] = s * x1 + c * y1;
|
dest[1] = s * x1 + c * y1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief find center point of two vector
|
||||||
|
*
|
||||||
|
* @param[in] a vector1
|
||||||
|
* @param[in] b vector2
|
||||||
|
* @param[out] dest center point
|
||||||
|
*/
|
||||||
|
CGLM_INLINE
|
||||||
|
void
|
||||||
|
glm_vec2_center(vec2 a, vec2 b, vec2 dest) {
|
||||||
|
glm_vec2_add(a, b, dest);
|
||||||
|
glm_vec2_scale(dest, 0.5f, dest);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief squared distance between two vectors
|
* @brief squared distance between two vectors
|
||||||
*
|
*
|
||||||
|
@@ -194,6 +194,12 @@ glmc_vec2_rotate(vec2 v, float angle, vec2 dest) {
|
|||||||
glm_vec2_rotate(v, angle, dest);
|
glm_vec2_rotate(v, angle, dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec2_center(vec2 a, vec2 b, vec2 dest) {
|
||||||
|
glm_vec2_center(a, b, dest);
|
||||||
|
}
|
||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
float
|
float
|
||||||
glmc_vec2_distance2(vec2 a, vec2 b) {
|
glmc_vec2_distance2(vec2 a, vec2 b) {
|
||||||
|
@@ -480,6 +480,17 @@ TEST_IMPL(GLM_PREFIX, vec2_rotate) {
|
|||||||
TEST_SUCCESS
|
TEST_SUCCESS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_IMPL(GLM_PREFIX, vec2_center) {
|
||||||
|
vec2 v1 = {1.0f, 1.0f},
|
||||||
|
v2 = {0.0f, 0.0f};
|
||||||
|
vec2 dest;
|
||||||
|
GLM(vec2_center)(v1, v2, dest);
|
||||||
|
|
||||||
|
ASSERTIFY(test_assert_vec2_eq(dest, (vec2){ 0.5f, 0.5f }))
|
||||||
|
|
||||||
|
TEST_SUCCESS
|
||||||
|
}
|
||||||
|
|
||||||
TEST_IMPL(GLM_PREFIX, vec2_distance2) {
|
TEST_IMPL(GLM_PREFIX, vec2_distance2) {
|
||||||
vec2 v1 = {30.0f, 0.0f},
|
vec2 v1 = {30.0f, 0.0f},
|
||||||
v2 = {0.0f, 0.0f},
|
v2 = {0.0f, 0.0f},
|
||||||
|
@@ -485,6 +485,7 @@ TEST_DECLARE(glm_vec2_negate)
|
|||||||
TEST_DECLARE(glm_vec2_normalize)
|
TEST_DECLARE(glm_vec2_normalize)
|
||||||
TEST_DECLARE(glm_vec2_normalize_to)
|
TEST_DECLARE(glm_vec2_normalize_to)
|
||||||
TEST_DECLARE(glm_vec2_rotate)
|
TEST_DECLARE(glm_vec2_rotate)
|
||||||
|
TEST_DECLARE(glm_vec2_center)
|
||||||
TEST_DECLARE(glm_vec2_distance2)
|
TEST_DECLARE(glm_vec2_distance2)
|
||||||
TEST_DECLARE(glm_vec2_distance)
|
TEST_DECLARE(glm_vec2_distance)
|
||||||
TEST_DECLARE(glm_vec2_maxv)
|
TEST_DECLARE(glm_vec2_maxv)
|
||||||
@@ -524,6 +525,7 @@ TEST_DECLARE(glmc_vec2_negate)
|
|||||||
TEST_DECLARE(glmc_vec2_normalize)
|
TEST_DECLARE(glmc_vec2_normalize)
|
||||||
TEST_DECLARE(glmc_vec2_normalize_to)
|
TEST_DECLARE(glmc_vec2_normalize_to)
|
||||||
TEST_DECLARE(glmc_vec2_rotate)
|
TEST_DECLARE(glmc_vec2_rotate)
|
||||||
|
TEST_DECLARE(glmc_vec2_center)
|
||||||
TEST_DECLARE(glmc_vec2_distance2)
|
TEST_DECLARE(glmc_vec2_distance2)
|
||||||
TEST_DECLARE(glmc_vec2_distance)
|
TEST_DECLARE(glmc_vec2_distance)
|
||||||
TEST_DECLARE(glmc_vec2_maxv)
|
TEST_DECLARE(glmc_vec2_maxv)
|
||||||
@@ -1460,6 +1462,7 @@ TEST_LIST {
|
|||||||
TEST_ENTRY(glm_vec2_normalize)
|
TEST_ENTRY(glm_vec2_normalize)
|
||||||
TEST_ENTRY(glm_vec2_normalize_to)
|
TEST_ENTRY(glm_vec2_normalize_to)
|
||||||
TEST_ENTRY(glm_vec2_rotate)
|
TEST_ENTRY(glm_vec2_rotate)
|
||||||
|
TEST_ENTRY(glm_vec2_center)
|
||||||
TEST_ENTRY(glm_vec2_distance2)
|
TEST_ENTRY(glm_vec2_distance2)
|
||||||
TEST_ENTRY(glm_vec2_distance)
|
TEST_ENTRY(glm_vec2_distance)
|
||||||
TEST_ENTRY(glm_vec2_maxv)
|
TEST_ENTRY(glm_vec2_maxv)
|
||||||
@@ -1498,6 +1501,7 @@ TEST_LIST {
|
|||||||
TEST_ENTRY(glmc_vec2_normalize)
|
TEST_ENTRY(glmc_vec2_normalize)
|
||||||
TEST_ENTRY(glmc_vec2_normalize_to)
|
TEST_ENTRY(glmc_vec2_normalize_to)
|
||||||
TEST_ENTRY(glmc_vec2_rotate)
|
TEST_ENTRY(glmc_vec2_rotate)
|
||||||
|
TEST_ENTRY(glmc_vec2_center)
|
||||||
TEST_ENTRY(glmc_vec2_distance2)
|
TEST_ENTRY(glmc_vec2_distance2)
|
||||||
TEST_ENTRY(glmc_vec2_distance)
|
TEST_ENTRY(glmc_vec2_distance)
|
||||||
TEST_ENTRY(glmc_vec2_maxv)
|
TEST_ENTRY(glmc_vec2_maxv)
|
||||||
|
Reference in New Issue
Block a user