286 |
|
nv.type = ourview.type; |
287 |
|
VCOPY(nv.vp, ourview.vp); |
288 |
|
VCOPY(nv.vup, ourview.vup); |
289 |
– |
nv.hoff = ourview.hoff; nv.voff = ourview.voff; |
289 |
|
nv.horiz = ourview.horiz; nv.vert = ourview.vert; |
290 |
+ |
nv.vfore = ourview.vfore; nv.vaft = ourview.vaft; |
291 |
+ |
nv.hoff = ourview.hoff; nv.voff = ourview.voff; |
292 |
|
zoomview(&nv, zfact); |
293 |
|
newview(&nv); |
294 |
|
} |
322 |
|
VCOPY(nv.vp, ourview.vp); |
323 |
|
VCOPY(nv.vup, ourview.vup); |
324 |
|
nv.hoff = ourview.hoff; nv.voff = ourview.voff; |
325 |
+ |
nv.vfore = ourview.vfore; nv.vaft = ourview.vaft; |
326 |
|
spinvector(nv.vdir, ourview.vdir, ourview.vup, angle*(PI/180.)); |
327 |
|
if (elev != 0.0) { |
328 |
|
fcross(v1, nv.vdir, ourview.vup); |
502 |
|
extern int do_irrad; |
503 |
|
extern double specjitter; |
504 |
|
extern double specthresh; |
505 |
+ |
extern int backvis; |
506 |
|
char buf[128]; |
507 |
|
|
508 |
|
if (s[0] == '\0') { |
509 |
|
(*dev->comout)( |
510 |
< |
"aa ab ad ar as av b dc di dj ds dt i lr lw ps pt sj st: "); |
510 |
> |
"aa ab ad ar as av b dc dv dj ds dt i lr lw ps pt sj st bv: "); |
511 |
|
(*dev->comin)(buf, NULL); |
512 |
|
s = buf; |
513 |
|
} |
546 |
|
goto badparam; |
547 |
|
} |
548 |
|
break; |
549 |
< |
case 'b': /* black and white */ |
550 |
< |
getparam(s+1, "black and white", 'b', &greyscale); |
549 |
> |
case 'b': /* back faces or black and white */ |
550 |
> |
switch (s[1]) { |
551 |
> |
case 'v': /* back face visibility */ |
552 |
> |
getparam(s+2, "back face visibility", 'b', &backvis); |
553 |
> |
break; |
554 |
> |
case '\0': /* black and white */ |
555 |
> |
case ' ': |
556 |
> |
case 'y': case 'Y': case 't': case 'T': case '1': case '+': |
557 |
> |
case 'n': case 'N': case 'f': case 'F': case '0': case '-': |
558 |
> |
getparam(s+1, "black and white", 'b', &greyscale); |
559 |
> |
break; |
560 |
> |
default: |
561 |
> |
goto badparam; |
562 |
> |
} |
563 |
|
break; |
564 |
|
case 'i': /* irradiance */ |
565 |
|
getparam(s+1, "irradiance", 'b', &do_irrad); |
675 |
|
if (thisray.rot >= FHUGE) |
676 |
|
(*dev->comout)("at infinity"); |
677 |
|
else { |
678 |
< |
sprintf(buf, "at (%.6g %.6g %.6g)", thisray.rop[0], |
679 |
< |
thisray.rop[1], thisray.rop[2]); |
678 |
> |
sprintf(buf, "at (%.6g %.6g %.6g) (%.6g)", |
679 |
> |
thisray.rop[0], thisray.rop[1], |
680 |
> |
thisray.rop[2], thisray.rt); |
681 |
|
(*dev->comout)(buf); |
682 |
|
} |
683 |
|
(*dev->comin)(buf, NULL); |