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

Comparing ray/src/cv/obj2rad.c (file contents):
Revision 2.27 by greg, Tue Sep 28 21:28:23 2010 UTC vs.
Revision 2.28 by greg, Tue Aug 20 16:19:03 2013 UTC

# Line 2 | Line 2
2   static const char       RCSid[] = "$Id$";
3   #endif
4   /*
5 < * Convert a Wavefront .obj file to Radiance format.
5 > * Convert a Wavefront .OBJ file to Radiance format.
6   *
7   * Currently, we support only polygonal geometry.  Non-planar
8   * faces are broken rather haphazardly into triangles.
# Line 73 | Line 73 | int    flatten = 0;            /* discard surface normal informatio
73  
74   char    mapname[128];           /* current picture file */
75   char    matname[64];            /* current material name */
76 < char    group[16][32];          /* current group names */
76 > char    group[8][256];          /* current group name(s) */
77   char    objname[128];           /* current object name */
78   char    *inpfile;               /* input file name */
79   int     lineno;                 /* current line number */
# Line 97 | Line 97 | static void syntax(char *er);
97  
98  
99   int
100 < main(           /* read in .obj file and convert */
100 > main(           /* read in .OBJ file and convert */
101          int     argc,
102          char    *argv[]
103   )
# Line 163 | Line 163 | getnames(                      /* get valid qualifier names */
163          char    *argv[MAXARG];
164          int     argc;
165          ID      tmpid;
166 <        register int    i;
166 >        int     i;
167  
168          while ( (argc = getstmt(argv, fp)) )
169                  switch (argv[0][0]) {
# Line 207 | Line 207 | getnames(                      /* get valid qualifier names */
207  
208  
209   void
210 < convert(                        /* convert a T-mesh */
210 > convert(                        /* convert an OBJ stream */
211          FILE    *fp
212   )
213   {
214          char    *argv[MAXARG];
215          int     argc;
216          int     nstats, nunknown;
217 <        register int    i;
217 >        int     i;
218  
219          nstats = nunknown = 0;
220                                          /* scan until EOF */
# Line 293 | Line 293 | convert(                       /* convert a T-mesh */
293                                  goto unknown;
294                          for (i = 1; i < argc; i++)
295                                  strcpy(group[i-1], argv[i]);
296 <                        group[i-1][0] = '\0';
296 >                        group[argc-1][0] = '\0';
297                          break;
298                  case '#':               /* comment */
299                          printargs(argc, argv, stdout);
# Line 313 | Line 313 | convert(                       /* convert a T-mesh */
313  
314   int
315   getstmt(                                /* read the next statement from fp */
316 <        register char   *av[MAXARG],
316 >        char    *av[MAXARG],
317          FILE    *fp
318   )
319   {
320          static char     sbuf[MAXARG*16];
321 <        register char   *cp;
322 <        register int    i;
321 >        char    *cp;
322 >        int     i;
323  
324          do {
325                  if (fgetline(cp=sbuf, sizeof(sbuf), fp) == NULL)
# Line 354 | Line 354 | getstmt(                               /* read the next statement from fp */
354   char *
355   getmtl(void)                            /* figure material for this face */
356   {
357 <        register RULEHD *rp = ourmapping;
357 >        RULEHD  *rp = ourmapping;
358  
359          if (rp == NULL) {               /* no rule set */
360                  if (matname[0])
# Line 381 | Line 381 | char *
381   getonm(void)                            /* invent a good name for object */
382   {
383          static char     name[64];
384 <        register char   *cp1, *cp2;
385 <        register int    i;
384 >        char    *cp1, *cp2;
385 >        int     i;
386                                          /* check for preset */
387          if (objname[0])
388                  return(objname);
# Line 405 | Line 405 | getonm(void)                           /* invent a good name for object */
405  
406   int
407   matchrule(                              /* check for a match on this rule */
408 <        register RULEHD *rp
408 >        RULEHD  *rp
409   )
410   {
411          ID      tmpid;
412          int     gotmatch;
413 <        register int    i;
413 >        int     i;
414  
415          if (rp->qflg & FL(Q_MTL)) {
416                  if (!matname[0])
# Line 458 | Line 458 | matchrule(                             /* check for a match on this rule */
458  
459   int
460   cvtndx(                         /* convert vertex string to index */
461 <        register VNDX   vi,
462 <        register char   *vs
461 >        VNDX    vi,
462 >        char    *vs
463   )
464   {
465                                          /* get point */
# Line 510 | Line 510 | cvtndx(                                /* convert vertex string to index */
510  
511   int
512   nonplanar(                      /* are vertices non-planar? */
513 <        register int    ac,
514 <        register char   **av
513 >        int     ac,
514 >        char    **av
515   )
516   {
517          VNDX    vi;
518          RREAL   *p0, *p1;
519          FVECT   v1, v2, nsum, newn;
520          double  d;
521 <        register int    i;
521 >        int     i;
522  
523          if (!cvtndx(vi, av[0]))
524                  return(0);
# Line 564 | Line 564 | nonplanar(                     /* are vertices non-planar? */
564   int
565   putface(                                /* put out an N-sided polygon */
566          int     ac,
567 <        register char   **av
567 >        char    **av
568   )
569   {
570          VNDX    vi;
571          char    *cp;
572 <        register int    i;
572 >        int     i;
573  
574          if (nonplanar(ac, av)) {        /* break into triangles */
575                  while (ac > 2) {
# Line 609 | Line 609 | puttri(                        /* put out a triangle */
609          RREAL   bcoor[3][3];
610          int     texOK = 0, patOK;
611          int     flatness;
612 <        register int    i;
612 >        int     i;
613  
614          if ((mod = getmtl()) == NULL)
615                  return(-1);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines