diff options
| author | aura <nw@moneybot.cc> | 2026-03-05 08:25:23 +0100 |
|---|---|---|
| committer | aura <nw@moneybot.cc> | 2026-03-05 08:25:23 +0100 |
| commit | 54bcabc374b438ee288964d6f6314f5da2121a0e (patch) | |
| tree | 6f5500859b4a46b21f92178e0141941f1fbd10f2 /src/game/world/bsp.h | |
| parent | cd3042a2447026515897bacf679a6663bfa18e9f (diff) | |
calc face center during map compile
Diffstat (limited to 'src/game/world/bsp.h')
| -rw-r--r-- | src/game/world/bsp.h | 9 |
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 ) { |
