summaryrefslogtreecommitdiff
path: root/src/game/world/trace.h
blob: 8a0f4eb66230b16284f97cfbea52b02ccbe9ae1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once

#include "bsp.h"
#include "../../util/aabb.h"

// quake uses 1 / 32
const F32 BSP_TRACE_EPSILON = 1.f / 64.f;

struct BSP_TRACE {
  VEC3 in_start;
  VEC3 in_end;

  U8 hit;
  F32 frac;
  VEC3 point;
  VEC3 normal;
  U32 propid;
  I32 leafid;
  U32 faceid;
};

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 );