LibGame  v0.4.0
The LG Game Engine - Copyright (C) 2024-2025 ETMSoftware
lg_collision_detect.h
1 /*
2  * LibGame - Copyright (C) Emmanuel Thomas-Maurin 2011-2025
3  * All rights reserved
4  */
5 
6 #ifndef LG_COLLISION_DETECT_H
7 #define LG_COLLISION_DETECT_H
8 
9 /* Axis-aligned bounding box, now defined in lg_mesh.h */
10 /*typedef union {
11  #if 0
12  struct { // UNUSED SO FAR
13  vec3_t center;
14  float extents;
15  };
16  struct { // UNUSED SO FAR
17  vec3_t min;
18  vec3_t max;
19  };
20  #endif
21  struct {
22  float min_x;
23  float max_x;
24  float min_y;
25  float max_y;
26  float min_z;
27  float max_z;
28  };
29 } LG_BBox;*/
30 
31 /* Bounding sphere */
32 typedef union {
33  struct {
34  vec3_t center;
35  float radius;
36  };
37  struct {
38  float x;
39  float y;
40  float z;
41  float r;
42  };
43 } LG_BSphere;
44 
45 LG_BBox lg_bbox(float, float, float, float, float, float);
46 
48 
50 
52 
54 
55 /* Not sure about that so discarded for now
56 zboolean lg_bbox_is_AA(LG_BBox *);*/
57 
59 
60 zboolean lg_bboxes_collide(LG_BBox *, LG_BBox *);
61 
62 zboolean lg_bbox_sets_collide(LG_BBox **, LG_BBox **);
63 
65 
66 void lg_bbox_info(LG_BBox *);
67 
68 LG_BSphere lg_bsphere(float, float, float, float);
69 
71 
73 
75 
77 
79 
80 #endif /* LG_COLLISION_DETECT_H */
LG_Mesh
Definition: lg_mesh.h:85
lg_bsphere_info
void lg_bsphere_info(LG_BSphere bsphere)
Definition: lg_collision_detect.c:427
LG_Cuboid
Definition: lg_3d_primitives.h:64
lg_bbox_from_mesh
LG_BBox lg_bbox_from_mesh(LG_Mesh *mesh)
Definition: lg_collision_detect.c:141
lg_bbox_from_cuboid
LG_BBox lg_bbox_from_cuboid(LG_Cuboid *cuboid)
Definition: lg_collision_detect.c:61
lg_bbox_transform
LG_BBox lg_bbox_transform(LG_BBox bbox, mat4_t matrix)
Definition: lg_collision_detect.c:153
Lines3D_VB
Definition: lg_3d_primitives.h:53
lg_bbox_info
void lg_bbox_info(LG_BBox *bbox)
Definition: lg_collision_detect.c:304
vec3_t
Definition: math_3d.h:123
lg_bbox_get_center
vec3_t lg_bbox_get_center(LG_BBox *bbox)
Definition: lg_collision_detect.c:204
lg_bsphere
LG_BSphere lg_bsphere(float x_center, float y_center, float z_center, float radius)
Definition: lg_collision_detect.c:328
lg_bbox
LG_BBox lg_bbox(float min_x, float max_x, float min_y, float max_y, float min_z, float max_z)
Definition: lg_collision_detect.c:29
LG_BSphere
Definition: lg_collision_detect.h:32
LG_Color_u
Definition: lg_vertex.h:111
lg_bsphere_from_mesh
LG_BSphere lg_bsphere_from_mesh(LG_Mesh *mesh)
Definition: lg_collision_detect.c:377
lg_bbox_sets_collide
zboolean lg_bbox_sets_collide(LG_BBox *bbox1[], LG_BBox *bbox2[])
Definition: lg_collision_detect.c:234
lg_bboxes_collide
zboolean lg_bboxes_collide(LG_BBox *bbox1, LG_BBox *bbox2)
Definition: lg_collision_detect.c:216
lg_bsphere_from_bbox
LG_BSphere lg_bsphere_from_bbox(LG_BBox bbox)
Definition: lg_collision_detect.c:352
lg_bspheres_collide
zboolean lg_bspheres_collide(LG_BSphere *bsphere1, LG_BSphere *bsphere2)
Definition: lg_collision_detect.c:389
lg_cuboid_from_bbox
LG_Cuboid lg_cuboid_from_bbox(LG_BBox bbox, LG_Color_u c)
Definition: lg_collision_detect.c:116
lg_l3d_vb_from_bbox
Lines3D_VB lg_l3d_vb_from_bbox(LG_BBox bbox, LG_Color_u c)
Definition: lg_collision_detect.c:275
LG_BBox
Definition: lg_mesh.h:48
lg_bsphere_sets_collide
zboolean lg_bsphere_sets_collide(LG_BSphere *bsphere1[], LG_BSphere *bsphere2[])
Definition: lg_collision_detect.c:405
mat4_t
Definition: math_3d.h:179