/*************************************************************************** * MatrixOperations.h * * ------------------- * * copyright : (C) 2013 by Richard R. Carrillo and Niceto R. Luque * * and Peter I. Corke * * email : rcarrillo,nluque at ugr.es * ***************************************************************************/ /*************************************************************************** * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 3 of the License, or * * (at your option) any later version. * ***************************************************************************/ /*! *\brief Simple vector/matrix maths library. * Note: All vectors and matrices are passed by reference. * * */ #ifndef _vmath_h_ #define _vmath_h_ typedef struct vector { double x, y, z; } Vect; typedef struct matrix { Vect n, o, a; } Rot; typedef struct homogeneous_matrix { Vect n, o, a, p; } Transform; void vect_cross (Vect *r, Vect *a, Vect *b); double vect_dot (Vect *a, Vect *b); void vect_add (Vect *r, Vect *a, Vect *b); void scal_mult (Vect *r, Vect *a, double s); void rot_vect_mult (Vect *r, Rot *m, Vect *v); void rot_trans_vect_mult (Vect *r, Rot *m, Vect *v); void mat_vect_mult (Vect *r, double *m, Vect *v); void rot_print(char *s, Rot *m); void vect_print(char *s, Vect *v); #endif