/*
 *
 * hiatus - 64k by calodox
 *
 * matVect3D.h - math routines for 3dengine
 *
 * leto, dake
 *
 */

 #ifndef _MATVect3D_H_
 #define _MATVect3D_H_

  #include "main.h"

  typedef float Matrix[4][4];


  typedef struct
          {
          Vect3D pt1,pt2,pt3;
          } Ftrig;


void MAT_ident(Matrix mat);


 void MAT_mul(Matrix mat1, Matrix mat2, Matrix res);
 void MAT_rot_cam(float a,  float b, float c,  Matrix mat);
 void MAT_obj_mat(float a, float b, float c, Vect3D trans, Matrix rots);
 void MAT_cam_matrix(Matrix m, Vect3D source, Vect3D target, unsigned char roll);
 void MAT_rotate_pt(Vect3D v, Vect3D *res, Matrix e);
 void KF_Prout_Cam_Matrix( float roll, Vect3D r, Matrix mat );
 void KF_Ica_Cam_Matrix( Vect3D r, Matrix mat );
 void MAT_ident_scale(float xscale, float yscale, float zscale, Matrix mat);

 #endif

