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 "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 */
|
||||
|
@@ -289,7 +289,7 @@ glm_smoothinterpc(float from, float to, float t) {
|
||||
CGLM_INLINE
|
||||
bool
|
||||
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
|
||||
bool
|
||||
glm_vec2_eq_eps(vec2 v, float val) {
|
||||
return fabsf(v[0] - val) <= FLT_EPSILON
|
||||
&& fabsf(v[1] - val) <= FLT_EPSILON;
|
||||
return fabsf(v[0] - val) <= GLM_FLT_EPSILON
|
||||
&& fabsf(v[1] - val) <= GLM_FLT_EPSILON;
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -97,8 +97,8 @@ glm_vec2_eqv(vec2 a, vec2 b) {
|
||||
CGLM_INLINE
|
||||
bool
|
||||
glm_vec2_eqv_eps(vec2 a, vec2 b) {
|
||||
return fabsf(a[0] - b[0]) <= FLT_EPSILON
|
||||
&& fabsf(a[1] - b[1]) <= FLT_EPSILON;
|
||||
return fabsf(a[0] - b[0]) <= GLM_FLT_EPSILON
|
||||
&& fabsf(a[1] - b[1]) <= GLM_FLT_EPSILON;
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@@ -81,9 +81,9 @@ glm_vec3_eq(vec3 v, float val) {
|
||||
CGLM_INLINE
|
||||
bool
|
||||
glm_vec3_eq_eps(vec3 v, float val) {
|
||||
return fabsf(v[0] - val) <= FLT_EPSILON
|
||||
&& fabsf(v[1] - val) <= FLT_EPSILON
|
||||
&& fabsf(v[2] - val) <= FLT_EPSILON;
|
||||
return fabsf(v[0] - val) <= GLM_FLT_EPSILON
|
||||
&& fabsf(v[1] - val) <= GLM_FLT_EPSILON
|
||||
&& fabsf(v[2] - val) <= GLM_FLT_EPSILON;
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -120,9 +120,9 @@ glm_vec3_eqv(vec3 a, vec3 b) {
|
||||
CGLM_INLINE
|
||||
bool
|
||||
glm_vec3_eqv_eps(vec3 a, vec3 b) {
|
||||
return fabsf(a[0] - b[0]) <= FLT_EPSILON
|
||||
&& fabsf(a[1] - b[1]) <= FLT_EPSILON
|
||||
&& fabsf(a[2] - b[2]) <= FLT_EPSILON;
|
||||
return fabsf(a[0] - b[0]) <= GLM_FLT_EPSILON
|
||||
&& fabsf(a[1] - b[1]) <= GLM_FLT_EPSILON
|
||||
&& fabsf(a[2] - b[2]) <= GLM_FLT_EPSILON;
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@@ -92,10 +92,10 @@ glm_vec4_eq(vec4 v, float val) {
|
||||
CGLM_INLINE
|
||||
bool
|
||||
glm_vec4_eq_eps(vec4 v, float val) {
|
||||
return fabsf(v[0] - val) <= FLT_EPSILON
|
||||
&& fabsf(v[1] - val) <= FLT_EPSILON
|
||||
&& fabsf(v[2] - val) <= FLT_EPSILON
|
||||
&& fabsf(v[3] - val) <= FLT_EPSILON;
|
||||
return fabsf(v[0] - val) <= GLM_FLT_EPSILON
|
||||
&& fabsf(v[1] - val) <= GLM_FLT_EPSILON
|
||||
&& fabsf(v[2] - val) <= GLM_FLT_EPSILON
|
||||
&& fabsf(v[3] - val) <= GLM_FLT_EPSILON;
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -135,10 +135,10 @@ glm_vec4_eqv(vec4 a, vec4 b) {
|
||||
CGLM_INLINE
|
||||
bool
|
||||
glm_vec4_eqv_eps(vec4 a, vec4 b) {
|
||||
return fabsf(a[0] - b[0]) <= FLT_EPSILON
|
||||
&& fabsf(a[1] - b[1]) <= FLT_EPSILON
|
||||
&& fabsf(a[2] - b[2]) <= FLT_EPSILON
|
||||
&& fabsf(a[3] - b[3]) <= FLT_EPSILON;
|
||||
return fabsf(a[0] - b[0]) <= GLM_FLT_EPSILON
|
||||
&& fabsf(a[1] - b[1]) <= GLM_FLT_EPSILON
|
||||
&& fabsf(a[2] - b[2]) <= GLM_FLT_EPSILON
|
||||
&& fabsf(a[3] - b[3]) <= GLM_FLT_EPSILON;
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@@ -35,9 +35,9 @@ TEST_IMPL(camera_decomp) {
|
||||
farVal = 100.0f;
|
||||
|
||||
glm_perspective(fovy, aspect, nearVal, farVal, proj);
|
||||
ASSERT(fabsf(aspect - glm_persp_aspect(proj)) < FLT_EPSILON)
|
||||
ASSERT(fabsf(fovy - glm_persp_fovy(proj)) < FLT_EPSILON)
|
||||
ASSERT(fabsf(49.984f - glm_deg(glm_persp_fovy(proj))) < FLT_EPSILON)
|
||||
ASSERT(fabsf(aspect - glm_persp_aspect(proj)) < GLM_FLT_EPSILON)
|
||||
ASSERT(fabsf(fovy - glm_persp_fovy(proj)) < GLM_FLT_EPSILON)
|
||||
ASSERT(fabsf(49.984f - glm_deg(glm_persp_fovy(proj))) < GLM_FLT_EPSILON)
|
||||
|
||||
glm_persp_sizes(proj, fovy, sizes);
|
||||
|
||||
|
@@ -106,7 +106,7 @@ test_rand_quat(versor q);
|
||||
CGLM_INLINE
|
||||
bool
|
||||
test_eq(float a, float b) {
|
||||
return fabsf(a - b) <= 1e-6;
|
||||
return fabsf(a - b) <= GLM_FLT_EPSILON * 10;
|
||||
}
|
||||
|
||||
CGLM_INLINE
|
||||
|
Reference in New Issue
Block a user