168 |
|
if (QT_IS_TREE(qt) && (QT_IS_EMPTY(le->qt) || lvl > 0)) |
169 |
|
{ /* compute children */ |
170 |
|
qtSubdivide_tri(v0,v1,v2,a,b,c); |
171 |
< |
rc[0] = qtRender_level(QT_NTH_CHILD(qt,0),v0,a,c,sm,lvl-1); |
172 |
< |
rc[1] = qtRender_level(QT_NTH_CHILD(qt,1),a,v1,b,sm,lvl-1); |
173 |
< |
rc[2] = qtRender_level(QT_NTH_CHILD(qt,2),c,b,v2,sm,lvl-1); |
174 |
< |
rc[3] = qtRender_level(QT_NTH_CHILD(qt,3),b,c,a,sm,lvl-1); |
171 |
> |
rc[0] = qtRender_level(QT_NTH_CHILD(qt,0),v0,c,b,sm,lvl-1); |
172 |
> |
rc[1] = qtRender_level(QT_NTH_CHILD(qt,1),c,v1,a,sm,lvl-1); |
173 |
> |
rc[2] = qtRender_level(QT_NTH_CHILD(qt,2),b,a,v2,sm,lvl-1); |
174 |
> |
rc[3] = qtRender_level(QT_NTH_CHILD(qt,3),a,b,c,sm,lvl-1); |
175 |
|
} |
176 |
|
if (QT_IS_EMPTY(le->qt)) |
177 |
|
{ /* let's make some data! */ |
194 |
|
{ /* from triangle set */ |
195 |
|
OBJECT *os; |
196 |
|
int s0, s1, s2; |
197 |
< |
|
197 |
> |
|
198 |
|
os = qtqueryset(qt); |
199 |
< |
for (n = os[0]; n; n--) |
199 |
> |
for (i = os[0]; i; i--) |
200 |
|
{ |
201 |
< |
if(SM_IS_NTH_T_BASE(sm,os[n])) |
201 |
> |
if(SM_IS_NTH_T_BASE(sm,os[i])) |
202 |
|
continue; |
203 |
< |
tri = SM_NTH_TRI(sm,os[n]); |
203 |
> |
tri = SM_NTH_TRI(sm,os[i]); |
204 |
|
if(!T_IS_VALID(tri)) |
205 |
|
continue; |
206 |
< |
|
206 |
> |
n++; |
207 |
|
s0 = T_NTH_V(tri,0); |
208 |
|
s1 = T_NTH_V(tri,1); |
209 |
|
s2 = T_NTH_V(tri,2); |
223 |
|
rgbs[2] += SM_NTH_RGB(sm,s0)[2] + SM_NTH_RGB(sm,s1)[2] |
224 |
|
+ SM_NTH_RGB(sm,s2)[2]; |
225 |
|
} |
226 |
< |
n = 3*os[0]; |
226 |
> |
n *= 3; |
227 |
|
} |
228 |
|
if (!n) |
229 |
|
return(NULL); |
260 |
|
STREE *st; |
261 |
|
|
262 |
|
|
263 |
< |
if (lvl < 1) |
263 |
> |
if (lvl < 0) |
264 |
|
return; |
265 |
|
st = SM_LOCATOR(sm); |
266 |
|
glPushAttrib(GL_LIGHTING_BIT); |
270 |
|
{ |
271 |
|
qt = ST_ROOT_QT(st,i); |
272 |
|
qtRender_level(qt,ST_NTH_V(st,i,0),ST_NTH_V(st,i,1),ST_NTH_V(st,i,2), |
273 |
< |
sm,lvl-1); |
273 |
> |
sm,lvl); |
274 |
|
} |
275 |
|
glEnd(); |
276 |
|
glPopAttrib(); |