diff --git a/include/cglm-io.h b/include/cglm-io.h new file mode 100644 index 0000000..12c1a13 --- /dev/null +++ b/include/cglm-io.h @@ -0,0 +1,142 @@ +/* + * Copyright (c), Recep Aslantas. + * + * MIT License (MIT), http://opensource.org/licenses/MIT + * Full license can be found in the LICENSE file + */ + +#ifndef cglm_io_h +#define cglm_io_h + +#include "cglm-common.h" + +#include +#include + +CGLM_INLINE +void +glm_mat4_print(mat4 matrix, + FILE * __restrict ostream) { + int i; + int j; + +#define m 4 +#define n 4 + + fprintf(ostream, "Matrix (float%dx%d):\n", m, n); + + for (i = 0; i < m; i++) { + fprintf(ostream, "\t|"); + for (j = 0; j < n; j++) { + fprintf(ostream, "%0.4f", matrix[j][i]);; + + if (j != n - 1) + fprintf(ostream, "\t"); + } + + fprintf(ostream, "|\n"); + } + + fprintf(ostream, "\n"); + +#undef m +#undef n +} + +CGLM_INLINE +void +glm_mat3_print(mat3 matrix, + FILE * __restrict ostream) { + int i; + int j; + +#define m 3 +#define n 3 + + fprintf(ostream, "Matrix (float%dx%d):\n", m, n); + + for (i = 0; i < m; i++) { + fprintf(ostream, "\t|"); + for (j = 0; j < n; j++) { + fprintf(ostream, "%0.4f", matrix[j][i]);; + + if (j != n - 1) + fprintf(ostream, "\t"); + } + + fprintf(ostream, "|\n"); + } + + fprintf(ostream, "\n"); + +#undef m +#undef n +} + +CGLM_INLINE +void +glm_vec4_print(vec4 vec, + FILE * __restrict ostream) { + int i; + +#define m 4 + + fprintf(ostream, "Vector (float%d):\n\t|", m); + + for (i = 0; i < m; i++) { + fprintf(ostream, "%0.4f", vec[i]); + + if (i != m - 1) + fprintf(ostream, "\t"); + } + + fprintf(ostream, "|\n\n"); + +#undef m +} + +CGLM_INLINE +void +glm_vec3_print(vec3 vec, + FILE * __restrict ostream) { + int i; + +#define m 3 + + fprintf(ostream, "Vector (float%d):\n\t|", m); + + for (i = 0; i < m; i++) { + fprintf(ostream, "%0.4f", vec[i]); + + if (i != m - 1) + fprintf(ostream, "\t"); + } + + fprintf(ostream, "|\n\n"); + +#undef m +} + +CGLM_INLINE +void +glm_versor_print(versor vec, + FILE * __restrict ostream) { + int i; + +#define m 4 + + fprintf(ostream, "Versor (float%d):\n\t|", m); + + for (i = 0; i < m; i++) { + fprintf(ostream, "%0.4f", vec[i]); + + if (i != m - 1) + fprintf(ostream, "\t"); + } + + fprintf(ostream, "|\n\n"); + +#undef m +} + +#endif /* cglm_io_h */ diff --git a/include/cglm-util.h b/include/cglm-util.h index fdd8c7d..0aa0fa8 100644 --- a/include/cglm-util.h +++ b/include/cglm-util.h @@ -10,133 +10,16 @@ #include "cglm-common.h" -#include -#include - CGLM_INLINE -void -glm_mat4_print(mat4 matrix, - FILE * __restrict ostream) { - int i; - int j; - -#define m 4 -#define n 4 - - fprintf(ostream, "Matrix (float%dx%d):\n", m, n); - - for (i = 0; i < m; i++) { - fprintf(ostream, "\t|"); - for (j = 0; j < n; j++) { - fprintf(ostream, "%0.4f", matrix[j][i]);; - - if (j != n - 1) - fprintf(ostream, "\t"); - } - - fprintf(ostream, "|\n"); - } - - fprintf(ostream, "\n"); - -#undef m -#undef n +float +glm_rad(float deg) { + return deg * M_PI / 180.0f; } CGLM_INLINE -void -glm_mat3_print(mat3 matrix, - FILE * __restrict ostream) { - int i; - int j; - -#define m 3 -#define n 3 - - fprintf(ostream, "Matrix (float%dx%d):\n", m, n); - - for (i = 0; i < m; i++) { - fprintf(ostream, "\t|"); - for (j = 0; j < n; j++) { - fprintf(ostream, "%0.4f", matrix[j][i]);; - - if (j != n - 1) - fprintf(ostream, "\t"); - } - - fprintf(ostream, "|\n"); - } - - fprintf(ostream, "\n"); - -#undef m -#undef n -} - -CGLM_INLINE -void -glm_vec4_print(vec4 vec, - FILE * __restrict ostream) { - int i; - -#define m 4 - - fprintf(ostream, "Vector (float%d):\n\t|", m); - - for (i = 0; i < m; i++) { - fprintf(ostream, "%0.4f", vec[i]); - - if (i != m - 1) - fprintf(ostream, "\t"); - } - - fprintf(ostream, "|\n\n"); - -#undef m -} - -CGLM_INLINE -void -glm_vec3_print(vec3 vec, - FILE * __restrict ostream) { - int i; - -#define m 3 - - fprintf(ostream, "Vector (float%d):\n\t|", m); - - for (i = 0; i < m; i++) { - fprintf(ostream, "%0.4f", vec[i]); - - if (i != m - 1) - fprintf(ostream, "\t"); - } - - fprintf(ostream, "|\n\n"); - -#undef m -} - -CGLM_INLINE -void -glm_versor_print(versor vec, - FILE * __restrict ostream) { - int i; - -#define m 4 - - fprintf(ostream, "Versor (float%d):\n\t|", m); - - for (i = 0; i < m; i++) { - fprintf(ostream, "%0.4f", vec[i]); - - if (i != m - 1) - fprintf(ostream, "\t"); - } - - fprintf(ostream, "|\n\n"); - -#undef m +float +glm_deg(float rad) { + return rad * 180.0f / M_PI; } #endif /* cglm_util_h */ diff --git a/include/cglm.h b/include/cglm.h index 9144165..8a0b867 100644 --- a/include/cglm.h +++ b/include/cglm.h @@ -12,10 +12,11 @@ #include "cglm-vec.h" #include "cglm-mat.h" #include "cglm-mat3.h" -#include "cglm-util.h" #include "cglm-affine.h" #include "cglm-cam.h" #include "cglm-quat.h" #include "cglm-euler.h" +#include "cglm-util.h" +#include "cglm-io.h" #endif /* cglm_h */