318 |
|
|
319 |
|
mp[0] = mp[1] = mp[2] = f * dom * -v[2]; |
320 |
|
} |
321 |
< |
if (nbadohm | nneg) { |
321 |
> |
if (nneg || nbadohm) { |
322 |
|
sprintf(errmsg, |
323 |
< |
"BTDF has %d negatives and %d bad incoming solid angles"); |
323 |
> |
"BTDF has %d negatives and %d bad incoming solid angles", |
324 |
> |
nneg, nbadohm); |
325 |
|
error(WARNING, errmsg); |
326 |
|
} |
327 |
|
return(cm); |
429 |
|
progname); |
430 |
|
return(1); |
431 |
|
} |
432 |
+ |
/* load Tregenza vector */ |
433 |
|
tvec = cm_load(argv[4], 0, 1, DTascii); /* argv[4]==NULL iff argc==4 */ |
434 |
< |
Dmat = cm_load(argv[3], 0, tvec->nrows, DTfromHeader); |
434 |
> |
/* load BTDF */ |
435 |
|
btdf = load_BSDF(argv[2]); |
436 |
|
if (btdf == NULL) |
437 |
|
return(1); |
438 |
< |
if (btdf->ninc != Dmat->nrows) { |
439 |
< |
sprintf(errmsg, "Incoming BTDF dir (%d) mismatch to D (%d)", |
438 |
< |
btdf->ninc, Dmat->nrows); |
439 |
< |
error(USER, errmsg); |
440 |
< |
} |
438 |
> |
/* load Daylight matrix */ |
439 |
> |
Dmat = cm_load(argv[3], btdf->ninc, tvec->nrows, DTfromHeader); |
440 |
|
/* multiply vector through */ |
441 |
|
ivec = cm_multiply(Dmat, tvec); |
442 |
|
cm_free(Dmat); cm_free(tvec); |