mirror of
https://github.com/recp/cglm.git
synced 2025-12-24 12:32:40 +00:00
vec: call version for vec2
This commit is contained in:
@@ -13,6 +13,141 @@ extern "C" {
|
||||
|
||||
#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
|
||||
}
|
||||
|
||||
@@ -231,15 +231,15 @@ glm_vec2_subs(vec2 v, float s, vec2 dest) {
|
||||
/*!
|
||||
* @brief multiply two vector (component-wise multiplication)
|
||||
*
|
||||
* @param a v1
|
||||
* @param b v2
|
||||
* @param d v3 = (a[0] * b[0], a[1] * b[1], a[2] * b[2])
|
||||
* @param a v1
|
||||
* @param b v2
|
||||
* @param dest v3 = (a[0] * b[0], a[1] * b[1], a[2] * b[2])
|
||||
*/
|
||||
CGLM_INLINE
|
||||
void
|
||||
glm_vec2_mul(vec2 a, vec2 b, vec2 d) {
|
||||
d[0] = a[0] * b[0];
|
||||
d[1] = a[1] * b[1];
|
||||
glm_vec2_mul(vec2 a, vec2 b, vec2 dest) {
|
||||
dest[0] = a[0] * b[0];
|
||||
dest[1] = a[1] * b[1];
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -448,22 +448,22 @@ glm_vec2_normalize(vec2 v) {
|
||||
/*!
|
||||
* @brief normalize vector to dest
|
||||
*
|
||||
* @param[in] vec source
|
||||
* @param[in] v source
|
||||
* @param[out] dest destination
|
||||
*/
|
||||
CGLM_INLINE
|
||||
void
|
||||
glm_vec2_normalize_to(vec2 vec, vec2 dest) {
|
||||
glm_vec2_normalize_to(vec2 v, vec2 dest) {
|
||||
float norm;
|
||||
|
||||
norm = glm_vec2_norm(vec);
|
||||
norm = glm_vec2_norm(v);
|
||||
|
||||
if (norm == 0.0f) {
|
||||
glm_vec2_zero(dest);
|
||||
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
|
||||
*
|
||||
* @param[in] v1 vector1
|
||||
* @param[in] v2 vector2
|
||||
* @param[in] a vector1
|
||||
* @param[in] b vector2
|
||||
* @param[out] dest destination
|
||||
*/
|
||||
CGLM_INLINE
|
||||
void
|
||||
glm_vec2_maxv(vec2 v1, vec2 v2, vec2 dest) {
|
||||
dest[0] = glm_max(v1[0], v2[0]);
|
||||
dest[1] = glm_max(v1[1], v2[1]);
|
||||
glm_vec2_maxv(vec2 a, vec2 b, vec2 dest) {
|
||||
dest[0] = glm_max(a[0], b[0]);
|
||||
dest[1] = glm_max(a[1], b[1]);
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief min values of vectors
|
||||
*
|
||||
* @param[in] v1 vector1
|
||||
* @param[in] v2 vector2
|
||||
* @param[in] a vector1
|
||||
* @param[in] b vector2
|
||||
* @param[out] dest destination
|
||||
*/
|
||||
CGLM_INLINE
|
||||
void
|
||||
glm_vec2_minv(vec2 v1, vec2 v2, vec2 dest) {
|
||||
dest[0] = glm_min(v1[0], v2[0]);
|
||||
dest[1] = glm_min(v1[1], v2[1]);
|
||||
glm_vec2_minv(vec2 a, vec2 b, vec2 dest) {
|
||||
dest[0] = glm_min(a[0], b[0]);
|
||||
dest[1] = glm_min(a[1], b[1]);
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief clamp vector's individual members between min and max values
|
||||
*
|
||||
* @param[in, out] v vector
|
||||
* @param[in] minVal minimum value
|
||||
* @param[in] maxVal maximum value
|
||||
* @param[in] minval minimum value
|
||||
* @param[in] maxval maximum value
|
||||
*/
|
||||
CGLM_INLINE
|
||||
void
|
||||
glm_vec2_clamp(vec2 v, float minVal, float maxVal) {
|
||||
v[0] = glm_clamp(v[0], minVal, maxVal);
|
||||
v[1] = glm_clamp(v[1], minVal, maxVal);
|
||||
glm_vec2_clamp(vec2 v, float minval, float maxval) {
|
||||
v[0] = glm_clamp(v[0], minval, maxval);
|
||||
v[1] = glm_clamp(v[1], minval, maxval);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
||||
213
src/vec2.c
Normal file
213
src/vec2.c
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user