azok konstansok:
#define X 0
#define Y 1
#define Z 2
#define W 3
biztos, hogy valami baja a 'mat' valtozoval van. ha ele irom hogy static, akkor jol mukodik. ha volatile-t irok ele akkor maskepp bugzik (majdnem jo de egyik iranyban meg van nyujtva a 3d object). ha atrakom mashova a deklaraciot az nem befolyasol. ha a mat_swap() tartalmat masolom oda fv hivas helyett (ugy latom sehol mashol nem hasznalja ezt ugyse) akkor se jobb:
int i, j;
c_MATRIX mat;
mat_identity (mat);
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
if (afs_fread_float(&(mat[i][j]), sizeof (float), 1, f) != 1) return ast3d_err_badfile;
// mat_swap (mat);
#ifdef ast3d_SWAP_YZ
phex(mat,sizeof(c_MATRIX));
for (i = 0; i < 3; i++) { /* swap columns */
float tmp = mat[i][Y];
mat[i][Y] = mat[i][Z];
mat[i][Z] = tmp;
}
phex(mat,sizeof(c_MATRIX));
for (i = 0; i < 4; i++) { /* swap rows */
float tmp = mat[Y][i];
mat[Y][i] = mat[Z][i];
mat[Z][i] = tmp;
}
phex(mat,sizeof(c_MATRIX));
#endif