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

Comparing ray/src/hd/rhcopy.c (file contents):
Revision 3.20 by greg, Mon Oct 20 16:01:55 2003 UTC vs.
Revision 3.23 by schorsch, Fri Jan 2 11:42:01 2004 UTC

# Line 5 | Line 5 | static const char      RCSid[] = "$Id$";
5   * Copy data into a holodeck file
6   */
7  
8 #include "holo.h"
8   #include "platform.h"
9 + #include "rterror.h"
10 + #include "holo.h"
11   #include "view.h"
12  
13   #ifndef BKBSIZE
# Line 21 | Line 22 | char   obstr, unobstr;         /* flag pointer values */
22  
23   char    *progname;              /* global argv[0] */
24  
25 + struct phead {
26 +        VIEW    vw;
27 +        double  expos;
28 +        short   gotview;
29 +        short   badfmt;
30 +        short   altprims;
31 + };
32 + static int openholo(char *fname, int append);
33 + static void addray(FVECT ro, FVECT rd, double d, COLR cv);
34 + static gethfunc holheadline;
35 + static int bpcmp(const void *b1p, const void *b2p);
36 + static int addclump(HOLO *hp, int *bq, int nb);
37 + static void addholo(char *hdf);
38 + static gethfunc picheadline;
39 + static void addpicz(char *pcf, char *zbf);
40  
41 < main(argc, argv)
42 < int     argc;
43 < char    *argv[];
41 >
42 >
43 > int
44 > main(
45 >        int     argc,
46 >        char    *argv[]
47 > )
48   {
49          int     i;
50  
# Line 75 | Line 95 | userr:
95   #define H_OBST  02
96   #define H_OBSF  04
97  
98 < int
99 < holheadline(s, hf)              /* check holodeck header line */
100 < register char   *s;
101 < int     *hf;
98 > static int
99 > holheadline(            /* check holodeck header line */
100 >        register char   *s,
101 >        void    *vhf
102 > )
103   {
104          char    fmt[32];
105 +        int     *hf = vhf;
106  
107          if (formatval(fmt, s)) {
108                  if (strcmp(fmt, HOLOFMT))
# Line 104 | Line 126 | int    *hf;
126   }
127  
128   int
129 < openholo(fname, append)         /* open existing holodeck file for i/o */
130 < char    *fname;
131 < int     append;
129 > openholo(               /* open existing holodeck file for i/o */
130 >        char    *fname,
131 >        int     append
132 > )
133   {
134          FILE    *fp;
135          int     fd;
# Line 120 | Line 143 | int    append;
143                  error(SYSTEM, errmsg);
144          }
145                                          /* check header and magic number */
146 <        if (getheader(fp, holheadline, (char *)&hflags) < 0 ||
146 >        if (getheader(fp, holheadline, &hflags) < 0 ||
147                          hflags&H_BADF || getw(fp) != HOLOMAGIC) {
148                  sprintf(errmsg, "file \"%s\" not in holodeck format", fname);
149                  error(USER, errmsg);
# Line 142 | Line 165 | int    append;
165   #undef H_OBSF
166  
167  
168 < addray(ro, rd, d, cv)           /* add a ray to our output holodeck */
169 < FVECT   ro, rd;
170 < double  d;
171 < COLR    cv;
168 > void
169 > addray(         /* add a ray to our output holodeck */
170 >        FVECT   ro,
171 >        FVECT   rd,
172 >        double  d,
173 >        COLR    cv
174 > )
175   {
176          int     sn, bi, n;
177          register HOLO   *hp;
# Line 192 | Line 218 | COLR   cv;
218   static BEAMI    *beamdir;
219  
220   static int
221 < bpcmp(b1p, b2p)                 /* compare beam positions on disk */
222 < int     *b1p, *b2p;
221 > bpcmp(                  /* compare beam positions on disk */
222 >        const void      *b1p,
223 >        const void      *b2p
224 > )
225   {
226 <        register off_t  pdif = beamdir[*b1p].fo - beamdir[*b2p].fo;
226 >        register off_t  pdif = beamdir[*(int*)b1p].fo - beamdir[*(int*)b2p].fo;
227  
228          if (pdif > 0L) return(1);
229          if (pdif < 0L) return(-1);
# Line 203 | Line 231 | int    *b1p, *b2p;
231   }
232  
233   static int
234 < addclump(hp, bq, nb)            /* transfer the given clump and free */
235 < HOLO    *hp;
236 < int     *bq, nb;
234 > addclump(               /* transfer the given clump and free */
235 >        HOLO    *hp,
236 >        int     *bq,
237 >        int     nb
238 > )
239   {
240          GCOORD  gc[2];
241          FVECT   ro, rd;
# Line 235 | Line 265 | int    *bq, nb;
265          return(0);
266   }
267  
268 < addholo(hdf)                    /* add a holodeck file */
269 < char    *hdf;
268 >
269 > void
270 > addholo(                        /* add a holodeck file */
271 >        char    *hdf
272 > )
273   {
274          int     fd;
275                                          /* open the holodeck for reading */
# Line 252 | Line 285 | char   *hdf;
285   }
286  
287  
255 struct phead {
256        VIEW    vw;
257        double  expos;
258        short   gotview;
259        short   badfmt;
260        short   altprims;
261 };
288  
289 <
290 < int
291 < picheadline(s, ph)              /* process picture header line */
292 < char    *s;
293 < struct phead    *ph;
289 > static int
290 > picheadline(            /* process picture header line */
291 >        char    *s,
292 >        void    *vph
293 > )
294   {
295          char    fmt[32];
296 +        struct phead *ph = vph;
297  
298          if (formatval(fmt, s)) {
299                  ph->badfmt = strcmp(fmt, COLRFMT);
# Line 288 | Line 315 | struct phead   *ph;
315   }
316  
317  
318 < addpicz(pcf, zbf)               /* add a picture + depth-buffer */
319 < char    *pcf, *zbf;
318 > void
319 > addpicz(                /* add a picture + depth-buffer */
320 >        char    *pcf,
321 >        char    *zbf
322 > )
323   {
324          FILE    *pfp;
325          int     zfd;
# Line 318 | Line 348 | char   *pcf, *zbf;
348          phd.vw = stdview;
349          phd.expos = 1.0;
350          phd.badfmt = phd.gotview = phd.altprims = 0;
351 <        if (getheader(pfp, picheadline, (char *)&phd) < 0 ||
351 >        if (getheader(pfp, picheadline, &phd) < 0 ||
352                          phd.badfmt || !fgetsresolu(&prs, pfp)) {
353                  sprintf(errmsg, "bad format for picture file \"%s\"", pcf);
354                  error(USER, errmsg);
# Line 394 | Line 424 | char   *pcf, *zbf;
424  
425  
426   void
427 < eputs(s)                        /* put error message to stderr */
428 < register char  *s;
427 > eputs(                  /* put error message to stderr */
428 >        register char  *s
429 > )
430   {
431          static int  midline = 0;
432  
# Line 414 | Line 445 | register char  *s;
445  
446  
447   void
448 < quit(code)                      /* exit the program gracefully */
449 < int     code;
448 > quit(                   /* exit the program gracefully */
449 >        int     code
450 > )
451   {
452          hdsync(NULL, 1);        /* write out any buffered data */
453          exit(code);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines