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

Comparing ray/src/hd/rhd_ogl.c (file contents):
Revision 3.26 by greg, Fri Jan 7 20:33:02 2005 UTC vs.
Revision 3.27 by greg, Fri Jan 21 00:52:59 2005 UTC

# Line 819 | Line 819 | getframe(                              /* get focus frame */
819   )
820   {
821          int     startx = ebut->x, starty = ebut->y;
822 <        int     endx, endy;
823 <
822 >        int     endx, endy, midx, midy;
823 >        FVECT   odir, v1;
824 >        double  d, d1;
825 >                                                /* get mouse drag */
826          XMaskEvent(ourdisplay, ButtonReleaseMask, levptr(XEvent));
827          endx = levptr(XButtonReleasedEvent)->x;
828          endy = levptr(XButtonReleasedEvent)->y;
829 <        if ((endx == startx) | (endy == starty)) {
830 <                XBell(ourdisplay, 0);
829 >        midx = (startx + endx) >> 1;
830 >        midy = (starty + endy) >> 1;
831 >                                                /* set focus distance */
832 >        if (viewray(v1, odir, &odev.v,
833 >                        (midx+.5)/odev.hres, (midy+.5)/odev.vres) < -FTINY)
834                  return;
835 <        }
835 >        d = getdistance(midx, midy, odir);      /* distance from front plane */
836 > #ifdef DOBJ
837 >        d1 = dobj_trace(NULL, v1, odir);
838 >        if (d1 < d)
839 >                d = d1;
840 > #endif
841 >        if (d < .99*FHUGE)
842 >                odev.v.vdist = d + sqrt(dist2(v1, odev.v.vp));
843 >                                                /* set frame for rendering */
844 >        if ((endx == startx) | (endy == starty))
845 >                return;
846          if (endx < startx) {register int c = endx; endx = startx; startx = c;}
847          if (endy < starty) {register int c = endy; endy = starty; starty = c;}
848          sprintf(odev_args, "%.3f %.3f %.3f %.3f",

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines