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

Comparing ray/src/cv/tmesh.c (file contents):
Revision 2.1 by greg, Wed Jun 22 12:35:23 1994 UTC vs.
Revision 2.2 by greg, Wed Jul 24 13:07:47 1996 UTC

# Line 18 | Line 18 | static char SCCSid[] = "$SunId$ LBL";
18  
19  
20   int
21 + flat_tri(v1, v2, v3, n1, n2, n3)        /* determine if triangle is flat */
22 + FVECT   v1, v2, v3, n1, n2, n3;
23 + {
24 +        double  d1, d2, d3;
25 +        FVECT   vt1, vt2, vn;
26 +                                        /* compute default normal */
27 +        vt1[0] = v2[0] - v1[0]; vt1[1] = v2[1] - v1[1]; vt1[2] = v2[2] - v1[2];
28 +        vt2[0] = v3[0] - v2[0]; vt2[1] = v3[1] - v2[1]; vt2[2] = v3[2] - v2[2];
29 +        fcross(vn, vt1, vt2);
30 +        if (normalize(vn) == 0.0)
31 +                return(DEGEN);
32 +                                        /* compare to supplied normals */
33 +        d1 = DOT(vn, n1); d2 = DOT(vn, n2); d3 = DOT(vn, n3);
34 +        if (d1 < 0 && d2 < 0 && d3 < 0) {
35 +                if (d1 > -COSTOL || d2 > -COSTOL || d3 > -COSTOL)
36 +                        return(RVBENT);
37 +                return(RVFLAT);
38 +        }
39 +        if (d1 < COSTOL || d2 < COSTOL || d3 < COSTOL)
40 +                return(ISBENT);
41 +        return(ISFLAT);
42 + }
43 +
44 +
45 + int
46   comp_baryc(bcm, v1, v2, v3)             /* compute barycentric vectors */
47   register BARYCCM        *bcm;
48   FLOAT   *v1, *v2, *v3;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines