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

Comparing ray/src/cv/rad2mgf.c (file contents):
Revision 2.30 by greg, Tue Apr 22 14:51:29 2025 UTC vs.
Revision 2.31 by greg, Wed Apr 23 01:57:04 2025 UTC

# Line 49 | Line 49 | struct vert {
49  
50   LUTAB   vertab = LU_SINIT(free,NULL);   /* our vertex lookup table */
51  
52 + typedef int dispatchf(char *mod, char *typ, char *id, FUNARGS *fa);
53 +
54   void rad2mgf(char *inp);
55   void cvtprim(char *inp, char *mod, char *typ, char *id, FUNARGS *fa);
56   void newmat(char *id, char *alias);
# Line 58 | Line 60 | void init(void);
60   void uninit(void);
61   void clrverts(void);
62   void unspace(char *s);
63 < void add2dispatch(char *name, int (*func)());
63 > void add2dispatch(char *name, dispatchf *func);
64   char *getvertid(char *vname, FVECT vp);
63 int o_unsupported(char *mod, char *typ, char *id, FUNARGS *fa);
64 int o_face(char *mod, char *typ, char *id, FUNARGS *fa);
65 int o_cone(char *mod, char *typ, char *id, FUNARGS *fa);
66 int o_sphere(char *mod, char *typ, char *id, FUNARGS *fa);
67 int o_cylinder(char *mod, char *typ, char *id, FUNARGS *fa);
68 int o_ring(char *mod, char *typ, char *id, FUNARGS *fa);
69 int o_instance(char *mod, char *typ, char *id, FUNARGS *fa);
70 int o_illum(char *mod, char *typ, char *id, FUNARGS *fa);
71 int o_plastic(char *mod, char *typ, char *id, FUNARGS *fa);
72 int o_metal(char *mod, char *typ, char *id, FUNARGS *fa);
73 int o_glass(char *mod, char *typ, char *id, FUNARGS *fa);
74 int o_dielectric(char *mod, char *typ, char *id, FUNARGS *fa);
75 int o_mirror(char *mod, char *typ, char *id, FUNARGS *fa);
76 int o_trans(char *mod, char *typ, char *id, FUNARGS *fa);
77 int o_light(char *mod, char *typ, char *id, FUNARGS *fa);
65  
66 + dispatchf       o_unsupported, o_face, o_cone, o_sphere,
67 +                o_cylinder, o_ring, o_instance, o_illum,
68 +                o_plastic, o_metal, o_glass, o_dielectric,
69 +                o_mirror, o_trans, o_light;
70  
71 +
72   int
73   main(
74          int     argc,
# Line 130 | Line 122 | rad2mgf(               /* convert a Radiance file to MGF */
122          char  buf[512];
123          char  mod[128], typ[32], id[128], alias[128];
124          FUNARGS fa;
125 <        register FILE   *fp;
126 <        register int    c;
125 >        FILE    *fp;
126 >        int     c;
127  
128          if (inp == NULL) {
129                  inp = "standard input";
# Line 224 | Line 216 | cvtprim(       /* process Radiance primitive */
216          FUNARGS *fa
217   )
218   {
219 <        int     (*df)();
219 >        dispatchf       *df;
220  
221 <        df = (int (*)())lu_find(&rdispatch, typ)->data;
221 >        df = (dispatchf *)lu_find(&rdispatch, typ)->data;
222          if (df != NULL) {                               /* convert */
223                  if ((*df)(mod, typ, id, fa) < 0) {
224                          fprintf(stderr, "%s: bad %s \"%s\"\n", "rad2mgf", typ, id);
# Line 246 | Line 238 | newmat(                /* add a modifier to the alias list */
238          char    *alias
239   )
240   {
241 <        register LUENT  *lp, *lpa;
241 >        LUENT   *lp, *lpa;
242  
243          if (alias != NULL) {                    /* look up alias */
244                  if ((lpa = lu_find(&rmats, alias)) == NULL)
# Line 297 | Line 289 | setobj(                        /* set object name to this one */
289          char    *id
290   )
291   {
292 <        register char   *cp, *cp2;
292 >        char    *cp, *cp2;
293          char    *end = NULL;
294          int     diff = 0;
295                                  /* use all but final suffix */
# Line 376 | Line 368 | uninit(void)                   /* mark end of MGF file */
368   void
369   clrverts(void)                  /* clear vertex table */
370   {
371 <        register int    i;
371 >        int     i;
372  
373          lu_done(&vertab);
374          for (i = 0; i < NVERTS; i++)
# Line 391 | Line 383 | add2dispatch(  /* add function to dispatch table */
383          int     (*func)()
384   )
385   {
386 <        register LUENT  *lp;
386 >        LUENT   *lp;
387  
388          lp = lu_find(&rdispatch, name);
389          if (lp->key != NULL) {
# Line 411 | Line 403 | getvertid(             /* get/set vertex ID for this point */
403   )
404   {
405          static char     vkey[VKLEN];
406 <        register LUENT  *lp;
407 <        register int    i, vndx;
406 >        LUENT   *lp;
407 >        int     i, vndx;
408  
409          vclock++;                       /* increment counter */
410          mkvkey(vkey, vp);
# Line 457 | Line 449 | o_unsupported(         /* mark unsupported primitive */
449          FUNARGS *fa
450   )
451   {
452 <        register int    i;
452 >        int     i;
453  
454          fputs("\n# Unsupported RADIANCE primitive:\n", stdout);
455          printf("# %s %s %s", mod, typ, id);
# Line 488 | Line 480 | o_face(                /* print out a polygon */
480   )
481   {
482          char    entbuf[2048], *linestart;
483 <        register char   *cp;
484 <        register int    i;
483 >        char    *cp;
484 >        int     i;
485  
486          if ((fa->nfargs < 9) | (fa->nfargs % 3))
487                  return(-1);
# Line 518 | Line 510 | o_cone(        /* print out a cone */
510          char    *mod,
511          char    *typ,
512          char    *id,
513 <        register FUNARGS        *fa
513 >        FUNARGS *fa
514   )
515   {
516          char    v1[6], v2[6];
# Line 544 | Line 536 | o_sphere(      /* print out a sphere */
536          char    *mod,
537          char    *typ,
538          char    *id,
539 <        register FUNARGS        *fa
539 >        FUNARGS *fa
540   )
541   {
542          char    cent[6];
# Line 564 | Line 556 | o_cylinder(    /* print out a cylinder */
556          char    *mod,
557          char    *typ,
558          char    *id,
559 <        register FUNARGS        *fa
559 >        FUNARGS *fa
560   )
561   {
562          char    v1[6], v2[6];
# Line 586 | Line 578 | o_ring(        /* print out a ring */
578          char    *mod,
579          char    *typ,
580          char    *id,
581 <        register FUNARGS        *fa
581 >        FUNARGS *fa
582   )
583   {
584          if (fa->nfargs != 8)
# Line 615 | Line 607 | o_instance(    /* convert an instance (or mesh) */
607          FUNARGS *fa
608   )
609   {
610 <        register int    i;
611 <        register char   *cp;
610 >        int     i;
611 >        char    *cp;
612          char    *start = NULL, *end = NULL;
613          /*
614           * We don't really know how to do this, so we just create
# Line 675 | Line 667 | o_plastic(     /* convert a plastic material */
667          char    *mod,
668          char    *typ,
669          char    *id,
670 <        register FUNARGS        *fa
670 >        FUNARGS *fa
671   )
672   {
673          COLOR   cxyz, rrgb;
# Line 706 | Line 698 | o_metal(       /* convert a metal material */
698          char    *mod,
699          char    *typ,
700          char    *id,
701 <        register FUNARGS        *fa
701 >        FUNARGS *fa
702   )
703   {
704          COLOR   cxyz, rrgb;
# Line 735 | Line 727 | o_glass(       /* convert a glass material */
727          char    *mod,
728          char    *typ,
729          char    *id,
730 <        register FUNARGS        *fa
730 >        FUNARGS *fa
731   )
732   {
733          COLOR   cxyz, rrgb, trgb;
734          double  nrfr = 1.52, F, d;
735 <        register int    i;
735 >        int     i;
736  
737          if (fa->nfargs != 3 && fa->nfargs != 4)
738                  return(-1);
# Line 777 | Line 769 | o_dielectric(  /* convert a dielectric material */
769          char    *mod,
770          char    *typ,
771          char    *id,
772 <        register FUNARGS        *fa
772 >        FUNARGS *fa
773   )
774   {
775          COLOR   cxyz, trgb;
776          double  F, d;
777 <        register int    i;
777 >        int     i;
778  
779          if (fa->nfargs != 5)
780                  return(-1);
# Line 810 | Line 802 | o_mirror(      /* convert a mirror material */
802          char    *mod,
803          char    *typ,
804          char    *id,
805 <        register FUNARGS        *fa
805 >        FUNARGS *fa
806   )
807   {
808          COLOR   cxyz, rrgb;
# Line 839 | Line 831 | o_trans(       /* convert a trans material */
831          char    *mod,
832          char    *typ,
833          char    *id,
834 <        register FUNARGS        *fa
834 >        FUNARGS *fa
835   )
836   {
837          COLOR   cxyz, rrgb;
# Line 881 | Line 873 | o_light(               /* convert a light type */
873          char    *mod,
874          char    *typ,
875          char    *id,
876 <        register FUNARGS        *fa
876 >        FUNARGS *fa
877   )
878   {
879          COLOR   cxyz, rrgb;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines