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

Comparing ray/src/common/xf.c (file contents):
Revision 1.6 by greg, Fri Oct 13 19:34:51 1989 UTC vs.
Revision 1.7 by greg, Wed Oct 18 23:15:37 1989 UTC

# Line 26 | Line 26 | char  *av[];
26   {
27          double  atof(), sin(), cos();
28          double  xfmat[4][4], m4[4][4];
29 <        double  xfsca, theta;
29 >        double  xfsca, dtmp;
30          int  i, icnt;
31  
32          setident4(retmat);
# Line 52 | Line 52 | char  *av[];
52                          switch (av[i][2]) {
53                          case 'x':
54                                  checkarg(3,1);
55 <                                theta = d2r(atof(av[++i]));
56 <                                m4[1][1] = m4[2][2] = cos(theta);
57 <                                m4[2][1] = -(m4[1][2] = sin(theta));
55 >                                dtmp = d2r(atof(av[++i]));
56 >                                m4[1][1] = m4[2][2] = cos(dtmp);
57 >                                m4[2][1] = -(m4[1][2] = sin(dtmp));
58                                  break;
59                          case 'y':
60                                  checkarg(3,1);
61 <                                theta = d2r(atof(av[++i]));
62 <                                m4[0][0] = m4[2][2] = cos(theta);
63 <                                m4[0][2] = -(m4[2][0] = sin(theta));
61 >                                dtmp = d2r(atof(av[++i]));
62 >                                m4[0][0] = m4[2][2] = cos(dtmp);
63 >                                m4[0][2] = -(m4[2][0] = sin(dtmp));
64                                  break;
65                          case 'z':
66                                  checkarg(3,1);
67 <                                theta = d2r(atof(av[++i]));
68 <                                m4[0][0] = m4[1][1] = cos(theta);
69 <                                m4[1][0] = -(m4[0][1] = sin(theta));
67 >                                dtmp = d2r(atof(av[++i]));
68 >                                m4[0][0] = m4[1][1] = cos(dtmp);
69 >                                m4[1][0] = -(m4[0][1] = sin(dtmp));
70                                  break;
71                          default:
72                                  return(i);
# Line 75 | Line 75 | char  *av[];
75  
76                  case 's':                       /* scale */
77                          checkarg(2,1);
78 +                        dtmp = atof(av[i+1]);
79 +                        if (dtmp == 0.0) goto done;
80 +                        i++;
81                          xfsca *=
82                          m4[0][0] =
83                          m4[1][1] =
84 <                        m4[2][2] = atof(av[++i]);
84 >                        m4[2][2] = dtmp;
85                          break;
86  
87                  case 'm':                       /* mirror */
# Line 137 | Line 140 | char  *av[];
140   {
141          double  atof(), sin(), cos();
142          double  xfmat[4][4], m4[4][4];
143 <        double  xfsca, theta;
143 >        double  xfsca, dtmp;
144          int  i, icnt;
145  
146          setident4(retmat);
# Line 163 | Line 166 | char  *av[];
166                          switch (av[i][2]) {
167                          case 'x':
168                                  checkarg(3,1);
169 <                                theta = -d2r(atof(av[++i]));
170 <                                m4[1][1] = m4[2][2] = cos(theta);
171 <                                m4[2][1] = -(m4[1][2] = sin(theta));
169 >                                dtmp = -d2r(atof(av[++i]));
170 >                                m4[1][1] = m4[2][2] = cos(dtmp);
171 >                                m4[2][1] = -(m4[1][2] = sin(dtmp));
172                                  break;
173                          case 'y':
174                                  checkarg(3,1);
175 <                                theta = -d2r(atof(av[++i]));
176 <                                m4[0][0] = m4[2][2] = cos(theta);
177 <                                m4[0][2] = -(m4[2][0] = sin(theta));
175 >                                dtmp = -d2r(atof(av[++i]));
176 >                                m4[0][0] = m4[2][2] = cos(dtmp);
177 >                                m4[0][2] = -(m4[2][0] = sin(dtmp));
178                                  break;
179                          case 'z':
180                                  checkarg(3,1);
181 <                                theta = -d2r(atof(av[++i]));
182 <                                m4[0][0] = m4[1][1] = cos(theta);
183 <                                m4[1][0] = -(m4[0][1] = sin(theta));
181 >                                dtmp = -d2r(atof(av[++i]));
182 >                                m4[0][0] = m4[1][1] = cos(dtmp);
183 >                                m4[1][0] = -(m4[0][1] = sin(dtmp));
184                                  break;
185                          default:
186                                  return(i);
# Line 186 | Line 189 | char  *av[];
189  
190                  case 's':                       /* scale */
191                          checkarg(2,1);
192 +                        dtmp = atof(av[i+1]);
193 +                        if (dtmp == 0.0) goto done;
194 +                        i++;
195                          xfsca *=
196                          m4[0][0] =
197                          m4[1][1] =
198 <                        m4[2][2] = 1.0 / atof(av[++i]);
198 >                        m4[2][2] = 1.0 / dtmp;
199                          break;
200  
201                  case 'm':                       /* mirror */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines