ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libgender/oct.C
(Generate patch)

Comparing libgender/oct.C (file contents):
Revision 1.64 by root, Tue Oct 19 19:40:31 2004 UTC vs.
Revision 1.65 by root, Sat Oct 23 02:27:51 2004 UTC

48 48
49void octant::clear_visibility (visibility_base *vs) 49void octant::clear_visibility (visibility_base *vs)
50{ 50{
51 ((oct_visibility *)vs)->vismap.clear (); 51 ((oct_visibility *)vs)->vismap.clear ();
52} 52}
53
53octant::~octant () 54octant::~octant ()
54{ 55{
55 for (fill = 8; fill--; ) 56 for (fill = 8; fill--; )
56 delete sub[fill]; 57 delete sub[fill];
57} 58}
107{ 108{
108} 109}
109 110
110bool octant::detect_visibility (view &ctx) 111bool octant::detect_visibility (view &ctx)
111{ 112{
112 oct_visibility &vs = *(oct_visibility *)get_visibility (ctx);
113
114 GLfloat extent2 = 0.5F * (GLfloat)extent; 113 GLfloat extent2 = 0.5F * (GLfloat)extent;
115 sector centeri = orig + (extent >> 1) - ctx.orig; 114 sector centeri = orig + (extent >> 1) - ctx.orig;
116 point centerf = point (centeri) + ((extent & 1) ? 0.5F : 0.F); 115 point centerf = point (centeri) + ((extent & 1) ? 0.5F : 0.F);
117 116
118 GLfloat rad = ctx.diagfact * extent2; 117 GLfloat rad = ctx.diagfact * extent2;
119 118
120 if (!overlap (ctx.frustum.c, sphere (centerf, rad))) 119 if (!overlap (ctx.frustum.c, sphere (centerf, rad)))
121 return false; 120 return false;
121
122 oct_visibility &vs = *(oct_visibility *)get_visibility (ctx);
122 123
123 if (orig <= ctx.orig && ctx.orig <= orig + extent) 124 if (orig <= ctx.orig && ctx.orig <= orig + extent)
124 vs.state = PARTIAL; 125 vs.state = PARTIAL;
125 else 126 else
126 { 127 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines