vec: call version for vec2

This commit is contained in:
Recep Aslantas
2019-08-30 22:56:20 +03:00
parent cb54a8b8c5
commit d86f5df776
3 changed files with 373 additions and 25 deletions

View File

@@ -13,6 +13,141 @@ extern "C" {
#include "../cglm.h" #include "../cglm.h"
CGLM_EXPORT
void
glmc_vec2(float * __restrict v, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_copy(vec2 a, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_zero(vec2 v);
CGLM_EXPORT
void
glmc_vec2_one(vec2 v);
CGLM_EXPORT
float
glmc_vec2_dot(vec2 a, vec2 b);
CGLM_EXPORT
float
glmc_vec2_cross(vec2 a, vec2 b);
CGLM_EXPORT
float
glmc_vec2_norm2(vec2 v);
CGLM_EXPORT
float
glmc_vec2_norm(vec2 v);
CGLM_EXPORT
void
glmc_vec2_add(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_adds(vec2 v, float s, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_sub(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_subs(vec2 v, float s, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_mul(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_scale(vec2 v, float s, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_scale_as(vec2 v, float s, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_div(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_divs(vec2 v, float s, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_addadd(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_subadd(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_muladd(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_muladds(vec2 a, float s, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_maxadd(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_minadd(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_negate_to(vec2 v, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_negate(vec2 v);
CGLM_EXPORT
void
glmc_vec2_normalize(vec2 v);
CGLM_EXPORT
void
glmc_vec2_normalize_to(vec2 v, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_rotate(vec2 v, float angle, vec2 dest);
CGLM_EXPORT
float
glmc_vec2_distance2(vec2 a, vec2 b);
CGLM_EXPORT
float
glmc_vec2_distance(vec2 a, vec2 b);
CGLM_EXPORT
void
glmc_vec2_maxv(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_minv(vec2 a, vec2 b, vec2 dest);
CGLM_EXPORT
void
glmc_vec2_clamp(vec2 v, float minval, float maxval);
CGLM_EXPORT
void
glmc_vec2_lerp(vec2 from, vec2 to, float t, vec2 dest);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -233,13 +233,13 @@ glm_vec2_subs(vec2 v, float s, vec2 dest) {
* *
* @param a v1 * @param a v1
* @param b v2 * @param b v2
* @param d v3 = (a[0] * b[0], a[1] * b[1], a[2] * b[2]) * @param dest v3 = (a[0] * b[0], a[1] * b[1], a[2] * b[2])
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_vec2_mul(vec2 a, vec2 b, vec2 d) { glm_vec2_mul(vec2 a, vec2 b, vec2 dest) {
d[0] = a[0] * b[0]; dest[0] = a[0] * b[0];
d[1] = a[1] * b[1]; dest[1] = a[1] * b[1];
} }
/*! /*!
@@ -448,22 +448,22 @@ glm_vec2_normalize(vec2 v) {
/*! /*!
* @brief normalize vector to dest * @brief normalize vector to dest
* *
* @param[in] vec source * @param[in] v source
* @param[out] dest destination * @param[out] dest destination
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_vec2_normalize_to(vec2 vec, vec2 dest) { glm_vec2_normalize_to(vec2 v, vec2 dest) {
float norm; float norm;
norm = glm_vec2_norm(vec); norm = glm_vec2_norm(v);
if (norm == 0.0f) { if (norm == 0.0f) {
glm_vec2_zero(dest); glm_vec2_zero(dest);
return; return;
} }
glm_vec2_scale(vec, 1.0f / norm, dest); glm_vec2_scale(v, 1.0f / norm, dest);
} }
/*! /*!
@@ -521,43 +521,43 @@ glm_vec2_distance(vec2 a, vec2 b) {
/*! /*!
* @brief max values of vectors * @brief max values of vectors
* *
* @param[in] v1 vector1 * @param[in] a vector1
* @param[in] v2 vector2 * @param[in] b vector2
* @param[out] dest destination * @param[out] dest destination
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_vec2_maxv(vec2 v1, vec2 v2, vec2 dest) { glm_vec2_maxv(vec2 a, vec2 b, vec2 dest) {
dest[0] = glm_max(v1[0], v2[0]); dest[0] = glm_max(a[0], b[0]);
dest[1] = glm_max(v1[1], v2[1]); dest[1] = glm_max(a[1], b[1]);
} }
/*! /*!
* @brief min values of vectors * @brief min values of vectors
* *
* @param[in] v1 vector1 * @param[in] a vector1
* @param[in] v2 vector2 * @param[in] b vector2
* @param[out] dest destination * @param[out] dest destination
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_vec2_minv(vec2 v1, vec2 v2, vec2 dest) { glm_vec2_minv(vec2 a, vec2 b, vec2 dest) {
dest[0] = glm_min(v1[0], v2[0]); dest[0] = glm_min(a[0], b[0]);
dest[1] = glm_min(v1[1], v2[1]); dest[1] = glm_min(a[1], b[1]);
} }
/*! /*!
* @brief clamp vector's individual members between min and max values * @brief clamp vector's individual members between min and max values
* *
* @param[in, out] v vector * @param[in, out] v vector
* @param[in] minVal minimum value * @param[in] minval minimum value
* @param[in] maxVal maximum value * @param[in] maxval maximum value
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_vec2_clamp(vec2 v, float minVal, float maxVal) { glm_vec2_clamp(vec2 v, float minval, float maxval) {
v[0] = glm_clamp(v[0], minVal, maxVal); v[0] = glm_clamp(v[0], minval, maxval);
v[1] = glm_clamp(v[1], minVal, maxVal); v[1] = glm_clamp(v[1], minval, maxval);
} }
/*! /*!

213
src/vec2.c Normal file
View File

@@ -0,0 +1,213 @@
/*
* Copyright (c), Recep Aslantas.
*
* MIT License (MIT), http://opensource.org/licenses/MIT
* Full license can be found in the LICENSE file
*/
#include "../include/cglm/cglm.h"
#include "../include/cglm/call.h"
CGLM_EXPORT
void
glmc_vec2(float * __restrict v, vec2 dest) {
glm_vec2(v, dest);
}
CGLM_EXPORT
void
glmc_vec2_copy(vec2 a, vec2 dest) {
glm_vec2_copy(a, dest);
}
CGLM_EXPORT
void
glmc_vec2_zero(vec2 v) {
glm_vec2_zero(v);
}
CGLM_EXPORT
void
glmc_vec2_one(vec2 v) {
glm_vec2_one(v);
}
CGLM_EXPORT
float
glmc_vec2_dot(vec2 a, vec2 b) {
return glm_vec2_dot(a, b);
}
CGLM_EXPORT
float
glmc_vec2_cross(vec2 a, vec2 b) {
return glm_vec2_cross(a, b);
}
CGLM_EXPORT
float
glmc_vec2_norm2(vec2 v) {
return glm_vec2_norm2(v);
}
CGLM_EXPORT
float
glmc_vec2_norm(vec2 v) {
return glm_vec2_norm2(v);
}
CGLM_EXPORT
void
glmc_vec2_add(vec2 a, vec2 b, vec2 dest) {
glm_vec2_add(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_adds(vec2 v, float s, vec2 dest) {
glm_vec2_adds(v, s, dest);
}
CGLM_EXPORT
void
glmc_vec2_sub(vec2 a, vec2 b, vec2 dest) {
glm_vec2_sub(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_subs(vec2 v, float s, vec2 dest) {
glm_vec2_subs(v, s, dest);
}
CGLM_EXPORT
void
glmc_vec2_mul(vec2 a, vec2 b, vec2 dest) {
glm_vec2_mul(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_scale(vec2 v, float s, vec2 dest) {
glm_vec2_scale(v, s, dest);
}
CGLM_EXPORT
void
glmc_vec2_scale_as(vec2 v, float s, vec2 dest) {
glm_vec2_scale_as(v, s, dest);
}
CGLM_EXPORT
void
glmc_vec2_div(vec2 a, vec2 b, vec2 dest) {
glm_vec2_div(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_divs(vec2 v, float s, vec2 dest) {
glm_vec2_divs(v, s, dest);
}
CGLM_EXPORT
void
glmc_vec2_addadd(vec2 a, vec2 b, vec2 dest) {
glm_vec2_addadd(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_subadd(vec2 a, vec2 b, vec2 dest) {
glm_vec2_subadd(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_muladd(vec2 a, vec2 b, vec2 dest) {
glm_vec2_muladd(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_muladds(vec2 a, float s, vec2 dest) {
glm_vec2_muladds(a, s, dest);
}
CGLM_EXPORT
void
glmc_vec2_maxadd(vec2 a, vec2 b, vec2 dest) {
glm_vec2_maxadd(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_minadd(vec2 a, vec2 b, vec2 dest) {
glm_vec2_minadd(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_negate_to(vec2 v, vec2 dest) {
glm_vec2_negate_to(v, dest);
}
CGLM_EXPORT
void
glmc_vec2_negate(vec2 v) {
glm_vec2_negate(v);
}
CGLM_EXPORT
void
glmc_vec2_normalize(vec2 v) {
glm_vec2_normalize(v);
}
CGLM_EXPORT
void
glmc_vec2_normalize_to(vec2 v, vec2 dest) {
glm_vec2_normalize_to(v, dest);
}
CGLM_EXPORT
void
glmc_vec2_rotate(vec2 v, float angle, vec2 dest) {
glm_vec2_rotate(v, angle, dest);
}
CGLM_EXPORT
float
glmc_vec2_distance2(vec2 a, vec2 b) {
return glm_vec2_distance2(a, b);
}
CGLM_EXPORT
float
glmc_vec2_distance(vec2 a, vec2 b) {
return glm_vec2_distance(a, b);
}
CGLM_EXPORT
void
glmc_vec2_maxv(vec2 a, vec2 b, vec2 dest) {
glm_vec2_maxv(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_minv(vec2 a, vec2 b, vec2 dest) {
glm_vec2_minv(a, b, dest);
}
CGLM_EXPORT
void
glmc_vec2_clamp(vec2 v, float minval, float maxval) {
glm_vec2_clamp(v, minval, maxval);
}
CGLM_EXPORT
void
glmc_vec2_lerp(vec2 from, vec2 to, float t, vec2 dest) {
glm_vec2_lerp(from, to, t, dest);
}