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

Comparing ray/src/px/pmapgen.c (file contents):
Revision 2.1 by greg, Wed Oct 11 10:39:26 1995 UTC vs.
Revision 2.3 by greg, Sat Feb 22 02:07:27 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1995 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   * pmapgen.c: general routines for 2-D perspective mappings.
6   * These routines are independent of the poly structure,
# Line 20 | Line 17 | static char rcsid[] = "$Header$";
17   #define TOLERANCE 1e-13
18   #define ZERO(x) ((x)<TOLERANCE && (x)>-TOLERANCE)
19  
20 < #define X(i) quad[i][0]         /* quadrilateral x and y */
21 < #define Y(i) quad[i][1]
20 > #define X(i) qdrl[i][0]         /* quadrilateral x and y */
21 > #define Y(i) qdrl[i][1]
22  
23   /*
24   * pmap_quad_rect: find mapping between quadrilateral and rectangle.
25   * The correspondence is:
26   *
27 < *      quad[0] --> (u0,v0)
28 < *      quad[1] --> (u1,v0)
29 < *      quad[2] --> (u1,v1)
30 < *      quad[3] --> (u0,v1)
27 > *      qdrl[0] --> (u0,v0)
28 > *      qdrl[1] --> (u1,v0)
29 > *      qdrl[2] --> (u1,v1)
30 > *      qdrl[3] --> (u0,v1)
31   *
32   * This method of computing the adjoint numerically is cheaper than
33   * computing it symbolically.
34   */
35          
36 < pmap_quad_rect(u0, v0, u1, v1, quad, QR)
36 > pmap_quad_rect(u0, v0, u1, v1, qdrl, QR)
37   double u0, v0, u1, v1;          /* bounds of rectangle */
38 < double quad[4][2];              /* vertices of quadrilateral */
39 < double QR[3][3];                /* quad->rect transform (returned) */
38 > double qdrl[4][2];              /* vertices of quadrilateral */
39 > double QR[3][3];                /* qdrl->rect transform (returned) */
40   {
41      int ret;
42      double du, dv;
43 <    double RQ[3][3];            /* rect->quad transform */
43 >    double RQ[3][3];            /* rect->qdrl transform */
44  
45      du = u1-u0;
46      dv = v1-v0;
# Line 53 | Line 50 | double QR[3][3];               /* quad->rect transform (returned) *
50      }
51  
52      /* first find mapping from unit uv square to xy quadrilateral */
53 <    ret = pmap_square_quad(quad, RQ);
53 >    ret = pmap_square_quad(qdrl, RQ);
54      if (ret==PMAP_BAD) return PMAP_BAD;
55  
56      /* concatenate transform from uv rectangle (u0,v0,u1,v1) to unit square */
# Line 78 | Line 75 | double QR[3][3];               /* quad->rect transform (returned) *
75   * pmap_square_quad: find mapping between unit square and quadrilateral.
76   * The correspondence is:
77   *
78 < *      (0,0) --> quad[0]
79 < *      (1,0) --> quad[1]
80 < *      (1,1) --> quad[2]
81 < *      (0,1) --> quad[3]
78 > *      (0,0) --> qdrl[0]
79 > *      (1,0) --> qdrl[1]
80 > *      (1,1) --> qdrl[2]
81 > *      (0,1) --> qdrl[3]
82   */
83  
84 < pmap_square_quad(quad, SQ)
85 < register double quad[4][2];     /* vertices of quadrilateral */
86 < register double SQ[3][3];       /* square->quad transform */
84 > pmap_square_quad(qdrl, SQ)
85 > register double qdrl[4][2];     /* vertices of quadrilateral */
86 > register double SQ[3][3];       /* square->qdrl transform */
87   {
88      double px, py;
89  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines