clamp functions

This commit is contained in:
Recep Aslantas
2018-03-22 18:10:10 +03:00
parent 08be94a89b
commit 86055097e1
3 changed files with 44 additions and 0 deletions

View File

@@ -115,4 +115,17 @@ glm_max(float a, float b) {
return b;
}
/*!
* @brief clamp a number between min and max
*
* @param[in] val value to clamp
* @param[in] minVal minimum value
* @param[in] maxVal maximum value
*/
CGLM_INLINE
float
glm_clamp(float val, float minVal, float maxVal) {
return glm_min(glm_max(val, minVal), maxVal);
}
#endif /* cglm_util_h */

View File

@@ -478,6 +478,21 @@ glm_vec_ortho(vec3 v, vec3 dest) {
dest[2] = v[0] - v[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
*/
CGLM_INLINE
void
glm_vec_clamp(vec3 v, float minVal, float maxVal) {
v[0] = glm_clamp(v[0], minVal, maxVal);
v[1] = glm_clamp(v[1], minVal, maxVal);
v[2] = glm_clamp(v[2], minVal, maxVal);
}
/*!
* @brief vec3 cross product
*

View File

@@ -373,4 +373,20 @@ glm_vec4_minv(vec4 v1, vec4 v2, vec4 dest) {
dest[3] = glm_min(v1[3], v2[3]);
}
/*!
* @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
*/
CGLM_INLINE
void
glm_vec4_clamp(vec4 v, float minVal, float maxVal) {
v[0] = glm_clamp(v[0], minVal, maxVal);
v[1] = glm_clamp(v[1], minVal, maxVal);
v[2] = glm_clamp(v[2], minVal, maxVal);
v[3] = glm_clamp(v[3], minVal, maxVal);
}
#endif /* cglm_vec4_h */