link.h
Go to the documentation of this file.00001 #ifndef LINKH
00002 #define LINKH
00003
00004 #include "vector.h"
00005 #include "interval.h"
00006 #include "equation.h"
00007 #include "cuiksystem.h"
00008 #include "box.h"
00009 #include "cpolyhedron.h"
00010 #include "plot3d.h"
00011 #include "color.h"
00012 #include "htransform.h"
00013
00014 #include <stdlib.h>
00015
00074 #define ROT_REP 1
00075
00084 #define ROT_REDUNDANCY 0
00085
00086
00094 #define INIT_NUM_SHAPES 2
00095
00102 #define DLC_R 0.5
00103
00110 #define DLC_G 0.5
00111
00118 #define DLC_B 0
00119
00120
00127 #define CC_R 1
00128
00135 #define CC_G 0
00136
00143 #define CC_B 0
00144
00145
00152 #define IsGroundLink(id) (id==0)
00153
00162 typedef struct {
00163 char *name;
00165 double s;
00170 double c;
00175 THTransform R;
00186 Tvector bodies;
00191 unsigned int axisID[3];
00197 double maxCoord;
00198 } Tlink;
00199
00208 void InitLink(char *name,Tlink *l);
00209
00218 void CopyLink(Tlink *l_dst,Tlink *l_src);
00219
00228 void AddBody2Link(Tcpolyhedron *b,Tlink *l);
00229
00260 void ChangeLinkReferenceFrame(double **p1,double **p2,Tlink *l);
00261
00271 unsigned int LinkNBodies(Tlink *l);
00272
00273
00287 Tcpolyhedron *GetLinkBody(unsigned int i,Tlink *l);
00288
00297 char *GetLinkName(Tlink *l);
00298
00313 boolean IsAllSpheres(Tlink *l);
00314
00337 void GenerateLinkRot(Tparameters *p,unsigned int lID,TCuikSystem *cs,Tlink *l);
00338
00367 void ApplyLinkRot(double sf,unsigned int sv,double *p,Tequation *eq,
00368 TCuikSystem *cs,boolean groundLink,Tlink *l);
00369
00370
00393 void RegenerateLinkSolution(TCuikSystem *cs,double *sol,boolean groundLink,Tlink *l);
00394
00415 void GetTransform2Link(TCuikSystem *cs,double *sol,boolean groundLink,
00416 double *r,THTransform *t,Tlink *l);
00417
00432 double GetLinkMaxCoordinate(Tlink *l);
00433
00448 void PlotLink(Tplot3d *pt,double axesLength,Tlink *l);
00449
00474 void MoveLink(Tplot3d *pt,TCuikSystem *cs,double *sol,
00475 double *r,Tlink *l);
00476
00484 void DeleteLink(Tlink *l);
00485
00486 #endif