#pragma once #include "bsp.h" #include "../../util/aabb.h" // quake uses 1 / 32 const F32 BSP_TRACE_EPSILON = 1.f / 64.f; const F32 BSP_EDGE_TOLERANCE = 1.f / 16.f; struct BSP_TRACE { VEC3 in_start; VEC3 in_end; U8 hit; F32 frac; VEC3 point; VEC3 normal; U32 propid; I32 leafid; U32 faceid; U8 startsolid; }; extern U8 bsp_trace( BSP_TRACE* trace, BSP* bsp ); extern U8 bsp_trace( BSP_TRACE* trace, BSP* bsp, VEC3 start, VEC3 end ); extern U8 bsp_trace( BSP_TRACE* trace, BSP* bsp, AABB aabb ); extern U8 bsp_trace( BSP_TRACE* trace, BSP* bsp, AABB aabb, VEC3 start, VEC3 end ); extern U8 bsp_trace( BSP_TRACE* trace ); extern U8 bsp_trace( BSP_TRACE* trace, VEC3 start, VEC3 end );