| 488 |  |  | 
| 489 |  | /* Query projected solid angle coverage for non-diffuse BSDF direction */ | 
| 490 |  | SDError | 
| 491 | < | SDsizeBSDF(double *projSA, const FVECT vec, int qflags, const SDData *sd) | 
| 491 | > | SDsizeBSDF(double *projSA, const FVECT v1, const RREAL *v2, | 
| 492 | > | int qflags, const SDData *sd) | 
| 493 |  | { | 
| 494 |  | SDSpectralDF    *rdf; | 
| 495 |  | SDError         ec; | 
| 496 |  | int             i; | 
| 497 |  | /* check arguments */ | 
| 498 | < | if ((projSA == NULL) | (vec == NULL) | (sd == NULL)) | 
| 498 | > | if ((projSA == NULL) | (v1 == NULL)) | 
| 499 |  | return SDEargument; | 
| 500 |  | /* initialize extrema */ | 
| 501 |  | switch (qflags) { | 
| 511 |  | case 0: | 
| 512 |  | return SDEargument; | 
| 513 |  | } | 
| 514 | < | if (vec[2] > .0)                /* front surface query? */ | 
| 514 | > | if (v1[2] > .0)                 /* front surface query? */ | 
| 515 |  | rdf = sd->rf; | 
| 516 |  | else | 
| 517 |  | rdf = sd->rb; | 
| 518 |  | ec = SDEdata;                   /* run through components */ | 
| 519 |  | for (i = (rdf==NULL) ? 0 : rdf->ncomp; i--; ) { | 
| 520 | < | ec = (*rdf->comp[i].func->queryProjSA)(projSA, vec, qflags, | 
| 521 | < | rdf->comp[i].dist); | 
| 520 | > | ec = (*rdf->comp[i].func->queryProjSA)(projSA, v1, v2, | 
| 521 | > | qflags, rdf->comp[i].dist); | 
| 522 |  | if (ec) | 
| 523 |  | return ec; | 
| 524 |  | } | 
| 525 |  | for (i = (sd->tf==NULL) ? 0 : sd->tf->ncomp; i--; ) { | 
| 526 | < | ec = (*sd->tf->comp[i].func->queryProjSA)(projSA, vec, qflags, | 
| 527 | < | sd->tf->comp[i].dist); | 
| 526 | > | ec = (*sd->tf->comp[i].func->queryProjSA)(projSA, v1, v2, | 
| 527 | > | qflags, sd->tf->comp[i].dist); | 
| 528 |  | if (ec) | 
| 529 |  | return ec; | 
| 530 |  | } |