struct: provide option to omit struct api namespace e.g. glms_ and an option to add s suffix e.g. mat4s_mul if preferred

This commit is contained in:
Recep Aslantas
2023-04-09 14:28:05 +03:00
parent 0b3049dca0
commit ea8ef4a3c9
10 changed files with 278 additions and 230 deletions

View File

@@ -36,6 +36,9 @@
#include "../types-struct.h"
#include "../mat2.h"
/* api definition */
#define glms_mat2_(NAME) CGLM_STRUCTAPI(mat2, NAME)
#define GLMS_MAT2_IDENTITY_INIT {GLM_MAT2_IDENTITY_INIT}
#define GLMS_MAT2_ZERO_INIT {GLM_MAT2_ZERO_INIT}
@@ -59,7 +62,7 @@
*/
CGLM_INLINE
mat2s
glms_mat2_identity(void) {
glms_mat2_(identity)(void) {
mat2s r;
glm_mat2_identity(r.raw);
return r;
@@ -75,7 +78,7 @@ glms_mat2_identity(void) {
*/
CGLM_INLINE
void
glms_mat2_identity_array(mat2s * __restrict mat, size_t count) {
glms_mat2_(identity_array)(mat2s * __restrict mat, size_t count) {
CGLM_ALIGN_MAT mat2s t = GLMS_MAT2_IDENTITY_INIT;
size_t i;
@@ -91,7 +94,7 @@ glms_mat2_identity_array(mat2s * __restrict mat, size_t count) {
*/
CGLM_INLINE
mat2s
glms_mat2_zero(void) {
glms_mat2_(zero)(void) {
mat2s r;
glm_mat2_zero(r.raw);
return r;
@@ -114,7 +117,7 @@ glms_mat2_zero(void) {
*/
CGLM_INLINE
mat2s
glms_mat2_mul(mat2s m1, mat2s m2) {
glms_mat2_(mul)(mat2s m1, mat2s m2) {
mat2s r;
glm_mat2_mul(m1.raw, m2.raw, r.raw);
return r;
@@ -129,7 +132,7 @@ glms_mat2_mul(mat2s m1, mat2s m2) {
*/
CGLM_INLINE
mat2s
glms_mat2_transpose(mat2s m) {
glms_mat2_(transpose)(mat2s m) {
glm_mat2_transpose(m.raw);
return m;
}
@@ -143,7 +146,7 @@ glms_mat2_transpose(mat2s m) {
*/
CGLM_INLINE
vec2s
glms_mat2_mulv(mat2s m, vec2s v) {
glms_mat2_(mulv)(mat2s m, vec2s v) {
vec2s r;
glm_mat2_mulv(m.raw, v.raw, r.raw);
return r;
@@ -158,7 +161,7 @@ glms_mat2_mulv(mat2s m, vec2s v) {
*/
CGLM_INLINE
float
glms_mat2_trace(mat2s m) {
glms_mat2_(trace)(mat2s m) {
return glm_mat2_trace(m.raw);
}
@@ -173,7 +176,7 @@ glms_mat2_trace(mat2s m) {
*/
CGLM_INLINE
mat2s
glms_mat2_scale(mat2s m, float s) {
glms_mat2_(scale)(mat2s m, float s) {
glm_mat2_scale(m.raw, s);
return m;
}
@@ -187,7 +190,7 @@ glms_mat2_scale(mat2s m, float s) {
*/
CGLM_INLINE
float
glms_mat2_det(mat2s mat) {
glms_mat2_(det)(mat2s mat) {
return glm_mat2_det(mat.raw);
}
@@ -199,7 +202,7 @@ glms_mat2_det(mat2s mat) {
*/
CGLM_INLINE
mat2s
glms_mat2_inv(mat2s mat) {
glms_mat2_(inv)(mat2s mat) {
mat2s r;
glm_mat2_inv(mat.raw, r.raw);
return r;
@@ -215,7 +218,7 @@ glms_mat2_inv(mat2s mat) {
*/
CGLM_INLINE
mat2s
glms_mat2_swap_col(mat2s mat, int col1, int col2) {
glms_mat2_(swap_col)(mat2s mat, int col1, int col2) {
glm_mat2_swap_col(mat.raw, col1, col2);
return mat;
}
@@ -230,7 +233,7 @@ glms_mat2_swap_col(mat2s mat, int col1, int col2) {
*/
CGLM_INLINE
mat2s
glms_mat2_swap_row(mat2s mat, int row1, int row2) {
glms_mat2_(swap_row)(mat2s mat, int row1, int row2) {
glm_mat2_swap_row(mat.raw, row1, row2);
return mat;
}
@@ -251,7 +254,7 @@ glms_mat2_swap_row(mat2s mat, int row1, int row2) {
*/
CGLM_INLINE
float
glms_mat2_rmc(vec2s r, mat2s m, vec2s c) {
glms_mat2_(rmc)(vec2s r, mat2s m, vec2s c) {
return glm_mat2_rmc(r.raw, m.raw, c.raw);
}