… | |
… | |
105 | |
105 | |
106 | void octant::remove (entity *e) |
106 | void octant::remove (entity *e) |
107 | { |
107 | { |
108 | } |
108 | } |
109 | |
109 | |
110 | bool octant::depth_pass (view &ctx) |
110 | bool octant::detect_visibility (view &ctx) |
111 | { |
111 | { |
112 | oct_visibility &vs = *(oct_visibility *)get_visibility (ctx); |
112 | oct_visibility &vs = *(oct_visibility *)get_visibility (ctx); |
113 | |
113 | |
114 | GLfloat extent2 = 0.5F * (GLfloat)extent; |
114 | GLfloat extent2 = 0.5F * (GLfloat)extent; |
115 | sector centeri = orig + (extent >> 1) - ctx.orig; |
115 | sector centeri = orig + (extent >> 1) - ctx.orig; |
… | |
… | |
166 | do |
166 | do |
167 | { |
167 | { |
168 | si ^= *next; |
168 | si ^= *next; |
169 | |
169 | |
170 | if (sub[si]) |
170 | if (sub[si]) |
171 | sub[si]->depth_pass (ctx); |
171 | sub[si]->detect_visibility (ctx); |
172 | } |
172 | } |
173 | while (*++next); |
173 | while (*++next); |
174 | |
174 | |
175 | if (size () |
175 | if (size () |
176 | && (vs.state == PARTIAL || vs.state == FULL)) |
176 | && (vs.state == PARTIAL || vs.state == FULL)) |
177 | { |
|
|
178 | display (ctx); |
|
|
179 | ctx.vislist.push_back (this); |
177 | ctx.vislist.push_back (this); |
180 | } |
|
|
181 | |
178 | |
182 | return true; |
179 | return true; |
183 | } |
180 | } |
184 | |
181 | |
185 | void octant::display (view &ctx) |
182 | void octant::display (view &ctx) |
… | |
… | |
265 | } |
262 | } |
266 | } |
263 | } |
267 | } |
264 | } |
268 | } |
265 | } |
269 | |
266 | |
270 | #if 0 |
|
|
271 | void octant::draw_bbox (view &ctx) |
|
|
272 | { |
|
|
273 | sector s = orig - ctx.orig; |
|
|
274 | |
|
|
275 | gl::draw_bbox (ctx, s, s + extent); |
|
|
276 | } |
|
|
277 | #endif |
|
|
278 | |
|
|
279 | void octant::event (occ_query &ev) |
267 | void octant::event (occ_query &ev) |
280 | { |
268 | { |
281 | oct_visibility &vs = *(oct_visibility *)get_visibility (ev.ctx); |
269 | oct_visibility &vs = *(oct_visibility *)get_visibility (ev.ctx); |
282 | entity *e = (entity *)ev.id; |
270 | entity *e = (entity *)ev.id; |
283 | |
271 | |