vec: extend flip sign to store result in another vector

This commit is contained in:
Recep Aslantas
2018-04-10 10:46:45 +03:00
parent 6f69da361b
commit 591c881376
2 changed files with 34 additions and 0 deletions

View File

@@ -242,6 +242,20 @@ glm_vec_flipsign(vec3 v) {
v[2] = -v[2];
}
/*!
* @brief flip sign of all vec3 members and store result in dest
*
* @param[in] v vector
* @param[out] dest vector
*/
CGLM_INLINE
void
glm_vec_flipsign_to(vec3 v, vec3 dest) {
dest[0] = -v[0];
dest[1] = -v[1];
dest[2] = -v[2];
}
/*!
* @brief make vector as inverse/opposite of itself
*

View File

@@ -268,6 +268,26 @@ glm_vec4_flipsign(vec4 v) {
#endif
}
/*!
* @brief flip sign of all vec4 members and store result in dest
*
* @param[in] v vector
* @param[out] dest vector
*/
CGLM_INLINE
void
glm_vec4_flipsign_to(vec4 v, vec4 dest) {
#if defined( __SSE__ ) || defined( __SSE2__ )
_mm_store_ps(dest, _mm_xor_ps(_mm_load_ps(v),
_mm_set1_ps(-0.0f)));
#else
dest[0] = -v[0];
dest[1] = -v[1];
dest[2] = -v[2];
dest[3] = -v[3];
#endif
}
/*!
* @brief make vector as inverse/opposite of itself
*