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 2.17 by greg, Thu Aug 5 13:17:54 1993 UTC vs.
Revision 2.18 by greg, Wed Aug 25 14:13:51 1993 UTC

# Line 30 | Line 30 | static char SCCSid[] = "$SunId$ LBL";
30   #define  sscanvec(s,v)  (sscanf(s,"%lf %lf %lf",v,v+1,v+2)==3)
31   #endif
32  
33 + extern char  *atos();
34  
35 + extern char  rifname[];                 /* rad input file name */
36 +
37   extern char  VersionID[];
38   extern char  *progname;
39   extern char  *octname;
# Line 85 | Line 88 | char  *s;
88                  fputs(progname, fp);
89                  fprintview(&ourview, fp);
90                  fputs(sskip(s), fp);
91 <                fputs("\n", fp);
91 >                putc('\n', fp);
92                  fclose(fp);
93                  return;
94          }
# Line 180 | Line 183 | char  *s;
183          copystruct(&ourview, &oldview);
184          copystruct(&oldview, &nv);
185          newimage();
186 + }
187 +
188 +
189 + saveview(s)                             /* save view to rad file */
190 + char  *s;
191 + {
192 +        char  view[64];
193 +        char  *fname;
194 +        FILE  *fp;
195 +
196 +        if (*atos(view, sizeof(view), s))
197 +                s = sskip(s);
198 +        if (sscanf(s, "%s", rifname) != 1 && rifname[0] == '\0') {
199 +                error(COMMAND, "no previous rad file");
200 +                return;
201 +        }
202 +        if ((fname = getpath(rifname, NULL, 0)) == NULL ||
203 +                        (fp = fopen(fname, "a")) == NULL) {
204 +                sprintf(errmsg, "cannot open \"%s\"", rifname);
205 +                error(COMMAND, errmsg);
206 +                return;
207 +        }
208 +        fputs("view= ", fp);
209 +        fputs(view, fp);
210 +        fprintview(&ourview, fp);
211 +        putc('\n', fp);
212 +        fclose(fp);
213 + }
214 +
215 +
216 + loadview(s)                             /* load view from rad file */
217 + char  *s;
218 + {
219 +        char  buf[512];
220 +        char  *fname;
221 +        FILE  *fp;
222 +        VIEW  nv;
223 +
224 +        strcpy(buf, "rad -n -s -V -v ");
225 +        if (sscanf(s, "%s", buf+strlen(buf)) == 1)
226 +                s = sskip(s);
227 +        else
228 +                strcat(buf, "1");
229 +        if (sscanf(s, "%s", rifname) != 1 && rifname[0] == '\0') {
230 +                error(COMMAND, "no previous rad file");
231 +                return;
232 +        }
233 +        fname = getpath(rifname, NULL, 0);
234 +        if (fname == NULL || access(fname, R_OK) == -1) {
235 +                sprintf(errmsg, "cannot access \"%s\"", rifname);
236 +                error(COMMAND, errmsg);
237 +                return;
238 +        }
239 +        sprintf(buf+strlen(buf), " %s", fname);
240 +        if ((fp = popen(buf, "r")) == NULL) {
241 +                error(COMMAND, "cannot run rad");
242 +                return;
243 +        }
244 +        buf[0] = '\0';
245 +        fgets(buf, sizeof(buf), fp);
246 +        pclose(fp);
247 +        copystruct(&nv, &stdview);
248 +        if (!sscanview(&nv, buf)) {
249 +                error(COMMAND, "rad error -- no such view?");
250 +                return;
251 +        }
252 +        newview(&nv);
253   }
254  
255  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines