| 164 |
|
|
| 165 |
|
if (argc-a > 2) { /* VTDs expression */ |
| 166 |
|
CMATRIX *smtx, *Dmat, *Tmat, *imtx; |
| 167 |
– |
COLOR tLamb; |
| 167 |
|
/* get sky vector/matrix */ |
| 168 |
|
smtx = cm_load(argv[a+3], 0, nsteps, skyfmt); |
| 169 |
|
/* load BSDF */ |
| 170 |
< |
Tmat = cm_loadBSDF(argv[a+1], tLamb); |
| 170 |
> |
Tmat = cm_loadBTDF(argv[a+1]); |
| 171 |
|
/* load Daylight matrix */ |
| 172 |
|
Dmat = cm_load(argv[a+2], Tmat==NULL ? 0 : Tmat->ncols, |
| 173 |
|
smtx->nrows, DTfromHeader); |
| 174 |
|
/* multiply vector through */ |
| 175 |
|
imtx = cm_multiply(Dmat, smtx); |
| 176 |
|
cm_free(Dmat); cm_free(smtx); |
| 177 |
< |
if (Tmat == NULL) { /* diffuse only */ |
| 178 |
< |
cmtx = cm_scale(imtx, tLamb); |
| 180 |
< |
} else { /* else apply BTDF matrix */ |
| 181 |
< |
cmtx = cm_multiply(Tmat, imtx); |
| 182 |
< |
cm_free(Tmat); |
| 183 |
< |
} |
| 177 |
> |
cmtx = cm_multiply(Tmat, imtx); |
| 178 |
> |
cm_free(Tmat); |
| 179 |
|
cm_free(imtx); |
| 180 |
|
} else { /* sky vector/matrix only */ |
| 181 |
|
cmtx = cm_load(argv[a+1], 0, nsteps, skyfmt); |