| 381 |
|
PNODE *p |
| 382 |
|
) |
| 383 |
|
{ |
| 384 |
+ |
int i, navg; |
| 385 |
+ |
|
| 386 |
|
if (p->kid == NULL) |
| 387 |
|
return; |
| 388 |
< |
compavg(p->kid+DL); |
| 387 |
< |
compavg(p->kid+DR); |
| 388 |
< |
compavg(p->kid+UL); |
| 389 |
< |
compavg(p->kid+UR); |
| 388 |
> |
|
| 389 |
|
setcolor(p->v, .0, .0, .0); |
| 390 |
< |
addcolor(p->v, p->kid[DL].v); |
| 391 |
< |
addcolor(p->v, p->kid[DR].v); |
| 392 |
< |
addcolor(p->v, p->kid[UL].v); |
| 393 |
< |
addcolor(p->v, p->kid[UR].v); |
| 394 |
< |
scalecolor(p->v, 0.25); |
| 390 |
> |
navg = 0; |
| 391 |
> |
for (i = 0; i < 4; i++) { |
| 392 |
> |
if (p->kid[i].xmin >= p->kid[i].xmax) continue; |
| 393 |
> |
if (p->kid[i].ymin >= p->kid[i].ymax) continue; |
| 394 |
> |
compavg(p->kid+i); |
| 395 |
> |
addcolor(p->v, p->kid[i].v); |
| 396 |
> |
navg++; |
| 397 |
> |
} |
| 398 |
> |
if (navg > 1) |
| 399 |
> |
scalecolor(p->v, 1./navg); |
| 400 |
|
} |
| 401 |
|
|
| 402 |
|
|