backported fixes from rtxon: BSP tree construction and mouse handling
[dosdemo] / src / bsptree.h
index ff29051..2839ab0 100644 (file)
@@ -5,15 +5,20 @@
 #include "vmath.h"
 #include "polyclip.h"
 
-struct bspnode {
+struct bsppoly {
        struct cplane plane;
        int vcount;
        struct g3d_vertex *verts;
+};
+
+struct bspnode {
+       struct bsppoly poly;
        struct bspnode *front, *back;
 };
 
 struct bsptree {
        struct bspnode *root;
+       struct bsppoly *soup;   /* dynarr: see dynarr.h */
 };
 
 int init_bsp(struct bsptree *bsp);
@@ -25,6 +30,8 @@ int load_bsp(struct bsptree *bsp, const char *fname);
 int bsp_add_poly(struct bsptree *bsp, struct g3d_vertex *v, int vnum);
 int bsp_add_mesh(struct bsptree *bsp, struct g3d_mesh *m);
 
+int bsp_build(struct bsptree *bsp);
+
 void draw_bsp(struct bsptree *bsp, float view_x, float view_y, float view_z);
 
 #endif /* BSPMESH_H_ */