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

Comparing ray/src/common/convertobj.c (file contents):
Revision 2.4 by greg, Thu Apr 15 23:51:04 2021 UTC vs.
Revision 2.5 by greg, Fri Apr 16 15:18:33 2021 UTC

# Line 71 | Line 71 | trismooth(Scene *sc, Face *f, void *ptr)
71   {
72          FILE            *fp = (FILE *)ptr;
73          BARYCCM         bcm;
74 <        RREAL           ncoor[3][3];
74 >        FVECT           coor[3];
75          int             i;
76  
77          if (f->nv != 3)
78                  return(0);                      /* should never happen */
79 <        if (sizeof(sc->vert[0].p) != sizeof(FVECT))
80 <                error(INTERNAL, "Code error in trismooth()");
81 <        if (comp_baryc(&bcm, sc->vert[f->v[0].vid].p, sc->vert[f->v[1].vid].p,
82 <                        sc->vert[f->v[2].vid].p) < 0)
79 > #ifdef  SMLFLT
80 >        for (i = 3; i--; ) {
81 >                double  *v = sc->vert[f->v[i].vid].p;
82 >                VCOPY(coor[i], v);
83 >        }
84 >        if (comp_baryc(&bcm, coor[0], coor[1], coor[2]) < 0)
85                  return(0);                      /* degenerate?? */
86 <
86 > #else
87 >        if (comp_baryc(&bcm, sc->vert[f->v[0].vid].p,
88 >                        sc->vert[f->v[1].vid].p, sc->vert[f->v[2].vid].p) < 0)
89 >                return(0);                      /* degenerate?? */
90 > #endif
91          for (i = 3; i--; ) {                    /* assign BC normals */
92                  float   *tnrm = sc->norm[f->v[i].nid];
93 <                ncoor[0][i] = tnrm[0];
94 <                ncoor[1][i] = tnrm[1];
95 <                ncoor[2][i] = tnrm[2];
93 >                coor[0][i] = tnrm[0];
94 >                coor[1][i] = tnrm[1];
95 >                coor[2][i] = tnrm[2];
96          }                                       /* print texture */
97          fprintf(fp, "\n%s texfunc %s\n4 dx dy dz %s\n0\n",
98                          sc->matname[f->mat], TEXNAME, TCALNAME);
99 <        fput_baryc(&bcm, ncoor, 3, fp);         /* with BC normals */
99 >        fput_baryc(&bcm, coor, 3, fp);          /* with BC normals */
100          fprintf(fp, "\n%s polygon %s.%d\n0\n0\n9\n",
101                          TEXNAME, sc->grpname[f->grp], ++fcnt);
102          for (i = 0; i < 3; i++) {               /* then triangle */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines