diff --git a/include/call/cglmc-vec.h b/include/call/cglmc-vec.h index 3a68203..cc3c6d2 100644 --- a/include/call/cglmc-vec.h +++ b/include/call/cglmc-vec.h @@ -42,6 +42,14 @@ CGLM_EXPORT float glmc_vec4_norm(vec4 vec); +CGLM_EXPORT +float +glmc_vec_norm2(vec3 vec); + +CGLM_EXPORT +float +glmc_vec4_norm2(vec4 vec); + CGLM_EXPORT void glmc_vec_normalize_to(vec3 vec, vec3 dest); @@ -90,4 +98,20 @@ CGLM_EXPORT void glmc_vec4_scale(vec4 v, float s, vec4 dest); +CGLM_EXPORT +float +glmc_vec_angle(vec3 v1, vec3 v2) + +CGLM_EXPORT +void +glmc_vec_rotate(vec3 v, float angle, vec3 axis); + +CGLM_EXPORT +void +glmc_vec_rotate_m4(mat4 m, vec3 v, vec3 dest); + +CGLM_EXPORT +void +glmc_vec_proj(vec3 a, vec3 b, vec3 dest); + #endif /* cglm_vec_h */ diff --git a/src/cglm-vec.c b/src/cglm-vec.c index 0978e30..cd1d306 100644 --- a/src/cglm-vec.c +++ b/src/cglm-vec.c @@ -79,6 +79,18 @@ glmc_vec4_normalize(vec4 v) { glm_vec4_normalize(v); } +CGLM_EXPORT +float +glmc_vec_norm2(vec3 vec) { + return glm_vec_norm2(vec); +} + +CGLM_EXPORT +float +glmc_vec4_norm2(vec4 vec) { + return glm_vec4_norm2(vec); +} + CGLM_EXPORT void glmc_vec_add(vec3 v1, vec3 v2, vec3 dest) { @@ -126,3 +138,27 @@ void glmc_vec4_scale(vec4 v, float s, vec4 dest) { glm_vec4_scale(v, s, dest); } + +CGLM_EXPORT +float +glmc_vec_angle(vec3 v1, vec3 v2) { + return glm_vec_angle(v1, v2); +} + +CGLM_EXPORT +void +glmc_vec_rotate(vec3 v, float angle, vec3 axis) { + glm_vec_rotate(v, angle, axis); +} + +CGLM_EXPORT +void +glmc_vec_rotate_m4(mat4 m, vec3 v, vec3 dest) { + glm_vec_rotate_m4(m, v, dest); +} + +CGLM_EXPORT +void +glmc_vec_proj(vec3 a, vec3 b, vec3 dest) { + glm_vec_proj(a, b, dest); +}