… | |
… | |
33 | { |
33 | { |
34 | for (fill = 8; fill--; ) |
34 | for (fill = 8; fill--; ) |
35 | sub[fill] = 0; |
35 | sub[fill] = 0; |
36 | } |
36 | } |
37 | |
37 | |
|
|
38 | visibility_base *octant::new_visibility () |
|
|
39 | { |
|
|
40 | return new oct_visibility (*this); |
|
|
41 | } |
|
|
42 | |
|
|
43 | void octant::clear_visibility (visibility_base *vs) |
|
|
44 | { |
|
|
45 | ((oct_visibility *)vs)->vismap.clear (); |
|
|
46 | } |
38 | octant::~octant () |
47 | octant::~octant () |
39 | { |
48 | { |
40 | for (fill = 8; fill--; ) |
49 | for (fill = 8; fill--; ) |
41 | delete sub[fill]; |
50 | delete sub[fill]; |
42 | } |
51 | } |
… | |
… | |
208 | |
217 | |
209 | sector diff = (e->a + e->b) / 2 - ctx.orig; |
218 | sector diff = (e->a + e->b) / 2 - ctx.orig; |
210 | GLfloat z = norm (vec3 ((e->a + e->b) / 2 - ctx.orig)); |
219 | GLfloat z = norm (vec3 ((e->a + e->b) / 2 - ctx.orig)); |
211 | ctx.pixfact = ctx.perspfact / z; |
220 | ctx.pixfact = ctx.perspfact / z; |
212 | |
221 | |
|
|
222 | if (ctx.mode != view::POSTDEPTH) |
213 | e->display (ctx); |
223 | e->display (ctx); |
214 | } |
224 | } |
215 | } |
225 | } |
216 | |
226 | |
|
|
227 | #if 0 |
217 | void octant::draw_bbox (view &ctx) |
228 | void octant::draw_bbox (view &ctx) |
218 | { |
229 | { |
219 | sector s = orig - ctx.orig; |
230 | sector s = orig - ctx.orig; |
220 | |
231 | |
221 | gl::draw_bbox (ctx, s, s + extent); |
232 | gl::draw_bbox (ctx, s, s + extent); |
222 | } |
233 | } |
|
|
234 | #endif |
223 | |
235 | |
224 | void octant::event (occ_query &ev) |
236 | void octant::event (occ_query &ev) |
225 | { |
237 | { |
226 | #if 0 |
238 | #if 0 |
227 | visibility_state &vs = ev.v.vismap[this]; |
239 | visibility_state &vs = ev.v.vismap[this]; |
… | |
… | |
231 | ? visibility_state::OCCLUDED |
243 | ? visibility_state::OCCLUDED |
232 | : visibility_state::FULL; |
244 | : visibility_state::FULL; |
233 | #endif |
245 | #endif |
234 | } |
246 | } |
235 | |
247 | |
236 | visibility_base *octant::new_visibility () |
|
|
237 | { |
|
|
238 | return new oct_visibility (*this); |
|
|
239 | } |
|
|
240 | |
248 | |
241 | void octant::clear_visibility (visibility_base *vs) |
|
|
242 | { |
|
|
243 | ((oct_visibility *)vs)->vismap.clear (); |
|
|
244 | } |
|
|
245 | |
|
|