… | |
… | |
4 | #include <vector> |
4 | #include <vector> |
5 | |
5 | |
6 | using namespace std; |
6 | using namespace std; |
7 | |
7 | |
8 | #include "util.h" |
8 | #include "util.h" |
|
|
9 | #include "view.h" |
9 | |
10 | |
10 | struct entity; |
|
|
11 | |
|
|
12 | struct octant : protected vector<entity *> { |
11 | struct octant : protected vector<entity *>, public recv_occ_query { |
13 | struct octant *parent; |
12 | struct octant *parent; |
14 | /* front 23 back 67 |
13 | /* front 23 back 67 |
15 | * 01 45 */ |
14 | * 01 45 */ |
16 | struct octant *sub[8]; |
15 | struct octant *sub[8]; |
17 | int fill; |
16 | int fill; |
18 | sector orig; |
17 | sector orig; |
19 | uoffs extent; |
18 | uoffs extent; |
20 | GLuint occ_query; |
|
|
21 | |
19 | |
22 | void add (entity *e); |
20 | void add (entity *e); |
23 | void remove (entity *e); |
21 | void remove (entity *e); |
24 | |
22 | |
25 | void detect_visibility (view &ctx); |
23 | void detect_visibility (view &ctx); |
26 | void display (view &ctx); |
24 | void display (view &ctx); |
27 | void draw_bbox (view &ctx); |
25 | void draw_bbox (view &ctx); |
28 | |
26 | |
|
|
27 | void event (occ_query &ev); |
|
|
28 | |
29 | octant (octant *parent, const sector &orig, uoffs extent); |
29 | octant (octant *parent, const sector &orig, uoffs extent); |
30 | ~octant (); |
30 | ~octant (); |
31 | }; |
31 | }; |
32 | |
32 | |
33 | extern octant world; |
33 | extern octant world; |
34 | GLuint occ_query_result (GLuint id); |
|
|
35 | |
34 | |
36 | #endif |
35 | #endif |
37 | |
36 | |
38 | |
37 | |