#ifndef OCT_H #define OCT_H #include using namespace std; #include "util.h" #include "view.h" struct octant : vector, recv_occ_query, visible { struct octant *parent; /* front 23 back 67 * 01 45 */ struct octant *sub[8]; int fill; sector orig; uoffs extent; gl::vertex_buffer_object vb_bbox; void add (entity *e); void remove (entity *e); bool depth_pass (view &ctx); // is this octant actually visible? void display (view &ctx); void event (occ_query &ev); visibility_base *new_visibility (); void clear_visibility (visibility_base *vs); octant (octant *parent, const sector &orig, uoffs extent); ~octant (); }; extern octant world; #endif