-// Set matrix elements based on Euler angles a, b, c
-
-void SetMatrix( double a, double b, double c , double m[3][3], int cl )
-{
- double mx[3][3], my[3][3], mz[3][3], dummy[3][3];
-
-
- // Calculate Matrices;
-
- mx[0][0] = 1.0 ; mx[0][1] = 0.0 ; mx[0][2] = 0.0;
- mx[1][0] = 0.0 ; mx[1][1] = cos(a) ; mx[1][2] = sin(a);
- mx[2][0] = 0.0 ; mx[2][1] =-mx[1][2] ; mx[2][2] = mx[1][1];
-
- my[0][0] = cos(b); my[0][1] = 0.0 ; my[0][2] =-sin(b);
- my[1][0] = 0.0 ; my[1][1] = 1.0 ; my[1][2] = 0.0;
- my[2][0] = -my[0][2]; my[2][1] = 0.0 ; my[2][2] = my[0][0];
-
- mz[0][0] = cos(c) ; mz[0][1] = sin(c) ; mz[0][2] = 0.0;
- mz[1][0] =-mz[0][1] ; mz[1][1] = mz[0][0] ; mz[1][2] = 0.0;
- mz[2][0] = 0.0 ; mz[2][1] = 0.0 ; mz[2][2] = 1.0;
-
- /* Calculate `m = mz * mx * my' */
-
- if( cl )
- matrix_matrix_mult( mz, mx, dummy);
- else
- matrix_matrix_mult( mx, mz, dummy);
- matrix_matrix_mult( dummy, my, m);
-} /* void SetMatrix */
-
-void matrix_matrix_mult( double m1[3][3],double m2[3][3],double result[3][3])
-{
- register int i,k;
-
- for(i=0;i<3;i++)
- for(k=0; k<3; k++)
- result[i][k] = m1[i][0] * m2[0][k] + m1[i][1] * m2[1][k] + m1[i][2] * m2[2][k];
-} /* void matrix_matrix_mult */
-