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.4 by greg, Thu Oct 5 07:54:31 1989 UTC vs.
Revision 1.5 by greg, Fri Oct 6 09:39:42 1989 UTC

# Line 26 | Line 26 | char  *av[];
26          double  atof(), sin(), cos();
27          double  xfmat[4][4], m4[4][4];
28          double  xfsca, theta;
29 <        int  i, j;
30 <        int  rept;
29 >        int  i, icnt;
30  
31          setident4(retmat);
32          *retsca = 1.0;
33  
35        rept = 1;
34          setident4(xfmat);
35          xfsca = 1.0;
36  
# Line 106 | Line 104 | char  *av[];
104  
105                  case 'i':                       /* iterate */
106                          checkarg("-i",1);
107 <                        for (j = 0; j < rept; j++) {
107 >                        icnt = atoi(av[++i]);
108 >                        while (icnt-- > 0) {
109                                  multmat4(retmat, retmat, xfmat);
110                                  *retsca *= xfsca;
111                          }
113                        rept = atoi(av[++i]);
112                          setident4(xfmat);
113                          xfsca = 1.0;
114                          break;
# Line 122 | Line 120 | char  *av[];
120                  multmat4(xfmat, xfmat, m4);
121          }
122   done:
123 <        for (j = 0; j < rept; j++) {
124 <                multmat4(retmat, retmat, xfmat);
127 <                *retsca *= xfsca;
128 <        }
123 >        multmat4(retmat, retmat, xfmat);
124 >        *retsca *= xfsca;
125          return(i);
126   }
127  
# Line 141 | Line 137 | char  *av[];
137          double  atof(), sin(), cos();
138          double  xfmat[4][4], m4[4][4];
139          double  xfsca, theta;
140 <        int  i, j;
145 <        int  rept;
140 >        int  i, icnt;
141  
142          setident4(retmat);
143          *retsca = 1.0;
144  
150        rept = 1;
145          setident4(xfmat);
146          xfsca = 1.0;
147  
# Line 191 | Line 185 | char  *av[];
185  
186                  case 's':                       /* scale */
187                          checkarg("-s",1);
188 <                        *xfsca *=
188 >                        xfsca *=
189                          m4[0][0] =
190                          m4[1][1] =
191                          m4[2][2] = 1.0 / atof(av[++i]);
# Line 201 | Line 195 | char  *av[];
195                          switch (av[i][2]) {
196                          case 'x':
197                                  checkarg("-mx",0);
198 <                                *xfsca *=
198 >                                xfsca *=
199                                  m4[0][0] = -1.0;
200                                  break;
201                          case 'y':
202                                  checkarg("-my",0);
203 <                                *xfsca *=
203 >                                xfsca *=
204                                  m4[1][1] = -1.0;
205                                  break;
206                          case 'z':
207                                  checkarg("-mz",0);
208 <                                *xfsca *=
208 >                                xfsca *=
209                                  m4[2][2] = -1.0;
210                                  break;
211                          default:
# Line 221 | Line 215 | char  *av[];
215  
216                  case 'i':                       /* iterate */
217                          checkarg("-i",1);
218 <                        for (j = 0; j < rept; j++) {
218 >                        icnt = atoi(av[++i]);
219 >                        while (icnt-- > 0) {
220                                  multmat4(retmat, xfmat, retmat);
221                                  *retsca *= xfsca;
222                          }
228                        rept = atoi(av[++i]);
223                          setident4(xfmat);
224                          xfsca = 1.0;
225                          break;
# Line 237 | Line 231 | char  *av[];
231                  multmat4(xfmat, m4, xfmat);     /* left multiply */
232          }
233   done:
234 <        for (j = 0; j < rept; j++) {
235 <                multmat4(retmat, xfmat, retmat);
242 <                *retsca *= xfsca;
243 <        }
234 >        multmat4(retmat, xfmat, retmat);
235 >        *retsca *= xfsca;
236          return(i);
237   }
238   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines