diff --git a/include/call/cglmc-vec.h b/include/call/cglmc-vec.h index 6768658..1feb386 100644 --- a/include/call/cglmc-vec.h +++ b/include/call/cglmc-vec.h @@ -117,6 +117,10 @@ CGLM_EXPORT void glmc_vec_proj(vec3 a, vec3 b, vec3 dest); +CGLM_INLINE +void +glmc_vec_center(vec3 v1, vec3 v2, vec3 dest); + CGLM_EXPORT float glmc_vec_distance(vec3 v1, vec3 v2); diff --git a/include/cglm-vec.h b/include/cglm-vec.h index c0ff7b9..0ba2c7d 100644 --- a/include/cglm-vec.h +++ b/include/cglm-vec.h @@ -494,6 +494,21 @@ glm_vec_proj(vec3 a, vec3 b, vec3 dest) { dest); } + +/** + * @brief find center point of two vector + * + * @param[in] v1 + * @param[in] v2 + * @param[out] dest center point + */ +CGLM_INLINE +void +glm_vec_center(vec3 v1, vec3 v2, vec3 dest) { + glm_vec_add(v1, v2, dest); + glm_vec_scale(dest, 0.5f, dest); +} + CGLM_INLINE float glm_vec_distance(vec3 v1, vec3 v2) { diff --git a/src/cglm-vec.c b/src/cglm-vec.c index ad854c9..0dc7a3d 100644 --- a/src/cglm-vec.c +++ b/src/cglm-vec.c @@ -163,6 +163,12 @@ glmc_vec_proj(vec3 a, vec3 b, vec3 dest) { glm_vec_proj(a, b, dest); } +CGLM_INLINE +void +glmc_vec_center(vec3 v1, vec3 v2, vec3 dest) { + glm_vec_center(v1, v2, dest); +} + CGLM_EXPORT float glmc_vec_distance(vec3 v1, vec3 v2) {