inverse (opposite) of vectors

This commit is contained in:
Recep Aslantas
2017-10-27 00:20:41 +03:00
parent 48977a012b
commit 9fe48b34a7
6 changed files with 92 additions and 0 deletions

View File

@@ -64,6 +64,14 @@ CGLM_EXPORT
void
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
float
glmc_vec_angle(vec3 v1, vec3 v2);

View File

@@ -65,6 +65,14 @@ CGLM_EXPORT
void
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
float
glmc_vec4_distance(vec4 v1, vec4 v2);

View File

@@ -25,6 +25,8 @@
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_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_to(vec3 vec, vec3 dest);
CGLM_INLINE float glm_vec_distance(vec3 v1, vec3 v2);
@@ -198,6 +200,30 @@ glm_vec_flipsign(vec3 v) {
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
*

View File

@@ -26,6 +26,8 @@
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_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_to(vec4 vec, vec4 dest);
CGLM_INLINE float glm_vec4_distance(vec4 v1, vec4 v2);
@@ -225,6 +227,30 @@ glm_vec4_flipsign(vec4 v) {
#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
*

View File

@@ -80,6 +80,18 @@ glmc_vec_flipsign(vec3 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
float
glmc_vec_angle(vec3 v1, vec3 v2) {

View File

@@ -80,6 +80,18 @@ glmc_vec4_flipsign(vec4 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
float
glmc_vec4_distance(vec4 v1, vec4 v2) {