mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 09:08:53 +00:00
@@ -45,6 +45,7 @@ Functions:
|
||||
#. :c:func:`glm_vec2_normalize`
|
||||
#. :c:func:`glm_vec2_normalize_to`
|
||||
#. :c:func:`glm_vec2_rotate`
|
||||
#. :c:func:`glm_vec2_center`
|
||||
#. :c:func:`glm_vec2_distance2`
|
||||
#. :c:func:`glm_vec2_distance`
|
||||
#. :c:func:`glm_vec2_maxv`
|
||||
@@ -314,6 +315,15 @@ Functions documentation
|
||||
| *[in]* **axis** axis vector
|
||||
| *[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)
|
||||
|
||||
squared distance between two vectors
|
||||
|
@@ -125,6 +125,10 @@ CGLM_EXPORT
|
||||
void
|
||||
glmc_vec2_rotate(vec2 v, float angle, vec2 dest);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_vec2_center(vec2 a, vec2 b, vec2 dest);
|
||||
|
||||
CGLM_EXPORT
|
||||
float
|
||||
glmc_vec2_distance2(vec2 a, vec2 b);
|
||||
|
@@ -40,6 +40,7 @@
|
||||
CGLM_INLINE vec2s glms_vec2_negate(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_center(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 vec2s glms_vec2_maxv(vec2s a, vec2s b)
|
||||
@@ -470,6 +471,21 @@ glms_vec2_(rotate)(vec2s v, float angle) {
|
||||
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
|
||||
*
|
||||
|
@@ -41,6 +41,7 @@
|
||||
CGLM_INLINE void glm_vec2_normalize(vec2 v)
|
||||
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_center(vec2 a, vec2 b, vec2 dest)
|
||||
CGLM_INLINE float glm_vec2_distance2(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)
|
||||
@@ -493,6 +494,20 @@ glm_vec2_rotate(vec2 v, float angle, vec2 dest) {
|
||||
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
|
||||
*
|
||||
|
@@ -194,6 +194,12 @@ glmc_vec2_rotate(vec2 v, float angle, vec2 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
|
||||
float
|
||||
glmc_vec2_distance2(vec2 a, vec2 b) {
|
||||
|
@@ -480,6 +480,17 @@ TEST_IMPL(GLM_PREFIX, vec2_rotate) {
|
||||
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) {
|
||||
vec2 v1 = {30.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_to)
|
||||
TEST_DECLARE(glm_vec2_rotate)
|
||||
TEST_DECLARE(glm_vec2_center)
|
||||
TEST_DECLARE(glm_vec2_distance2)
|
||||
TEST_DECLARE(glm_vec2_distance)
|
||||
TEST_DECLARE(glm_vec2_maxv)
|
||||
@@ -524,6 +525,7 @@ TEST_DECLARE(glmc_vec2_negate)
|
||||
TEST_DECLARE(glmc_vec2_normalize)
|
||||
TEST_DECLARE(glmc_vec2_normalize_to)
|
||||
TEST_DECLARE(glmc_vec2_rotate)
|
||||
TEST_DECLARE(glmc_vec2_center)
|
||||
TEST_DECLARE(glmc_vec2_distance2)
|
||||
TEST_DECLARE(glmc_vec2_distance)
|
||||
TEST_DECLARE(glmc_vec2_maxv)
|
||||
@@ -1460,6 +1462,7 @@ TEST_LIST {
|
||||
TEST_ENTRY(glm_vec2_normalize)
|
||||
TEST_ENTRY(glm_vec2_normalize_to)
|
||||
TEST_ENTRY(glm_vec2_rotate)
|
||||
TEST_ENTRY(glm_vec2_center)
|
||||
TEST_ENTRY(glm_vec2_distance2)
|
||||
TEST_ENTRY(glm_vec2_distance)
|
||||
TEST_ENTRY(glm_vec2_maxv)
|
||||
@@ -1498,6 +1501,7 @@ TEST_LIST {
|
||||
TEST_ENTRY(glmc_vec2_normalize)
|
||||
TEST_ENTRY(glmc_vec2_normalize_to)
|
||||
TEST_ENTRY(glmc_vec2_rotate)
|
||||
TEST_ENTRY(glmc_vec2_center)
|
||||
TEST_ENTRY(glmc_vec2_distance2)
|
||||
TEST_ENTRY(glmc_vec2_distance)
|
||||
TEST_ENTRY(glmc_vec2_maxv)
|
||||
|
Reference in New Issue
Block a user