summaryrefslogtreecommitdiff
path: root/src/game/world/bsp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/world/bsp.h')
-rw-r--r--src/game/world/bsp.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/game/world/bsp.h b/src/game/world/bsp.h
index ac72e14..fbf2a4c 100644
--- a/src/game/world/bsp.h
+++ b/src/game/world/bsp.h
@@ -49,6 +49,7 @@ struct BSP_FACE {
LIST<VERTEX3D> render_verts{};
VEC3 mins;
VEC3 maxs;
+ VEC3 center;
U32 hitmask;
};
@@ -154,6 +155,14 @@ inline U8 bsp_face_is_axis_aligned( BSP_FACE* f ) {
return 1;
}
+inline VEC3 bsp_face_get_center( BSP_FACE* f ) {
+ if( !f->verts.size ) return {};
+ VEC3 c{};
+ for( U32 i = 0; i < f->verts.size; ++i )
+ c += f->verts.data[i].pos;
+ return c / f->verts.size;
+}
+
inline void bsp_face_calc_extents( BSP_FACE* f ) {
VEC3 mins{ +INFINITY, +INFINITY, +INFINITY }, maxs{ -INFINITY, -INFINITY, -INFINITY };
for( U32 i = 0; i < f->verts.size; ++i ) {