| 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 |
|
|
| 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; |
| 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 |
|
|
| 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 |
|
|
| 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]); |
| 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: |
| 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; |
| 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 |