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.15 by greg, Wed Jun 22 12:35:59 1994 UTC vs.
Revision 2.17 by greg, Sat Feb 22 02:07:23 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1994 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   * Convert a Wavefront .obj file to Radiance format.
6   *
# Line 568 | Line 565 | char   *v1, *v2, *v3;
565          if (!cvtndx(v1i, v1) || !cvtndx(v2i, v2) || !cvtndx(v3i, v3))
566                  return(0);
567                                          /* compute barycentric coordinates */
568 <        texOK = !flatten && (v1i[2]>=0 && v2i[2]>=0 && v3i[2]>=0);
568 >        if (!flatten && v1i[2]>=0 && v2i[2]>=0 && v3i[2]>=0)
569 >                switch (flat_tri(vlist[v1i[0]], vlist[v2i[0]], vlist[v3i[0]],
570 >                        vnlist[v1i[2]], vnlist[v2i[2]], vnlist[v3i[2]])) {
571 >                case DEGEN:             /* zero area */
572 >                        return(-1);
573 >                case RVFLAT:            /* reversed normals, but flat */
574 >                case ISFLAT:            /* smoothing unnecessary */
575 >                        texOK = 0;
576 >                        break;
577 >                case RVBENT:            /* reversed normals with smoothing */
578 >                case ISBENT:            /* proper smoothing */
579 >                        texOK = 1;
580 >                        break;
581 >                }
582 >        else
583 >                texOK = 0;
584   #ifdef TEXMAPS
585          patOK = mapname[0] && (v1i[1]>=0 && v2i[1]>=0 && v3i[1]>=0);
586   #else
# Line 620 | Line 632 | char   *v1, *v2, *v3;
632   freeverts()                     /* free all vertices */
633   {
634          if (nvs) {
635 <                free((char *)vlist);
635 >                free((void *)vlist);
636                  nvs = 0;
637          }
638          if (nvts) {
639 <                free((char *)vtlist);
639 >                free((void *)vtlist);
640                  nvts = 0;
641          }
642          if (nvns) {
643 <                free((char *)vnlist);
643 >                free((void *)vnlist);
644                  nvns = 0;
645          }
646   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines