From c221f8883afa593b1bb241fc4f07cd62a660c2a9 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sun, 9 Apr 2023 17:20:38 +0300 Subject: [PATCH] =?UTF-8?q?struct:=20provide=20option=20to=20omit=20struct?= =?UTF-8?q?=20api=20namespace=20e.g.=20`glms=5F`=20and=20an=20=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/cglm/struct/box.h | 37 ++++++++++++---------- include/cglm/struct/quat.h | 65 ++++++++++++++++++++------------------ 2 files changed, 54 insertions(+), 48 deletions(-) diff --git a/include/cglm/struct/box.h b/include/cglm/struct/box.h index a55884f..8356bf2 100644 --- a/include/cglm/struct/box.h +++ b/include/cglm/struct/box.h @@ -15,6 +15,9 @@ #include "vec4.h" #include "mat4.h" +/* api definition */ +#define glms_aabb_(NAME) CGLM_STRUCTAPI(aabb, NAME) + /*! * @brief apply transform to Axis-Aligned Bounding Box * @@ -24,7 +27,7 @@ */ CGLM_INLINE void -glms_aabb_transform(vec3s box[2], mat4s m, vec3s dest[2]) { +glms_aabb_(transform)(vec3s box[2], mat4s m, vec3s dest[2]) { vec3 rawBox[2]; vec3 rawDest[2]; @@ -45,7 +48,7 @@ glms_aabb_transform(vec3s box[2], mat4s m, vec3s dest[2]) { */ CGLM_INLINE void -glms_aabb_merge(vec3s box1[2], vec3s box2[2], vec3s dest[2]) { +glms_aabb_(merge)(vec3s box1[2], vec3s box2[2], vec3s dest[2]) { vec3 rawBox1[2]; vec3 rawBox2[2]; vec3 rawDest[2]; @@ -69,7 +72,7 @@ glms_aabb_merge(vec3s box1[2], vec3s box2[2], vec3s dest[2]) { */ CGLM_INLINE void -glms_aabb_crop(vec3s box[2], vec3s cropBox[2], vec3s dest[2]) { +glms_aabb_(crop)(vec3s box[2], vec3s cropBox[2], vec3s dest[2]) { vec3 rawBox[2]; vec3 rawCropBox[2]; vec3 rawDest[2]; @@ -94,10 +97,10 @@ glms_aabb_crop(vec3s box[2], vec3s cropBox[2], vec3s dest[2]) { */ CGLM_INLINE void -glms_aabb_crop_until(vec3s box[2], - vec3s cropBox[2], - vec3s clampBox[2], - vec3s dest[2]) { +glms_aabb_(crop_until)(vec3s box[2], + vec3s cropBox[2], + vec3s clampBox[2], + vec3s dest[2]) { glms_aabb_crop(box, cropBox, dest); glms_aabb_merge(clampBox, dest, dest); } @@ -118,7 +121,7 @@ glms_aabb_crop_until(vec3s box[2], */ CGLM_INLINE bool -glms_aabb_frustum(vec3s box[2], vec4s planes[6]) { +glms_aabb_(frustum)(vec3s box[2], vec4s planes[6]) { vec3 rawBox[2]; vec4 rawPlanes[6]; @@ -134,7 +137,7 @@ glms_aabb_frustum(vec3s box[2], vec4s planes[6]) { */ CGLM_INLINE void -glms_aabb_invalidate(vec3s box[2]) { +glms_aabb_(invalidate)(vec3s box[2]) { box[0] = glms_vec3_broadcast(FLT_MAX); box[1] = glms_vec3_broadcast(-FLT_MAX); } @@ -146,7 +149,7 @@ glms_aabb_invalidate(vec3s box[2]) { */ CGLM_INLINE bool -glms_aabb_isvalid(vec3s box[2]) { +glms_aabb_(isvalid)(vec3s box[2]) { vec3 rawBox[2]; glms_vec3_unpack(rawBox, box, 2); return glm_aabb_isvalid(rawBox); @@ -159,7 +162,7 @@ glms_aabb_isvalid(vec3s box[2]) { */ CGLM_INLINE float -glms_aabb_size(vec3s box[2]) { +glms_aabb_(size)(vec3s box[2]) { return glm_vec3_distance(box[0].raw, box[1].raw); } @@ -170,7 +173,7 @@ glms_aabb_size(vec3s box[2]) { */ CGLM_INLINE float -glms_aabb_radius(vec3s box[2]) { +glms_aabb_(radius)(vec3s box[2]) { return glms_aabb_size(box) * 0.5f; } @@ -182,7 +185,7 @@ glms_aabb_radius(vec3s box[2]) { */ CGLM_INLINE vec3s -glms_aabb_center(vec3s box[2]) { +glms_aabb_(center)(vec3s box[2]) { return glms_vec3_center(box[0], box[1]); } @@ -194,7 +197,7 @@ glms_aabb_center(vec3s box[2]) { */ CGLM_INLINE bool -glms_aabb_aabb(vec3s box[2], vec3s other[2]) { +glms_aabb_(aabb)(vec3s box[2], vec3s other[2]) { vec3 rawBox[2]; vec3 rawOther[2]; @@ -214,7 +217,7 @@ glms_aabb_aabb(vec3s box[2], vec3s other[2]) { */ CGLM_INLINE bool -glms_aabb_sphere(vec3s box[2], vec4s s) { +glms_aabb_(sphere)(vec3s box[2], vec4s s) { vec3 rawBox[2]; glms_vec3_unpack(rawBox, box, 2); @@ -229,7 +232,7 @@ glms_aabb_sphere(vec3s box[2], vec4s s) { */ CGLM_INLINE bool -glms_aabb_point(vec3s box[2], vec3s point) { +glms_aabb_(point)(vec3s box[2], vec3s point) { vec3 rawBox[2]; glms_vec3_unpack(rawBox, box, 2); @@ -244,7 +247,7 @@ glms_aabb_point(vec3s box[2], vec3s point) { */ CGLM_INLINE bool -glms_aabb_contains(vec3s box[2], vec3s other[2]) { +glms_aabb_(contains)(vec3s box[2], vec3s other[2]) { vec3 rawBox[2]; vec3 rawOther[2]; diff --git a/include/cglm/struct/quat.h b/include/cglm/struct/quat.h index d69675b..70f7df2 100644 --- a/include/cglm/struct/quat.h +++ b/include/cglm/struct/quat.h @@ -54,6 +54,9 @@ #include "../plane.h" #include "../quat.h" +/* api definition */ +#define glms_quat_(NAME) CGLM_STRUCTAPI(quat, NAME) + /* * IMPORTANT: * ---------------------------------------------------------------------------- @@ -74,7 +77,7 @@ */ CGLM_INLINE versors -glms_quat_identity(void) { +glms_quat_(identity)(void) { versors dest; glm_quat_identity(dest.raw); return dest; @@ -90,7 +93,7 @@ glms_quat_identity(void) { */ CGLM_INLINE void -glms_quat_identity_array(versors * __restrict q, size_t count) { +glms_quat_(identity_array)(versors * __restrict q, size_t count) { CGLM_ALIGN(16) versor v = GLM_QUAT_IDENTITY_INIT; size_t i; @@ -110,7 +113,7 @@ glms_quat_identity_array(versors * __restrict q, size_t count) { */ CGLM_INLINE versors -glms_quat_init(float x, float y, float z, float w) { +glms_quat_(init)(float x, float y, float z, float w) { versors dest; glm_quat_init(dest.raw, x, y, z, w); return dest; @@ -157,7 +160,7 @@ glms_quat(float angle, float x, float y, float z) { */ CGLM_INLINE versors -glms_quat_from_vecs(vec3s a, vec3s b) { +glms_quat_(from_vecs)(vec3s a, vec3s b) { versors dest; glm_quat_from_vecs(a.raw, b.raw, dest.raw); return dest; @@ -170,7 +173,7 @@ glms_quat_from_vecs(vec3s a, vec3s b) { */ CGLM_INLINE float -glms_quat_norm(versors q) { +glms_quat_(norm)(versors q) { return glm_quat_norm(q.raw); } @@ -182,7 +185,7 @@ glms_quat_norm(versors q) { */ CGLM_INLINE versors -glms_quat_normalize(versors q) { +glms_quat_(normalize)(versors q) { versors dest; glm_quat_normalize_to(q.raw, dest.raw); return dest; @@ -197,7 +200,7 @@ glms_quat_normalize(versors q) { */ CGLM_INLINE float -glms_quat_dot(versors p, versors q) { +glms_quat_(dot)(versors p, versors q) { return glm_quat_dot(p.raw, q.raw); } @@ -209,7 +212,7 @@ glms_quat_dot(versors p, versors q) { */ CGLM_INLINE versors -glms_quat_conjugate(versors q) { +glms_quat_(conjugate)(versors q) { versors dest; glm_quat_conjugate(q.raw, dest.raw); return dest; @@ -223,7 +226,7 @@ glms_quat_conjugate(versors q) { */ CGLM_INLINE versors -glms_quat_inv(versors q) { +glms_quat_(inv)(versors q) { versors dest; glm_quat_inv(q.raw, dest.raw); return dest; @@ -238,7 +241,7 @@ glms_quat_inv(versors q) { */ CGLM_INLINE versors -glms_quat_add(versors p, versors q) { +glms_quat_(add)(versors p, versors q) { versors dest; glm_quat_add(p.raw, q.raw, dest.raw); return dest; @@ -253,7 +256,7 @@ glms_quat_add(versors p, versors q) { */ CGLM_INLINE versors -glms_quat_sub(versors p, versors q) { +glms_quat_(sub)(versors p, versors q) { versors dest; glm_quat_sub(p.raw, q.raw, dest.raw); return dest; @@ -266,7 +269,7 @@ glms_quat_sub(versors p, versors q) { */ CGLM_INLINE vec3s -glms_quat_imagn(versors q) { +glms_quat_(imagn)(versors q) { vec3s dest; glm_normalize_to(q.raw, dest.raw); return dest; @@ -279,7 +282,7 @@ glms_quat_imagn(versors q) { */ CGLM_INLINE float -glms_quat_imaglen(versors q) { +glms_quat_(imaglen)(versors q) { return glm_quat_imaglen(q.raw); } @@ -290,7 +293,7 @@ glms_quat_imaglen(versors q) { */ CGLM_INLINE float -glms_quat_angle(versors q) { +glms_quat_(angle)(versors q) { return glm_quat_angle(q.raw); } @@ -302,7 +305,7 @@ glms_quat_angle(versors q) { */ CGLM_INLINE vec3s -glms_quat_axis(versors q) { +glms_quat_(axis)(versors q) { vec3s dest; glm_quat_axis(q.raw, dest.raw); return dest; @@ -322,7 +325,7 @@ glms_quat_axis(versors q) { */ CGLM_INLINE versors -glms_quat_mul(versors p, versors q) { +glms_quat_(mul)(versors p, versors q) { versors dest; glm_quat_mul(p.raw, q.raw, dest.raw); return dest; @@ -336,7 +339,7 @@ glms_quat_mul(versors p, versors q) { */ CGLM_INLINE mat4s -glms_quat_mat4(versors q) { +glms_quat_(mat4)(versors q) { mat4s dest; glm_quat_mat4(q.raw, dest.raw); return dest; @@ -350,7 +353,7 @@ glms_quat_mat4(versors q) { */ CGLM_INLINE mat4s -glms_quat_mat4t(versors q) { +glms_quat_(mat4t)(versors q) { mat4s dest; glm_quat_mat4t(q.raw, dest.raw); return dest; @@ -364,7 +367,7 @@ glms_quat_mat4t(versors q) { */ CGLM_INLINE mat3s -glms_quat_mat3(versors q) { +glms_quat_(mat3)(versors q) { mat3s dest; glm_quat_mat3(q.raw, dest.raw); return dest; @@ -378,7 +381,7 @@ glms_quat_mat3(versors q) { */ CGLM_INLINE mat3s -glms_quat_mat3t(versors q) { +glms_quat_(mat3t)(versors q) { mat3s dest; glm_quat_mat3t(q.raw, dest.raw); return dest; @@ -395,7 +398,7 @@ glms_quat_mat3t(versors q) { */ CGLM_INLINE versors -glms_quat_lerp(versors from, versors to, float t) { +glms_quat_(lerp)(versors from, versors to, float t) { versors dest; glm_quat_lerp(from.raw, to.raw, t, dest.raw); return dest; @@ -412,7 +415,7 @@ glms_quat_lerp(versors from, versors to, float t) { */ CGLM_INLINE versors -glms_quat_lerpc(versors from, versors to, float t) { +glms_quat_(lerpc)(versors from, versors to, float t) { versors dest; glm_quat_lerpc(from.raw, to.raw, t, dest.raw); return dest; @@ -430,7 +433,7 @@ glms_quat_lerpc(versors from, versors to, float t) { */ CGLM_INLINE versors -glms_quat_nlerp(versors from, versors to, float t) { +glms_quat_(nlerp)(versors from, versors to, float t) { versors dest; glm_quat_nlerp(from.raw, to.raw, t, dest.raw); return dest; @@ -447,7 +450,7 @@ glms_quat_nlerp(versors from, versors to, float t) { */ CGLM_INLINE versors -glms_quat_slerp(versors from, versors to, float t) { +glms_quat_(slerp)(versors from, versors to, float t) { versors dest; glm_quat_slerp(from.raw, to.raw, t, dest.raw); return dest; @@ -462,7 +465,7 @@ glms_quat_slerp(versors from, versors to, float t) { */ CGLM_INLINE mat4s -glms_quat_look(vec3s eye, versors ori) { +glms_quat_(look)(vec3s eye, versors ori) { mat4s dest; glm_quat_look(eye.raw, ori.raw, dest.raw); return dest; @@ -477,7 +480,7 @@ glms_quat_look(vec3s eye, versors ori) { */ CGLM_INLINE versors -glms_quat_for(vec3s dir, vec3s up) { +glms_quat_(for)(vec3s dir, vec3s up) { versors dest; glm_quat_for(dir.raw, up.raw, dest.raw); return dest; @@ -494,7 +497,7 @@ glms_quat_for(vec3s dir, vec3s up) { */ CGLM_INLINE versors -glms_quat_forp(vec3s from, vec3s to, vec3s up) { +glms_quat_(forp)(vec3s from, vec3s to, vec3s up) { versors dest; glm_quat_forp(from.raw, to.raw, up.raw, dest.raw); return dest; @@ -509,7 +512,7 @@ glms_quat_forp(vec3s from, vec3s to, vec3s up) { */ CGLM_INLINE vec3s -glms_quat_rotatev(versors q, vec3s v) { +glms_quat_(rotatev)(versors q, vec3s v) { vec3s dest; glm_quat_rotatev(q.raw, v.raw, dest.raw); return dest; @@ -524,7 +527,7 @@ glms_quat_rotatev(versors q, vec3s v) { */ CGLM_INLINE mat4s -glms_quat_rotate(mat4s m, versors q) { +glms_quat_(rotate)(mat4s m, versors q) { glm_quat_rotate(m.raw, q.raw, m.raw); return m; } @@ -538,7 +541,7 @@ glms_quat_rotate(mat4s m, versors q) { */ CGLM_INLINE mat4s -glms_quat_rotate_at(mat4s m, versors q, vec3s pivot) { +glms_quat_(rotate_at)(mat4s m, versors q, vec3s pivot) { glm_quat_rotate_at(m.raw, q.raw, pivot.raw); return m; } @@ -556,7 +559,7 @@ glms_quat_rotate_at(mat4s m, versors q, vec3s pivot) { */ CGLM_INLINE mat4s -glms_quat_rotate_atm(versors q, vec3s pivot) { +glms_quat_(rotate_atm)(versors q, vec3s pivot) { mat4s dest; glm_quat_rotate_atm(dest.raw, q.raw, pivot.raw); return dest;