mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 09:08:53 +00:00
option to override FLT_EPSILON with GLM_FLT_EPSILON
This commit is contained in:
@@ -40,4 +40,12 @@
|
|||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "simd/intrin.h"
|
#include "simd/intrin.h"
|
||||||
|
|
||||||
|
#ifndef CGLM_USE_DEFAULT_EPSILON
|
||||||
|
# ifndef GLM_FLT_EPSILON
|
||||||
|
# define GLM_FLT_EPSILON 1e-6
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define GLM_FLT_EPSILON FLT_EPSILON
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* cglm_common_h */
|
#endif /* cglm_common_h */
|
||||||
|
@@ -289,7 +289,7 @@ glm_smoothinterpc(float from, float to, float t) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_eq(float a, float b) {
|
glm_eq(float a, float b) {
|
||||||
return fabsf(a - b) <= FLT_EPSILON;
|
return fabsf(a - b) <= GLM_FLT_EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -61,8 +61,8 @@ glm_vec2_eq(vec2 v, float val) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec2_eq_eps(vec2 v, float val) {
|
glm_vec2_eq_eps(vec2 v, float val) {
|
||||||
return fabsf(v[0] - val) <= FLT_EPSILON
|
return fabsf(v[0] - val) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(v[1] - val) <= FLT_EPSILON;
|
&& fabsf(v[1] - val) <= GLM_FLT_EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -97,8 +97,8 @@ glm_vec2_eqv(vec2 a, vec2 b) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec2_eqv_eps(vec2 a, vec2 b) {
|
glm_vec2_eqv_eps(vec2 a, vec2 b) {
|
||||||
return fabsf(a[0] - b[0]) <= FLT_EPSILON
|
return fabsf(a[0] - b[0]) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(a[1] - b[1]) <= FLT_EPSILON;
|
&& fabsf(a[1] - b[1]) <= GLM_FLT_EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -81,9 +81,9 @@ glm_vec3_eq(vec3 v, float val) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec3_eq_eps(vec3 v, float val) {
|
glm_vec3_eq_eps(vec3 v, float val) {
|
||||||
return fabsf(v[0] - val) <= FLT_EPSILON
|
return fabsf(v[0] - val) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(v[1] - val) <= FLT_EPSILON
|
&& fabsf(v[1] - val) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(v[2] - val) <= FLT_EPSILON;
|
&& fabsf(v[2] - val) <= GLM_FLT_EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -120,9 +120,9 @@ glm_vec3_eqv(vec3 a, vec3 b) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec3_eqv_eps(vec3 a, vec3 b) {
|
glm_vec3_eqv_eps(vec3 a, vec3 b) {
|
||||||
return fabsf(a[0] - b[0]) <= FLT_EPSILON
|
return fabsf(a[0] - b[0]) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(a[1] - b[1]) <= FLT_EPSILON
|
&& fabsf(a[1] - b[1]) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(a[2] - b[2]) <= FLT_EPSILON;
|
&& fabsf(a[2] - b[2]) <= GLM_FLT_EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -92,10 +92,10 @@ glm_vec4_eq(vec4 v, float val) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec4_eq_eps(vec4 v, float val) {
|
glm_vec4_eq_eps(vec4 v, float val) {
|
||||||
return fabsf(v[0] - val) <= FLT_EPSILON
|
return fabsf(v[0] - val) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(v[1] - val) <= FLT_EPSILON
|
&& fabsf(v[1] - val) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(v[2] - val) <= FLT_EPSILON
|
&& fabsf(v[2] - val) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(v[3] - val) <= FLT_EPSILON;
|
&& fabsf(v[3] - val) <= GLM_FLT_EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -135,10 +135,10 @@ glm_vec4_eqv(vec4 a, vec4 b) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec4_eqv_eps(vec4 a, vec4 b) {
|
glm_vec4_eqv_eps(vec4 a, vec4 b) {
|
||||||
return fabsf(a[0] - b[0]) <= FLT_EPSILON
|
return fabsf(a[0] - b[0]) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(a[1] - b[1]) <= FLT_EPSILON
|
&& fabsf(a[1] - b[1]) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(a[2] - b[2]) <= FLT_EPSILON
|
&& fabsf(a[2] - b[2]) <= GLM_FLT_EPSILON
|
||||||
&& fabsf(a[3] - b[3]) <= FLT_EPSILON;
|
&& fabsf(a[3] - b[3]) <= GLM_FLT_EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -35,9 +35,9 @@ TEST_IMPL(camera_decomp) {
|
|||||||
farVal = 100.0f;
|
farVal = 100.0f;
|
||||||
|
|
||||||
glm_perspective(fovy, aspect, nearVal, farVal, proj);
|
glm_perspective(fovy, aspect, nearVal, farVal, proj);
|
||||||
ASSERT(fabsf(aspect - glm_persp_aspect(proj)) < FLT_EPSILON)
|
ASSERT(fabsf(aspect - glm_persp_aspect(proj)) < GLM_FLT_EPSILON)
|
||||||
ASSERT(fabsf(fovy - glm_persp_fovy(proj)) < FLT_EPSILON)
|
ASSERT(fabsf(fovy - glm_persp_fovy(proj)) < GLM_FLT_EPSILON)
|
||||||
ASSERT(fabsf(49.984f - glm_deg(glm_persp_fovy(proj))) < FLT_EPSILON)
|
ASSERT(fabsf(49.984f - glm_deg(glm_persp_fovy(proj))) < GLM_FLT_EPSILON)
|
||||||
|
|
||||||
glm_persp_sizes(proj, fovy, sizes);
|
glm_persp_sizes(proj, fovy, sizes);
|
||||||
|
|
||||||
|
@@ -106,7 +106,7 @@ test_rand_quat(versor q);
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
test_eq(float a, float b) {
|
test_eq(float a, float b) {
|
||||||
return fabsf(a - b) <= 1e-6;
|
return fabsf(a - b) <= GLM_FLT_EPSILON * 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
|
Reference in New Issue
Block a user