summaryrefslogtreecommitdiff
path: root/src/game/world/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/world/trace.h')
-rw-r--r--src/game/world/trace.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/game/world/trace.h b/src/game/world/trace.h
new file mode 100644
index 0000000..8a0f4eb
--- /dev/null
+++ b/src/game/world/trace.h
@@ -0,0 +1,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 );