ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/rv3.c
(Generate patch)

Comparing ray/src/rt/rv3.c (file contents):
Revision 2.7 by greg, Thu Dec 22 11:46:19 1994 UTC vs.
Revision 2.9 by greg, Fri Aug 18 10:27:11 1995 UTC

# Line 410 | Line 410 | FVECT  vc;
410                  nv.horiz = ourview.horiz;
411                  nv.vert = ourview.vert;
412                  d = sqrt(dist2(ourview.vp, vc)) / mag;
413 <                nv.vfore = ourview.vfore + d - d*mag;
414 <                if (nv.vfore < 0.0) nv.vfore = 0.0;
415 <                nv.vaft = ourview.vaft + d - d*mag;
416 <                if (nv.vaft < nv.vfore) nv.vaft = 0.0;
413 >                if ((nv.vfore = ourview.vfore) > FTINY) {
414 >                        nv.vfore += d - d*mag;
415 >                        if (nv.vfore < 0.0) nv.vfore = 0.0;
416 >                }
417 >                if ((nv.vaft = ourview.vaft) > FTINY) {
418 >                        nv.vaft += d - d*mag;
419 >                        if (nv.vaft <= nv.vfore) nv.vaft = 0.0;
420 >                }
421          }
422          for (i = 0; i < 3; i++)
423                  nv.vp[i] = vc[i] - d*nv.vdir[i];
# Line 421 | Line 425 | FVECT  vc;
425   }
426  
427  
428 < zoomview(vp, zf)                        /* zoom in our out */
428 > zoomview(vp, zf)                        /* zoom in or out */
429   register VIEW  *vp;
430   double  zf;
431   {
432          switch (vp->type) {
433          case VT_PAR:                            /* parallel view */
434 +                vp->horiz /= zf;
435 +                vp->vert /= zf;
436 +                return;
437          case VT_ANG:                            /* angular fisheye */
438                  vp->horiz /= zf;
439 +                if (vp->horiz > 360.)
440 +                        vp->horiz = 360.;
441                  vp->vert /= zf;
442 +                if (vp->vert > 360.)
443 +                        vp->vert = 360.;
444 +                return;
445 +        case VT_CYL:                            /* cylindrical panorama */
446 +                vp->horiz /= zf;
447 +                if (vp->horiz > 360.)
448 +                        vp->horiz = 360.;
449 +                vp->vert = atan(tan(vp->vert*(PI/180./2.))/zf) / (PI/180./2.);
450                  return;
451          case VT_PER:                            /* perspective view */
452                  vp->horiz = atan(tan(vp->horiz*(PI/180./2.))/zf) /

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines