mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 09:08:53 +00:00
struct: provide option to omit struct api namespace e.g. glms_
and an …
This commit is contained in:
@@ -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,7 +97,7 @@ glms_aabb_crop(vec3s box[2], vec3s cropBox[2], vec3s dest[2]) {
|
||||
*/
|
||||
CGLM_INLINE
|
||||
void
|
||||
glms_aabb_crop_until(vec3s box[2],
|
||||
glms_aabb_(crop_until)(vec3s box[2],
|
||||
vec3s cropBox[2],
|
||||
vec3s clampBox[2],
|
||||
vec3s dest[2]) {
|
||||
@@ -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];
|
||||
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user