]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - bih.h
a bit of loading screen bar customization: new cvars scr_loadingscreen_barcolor,...
[xonotic/darkplaces.git] / bih.h
diff --git a/bih.h b/bih.h
index 7a98045f5808e943fd7286d08eb70a2372a8c7da..48a33d11c7e05e52a62cc1547a9f4632b0a3a2af 100644 (file)
--- a/bih.h
+++ b/bih.h
@@ -18,10 +18,17 @@ typedef enum bih_nodetype_e
        BIH_SPLITX = 0,
        BIH_SPLITY = 1,
        BIH_SPLITZ = 2,
-       BIH_LEAF = 3,
 }
 bih_nodetype_t;
 
+typedef enum bih_leaftype_e
+{
+       BIH_BRUSH = 3,
+       BIH_COLLISIONTRIANGLE = 4,
+       BIH_RENDERTRIANGLE = 5,
+}
+bih_leaftype_t;
+
 typedef struct bih_node_s
 {
        bih_nodetype_t type; // = BIH_SPLITX and similar values
@@ -30,13 +37,17 @@ typedef struct bih_node_s
        float mins[3];
        float maxs[3];
        // < 0 is a leaf index (-1-leafindex), >= 0 is another node index (always >= this node's index)
-       int children[2];
+       int front;
+       int back;
+       // interval of children
+       float frontmin; // children[0]
+       float backmax; // children[1]
 }
 bih_node_t;
 
 typedef struct bih_leaf_s
 {
-       bih_nodetype_t type; // = BIH_LEAF
+       bih_leaftype_t type; // = BIH_BRUSH And similar values
        float mins[3];
        float maxs[3];
        // data past this point is generic and entirely up to the caller...
@@ -54,6 +65,10 @@ typedef struct bih_s
        // nodes are constructed by BIH_Build
        int numnodes;
        bih_node_t *nodes;
+       int rootnode; // 0 if numnodes > 0, -1 otherwise
+       // bounds calculated by BIH_Build
+       float mins[3];
+       float maxs[3];
 
        // fields used only during BIH_Build:
        int maxnodes;