mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +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,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];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user