mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
inverse (opposite) of vectors
This commit is contained in:
@@ -64,6 +64,14 @@ CGLM_EXPORT
|
|||||||
void
|
void
|
||||||
glmc_vec_flipsign(vec3 v);
|
glmc_vec_flipsign(vec3 v);
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec_inv(vec3 v);
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec_inv_to(vec3 v, vec3 dest);
|
||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
float
|
float
|
||||||
glmc_vec_angle(vec3 v1, vec3 v2);
|
glmc_vec_angle(vec3 v1, vec3 v2);
|
||||||
|
|||||||
@@ -65,6 +65,14 @@ CGLM_EXPORT
|
|||||||
void
|
void
|
||||||
glmc_vec4_flipsign(vec4 v);
|
glmc_vec4_flipsign(vec4 v);
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec4_inv(vec4 v);
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec4_inv_to(vec4 v, vec4 dest);
|
||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
float
|
float
|
||||||
glmc_vec4_distance(vec4 v1, vec4 v2);
|
glmc_vec4_distance(vec4 v1, vec4 v2);
|
||||||
|
|||||||
@@ -25,6 +25,8 @@
|
|||||||
CGLM_INLINE void glm_vec_scale(vec3 v, float s, vec3 dest);
|
CGLM_INLINE void glm_vec_scale(vec3 v, float s, vec3 dest);
|
||||||
CGLM_INLINE void glm_vec_scale_as(vec3 v, float s, vec3 dest);
|
CGLM_INLINE void glm_vec_scale_as(vec3 v, float s, vec3 dest);
|
||||||
CGLM_INLINE void glm_vec_flipsign(vec3 v);
|
CGLM_INLINE void glm_vec_flipsign(vec3 v);
|
||||||
|
CGLM_INLINE void glm_vec_inv(vec3 v);
|
||||||
|
CGLM_INLINE void glm_vec_inv_to(vec3 v, vec3 dest);
|
||||||
CGLM_INLINE void glm_vec_normalize(vec3 v);
|
CGLM_INLINE void glm_vec_normalize(vec3 v);
|
||||||
CGLM_INLINE void glm_vec_normalize_to(vec3 vec, vec3 dest);
|
CGLM_INLINE void glm_vec_normalize_to(vec3 vec, vec3 dest);
|
||||||
CGLM_INLINE float glm_vec_distance(vec3 v1, vec3 v2);
|
CGLM_INLINE float glm_vec_distance(vec3 v1, vec3 v2);
|
||||||
@@ -198,6 +200,30 @@ glm_vec_flipsign(vec3 v) {
|
|||||||
v[2] = -v[2];
|
v[2] = -v[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief make vector as inverse/opposite of itself
|
||||||
|
*
|
||||||
|
* @param[in, out] v vector
|
||||||
|
*/
|
||||||
|
CGLM_INLINE
|
||||||
|
void
|
||||||
|
glm_vec_inv(vec3 v) {
|
||||||
|
glm_vec_flipsign(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief inverse/opposite vector
|
||||||
|
*
|
||||||
|
* @param[in] vec source
|
||||||
|
* @param[out] dest destination
|
||||||
|
*/
|
||||||
|
CGLM_INLINE
|
||||||
|
void
|
||||||
|
glm_vec_inv_to(vec3 v, vec3 dest) {
|
||||||
|
glm_vec_copy(v, dest);
|
||||||
|
glm_vec_flipsign(dest);
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief normalize vec3 and store result in same vec
|
* @brief normalize vec3 and store result in same vec
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
CGLM_INLINE void glm_vec4_scale(vec4 v, float s, vec4 dest);
|
CGLM_INLINE void glm_vec4_scale(vec4 v, float s, vec4 dest);
|
||||||
CGLM_INLINE void glm_vec4_scale_as(vec4 v, float s, vec4 dest);
|
CGLM_INLINE void glm_vec4_scale_as(vec4 v, float s, vec4 dest);
|
||||||
CGLM_INLINE void glm_vec4_flipsign(vec4 v);
|
CGLM_INLINE void glm_vec4_flipsign(vec4 v);
|
||||||
|
CGLM_INLINE void glm_vec4_inv(vec4 v);
|
||||||
|
CGLM_INLINE void glm_vec4_inv_to(vec4 v, vec4 dest);
|
||||||
CGLM_INLINE void glm_vec4_normalize(vec4 v);
|
CGLM_INLINE void glm_vec4_normalize(vec4 v);
|
||||||
CGLM_INLINE void glm_vec4_normalize_to(vec4 vec, vec4 dest);
|
CGLM_INLINE void glm_vec4_normalize_to(vec4 vec, vec4 dest);
|
||||||
CGLM_INLINE float glm_vec4_distance(vec4 v1, vec4 v2);
|
CGLM_INLINE float glm_vec4_distance(vec4 v1, vec4 v2);
|
||||||
@@ -225,6 +227,30 @@ glm_vec4_flipsign(vec4 v) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief make vector as inverse/opposite of itself
|
||||||
|
*
|
||||||
|
* @param[in, out] v vector
|
||||||
|
*/
|
||||||
|
CGLM_INLINE
|
||||||
|
void
|
||||||
|
glm_vec4_inv(vec4 v) {
|
||||||
|
glm_vec4_flipsign(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief inverse/opposite vector
|
||||||
|
*
|
||||||
|
* @param[in] vec source
|
||||||
|
* @param[out] dest destination
|
||||||
|
*/
|
||||||
|
CGLM_INLINE
|
||||||
|
void
|
||||||
|
glm_vec4_inv_to(vec4 v, vec4 dest) {
|
||||||
|
glm_vec4_copy(v, dest);
|
||||||
|
glm_vec4_flipsign(dest);
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief normalize vec4 and store result in same vec
|
* @brief normalize vec4 and store result in same vec
|
||||||
*
|
*
|
||||||
|
|||||||
12
src/vec3.c
12
src/vec3.c
@@ -80,6 +80,18 @@ glmc_vec_flipsign(vec3 v) {
|
|||||||
glm_vec_flipsign(v);
|
glm_vec_flipsign(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec_inv(vec3 v) {
|
||||||
|
glm_vec_inv(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec_inv_to(vec3 v, vec3 dest) {
|
||||||
|
glm_vec_inv_to(v, dest);
|
||||||
|
}
|
||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
float
|
float
|
||||||
glmc_vec_angle(vec3 v1, vec3 v2) {
|
glmc_vec_angle(vec3 v1, vec3 v2) {
|
||||||
|
|||||||
12
src/vec4.c
12
src/vec4.c
@@ -80,6 +80,18 @@ glmc_vec4_flipsign(vec4 v) {
|
|||||||
glm_vec4_flipsign(v);
|
glm_vec4_flipsign(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec4_inv(vec4 v) {
|
||||||
|
glm_vec4_inv(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
CGLM_EXPORT
|
||||||
|
void
|
||||||
|
glmc_vec4_inv_to(vec4 v, vec4 dest) {
|
||||||
|
glm_vec4_inv_to(v, dest);
|
||||||
|
}
|
||||||
|
|
||||||
CGLM_EXPORT
|
CGLM_EXPORT
|
||||||
float
|
float
|
||||||
glmc_vec4_distance(vec4 v1, vec4 v2) {
|
glmc_vec4_distance(vec4 v1, vec4 v2) {
|
||||||
|
|||||||
Reference in New Issue
Block a user