Institut de Robòtica i Informàtica Industrial
KRD Group

The CuikSuite Project

htransform.h

Go to the documentation of this file.
00001 #ifndef HTRANSFORMH
00002 #define HTRANSFORMH
00003 
00004 
00005 #include "defines.h" /*for the DIM_SP,... constants*/
00006 
00007 #include <stdio.h>
00008 
00020 /************************************************************************************/
00027 #define DIM_SP 3
00028 
00035 #define TX 0
00036 
00043 #define TY 1
00044 
00051 #define TZ 2
00052 
00059 #define RX 3
00060 
00067 #define RY 4
00068 
00075 #define RZ 5
00076 
00083 #define AXIS_X 0
00084 
00091 #define AXIS_Y 1
00092 
00099 #define AXIS_Z 2
00100 
00108 #define AXIS_H 3  
00109 /************************************************************************************/
00110 
00126 typedef double THTransform[DIM_SP+1][DIM_SP+1];
00127 
00135 void HTransformIdentity(THTransform *t); 
00136 
00145 void HTransformCopy(THTransform *t_dst,THTransform *t_org); 
00146 
00155 void HTransformTx(double tx,THTransform *t);
00156 
00165 void HTransformTy(double ty,THTransform *t);
00166 
00175 void HTransformTz(double tz,THTransform *t);
00176 
00187 void HTransformTxyz(double tx,double ty,double tz,THTransform *t);
00188 
00197 void HTransformRx(double rx,THTransform *t);
00198 
00207 void HTransformRy(double ry,THTransform *t);
00208 
00217 void HTransformRz(double rz,THTransform *t);
00218 
00228 void HTransformRx2(double s,double c,THTransform *t);
00229 
00239 void HTransformRy2(double s,double c,THTransform *t);
00240 
00250 void HTransformRz2(double s,double c,THTransform *t);
00251 
00263 void HTransformCreate(unsigned int dof_r3,double v,THTransform *t);
00264 
00265 
00279 void HTransformSetElement(unsigned int i,unsigned int j,double v,THTransform *t);
00280 
00292 double HTransformGetElement(unsigned int i,unsigned int j,THTransform *t);
00293 
00303 void HTransformProduct(THTransform *t1,THTransform *t2,THTransform *t3);
00304 
00314 void HTransformAdd(THTransform *t1,THTransform *t2,THTransform *t3);
00315 
00324 void HTransformInverse(THTransform *t,THTransform *ti);
00325 
00326 
00353 void HTransformOrthonormalize(THTransform *t,THTransform *ta);
00354 
00375 void HTransformX2Vect(double sy,double sz,
00376                       double *p1,double *p2,THTransform *t);
00377 
00387 void HTransformTranspose(THTransform *t,THTransform *tt);
00388 
00404 void HTransformAcumTrans(double tx,double ty,double tz,THTransform *t);
00405 
00406 
00423 void HTransformAcumTrans2(THTransform *t_in,double tx,double ty,double tz,THTransform *t);
00424 
00439 void HTransformAcumRot(unsigned int type,double s,double c,THTransform *t);
00440 
00457 void HTransformAcumRot2(THTransform *t_in,unsigned int type,double s,double c,THTransform *t);
00458 
00468 void HTransformApply(double *p_in,double *p_out,THTransform *t);
00469 
00470 
00479 void HTransformPrint(FILE *f,THTransform *t);
00480 
00495 void HTransformPrintT(FILE *f,THTransform *t);
00496 
00504 void HTransformDelete(THTransform *t);
00505 
00506 #endif