}
/*************************  ************************************/
void invert(float *inv, float *mat){
 inv[0] = mat[0]; inv[1] = mat[4]; inv[2] = mat[8]; inv[3] = mat[3];
 inv[4] = mat[1]; inv[5] = mat[5]; inv[6] = mat[9]; inv[7] = mat[7];
 inv[8] = mat[2]; inv[9] = mat[6]; inv[10] = mat[10]; inv[11] = mat[11];
 inv[12] = -mat[0]*mat[12] - mat[1]*mat[13] - mat[2]*mat[14];
 inv[13] = -mat[4]*mat[12] - mat[5]*mat[13] - mat[6]*mat[14];
 inv[14] = -mat[8]*mat[12] - mat[9]*mat[13] - mat[10]*mat[14];
 inv[15] = mat[15];
}
/*************************  ************************************/
void viewthru(int whichmat){ 
float inv[16];
switch(whichmat){
case 0:;glMultMatrixf(camat); break; 
case 1: glMultMatrixf(aff); break;
case 2: invert(inv,tormat); glMultMatrixf(inv); break;
case 3: invert(inv,teamat); glMultMatrixf(inv); break;
}

}
/************************* scenery ************************************/
