mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
Merge pull request #61 from hartenfels/master
Replace non-standard M_PI* constants
This commit is contained in:
@@ -293,7 +293,7 @@ CGLM_INLINE
|
|||||||
void
|
void
|
||||||
glm_perspective_default(float aspect,
|
glm_perspective_default(float aspect,
|
||||||
mat4 dest) {
|
mat4 dest) {
|
||||||
glm_perspective((float)CGLM_PI_4,
|
glm_perspective(GLM_PI_4f,
|
||||||
aspect,
|
aspect,
|
||||||
0.01f,
|
0.01f,
|
||||||
100.0f,
|
100.0f,
|
||||||
|
|||||||
@@ -19,19 +19,19 @@ glm_ease_linear(float t) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_ease_sine_in(float t) {
|
glm_ease_sine_in(float t) {
|
||||||
return sinf((t - 1.0f) * CGLM_PI_2) + 1.0f;
|
return sinf((t - 1.0f) * GLM_PI_2f) + 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_ease_sine_out(float t) {
|
glm_ease_sine_out(float t) {
|
||||||
return sinf(t * CGLM_PI_2);
|
return sinf(t * GLM_PI_2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_ease_sine_inout(float t) {
|
glm_ease_sine_inout(float t) {
|
||||||
return 0.5f * (1.0f - cosf(t * CGLM_PI));
|
return 0.5f * (1.0f - cosf(t * GLM_PIf));
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
@@ -254,13 +254,13 @@ glm_ease_back_inout(float t) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_ease_elast_in(float t) {
|
glm_ease_elast_in(float t) {
|
||||||
return sinf(13.0f * CGLM_PI_2 * t) * powf(2.0f, 10.0f * (t - 1.0f));
|
return sinf(13.0f * GLM_PI_2f * t) * powf(2.0f, 10.0f * (t - 1.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_ease_elast_out(float t) {
|
glm_ease_elast_out(float t) {
|
||||||
return sinf(-13.0f * CGLM_PI_2 * (t + 1.0f)) * powf(2.0f, -10.0f * t) + 1.0f;
|
return sinf(-13.0f * GLM_PI_2f * (t + 1.0f)) * powf(2.0f, -10.0f * t) + 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
@@ -271,10 +271,10 @@ glm_ease_elast_inout(float t) {
|
|||||||
a = 2.0f * t;
|
a = 2.0f * t;
|
||||||
|
|
||||||
if (t < 0.5f)
|
if (t < 0.5f)
|
||||||
return 0.5f * sinf(13.0f * CGLM_PI_2 * a)
|
return 0.5f * sinf(13.0f * GLM_PI_2f * a)
|
||||||
* powf(2.0f, 10.0f * (a - 1.0f));
|
* powf(2.0f, 10.0f * (a - 1.0f));
|
||||||
|
|
||||||
return 0.5f * (sinf(-13.0f * CGLM_PI_2 * a)
|
return 0.5f * (sinf(-13.0f * GLM_PI_2f * a)
|
||||||
* powf(2.0f, -10.0f * (a - 1.0f)) + 2.0f);
|
* powf(2.0f, -10.0f * (a - 1.0f)) + 2.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -84,12 +84,12 @@ glm_euler_angles(mat4 m, vec3 dest) {
|
|||||||
thetaZ = atan2f(-m10, m00);
|
thetaZ = atan2f(-m10, m00);
|
||||||
} else { /* m20 == -1 */
|
} else { /* m20 == -1 */
|
||||||
/* Not a unique solution */
|
/* Not a unique solution */
|
||||||
thetaY = -CGLM_PI_2;
|
thetaY = -GLM_PI_2f;
|
||||||
thetaX = -atan2f(m01, m11);
|
thetaX = -atan2f(m01, m11);
|
||||||
thetaZ = 0.0f;
|
thetaZ = 0.0f;
|
||||||
}
|
}
|
||||||
} else { /* m20 == +1 */
|
} else { /* m20 == +1 */
|
||||||
thetaY = CGLM_PI_2;
|
thetaY = GLM_PI_2f;
|
||||||
thetaX = atan2f(m01, m11);
|
thetaX = atan2f(m01, m11);
|
||||||
thetaZ = 0.0f;
|
thetaZ = 0.0f;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -689,7 +689,7 @@ glm_quat_for(vec3 dir, vec3 fwd, vec3 up, versor dest) {
|
|||||||
|
|
||||||
dot = glm_vec_dot(dir, fwd);
|
dot = glm_vec_dot(dir, fwd);
|
||||||
if (fabsf(dot + 1.0f) < 0.000001f) {
|
if (fabsf(dot + 1.0f) < 0.000001f) {
|
||||||
glm_quat_init(dest, up[0], up[1], up[2], CGLM_PI);
|
glm_quat_init(dest, up[0], up[1], up[2], GLM_PIf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,11 +45,39 @@ typedef vec3 mat3[3];
|
|||||||
typedef CGLM_ALIGN_IF(16) vec4 mat4[4];
|
typedef CGLM_ALIGN_IF(16) vec4 mat4[4];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
typedef vec4 versor;
|
typedef vec4 versor;
|
||||||
|
|
||||||
#define CGLM_PI ((float)M_PI)
|
#define GLM_E 2.71828182845904523536028747135266250 /* e */
|
||||||
#define CGLM_PI_2 ((float)M_PI_2)
|
#define GLM_LOG2E 1.44269504088896340735992468100189214 /* log2(e) */
|
||||||
#define CGLM_PI_4 ((float)M_PI_4)
|
#define GLM_LOG10E 0.434294481903251827651128918916605082 /* log10(e) */
|
||||||
|
#define GLM_LN2 0.693147180559945309417232121458176568 /* loge(2) */
|
||||||
|
#define GLM_LN10 2.30258509299404568401799145468436421 /* loge(10) */
|
||||||
|
#define GLM_PI 3.14159265358979323846264338327950288 /* pi */
|
||||||
|
#define GLM_PI_2 1.57079632679489661923132169163975144 /* pi/2 */
|
||||||
|
#define GLM_PI_4 0.785398163397448309615660845819875721 /* pi/4 */
|
||||||
|
#define GLM_1_PI 0.318309886183790671537767526745028724 /* 1/pi */
|
||||||
|
#define GLM_2_PI 0.636619772367581343075535053490057448 /* 2/pi */
|
||||||
|
#define GLM_2_SQRTPI 1.12837916709551257389615890312154517 /* 2/sqrt(pi) */
|
||||||
|
#define GLM_SQRT2 1.41421356237309504880168872420969808 /* sqrt(2) */
|
||||||
|
#define GLM_SQRT1_2 0.707106781186547524400844362104849039 /* 1/sqrt(2) */
|
||||||
|
|
||||||
|
#define GLM_Ef ((float)GLM_E)
|
||||||
|
#define GLM_LOG2Ef ((float)GLM_LOG2E)
|
||||||
|
#define GLM_LOG10Ef ((float)GLM_LOG10E)
|
||||||
|
#define GLM_LN2f ((float)GLM_LN2)
|
||||||
|
#define GLM_LN10f ((float)GLM_LN10)
|
||||||
|
#define GLM_PIf ((float)GLM_PI)
|
||||||
|
#define GLM_PI_2f ((float)GLM_PI_2)
|
||||||
|
#define GLM_PI_4f ((float)GLM_PI_4)
|
||||||
|
#define GLM_1_PIf ((float)GLM_1_PI)
|
||||||
|
#define GLM_2_PIf ((float)GLM_2_PI)
|
||||||
|
#define GLM_2_SQRTPIf ((float)GLM_2_SQRTPI)
|
||||||
|
#define GLM_SQRT2f ((float)GLM_SQRT2)
|
||||||
|
#define GLM_SQRT1_2f ((float)GLM_SQRT1_2)
|
||||||
|
|
||||||
|
/* DEPRECATED! use GLM_PI and friends */
|
||||||
|
#define CGLM_PI GLM_PIf
|
||||||
|
#define CGLM_PI_2 GLM_PI_2f
|
||||||
|
#define CGLM_PI_4 GLM_PI_4f
|
||||||
|
|
||||||
#endif /* cglm_types_h */
|
#endif /* cglm_types_h */
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ glm_signf(float val) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_rad(float deg) {
|
glm_rad(float deg) {
|
||||||
return deg * CGLM_PI / 180.0f;
|
return deg * GLM_PIf / 180.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -69,7 +69,7 @@ glm_rad(float deg) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_deg(float rad) {
|
glm_deg(float rad) {
|
||||||
return rad * 180.0f / CGLM_PI;
|
return rad * 180.0f / GLM_PIf;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -80,7 +80,7 @@ glm_deg(float rad) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
void
|
void
|
||||||
glm_make_rad(float *deg) {
|
glm_make_rad(float *deg) {
|
||||||
*deg = *deg * CGLM_PI / 180.0f;
|
*deg = *deg * GLM_PIf / 180.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -91,7 +91,7 @@ glm_make_rad(float *deg) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
void
|
void
|
||||||
glm_make_deg(float *rad) {
|
glm_make_deg(float *rad) {
|
||||||
*rad = *rad * 180.0f / CGLM_PI;
|
*rad = *rad * 180.0f / GLM_PIf;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ test_affine(void **state) {
|
|||||||
mat4 t1, t2, t3, t4, t5;
|
mat4 t1, t2, t3, t4, t5;
|
||||||
|
|
||||||
/* test translate is postmultiplied */
|
/* test translate is postmultiplied */
|
||||||
glmc_rotate_make(t1, M_PI_4, GLM_YUP);
|
glmc_rotate_make(t1, GLM_PI_4f, GLM_YUP);
|
||||||
glm_translate_make(t2, (vec3){34, 57, 36});
|
glm_translate_make(t2, (vec3){34, 57, 36});
|
||||||
|
|
||||||
glmc_mat4_mul(t1, t2, t3); /* R * T */
|
glmc_mat4_mul(t1, t2, t3); /* R * T */
|
||||||
@@ -21,16 +21,16 @@ test_affine(void **state) {
|
|||||||
test_assert_mat4_eq(t1, t3);
|
test_assert_mat4_eq(t1, t3);
|
||||||
|
|
||||||
/* test rotate is postmultiplied */
|
/* test rotate is postmultiplied */
|
||||||
glmc_rotate_make(t1, M_PI_4, GLM_YUP);
|
glmc_rotate_make(t1, GLM_PI_4f, GLM_YUP);
|
||||||
glm_translate_make(t2, (vec3){34, 57, 36});
|
glm_translate_make(t2, (vec3){34, 57, 36});
|
||||||
|
|
||||||
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
||||||
|
|
||||||
glm_rotate(t2, M_PI_4, GLM_YUP);
|
glm_rotate(t2, GLM_PI_4f, GLM_YUP);
|
||||||
test_assert_mat4_eq(t2, t3);
|
test_assert_mat4_eq(t2, t3);
|
||||||
|
|
||||||
/* test scale is postmultiplied */
|
/* test scale is postmultiplied */
|
||||||
glmc_rotate_make(t1, M_PI_4, GLM_YUP);
|
glmc_rotate_make(t1, GLM_PI_4f, GLM_YUP);
|
||||||
glm_translate_make(t2, (vec3){34, 57, 36});
|
glm_translate_make(t2, (vec3){34, 57, 36});
|
||||||
glm_scale_make(t4, (vec3){3, 5, 6});
|
glm_scale_make(t4, (vec3){3, 5, 6});
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ test_affine(void **state) {
|
|||||||
test_assert_mat4_eq(t3, t5);
|
test_assert_mat4_eq(t3, t5);
|
||||||
|
|
||||||
/* test translate_x */
|
/* test translate_x */
|
||||||
glmc_rotate_make(t1, M_PI_4, GLM_YUP);
|
glmc_rotate_make(t1, GLM_PI_4f, GLM_YUP);
|
||||||
glm_translate_make(t2, (vec3){34, 0, 0});
|
glm_translate_make(t2, (vec3){34, 0, 0});
|
||||||
|
|
||||||
glmc_mat4_mul(t1, t2, t3); /* R * T */
|
glmc_mat4_mul(t1, t2, t3); /* R * T */
|
||||||
@@ -49,7 +49,7 @@ test_affine(void **state) {
|
|||||||
test_assert_mat4_eq(t1, t3);
|
test_assert_mat4_eq(t1, t3);
|
||||||
|
|
||||||
/* test translate_y */
|
/* test translate_y */
|
||||||
glmc_rotate_make(t1, M_PI_4, GLM_YUP);
|
glmc_rotate_make(t1, GLM_PI_4f, GLM_YUP);
|
||||||
glm_translate_make(t2, (vec3){0, 57, 0});
|
glm_translate_make(t2, (vec3){0, 57, 0});
|
||||||
|
|
||||||
glmc_mat4_mul(t1, t2, t3); /* R * T */
|
glmc_mat4_mul(t1, t2, t3); /* R * T */
|
||||||
@@ -57,7 +57,7 @@ test_affine(void **state) {
|
|||||||
test_assert_mat4_eq(t1, t3);
|
test_assert_mat4_eq(t1, t3);
|
||||||
|
|
||||||
/* test translate_z */
|
/* test translate_z */
|
||||||
glmc_rotate_make(t1, M_PI_4, GLM_YUP);
|
glmc_rotate_make(t1, GLM_PI_4f, GLM_YUP);
|
||||||
glm_translate_make(t2, (vec3){0, 0, 36});
|
glm_translate_make(t2, (vec3){0, 0, 36});
|
||||||
|
|
||||||
glmc_mat4_mul(t1, t2, t3); /* R * T */
|
glmc_mat4_mul(t1, t2, t3); /* R * T */
|
||||||
@@ -65,43 +65,43 @@ test_affine(void **state) {
|
|||||||
test_assert_mat4_eq(t1, t3);
|
test_assert_mat4_eq(t1, t3);
|
||||||
|
|
||||||
/* test rotate_x */
|
/* test rotate_x */
|
||||||
glmc_rotate_make(t1, M_PI_4, (vec3){1, 0, 0});
|
glmc_rotate_make(t1, GLM_PI_4f, (vec3){1, 0, 0});
|
||||||
glm_translate_make(t2, (vec3){34, 57, 36});
|
glm_translate_make(t2, (vec3){34, 57, 36});
|
||||||
|
|
||||||
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
||||||
|
|
||||||
glm_rotate_x(t2, M_PI_4, t2);
|
glm_rotate_x(t2, GLM_PI_4f, t2);
|
||||||
test_assert_mat4_eq(t2, t3);
|
test_assert_mat4_eq(t2, t3);
|
||||||
|
|
||||||
/* test rotate_y */
|
/* test rotate_y */
|
||||||
glmc_rotate_make(t1, M_PI_4, (vec3){0, 1, 0});
|
glmc_rotate_make(t1, GLM_PI_4f, (vec3){0, 1, 0});
|
||||||
glm_translate_make(t2, (vec3){34, 57, 36});
|
glm_translate_make(t2, (vec3){34, 57, 36});
|
||||||
|
|
||||||
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
||||||
|
|
||||||
glm_rotate_y(t2, M_PI_4, t2);
|
glm_rotate_y(t2, GLM_PI_4f, t2);
|
||||||
test_assert_mat4_eq(t2, t3);
|
test_assert_mat4_eq(t2, t3);
|
||||||
|
|
||||||
/* test rotate_z */
|
/* test rotate_z */
|
||||||
glmc_rotate_make(t1, M_PI_4, (vec3){0, 0, 1});
|
glmc_rotate_make(t1, GLM_PI_4f, (vec3){0, 0, 1});
|
||||||
glm_translate_make(t2, (vec3){34, 57, 36});
|
glm_translate_make(t2, (vec3){34, 57, 36});
|
||||||
|
|
||||||
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
||||||
|
|
||||||
glm_rotate_z(t2, M_PI_4, t2);
|
glm_rotate_z(t2, GLM_PI_4f, t2);
|
||||||
test_assert_mat4_eq(t2, t3);
|
test_assert_mat4_eq(t2, t3);
|
||||||
|
|
||||||
/* test rotate */
|
/* test rotate */
|
||||||
glmc_rotate_make(t1, M_PI_4, (vec3){0, 0, 1});
|
glmc_rotate_make(t1, GLM_PI_4f, (vec3){0, 0, 1});
|
||||||
glm_translate_make(t2, (vec3){34, 57, 36});
|
glm_translate_make(t2, (vec3){34, 57, 36});
|
||||||
|
|
||||||
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
glmc_mat4_mul(t2, t1, t3); /* T * R */
|
||||||
glmc_rotate(t2, M_PI_4, (vec3){0, 0, 1});
|
glmc_rotate(t2, GLM_PI_4f, (vec3){0, 0, 1});
|
||||||
|
|
||||||
test_assert_mat4_eq(t3, t2);
|
test_assert_mat4_eq(t3, t2);
|
||||||
|
|
||||||
/* test scale_uni */
|
/* test scale_uni */
|
||||||
glmc_rotate_make(t1, M_PI_4, GLM_YUP);
|
glmc_rotate_make(t1, GLM_PI_4f, GLM_YUP);
|
||||||
glm_translate_make(t2, (vec3){34, 57, 36});
|
glm_translate_make(t2, (vec3){34, 57, 36});
|
||||||
glm_scale_make(t4, (vec3){3, 3, 3});
|
glm_scale_make(t4, (vec3){3, 3, 3});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user