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

Comparing ray/src/rt/rv2.c (file contents):
Revision 1.9 by greg, Tue Jun 13 10:57:45 1989 UTC vs.
Revision 1.12 by greg, Fri Oct 27 11:48:19 1989 UTC

# Line 28 | Line 28 | extern char  *progname;
28   getframe(s)                             /* get a new frame */
29   char  *s;
30   {
31 <        int  x0, y0, x1, y1;
32 <
33 <        if (!strcmp("all", s)) {
34 <                pframe.l = pframe.d = 0;
35 <                pframe.r = ourview.hresolu;
36 <                pframe.u = ourview.vresolu;
37 <                pdepth = 0;
31 >        if (getrect(s, &pframe) < 0)
32                  return;
39        }
40        if (sscanf(s, "%d %d %d %d", &x0, &y0, &x1, &y1) != 4) {
41                if (dev->getcur == NULL)
42                        return;
43                (*dev->comout)("Pick first corner\n");
44                if ((*dev->getcur)(&x0, &y0) == ABORT)
45                        return;
46                (*dev->comout)("Pick second corner\n");
47                if ((*dev->getcur)(&x1, &y1) == ABORT)
48                        return;
49        }
50        if (x0 < x1) {
51                pframe.l = x0;
52                pframe.r = x1;
53        } else {
54                pframe.l = x1;
55                pframe.r = x0;
56        }
57        if (y0 < y1) {
58                pframe.d = y0;
59                pframe.u = y1;
60        } else {
61                pframe.d = y1;
62                pframe.u = y0;
63        }
64        if (pframe.l < 0) pframe.l = 0;
65        if (pframe.d < 0) pframe.d = 0;
66        if (pframe.r > ourview.hresolu) pframe.r = ourview.hresolu;
67        if (pframe.u > ourview.vresolu) pframe.u = ourview.vresolu;
68        if (pframe.l > pframe.r) pframe.l = pframe.r;
69        if (pframe.d > pframe.u) pframe.d = pframe.u;
33          pdepth = 0;
34   }
35  
36  
37 + getrepaint(s)                           /* get area and repaint */
38 + char  *s;
39 + {
40 +        RECT  box;
41 +
42 +        if (getrect(s, &box) < 0)
43 +                return;
44 +        paintrect(&ptrunk, 0, 0, ourview.hresolu, ourview.vresolu, &box);
45 + }
46 +
47 +
48   getview(s)                              /* get/show view parameters */
49   char  *s;
50   {
51          FILE  *fp;
52          char  buf[128];
53 <        char  *fname, *getpath();
53 >        char  *fname;
54          int  change = 0;
55          VIEW  nv;
56  
57          if (sscanf(s, "%s", buf) == 1) {        /* write parameters to a file */
58 <                if ((fname = getpath(buf, NULL)) == NULL ||
58 >                if ((fname = getpath(buf, NULL, 0)) == NULL ||
59                                  (fp = fopen(fname, "a")) == NULL) {
60                          sprintf(errmsg, "cannot open \"%s\"", buf);
61                          error(COMMAND, errmsg);
# Line 158 | Line 132 | lastview(s)                            /* return to a previous view */
132   char  *s;
133   {
134          char  buf[128];
135 <        char  *fname, *getpath();
135 >        char  *fname;
136          int  success;
137          VIEW  nv;
138  
139          if (sscanf(s, "%s", buf) == 1) {        /* get parameters from a file */
140                  bcopy(&stdview, &nv, sizeof(VIEW));
141 <                if ((fname = getpath(buf, NULL)) == NULL ||
141 >                if ((fname = getpath(buf, NULL, 0)) == NULL ||
142                                  (success = viewfile(fname, &nv)) == -1) {
143                          sprintf(errmsg, "cannot open \"%s\"", buf);
144                          error(COMMAND, errmsg);
# Line 187 | Line 161 | char  *s;
161   }
162  
163  
190 getinterest(s, direc, vec, mp)          /* get area of interest */
191 char  *s;
192 int  direc;
193 FVECT  vec;
194 double  *mp;
195 {
196        int  x, y;
197        RAY  thisray;
198        register int  i;
199
200        if (sscanf(s, "%lf", mp) != 1)
201                *mp = 1.0;
202        else if (*mp < -FTINY)          /* negative zoom is reduction */
203                *mp = -1.0 / *mp;
204        else if (*mp <= FTINY) {        /* too small */
205                error(COMMAND, "illegal magnification");
206                return(-1);
207        }
208        if (sscanf(s, "%*lf %lf %lf %lf", &vec[0], &vec[1], &vec[2]) != 3) {
209                if (dev->getcur == NULL)
210                        return(-1);
211                (*dev->comout)("Pick view center\n");
212                if ((*dev->getcur)(&x, &y) == ABORT)
213                        return(-1);
214                rayview(thisray.rorg, thisray.rdir, &ourview, x+.5, y+.5);
215                if (!direc || ourview.type == VT_PAR) {
216                        rayorigin(&thisray, NULL, PRIMARY, 1.0);
217                        if (!localhit(&thisray, &thescene)) {
218                                error(COMMAND, "not a local object");
219                                return(-1);
220                        }
221                }
222                if (direc)
223                        if (ourview.type == VT_PAR)
224                                for (i = 0; i < 3; i++)
225                                        vec[i] = thisray.rop[i] - ourview.vp[i];
226                        else
227                                VCOPY(vec, thisray.rdir);
228                else
229                        VCOPY(vec, thisray.rop);
230        } else if (direc)
231                        for (i = 0; i < 3; i++)
232                                vec[i] -= ourview.vp[i];
233        return(0);
234 }
235
236
164   getaim(s)                               /* aim camera */
165   char  *s;
166   {
# Line 655 | Line 582 | writepict(s)                           /* write the picture to a file */
582   char  *s;
583   {
584          static char  buf[128];
585 <        char  *fname, *getpath();
585 >        char  *fname;
586          FILE  *fp;
587          COLR  *scanline;
588          int  y;
# Line 664 | Line 591 | char  *s;
591                  error(COMMAND, "no file");
592                  return;
593          }
594 <        if ((fname = getpath(buf, NULL)) == NULL ||
594 >        if ((fname = getpath(buf, NULL, 0)) == NULL ||
595                          (fp = fopen(fname, "w")) == NULL) {
596                  sprintf(errmsg, "cannot open \"%s\"", buf);
597                  error(COMMAND, errmsg);
# Line 676 | Line 603 | char  *s;
603                                                  /* write header */
604          fputs(progname, fp);
605          fprintview(&ourview, fp);
606 <        fputs("\n", fp);
606 >        putc('\n', fp);
607          if (exposure != 1.0)
608                  fprintf(fp, "EXPOSURE=%e\n", exposure);
609 <        fprintf(fp, "\n-Y %d +X %d\n", ourview.vresolu, ourview.hresolu);
609 >        putc('\n', fp);
610 >        fputresolu(YMAJOR|YDECR, ourview.hresolu, ourview.vresolu, fp);
611  
612          scanline = (COLR *)malloc(ourview.hresolu*sizeof(COLR));
613          if (scanline == NULL)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines