libmove3d  3.13.0
/home/slemaign/softs-local/BioMove3D-git/include/p3d_matrix.h
00001 #ifndef _p3d_MATRIX_H
00002 #define _p3d_MATRIX_H
00003 
00004 typedef double p3d_matrix_type;
00005 
00006 
00007 typedef p3d_matrix_type p3d_matrix2[2][2];   // modif Juan
00008 typedef p3d_matrix_type p3d_matrix3[3][3];
00009 typedef p3d_matrix_type p3d_matrix4[4][4];
00010 typedef p3d_matrix4 *pp3d_matrix4;
00011 
00012 typedef p3d_matrix_type p3d_vector2[2];   // modif Juan
00013 typedef p3d_matrix_type p3d_vector3[3];
00014 typedef p3d_matrix_type p3d_vector4[4];
00015 
00016 
00017 /*
00018 void p3d_mat4Add(p3d_matrix4 a, p3d_matrix4 b, p3d_matrix4 c);
00019 void p3d_mat4Sub(p3d_matrix4 a, p3d_matrix4 b, p3d_matrix4 c);
00020 void p3d_mat4Mult(p3d_matrix4 a, p3d_matrix4 b, p3d_matrix4 c);
00021 void p3d_mat3Mult(p3d_matrix3 a, p3d_matrix3 b, p3d_matrix3 c);
00022 void p3d_matvec4Mult(p3d_matrix4 a, p3d_vector4 v, p3d_vector4 c);
00023 void p3d_mat4Copy(p3d_matrix4 source, p3d_matrix4 dest);
00024 void p3d_mat3Copy(p3d_matrix3 source, p3d_matrix3 dest);
00025 void p3d_mat4Transpose(p3d_matrix4 source, p3d_matrix4 dest);
00026 void p3d_mat3Transpose(p3d_matrix3 source, p3d_matrix3 dest);
00027 void p3d_mat4Print(p3d_matrix4 M, char *name);
00028 void p3d_mat3Print(p3d_matrix3 M, char *name);
00029 double p3d_mat3Det(p3d_matrix3 mat);
00030 int p3d_mat3Invert(p3d_matrix3 mat, p3d_matrix3 invmat);    <- modif Etienne Ferre
00031 void p3d_vec3Mat3Mult(p3d_matrix3 M, p3d_vector3 a, p3d_vector3 b);    <- modif Etienne Ferre
00032 
00033 void p3d_matMultXform(p3d_matrix4 a, p3d_matrix4 b, p3d_matrix4 c);
00034 void p3d_matInvertXform(p3d_matrix4 M, p3d_matrix4 inv);
00035 
00036    inserer par david Brunet
00037 int p3d_matInvertArbitraryXform(p3d_matrix4 M, p3d_matrix4 inv);
00038 
00039 void p3d_matBuildXform(char *axes, p3d_matrix_type angles[],
00040                          p3d_matrix_type dx, p3d_matrix_type dy, p3d_matrix_type dz,
00041                          p3d_matrix4 M);
00042 
00043 void p3d_xformPoint(p3d_matrix4 M, p3d_vector3 p, p3d_vector3 p2);
00044 void p3d_xformVect(p3d_matrix4 M, p3d_vector3 v, p3d_vector3 v2);
00045 void p3d_xform4(p3d_matrix4 M, p3d_vector4 x, p3d_vector4 x2);
00046 void p3d_xform3(p3d_matrix3 M, p3d_vector3 x, p3d_vector3 x2);
00047 
00048 void p3d_vectCopy(p3d_vector3 src, p3d_vector3 dest);
00049 void p3d_vectAdd(p3d_vector3 a, p3d_vector3 b, p3d_vector3 c);
00050 void p3d_vectSub(p3d_vector3 a, p3d_vector3 b, p3d_vector3 c);
00051 void p3d_vectNeg(p3d_vector3 src, p3d_vector3 dest);
00052 void p3d_vectScale(p3d_vector3 src, p3d_vector3 dest, p3d_matrix_type k);
00053 void p3d_vectNormalize(p3d_vector3 src, p3d_vector3 dest);
00054 
00055 p3d_matrix_type p3d_vectNorm(p3d_vector3 v);
00056 int p3d_vectEqual(p3d_vector3 a, p3d_vector3 b);
00057 p3d_matrix_type p3d_vectDotProd(p3d_vector3 a, p3d_vector3 b);
00058 void p3d_vectXprod(p3d_vector3 a, p3d_vector3 b, p3d_vector3 c);
00059 p3d_matrix_type p3d_planeDist(p3d_vector4 plane, p3d_vector3 point);
00060 void p3d_displacePoint(p3d_vector3 point, p3d_vector3 vect,
00061                          p3d_matrix_type lambda, p3d_vector3 result);
00062 
00063 */
00064 extern p3d_matrix3 p3d_mat3IDENTITY;
00065 extern p3d_matrix4 p3d_mat4IDENTITY;
00066 extern p3d_matrix4 p3d_mat4NULL;
00067 extern p3d_matrix3 p3d_mat3NULL;
00068 
00069 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines