summaryrefslogtreecommitdiff
path: root/src/game/world/trace.h
diff options
context:
space:
mode:
authornavewindre <boneyaard@gmail.com>2025-09-03 20:10:09 +0200
committernavewindre <boneyaard@gmail.com>2025-09-03 20:10:09 +0200
commitf8b92ce3aa08b1445c9f956d8166830946562d12 (patch)
tree94e63a5aec9f8f52b577f56799e0c9201fd976a5 /src/game/world/trace.h
a
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 );